.directory-intro {padding-block:1.25rem 1rem;max-width:760px}
.directory-intro h1 {font-size:clamp(2.25rem,4vw,3.5rem);margin-block:.4rem .75rem;letter-spacing:-.045em}
.directory-intro>p:last-child {margin-block:.35rem;color:var(--muted,#526761)}
.directory-results-layout {display:grid;grid-template-columns:minmax(16rem,20rem) minmax(0,1fr);gap:1.5rem;align-items:start}
.directory-controls {position:sticky;top:calc(var(--site-header-height,108px) + 8px);align-self:start;max-height:calc(100dvh - var(--site-header-height,108px) - 20px);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:0 .25rem .25rem 0}
.directory-location-panel {margin-block-end:.75rem;border:1px solid var(--line,#d8e1d0);border-radius:1rem;background:var(--paper,#fffdf8);padding:.45rem .9rem}
.directory-location-panel>summary {font-weight:700;cursor:pointer;min-height:2.75rem;display:list-item;align-content:center}
.directory-location-content .location-search {margin:0;max-width:none;padding:0 0 .75rem;border:0;background:transparent}
.directory-location-content .location-search>* {min-width:0}
.directory-location-content .location-search>label {margin-top:0}
.directory-location-content .location-search>p {margin:.4rem 0}
.directory-filter-panel {margin-block:.75rem;border:1px solid var(--line,#d8e1d0);border-radius:1rem;background:var(--paper,#fffdf8);padding:.65rem .9rem}
.directory-filter-panel>summary {font-weight:700;cursor:pointer;min-height:2.75rem;display:list-item;align-content:center}
.active-filter-note {font-size:.82rem;font-weight:500;color:var(--muted,#526761)}
.directory-filter-form {display:grid;grid-template-columns:minmax(0,1fr);gap:.7rem;margin-block-start:.7rem;max-width:none}
.directory-filter-form .directory-filter-field {display:flex;flex-direction:column;gap:.25rem;min-width:0}
.directory-filter-form .directory-filter-field label {margin:0;font-size:.9rem;font-weight:600}
.directory-filter-form input:not([type=checkbox]),.directory-filter-form select {width:100%;min-height:2.65rem;box-sizing:border-box;font:inherit;border:1px solid var(--line,#d8e1d0);border-radius:.55rem;padding:.55rem .7rem;background:#fff;color:inherit}
.directory-availability {border:0;padding:0;margin:.15rem 0;display:grid;gap:.25rem;min-width:0}
.directory-availability legend {font-weight:700;margin-block-end:.2rem}
.directory-availability label {display:flex;align-items:center;gap:.55rem;min-height:2.4rem;margin:0;cursor:pointer}
.directory-availability input {width:1.1rem;height:1.1rem;accent-color:var(--forest,#123f37);flex:none}
.directory-filter-actions {display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}
.directory-filter-actions button {min-height:2.65rem;padding:.65rem 1rem}
.directory-filter-help {font-size:.8rem;margin:0;color:var(--muted,#526761);line-height:1.45}
.directory-unified-filter-form {grid-template-columns:minmax(0,1fr);margin-block-start:.7rem}
.directory-unified-filter-form>.directory-filter-field {display:flex;flex-direction:column;gap:.25rem}
.directory-unified-filter-form .directory-availability {grid-column:1;grid-template-columns:minmax(0,1fr)}
.directory-unified-filter-form .location-button {align-self:start;min-height:44px;margin-top:.4rem}
.directory-unified-filter-form .location-options {width:100%}
.directory-unified-filter-form .directory-filter-actions,.directory-unified-filter-form .directory-filter-help {grid-column:1}
.nearby-filter-panel {max-width:44rem;text-align:left;margin-inline:auto}
/* The shared location form sits inside the narrower homepage hero as well as
   directory panels. Keep its nested layouts explicit against legacy .search div. */
.location-search {max-width:none;min-width:0}
.location-search>* {min-width:0}
.location-search .location-search-more {grid-column:1/-1;margin:0;padding:.65rem 1rem;background:var(--surface,#fffdf7);container-type:inline-size}
.location-search .location-search-more>summary {text-decoration:none;line-height:1.4;min-height:44px}
.location-search .directory-filter-form {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem 1rem}
.location-search .directory-filter-field {display:flex;flex-direction:column;gap:.25rem}
.location-search .directory-filter-field label {font-weight:600;margin:0}
.location-search .directory-filter-field input,.location-search .directory-filter-field select {flex:none;width:100%;min-height:48px;margin:0;padding:.65rem .8rem}
.location-search .directory-availability {grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.25rem .85rem}
.location-search .directory-availability legend {font-size:.9rem}
.location-search .directory-availability label {font-size:.85rem;line-height:1.45;min-height:44px;margin:0}
.location-search .directory-availability input {flex:none;width:20px;height:20px;min-height:0;margin:0}
.location-search .directory-filter-help {grid-column:1/-1;margin:0;font-size:.8rem}
.location-search .location-help {margin:0}
.directory-location-content .location-search {grid-template-columns:minmax(0,1fr)}
@container(max-width:28rem){.location-search .directory-filter-form,.location-search .directory-availability{grid-template-columns:minmax(0,1fr)}}
@media(max-width:850px){.location-search .directory-filter-form,.location-search .directory-availability{grid-template-columns:minmax(0,1fr)}}
.directory-results {min-width:0}
.directory-results-heading {display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:.25rem 1rem;margin:.25rem 0 .75rem}
.directory-results-heading h2 {margin:.25rem 0;font-size:1.3rem}
.directory-results-heading>p {margin:.25rem 0;color:var(--muted,#526761);font-size:.9rem}
.directory-view-switch {grid-column:1/-1}
.directory-result-cards {grid-template-columns:repeat(2,minmax(0,1fr));margin:0 0 1.5rem;gap:1rem}
.directory-result-cards>.gn-card {padding:1rem}
.directory-result-cards .card-title {font-size:1.1rem;min-height:3rem;margin:.55rem 0}
.directory-result-cards .card-summary {margin-bottom:1rem}
.directory-results .pagination {margin-block:1rem 1.5rem}
.directory-business-link {margin-block:1.5rem;padding:1rem;border-block-start:1px solid var(--line,#d8e1d0)}
.directory-business-link p {margin:.25rem 0}
@media(max-width:850px){.directory-results-layout{grid-template-columns:minmax(0,1fr);gap:.75rem}.directory-controls{top:calc(var(--site-header-height,108px) + 8px);z-index:25;max-height:calc(100dvh - var(--site-header-height,108px) - 20px);overflow-y:auto;padding:0;background:var(--paper,#f8f6ee)}.directory-location-panel,.directory-filter-panel{margin:.25rem 0}.directory-result-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:850px){.directory-controls:has(.directory-filter-panel[open]){position:relative;top:auto;max-height:none;overflow:visible;z-index:auto}}
@media(max-width:600px){.directory-intro{padding-block:.75rem .5rem}.directory-intro h1{font-size:clamp(2rem,9vw,2.6rem)}.directory-location-content .location-search .location-field{grid-column:1/-1}.directory-result-cards{grid-template-columns:minmax(0,1fr);gap:.75rem}.directory-result-cards>.gn-card{padding:1rem}.directory-results-heading{grid-template-columns:minmax(0,1fr)}.directory-results-heading>p{grid-column:1}.directory-view-switch{grid-column:1/-1}.directory-filter-panel,.directory-location-panel{padding:.45rem .75rem}.directory-filter-form{gap:.55rem}}
@media(prefers-reduced-motion:reduce){.directory-controls{scroll-behavior:auto}}

/* Directory-first layout from the approved design: primary search stays visible. */
.directory-breadcrumb{display:flex;gap:.6rem;align-items:center;color:var(--muted);font-size:.8rem;margin:1rem 0 .9rem}
.directory-breadcrumb a{color:inherit;text-decoration:none}
.directory-intro{max-width:none;padding-block:.75rem 1rem}
.directory-intro h1{font-size:clamp(2rem,3vw,2.375rem);line-height:1.15;letter-spacing:-.032em}
.directory-results-layout{display:block}
.directory-controls,.directory-controls:has(.directory-filter-panel[open]){position:static;max-height:none;overflow:visible;padding:0;background:transparent}
.directory-controls .directory-filter-panel{padding:1.4rem;margin:.8rem 0 1.5rem}
.directory-controls .directory-unified-filter-form{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto;align-items:start;gap:.8rem;margin:0}
.directory-controls .directory-unified-filter-form>.directory-filter-field{min-width:0}
.directory-controls .directory-unified-filter-form .directory-primary-submit button{min-height:2.8rem;white-space:nowrap}
.directory-more{grid-column:1/-1;border-top:1px solid var(--line);padding-top:.75rem}
.directory-more>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:650}
.directory-controls .directory-unified-filter-form .directory-more-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem 1rem}
.directory-more-fields .directory-availability{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:.25rem 1rem}
.directory-more-fields .directory-availability legend{width:100%}
.directory-controls .directory-unified-filter-form>.directory-filter-help{grid-column:1/3}
.directory-controls .directory-unified-filter-form>.directory-filter-actions{grid-column:3;justify-self:end}
.directory-result-cards{grid-template-columns:repeat(3,minmax(0,1fr))}
.directory-results-heading{margin:0 0 1rem}
.directory-result-cards>.gn-card{height:100%}
@media(max-width:850px){.directory-controls .directory-unified-filter-form .directory-more-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.directory-result-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.directory-controls .directory-unified-filter-form,.directory-controls .directory-unified-filter-form .directory-more-fields{grid-template-columns:minmax(0,1fr)}.directory-controls .directory-unified-filter-form>.directory-filter-help,.directory-controls .directory-unified-filter-form>.directory-filter-actions{grid-column:1}.directory-controls .directory-unified-filter-form>.directory-filter-actions{justify-self:start}.directory-primary-submit button{width:100%}.directory-result-cards{grid-template-columns:minmax(0,1fr)}.directory-controls .directory-filter-panel{padding:1rem}.directory-intro h1{font-size:clamp(1.875rem,8vw,2.375rem)}}

.directory-primary-submit{padding-top:1.65rem}
@media(max-width:600px){.directory-primary-submit{padding-top:0}}
.directory-view-switch{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.directory-view-switch .directory-view-current,.directory-view-switch a{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;min-height:44px;padding:.5rem .8rem;border:1px solid var(--line);border-radius:8px;text-decoration:none;font-size:.875rem;font-weight:650}
.directory-view-switch .directory-view-current{background:var(--ink);border-color:var(--ink);color:var(--surface)}
.directory-view-switch a{background:var(--surface)}
.directory-view-switch .gn-icon{width:16px;height:16px}
.directory-more>summary::before{content:"+";display:inline-block;font-size:1.2em;margin-right:.55rem;line-height:1}
.directory-more[open]>summary::before{content:"−"}
.directory-city-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.8fr);gap:28px;align-items:center}
.directory-city-intro img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:16px}
@media(max-width:700px){.directory-city-intro{grid-template-columns:minmax(0,1fr);gap:18px}}
.directory-page-index{margin:1.25rem 0;border:1px solid var(--line);border-radius:12px;padding:.75rem 1rem;background:var(--surface)}
.directory-page-index>summary{cursor:pointer;font-weight:650;min-height:44px;padding-block:10px}
.directory-page-index ol{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.directory-page-index a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:.5rem .75rem;border:1px solid var(--line);border-radius:8px;text-decoration:none}
.directory-page-index a[aria-current=page]{background:var(--ink);color:var(--surface);border-color:var(--ink)}
