/* Business actions float in the top layer, keeping every card's height stable. */
.business-directory-page .directory-actions-trigger {
    display:flex; align-items:center; justify-content:center; gap:10px; min-height:46px;
    padding:10px 15px; border:1px solid #c5dbe1; border-radius:7px; background:#fff;
    color:#073e48; font:inherit; font-size:14px; font-weight:700; cursor:pointer;
}
.business-directory-page .business-directory-card-actions > .business-directory-card-action { min-height:46px; border-radius:7px; }
.directory-actions-trigger svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:2; }
.directory-actions-trigger[aria-expanded="true"] svg { transform:rotate(180deg); }
.directory-actions-dialog {
    position:fixed; inset:auto; margin:0; padding:12px 16px; box-sizing:border-box;
    width:250px; max-width:calc(100vw - 24px); max-height:calc(100dvh - 24px); overflow:auto;
    color:#103e4a; background:#fff; border:1px solid #e1ebee; border-radius:14px;
    box-shadow:0 12px 30px #173e492b; font:inherit;
}
.directory-actions-dialog::backdrop { background:transparent; }
.directory-actions-dialog .directory-actions-row {
    display:flex; align-items:center; gap:16px; width:100%; min-height:44px; margin:0;
    padding:10px 8px; box-sizing:border-box; border:0; border-radius:6px;
    background:transparent; color:#103e4a; text-align:left; text-decoration:none;
    font:inherit; font-size:15px; line-height:1.4; cursor:pointer;
}
.directory-actions-dialog .directory-actions-row:hover { background:#edf7f6; }
.directory-actions-dialog .directory-actions-row:focus-visible,
.directory-actions-trigger:focus-visible, .directory-actions-cancel:focus-visible { outline:3px solid #008575; outline-offset:2px; }
.directory-actions-row svg { width:20px; height:20px; flex:0 0 20px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.directory-actions-dialog .is-active { color:#006d64; }
.directory-actions-row.is-active .directory-actions-heart { fill:currentColor; }
.directory-actions-dialog form { margin:0; }
.directory-actions-dialog hr { border:0; border-top:1px solid #dce8ec; margin:8px 0; opacity:1; }
.directory-actions-sheet-heading, .directory-actions-cancel { display:none; }
.directory-actions-feedback { margin:8px; font-size:13px; color:#006d64; }
.directory-actions-feedback input { width:100%; }
.directory-actions-row:disabled { opacity:.65; cursor:wait; }
@media (max-width: 575px) {
    .directory-actions-wide { display:none; }
    .business-directory-page .directory-actions-trigger { padding:10px 14px; }
    .directory-actions-dialog {
        inset:auto 0 0; width:100%; max-width:none; max-height:calc(100dvh - 20px);
        padding:10px 20px max(20px, env(safe-area-inset-bottom)); border-radius:26px 26px 0 0;
    }
    .directory-actions-dialog::backdrop { background:#10252b80; }
    .directory-actions-sheet-heading { display:block; border-bottom:1px solid #dce8ec; padding-bottom:12px; margin-bottom:4px; }
    .directory-actions-sheet-heading > span { display:block; width:44px; height:5px; border-radius:4px; background:#cbd5d8; margin:0 auto 12px; }
    .directory-actions-sheet-heading strong { display:block; font-size:15px; }
    .directory-actions-dialog .directory-actions-row { min-height:48px; }
    .directory-actions-cancel { display:block; width:100%; min-height:44px; margin-top:18px; border:0; border-radius:8px; background:#eff6f8; color:#073e48; font:inherit; font-weight:700; cursor:pointer; }
}
/* Scoped directory layouts: reference grid, compact list and map with results. */
.business-directory-page { --directory-ink:#06464b; --directory-primary:#007568; --directory-line:#d7e7e6; background:#fff; }
.business-directory-page .container-shell { max-width:1440px; width:calc(100% - 48px); }
.business-directory-page .business-directory-hero { padding:26px 0 22px; background:#eff9f6 url('../images/directory/local-streetscape.svg') center bottom / cover no-repeat; border:0; }
.business-directory-page .business-directory-hero::before,.business-directory-page .business-directory-hero::after { display:none; }
.business-directory-page .business-directory-hero h1 { font-size:clamp(24px,2.5vw,34px); letter-spacing:-.035em; line-height:1.2; }
.business-directory-page .business-directory-hero-copy > p { margin:7px 0 0; font-size:14px; color:#68828e; }
.directory-title-mobile { display:none; }
.business-directory-page .business-directory-discovery { max-width:950px; margin:18px auto 0; }
.business-directory-page .business-directory-primary { display:grid; grid-template-columns:minmax(0,1fr) 112px; padding:3px; gap:3px; border:1px solid #d3e6e1; border-radius:7px; background:#fff; box-shadow:0 2px 7px #0c615b15; }
.business-directory-page .business-directory-primary > .business-directory-search-field { grid-column:1; grid-row:1; }
.business-directory-page .business-directory-primary > .business-directory-filter-submit { grid-column:2; grid-row:1; }
.business-directory-page .business-directory-filter-form input[type='search'] { height:44px; min-height:44px; border:0; box-shadow:none; font-size:13px; }
.business-directory-page .business-directory-filter-submit { min-height:44px; border-radius:5px; background:linear-gradient(#ff852c,#ff6319); box-shadow:none; }
.business-directory-page .directory-quick-filters { margin-top:12px; gap:12px; }
.business-directory-page .directory-chip-field,.business-directory-page .directory-toggle-chip,.business-directory-page .business-directory-more > summary { border-radius:6px; background:#fff; min-height:40px; }
.business-directory-page .business-directory-main { padding-top:18px; }
.business-directory-page .business-directory-results-toolbar { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:16px; }
.business-directory-page .business-directory-results-summary h2 { font-size:17px; }
.business-directory-page .business-directory-results-summary p { font-size:11px; margin:3px 0 0; }
.business-directory-page .directory-toolbar-controls { display:flex; gap:12px; align-items:center; }
.business-directory-page .directory-view-switch { display:flex; flex-wrap:nowrap; gap:4px; margin:0; padding:0; border:0; background:none; width:auto; }
.business-directory-page .directory-view-switch .business-directory-page-link { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:36px; padding:7px 11px; border:1px solid #d7e7ec; border-radius:5px; background:#f7fafb; }
.business-directory-page .directory-view-switch .is-current { background:linear-gradient(120deg,#008575,#00685d); color:#fff; border-color:#008575; box-shadow:0 2px 5px #00685d25; }
.directory-view-link svg { width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:1.7; }
.business-directory-page .directory-sort-field { display:flex; align-items:center; gap:6px; white-space:nowrap; }
.directory-filter-sidebar { display:none; }
.business-directory-page .directory-card[data-business-directory-card] { position:relative; border:1px solid #dce8ec; border-radius:8px; overflow:visible; box-shadow:0 2px 5px #164c4710; }
.business-directory-page .business-directory-banner { height:156px; border-radius:7px 7px 0 0; overflow:hidden; }
.business-directory-page .directory-card[data-business-directory-card] > .business-directory-card-body { display:flex; flex-direction:column; min-width:0; padding:10px 12px; }
.business-directory-page .business-directory-badges { min-height:0; }
.business-directory-page .business-directory-badges > a { border-radius:3px; background:#e4f0f2; color:#356571; font-size:10px; padding:2px 6px; }
.business-directory-page .directory-card[data-business-directory-card] h3 { font-size:16px; line-height:1.3; color:#005170; margin:5px 0; }
.business-directory-page .business-directory-card-meta { border:0; padding:3px 0; gap:5px 12px; font-size:12px; }
.business-directory-page .business-directory-rating { color:#e77b09; }
.business-directory-page.directory-view-grid .business-directory-card-meta { flex-direction:column; align-items:flex-start; }
.business-directory-page.directory-view-grid .business-directory-description { order:2; margin-top:5px; }
.business-directory-page .business-directory-card-actions { order:3; display:flex; gap:8px; margin-top:auto; padding-top:9px; }
.business-directory-page .business-directory-card-actions > * { flex:1; min-width:0; }
.business-directory-page .business-directory-card-actions > .business-directory-card-action,.business-directory-page .directory-actions-trigger { width:100%; min-height:38px; padding:8px 9px; font-size:12px; border-radius:5px; }
.business-directory-page .business-directory-card-action { background:linear-gradient(115deg,#008675,#006e60); }
.directory-bookmark,.directory-bookmark-form { position:absolute; top:9px; right:9px; z-index:2; }
.directory-bookmark-form .directory-bookmark { position:static; }
.directory-bookmark { display:grid; place-items:center; width:32px; height:34px; padding:6px; border:1px solid #d6e6e6; border-radius:5px; color:#00718b; background:#fff; }
.directory-bookmark svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.7; }
.directory-bookmark[aria-pressed='true'] svg { fill:#007568; color:#007568; }
.business-directory-page a:focus-visible,.business-directory-page button:focus-visible,.business-directory-page summary:focus-visible { outline:3px solid #e67b23; outline-offset:3px; }
.business-directory-page.directory-view-list .directory-card[data-business-directory-card] { min-height:140px; flex-direction:row; padding:7px; }
.business-directory-page.directory-view-list .business-directory-banner { width:220px; height:auto; min-height:124px; border-radius:5px; flex-shrink:0; }
.business-directory-page.directory-view-list .business-directory-card-body { position:relative; padding:4px 205px 4px 16px; }
.business-directory-page.directory-view-list .business-directory-card-actions { position:absolute; right:6px; top:12px; width:155px; display:grid; padding:0; }
.business-directory-page.directory-view-list .directory-bookmark,.business-directory-page.directory-view-list .directory-bookmark-form { right:177px; top:20px; }
.business-directory-page.directory-view-list .business-directory-description { margin:3px 0; }
.business-directory-page.directory-view-map .business-directory-hero-copy { display:none; }
.business-directory-page.directory-view-map .business-directory-hero { padding:14px 0; background:#eff9f6; }
.business-directory-page.directory-view-map .business-directory-discovery { max-width:none; margin:0; }
.business-directory-page.directory-view-map .directory-results-layout { display:grid; grid-template-columns:340px minmax(0,1fr); gap:14px; align-items:start; }
.business-directory-page.directory-view-map .business-directory-results { display:block; max-height:72vh; overflow:auto; padding:3px; }
.business-directory-page.directory-view-map .business-directory-grid { display:grid; grid-template-columns:1fr; gap:8px; }
.business-directory-page.directory-view-map .directory-card[data-business-directory-card] { flex-direction:row; min-height:130px; padding:6px; }
.business-directory-page.directory-view-map .business-directory-banner { width:96px; height:auto; min-height:116px; border-radius:5px; flex-shrink:0; }
.business-directory-page.directory-view-map .business-directory-card-body { flex:1; padding:2px 6px !important; }
.business-directory-page.directory-view-map .business-directory-description { display:none; }
.business-directory-page.directory-view-map .directory-card h3 { font-size:13px; padding-right:24px; }
.business-directory-page.directory-view-map .business-directory-card-meta { font-size:10px; }
.business-directory-page.directory-view-map .business-directory-card-actions { flex-wrap:wrap; }
.business-directory-page.directory-view-map .business-directory-card-actions > * { flex-basis:100%; }
.business-directory-page .business-directory-map { position:relative; border-radius:10px; }
.business-directory-page .business-directory-map-heading { position:absolute; top:14px; left:50%; transform:translateX(-50%); z-index:1; padding:0; border:0; }
.business-directory-page .business-directory-map-heading > div:first-child,.business-directory-page .business-directory-map-count { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.business-directory-page .business-directory-map-heading-actions button { white-space:nowrap; background:#fff; box-shadow:0 2px 8px #1234; }
.business-directory-page.directory-view-map .business-directory-map-canvas { min-height:520px; height:68vh; }
.business-directory-page .business-directory-map-popup { font-size:12px; }
.directory-popup-photo { display:block; width:100%; height:110px; object-fit:cover; border-radius:6px; margin-bottom:8px; }
.directory-mobile-nav { display:none; }
@media(min-width:1101px) {
 .business-directory-page.directory-view-grid .directory-results-layout { display:grid; grid-template-columns:205px minmax(0,1fr); gap:18px; }
 .business-directory-page.directory-view-grid .business-directory-results-toolbar { margin-left:223px; }
 /* Keep the sidebar content-sized: grid tracks previously stretched to the full results height. */
 .business-directory-page.directory-view-grid .directory-filter-sidebar {
     display:flex; flex-direction:column; align-self:start; gap:0;
     min-width:0; height:auto; padding:17px 14px 15px;
     border:1px solid #dce8ec; border-radius:9px; background:#fff;
     box-shadow:0 2px 8px #164c470a;
 }
 .business-directory-page .directory-sidebar-heading {
     display:flex; align-items:center; justify-content:space-between;
     gap:8px; margin-bottom:18px; color:var(--directory-ink); font-size:14px;
 }
 .business-directory-page .directory-sidebar-heading a { flex-shrink:0; font-size:11px; font-weight:500; }
 .business-directory-page .directory-sidebar-field { display:flex; flex-direction:column; min-width:0; margin-bottom:14px; }
 .business-directory-page .directory-sidebar-field[hidden] { display:none; }
 .business-directory-page .directory-sidebar-field > label:not(.directory-sidebar-checkbox-label) {
     display:block; margin:0 0 7px; color:#075754; font-size:12px; font-weight:700; line-height:1.35;
 }
 .business-directory-page .directory-sidebar-field select {
     display:block; box-sizing:border-box; width:100%; height:40px; min-height:40px;
     padding:8px 10px; border:1px solid #d7e7ec; border-radius:6px;
     color:#365661; background:#fff; font:inherit; font-size:12px;
 }
 .business-directory-page .directory-sidebar-field select:focus-visible {
     outline:2px solid #008575; outline-offset:2px;
 }
 .business-directory-page .directory-sidebar-checkbox-label {
     display:flex; align-items:center; flex-direction:row; gap:9px;
     margin:1px 0 2px; cursor:pointer; color:#075754;
     font-size:12px; font-weight:650; line-height:1.4;
 }
 .business-directory-page .directory-sidebar-checkbox-label input[type='checkbox'] {
     flex:0 0 16px; width:16px; height:16px; margin:0; accent-color:#007568;
 }
 .business-directory-page .directory-sidebar-submit {
     display:inline-flex; align-items:center; justify-content:center;
     box-sizing:border-box; width:100%; min-height:40px; height:auto;
     margin:1px 0 0; padding:9px 12px; border-radius:6px;
     font-size:12px; font-weight:700; line-height:1.4;
 }
}
@media(max-width:1100px) {
 .business-directory-page .container-shell { width:calc(100% - 28px); }
 .business-directory-page .business-directory-hero { background:#eff9f6; padding:22px 0 16px; }
 .business-directory-page .business-directory-hero .eyebrow { display:none; }
 .business-directory-page .business-directory-results-toolbar { flex-wrap:wrap; gap:10px; }
 .business-directory-page .directory-toolbar-controls { gap:8px; flex-wrap:wrap; }
 .business-directory-page .directory-sort-field > span { display:none; }
 .business-directory-page.directory-view-grid .business-directory-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .business-directory-page.directory-view-grid .business-directory-description { display:none; }
 .business-directory-page.directory-view-list .business-directory-banner { width:140px; min-height:120px; }
 .business-directory-page.directory-view-list .business-directory-card-body { padding:2px 4px 2px 12px; }
 .business-directory-page.directory-view-list .business-directory-card-actions { position:static; width:auto; display:flex; align-self:flex-end; }
 .business-directory-page.directory-view-list .directory-bookmark,.business-directory-page.directory-view-list .directory-bookmark-form { right:10px; top:10px; }
 .business-directory-page.directory-view-list .business-directory-badges,.business-directory-page.directory-view-list h3 { padding-right:30px; }
 .business-directory-page.directory-view-list .business-directory-description { display:none; }
 .business-directory-page.directory-view-map .directory-results-layout { display:flex; flex-direction:column; gap:0; }
 .business-directory-page.directory-view-map .business-directory-map { order:-1; width:100%; }
 .business-directory-page.directory-view-map .business-directory-results { width:100%; max-height:none; padding:16px 10px; border:1px solid #dce8ec; border-radius:20px 20px 0 0; margin-top:-18px; background:white; z-index:1; }
 .business-directory-page.directory-view-map .business-directory-grid { display:flex; overflow-x:auto; padding-bottom:8px; scroll-snap-type:x proximity; }
 .business-directory-page.directory-view-map .directory-card[data-business-directory-card] { flex:0 0 190px; flex-direction:column; scroll-snap-align:start; }
 .business-directory-page.directory-view-map .business-directory-banner { width:100%; height:94px; min-height:94px; }
 .business-directory-page.directory-view-map .business-directory-map-canvas { height:52vh; min-height:350px; }
}
@media(max-width:680px) {
 .business-directory-page { padding-bottom:80px; }
 .business-directory-page .business-directory-hero-copy { text-align:left; }
 .business-directory-page .business-directory-hero-copy > p { display:none; }
 .business-directory-page .business-directory-hero h1 { max-width:300px; font-size:25px; }
 .business-directory-page .business-directory-primary { grid-template-columns:minmax(0,1fr) 44px; }
 .business-directory-page .business-directory-filter-submit { width:44px; }
 .business-directory-page .directory-quick-filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
 .business-directory-page .directory-chip-field { min-width:0; }
 .business-directory-page .directory-chip-field select { width:100%; font-size:11px; }
 .business-directory-page .business-directory-more:not([open]) { grid-column:auto; }
 .business-directory-page .business-directory-more[open] { grid-column:1/-1; }
 .business-directory-page .business-directory-results-summary h2 { font-size:13px; }
 .business-directory-page .directory-results-options select { max-width:135px; font-size:11px; }
 .business-directory-page .directory-page-size-field { display:none; }
 .business-directory-page .directory-toolbar-controls { display:contents; }
 .business-directory-page .directory-view-switch .business-directory-page-link { min-width:44px; min-height:44px; padding:8px; flex:initial; }
 .business-directory-page .directory-view-switch .business-directory-page-link span { display:none; }
 .business-directory-page .directory-results-options { margin-left:auto; }
 .business-directory-page.directory-view-grid .business-directory-grid { grid-template-columns:1fr; }
 .business-directory-page.directory-view-grid .directory-card[data-business-directory-card] { display:grid; grid-template-columns:100px minmax(0,1fr); padding:6px; }
 .business-directory-page.directory-view-grid .business-directory-banner { width:100%; height:100%; min-height:150px; border-radius:5px; }
 .business-directory-page.directory-view-grid .business-directory-card-body { display:contents; }
 .business-directory-page.directory-view-grid .business-directory-banner { grid-row:1/5; }
 .business-directory-page.directory-view-grid .business-directory-badges,.business-directory-page.directory-view-grid .directory-card h3,.business-directory-page.directory-view-grid .business-directory-card-meta { margin-left:10px; }
 .business-directory-page.directory-view-grid .business-directory-badges { margin-right:30px; }
 .business-directory-page.directory-view-grid .business-directory-card-actions { grid-column:1/-1; }
 .business-directory-page.directory-view-list .business-directory-banner { width:82px; min-height:105px; }
 .business-directory-page.directory-view-list .directory-card h3 { font-size:13px; }
 .business-directory-page.directory-view-list .business-directory-card-meta { font-size:10px; gap:4px 8px; }
 .business-directory-page.directory-view-list .business-directory-card-actions { align-self:stretch; }
 .business-directory-page .business-directory-card-actions > .business-directory-card-action,.business-directory-page .directory-actions-trigger { min-height:36px; font-size:11px; padding:7px; }
 .directory-mobile-nav { display:flex; position:fixed; z-index:100; bottom:calc(12px + env(safe-area-inset-bottom)); left:16px; right:16px; padding:5px; border:1px solid #007568; border-radius:28px; background:#007568; box-shadow:0 3px 12px #004f4630; }
 .directory-mobile-nav a,.directory-mobile-nav button { flex:1; display:flex; align-items:center; justify-content:center; gap:8px; min-height:44px; border:0; border-radius:24px; background:transparent; color:white; font-size:12px; text-decoration:none; }
 .directory-mobile-nav a:first-child { background:white; color:#007568; }
 .directory-mobile-nav svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; }
 .directory-mobile-nav .directory-mobile-list,.directory-mobile-nav .directory-mobile-saved { display:none; }
 .directory-view-map .directory-mobile-nav { bottom:0; left:0; right:0; border-radius:0; background:white; border-color:#dce8ec; padding-bottom:env(safe-area-inset-bottom); }
 .directory-view-map .directory-mobile-nav a,.directory-view-map .directory-mobile-nav button { display:flex; flex-direction:column; color:#35596a; gap:4px; font-size:10px; }
 .directory-view-map .directory-mobile-nav a:first-child { background:#007568; color:white; border-radius:10px; }
 body:has(.business-directory-page) [data-feedback-floating] { bottom:90px; }
}
.directory-map-selection-card { display:none; }
@media(max-width:680px) {
 .directory-map-selection-card:not([hidden]) { display:block; position:absolute; bottom:0; left:0; right:0; z-index:2; padding:20px 14px 14px; border-radius:20px 20px 0 0; background:#fff; box-shadow:0 -4px 18px #164c4725; }
 .directory-map-selection-card > button { position:absolute; right:10px; top:5px; border:0; background:white; color:#365661; font-size:22px; }
 .directory-map-selection-card .business-directory-map-popup { width:auto; }
 .directory-map-selection-card .directory-popup-photo { float:left; width:100px; height:100px; margin-right:12px; }
 .directory-map-selection-card .business-directory-map-actions { clear:both; padding-top:10px; }
}
.business-directory-page .business-directory-card-actions { flex-wrap:nowrap; }
.business-directory-page .business-directory-card-actions > .business-directory-card-action { flex:1 1 0; }
.business-directory-page .directory-card-more { flex:1 1 0; width:auto; }
@media(max-width:680px) {
 .directory-title-wide { display:none; }
 .directory-title-mobile { display:inline; }
 .business-directory-page.directory-view-list .business-directory-banner { align-self:flex-start; height:100px; min-height:100px; }
 .business-directory-page.directory-view-list .business-directory-card-actions { width:100%; }
}
