.giddi-directory {
    --giddi-green: #006747;
    --giddi-green-dark: #004f38;
    --giddi-blue: #007eb5;
    --giddi-ink: #17322b;
    --giddi-muted: #52645f;
    --giddi-border: #d7e0dd;
    --giddi-surface: #f4f8f6;
    max-width: 75rem;
    margin: 2rem auto;
    color: var(--giddi-ink);
}

.giddi-directory__notice {
    box-sizing: border-box;
    max-width: 75rem;
    margin: 2rem auto;
    padding: .8rem 1rem;
    border-left: .3rem solid var(--giddi-blue, #007eb5);
    background: #eef7fb;
}

.giddi-directory__filter-bar {
    margin: 0;
    padding: 0;
    border: 0;
}

.giddi-directory__legend {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.giddi-directory label {
    display: block;
    margin-bottom: .4rem;
    color: var(--giddi-ink);
    font-weight: 700;
}

.giddi-directory input,
.giddi-directory select {
    width: 100%;
    min-height: 3rem;
    padding: .65rem .8rem;
    border: 1px solid #80918c;
    border-radius: .25rem;
    background: #fff;
    color: var(--giddi-ink);
    font: inherit;
}

.giddi-directory input:focus,
.giddi-directory select:focus {
    outline: .2rem solid rgba(0, 126, 181, .35);
    outline-offset: 1px;
    border-color: var(--giddi-blue);
}

.giddi-directory__search {
    margin-bottom: 1.15rem;
    padding: 1rem;
    border: 1px solid var(--giddi-border);
    border-radius: .35rem;
    background: #f4f6f7;
}
.giddi-directory__search input { width: 98%; }
.giddi-directory__selects { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .85rem; }
.giddi-directory__results-heading { display: flex; align-items: center; gap: 1rem; margin: 1.5rem 0 0; color: var(--giddi-green-dark); font-size: 1rem; line-height: 1.2; text-align: center; }
.giddi-directory__results-heading::before, .giddi-directory__results-heading::after { height: 1px; flex: 1 1 auto; background: var(--giddi-border); content: ""; }
.giddi-directory__results-heading p { flex: 0 0 auto; margin: 0; font-weight: 700; }
.giddi-directory__summary { display: flex; min-height: 0; align-items: center; justify-content: space-between; gap: 1rem; margin: .75rem 0; }
.giddi-directory__summary p { margin: 1rem 0; font-weight: 700; }
.giddi-directory__location-status { margin: 0 !important; color: var(--giddi-muted); font-size: .85rem; font-weight: 400 !important; }
.giddi-directory__location-status:empty { display: none; }

.giddi-directory__clear {
    padding: .45rem .75rem;
    border: 1px solid var(--giddi-green);
    border-radius: 999px;
    background: #fff;
    color: var(--giddi-green-dark);
    font: inherit;
    font-size: .85rem;
    font-weight: 700;
    cursor: pointer;
}

.giddi-directory__results { display: grid; gap: .65rem; }
.giddi-directory__pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .35rem; margin: 1.25rem 0; }
.giddi-directory__pagination[hidden] { display: none; }
.giddi-directory__page-button { min-width: 2.25rem; min-height: 2.25rem; padding: .35rem .65rem; border: 1px solid var(--giddi-border); border-radius: .25rem; background: #fff; color: var(--giddi-green-dark); font: inherit; font-size: .85rem; font-weight: 700; cursor: pointer; }
.giddi-directory__page-button:hover, .giddi-directory__page-button:focus { border-color: var(--giddi-green); background: #e4f1ec; }
.giddi-directory__page-button[aria-current="page"] { border-color: var(--giddi-green); background: var(--giddi-green); color: #fff; }
.giddi-directory__page-button:disabled { cursor: not-allowed; opacity: .45; }
.giddi-directory__page-ellipsis { padding: 0 .15rem; color: var(--giddi-muted); }

.giddi-card {
    border: 1px solid var(--giddi-border);
    border-left: .28rem solid var(--giddi-green);
    border-radius: .25rem;
    background: #fff;
    box-shadow: 0 .12rem .4rem rgba(23, 50, 43, .05);
}

.giddi-card__media {
    display: flex;
    box-sizing: border-box;
    align-items: center;
    justify-content: center;
    width: 3.9rem;
    height: 3.25rem;
    padding: 0 .65rem 0 0;
    border: 0;
    border-right: 1px solid var(--giddi-border);
    border-radius: 0;
    background: transparent;
    overflow: hidden;
}

.giddi-card__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.giddi-card:hover,
.giddi-card:focus-within,
.giddi-card.is-expanded { border-color: var(--giddi-green); background: var(--giddi-surface); box-shadow: 0 .2rem .6rem rgba(23, 50, 43, .12); }
.giddi-card__header { padding: .55rem .75rem; }
.giddi-card__title { margin: 0; font-size: 1.25rem; line-height: 1.3; }
.giddi-card__toggle { display: grid; width: 100%; grid-template-columns: 3.9rem minmax(0, 1fr) 1.5rem; align-items: center; gap: .65rem; margin: 0; padding: 0; border: 0; background: transparent; color: var(--giddi-green-dark); font: inherit; font-weight: 700; text-align: left; cursor: pointer; }
.giddi-card__toggle:focus-visible { outline: .2rem solid rgba(0, 126, 181, .35); outline-offset: .2rem; }
.giddi-card__toggle-icon { display: inline-flex; width: 1.5rem; height: 1.5rem; align-items: center; justify-content: center; color: var(--giddi-blue); font-size: 1.35rem; font-weight: 800; line-height: 1; }
.giddi-card__title-text { min-width: 0; overflow-wrap: anywhere; }
.giddi-card__panel { display: grid; grid-template-columns: minmax(7rem, 1fr) minmax(0, 4fr); gap: 0; padding: 1rem; border-top: 1px solid var(--giddi-border); background: #fff; }
.giddi-card:hover .giddi-card__panel,
.giddi-card:focus-within .giddi-card__panel,
.giddi-card.is-expanded .giddi-card__panel { background: var(--giddi-surface); }
.giddi-card__panel[hidden] { display: none; }
.giddi-card__panel-logo-column { min-width: 0; margin-right: 1rem; }
.giddi-card__panel-logo { display: flex; height: 10rem; align-items: center; justify-content: center; overflow: hidden; border: 1px solid var(--giddi-border); border-radius: .3rem; background: #fff; }
.giddi-card__panel-image { display: block; width: 100%; height: 100%; object-fit: contain; }
.giddi-card__panel-content { min-width: 0; padding-left: 1rem; border-left: 1px solid var(--giddi-border); }
.giddi-card__panel-top { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 1rem; }
.giddi-card__information { min-width: 0; }
.giddi-card__details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem 1.25rem; margin: 0; }
.giddi-card__details div { min-width: 0; }
.giddi-card__details dt { color: var(--giddi-muted); font-size: .72rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.giddi-card__details dd { margin: .1rem 0 0; overflow-wrap: anywhere; }
.giddi-card__notes { width: 100%; margin: 1rem 0 0; padding-top: 1rem; border-top: 1px solid var(--giddi-border); color: var(--giddi-muted); }
.giddi-card__notes::first-letter { text-transform: uppercase; }
.giddi-card__actions { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: .9rem; }
.giddi-card__link { display: inline-flex; min-height: 2rem; align-items: center; justify-content: center; padding: .3rem 1.5rem; border: 1px solid var(--giddi-green); border-radius: 999px; background: #fff; color: var(--giddi-green-dark); font-size: .78rem; font-weight: 800; line-height: normal; text-decoration: none; white-space: nowrap; }
.giddi-card__link--primary { background: var(--giddi-green); color: #fff; }
.giddi-card__link:hover, .giddi-card__link:focus { background: #e4f1ec; color: var(--giddi-green-dark); }
.giddi-card__link--primary:hover, .giddi-card__link--primary:focus { background: var(--giddi-green-dark); color: #fff; }
.giddi-card__address { margin-bottom: .9rem; }
.giddi-card__address p { display: flex; align-items: center; gap: .4rem; margin: .2rem 0 .55rem; overflow-wrap: anywhere; }
.giddi-card__address p span { min-width: 0; }
.giddi-card__copy { display: inline-flex; width: 1.8rem; height: 1.8rem; flex: 0 0 1.8rem; align-items: center; justify-content: center; padding: 0; border: 1px solid var(--giddi-border); border-radius: .25rem; background: #fff; color: var(--giddi-green-dark); font: inherit; font-size: 1rem; font-weight: 800; vertical-align: middle; cursor: pointer; }
.giddi-card__copy::before { content: "\29C9"; }
.giddi-card__copy.is-copied::before { content: "\2713"; }
.giddi-card__copy:hover, .giddi-card__copy:focus { background: #e4f1ec; }
.giddi-card__copy-status { color: var(--giddi-muted); font-size: .78rem; }
.giddi-card__map-placeholder { display: flex; width: 100%; aspect-ratio: 16 / 9; flex: 0 0 auto; align-items: center; justify-content: center; overflow: hidden; border: 1px solid #c7cecc; border-radius: .3rem; background: #e5e8e7; color: var(--giddi-muted); font-weight: 700; text-align: center; }
.giddi-card__map-placeholder.is-unavailable { min-height: 7rem; }
.giddi-card__map-frame { display: block; width: 100%; height: 100%; flex: 1 1 auto; border: 0; }
.giddi-card__map-column { display: flex; min-width: 0; flex-direction: column; }
.giddi-card__logo-actions { flex-direction: column; flex-wrap: nowrap; margin: .65rem 0 0; }
.giddi-card__logo-actions .giddi-card__link { width: 100%; }
.giddi-directory__message { padding: 2rem; border-radius: .35rem; background: var(--giddi-surface); text-align: center; }
.giddi-directory__message--loading { border: 1px solid var(--giddi-border); color: var(--giddi-green-dark); font-weight: 700; }
.giddi-directory__message--error { border-left: .3rem solid #a6192e; }

@media (max-width: 1245px) {
    .giddi-directory { margin-right: 1rem; margin-left: 1rem; }
}

@media (max-width: 48rem) {
    .giddi-directory__selects, .giddi-card__details { grid-template-columns: 1fr; }
    .giddi-card__media { width: 3.35rem; height: 2.75rem; padding-right: .55rem; }
    .giddi-card__header { padding: .5rem; }
    .giddi-card__toggle { grid-template-columns: 3.35rem minmax(0, 1fr) 1.5rem; gap: .4rem; }
    .giddi-card__panel { grid-template-columns: 1fr; }
    .giddi-card__panel-logo-column { width: 100%; margin: 0 0 1rem; }
    .giddi-card__panel-logo, .giddi-card__map-column { display: none; }
    .giddi-card__logo-actions { flex-direction: row; flex-wrap: wrap; justify-content: flex-start; margin-top: 0; }
    .giddi-card__logo-actions .giddi-card__link { width: auto; }
    .giddi-card__panel-content { padding: 1rem 0 0; border-top: 1px solid var(--giddi-border); border-left: 0; }
    .giddi-card__panel-top { grid-template-columns: 1fr; }
    .giddi-card__map-placeholder { min-height: 0; }
    .giddi-card__actions { gap: .25rem; }
    .giddi-card__link { padding: .25rem 1.5rem; font-size: .7rem; }
}

@media (min-width: 48.01rem) and (max-width: 75rem) {
    .giddi-directory__selects { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (prefers-reduced-motion: reduce) {
    .giddi-directory *, .giddi-directory *::before, .giddi-directory *::after { scroll-behavior: auto !important; transition: none !important; }
}
