/* Filled surfaces distinguish controls and information without nested outlines. */
:root{--surface-control:#293a32;--surface-hover:#34493d;--surface-card:#19251f;--surface-raised:#22332a}
.hero-search input,.search-row input,.search-row select,.result-filters select,.directory-controls input,.directory-controls select{border:0!important;background-color:var(--surface-control)!important;border-radius:12px!important;box-shadow:none!important}
.hero-search input:hover,.search-row input:hover,.directory-controls select:hover{background-color:var(--surface-hover)!important}
.hero-search input:focus-visible,.search-row input:focus-visible,.directory-controls select:focus-visible{outline:2px solid #a1e4d1!important;outline-offset:3px!important}
.hero-button,.pill,.finder-content .record-link{border:0!important;border-radius:12px!important;box-shadow:none!important}
.segmented{border:0!important;border-radius:12px!important;background:#22332a!important;padding:4px}
.segmented button{border:0!important;border-radius:8px!important}
.session-card,.access-panel{border:0!important;border-radius:16px!important;box-shadow:none!important;background-color:var(--surface-card)!important}
.session-facts,.session-facts>*{border:0!important}
.city-image{border-radius:16px!important;box-shadow:none!important}
.directory-results .filters-panel{background:var(--surface-card);border-radius:16px;box-shadow:none;padding:24px}
.directory-results .filters-panel .filter-grid select{border:0;background-color:var(--surface-control);border-radius:10px}
.filters-toggle,.filter-chip{border:0!important;background:var(--surface-control);border-radius:10px;box-shadow:none}
.filters-toggle:hover,.filters-toggle[aria-expanded=true],.filter-chip:hover{background:var(--surface-hover)}
.finder-content .gym-record{padding:0;border-radius:16px;background:var(--surface-card);box-shadow:none}
.record-core{border-radius:16px;background:transparent;box-shadow:none}
.record-fields{border:0;padding:20px;background:#101915;border-radius:12px;gap:24px 32px}
.record-field.hours-field{border:0;padding-left:0}
.record-footer{border:0;padding-top:24px}
.record-badge,.record-badge.recorded{border-radius:6px;box-shadow:none;background:#2b3d32}
.listing-detail .detail-section,.listing-detail .facts{border:0;border-radius:16px;background:var(--surface-card);box-shadow:none}
.record-hours-note,.finder-content .record-field .record-hours-note,.finder-content.listing-detail .record-hours-note{border:0;padding-top:0}
@media(max-width:767px){.directory-results .filters-panel{padding:20px 16px}.record-fields{padding:18px;gap:22px}.record-field.hours-field{padding:0}}
@media(prefers-reduced-motion:reduce){.directory-controls input,.directory-controls select{transition:none}}
/* Listing details prioritize one readable schedule; provenance is disclosure content. */
.listing-detail .hours-details .detail-schedule{background:#101915;border-radius:12px;padding:8px 20px;margin-top:20px}
.listing-detail .hours-details table{width:100%;margin:0;border-collapse:collapse;font-variant-numeric:tabular-nums}
.listing-detail .hours-details table caption{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.listing-detail .hours-details th,.listing-detail .hours-details td{border:0;padding:12px 0;font-size:17px;line-height:1.5;vertical-align:top}
.listing-detail .hours-details th{width:42%;text-align:left;color:#b5c5bd;font-weight:450;padding-right:16px}
.listing-detail .hours-details td{text-align:right;color:#f1f4f2;font-weight:500}
.listing-detail .hours-details .detail-hours-caveat{font-size:14px!important;line-height:1.55!important;margin:16px 0 0;max-width:58ch}
.listing-detail .detail-open-state{color:#a1e4d1!important;font-size:15px!important;margin:0}
.listing-detail .detail-section details summary{display:list-item;cursor:pointer;font-size:18px;font-weight:550;line-height:1.5;padding:4px 0;color:#f1f4f2}
.listing-detail .detail-section details[open] summary{margin-bottom:20px}
.listing-detail .research-content{max-width:65ch}
.listing-detail .research-content p,.listing-detail pre{font-size:15px!important;line-height:1.65!important;overflow-wrap:anywhere;color:#b5c5bd}
.listing-detail .source-links{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:10px}
.listing-detail .source-links a{display:block;background:#293a32;padding:10px 14px;border-radius:8px;font-size:15px;text-decoration:none;overflow-wrap:anywhere}
.listing-detail .detail-holiday{margin-top:20px}
.listing-detail .detail-holiday h3{margin:0 0 8px}
@media(max-width:767px){.listing-detail .hours-details .detail-schedule{padding:8px 14px}.listing-detail .hours-details th,.listing-detail .hours-details td{font-size:16px}}
/* A concise visit summary anchors the individual listing. */
.listing-detail .facts.visit-summary{padding:26px;background:#22332a;border-radius:16px;box-shadow:none}
.listing-detail .visit-summary h2{font-size:20px!important;line-height:1.3!important;letter-spacing:-.02em;margin:0 0 24px}
.visit-price{display:flex;flex-direction:column;gap:7px;margin-bottom:26px}
.visit-price-value{font-size:40px;line-height:1.1;letter-spacing:-.04em;font-weight:600;color:#f1f4f2}
.visit-price-caption{font-size:14px;color:#b5c5bd;line-height:1.5}
.listing-detail .visit-summary .visit-facts{display:grid;gap:22px;margin:0}
.listing-detail .visit-summary .visit-facts>div{min-width:0}
.listing-detail .visit-summary .visit-facts dt{font-size:13px;line-height:1.5;font-weight:500;color:#b5c5bd;margin:0 0 6px}
.listing-detail .visit-summary .visit-facts dd{font-size:16px;line-height:1.55;margin:0;color:#f1f4f2}
.listing-detail .visit-summary .visit-access{padding:14px 16px;background:#101915;border-radius:10px}
.listing-detail .visit-summary .visit-access dd{font-size:18px;font-weight:500}
.listing-detail .visit-summary .record-badge{display:inline-block;font-size:13px;padding:6px 10px;background:#344c3c;color:#e0efe5}
.visit-confirm{margin-top:26px;padding-top:22px}
.visit-confirm strong{font-size:14px;font-weight:550;color:#f1f4f2}
.listing-detail .visit-summary .visit-confirm p{font-size:14px!important;line-height:1.6!important;margin:7px 0 0;color:#b5c5bd}
.visit-more{display:flex;align-items:center;justify-content:center;min-height:44px;padding:10px 14px;background:#f1f2ee;color:#151a18;border-radius:10px;font-size:14px;font-weight:550;text-decoration:none;line-height:1.4;text-align:center;margin-top:24px}
.visit-more:hover{background:#dce6df}
@media(max-width:767px){.listing-detail .facts.visit-summary{padding:24px}.visit-price-value{font-size:36px}.listing-detail .visit-summary .visit-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 18px}.listing-detail .visit-summary .visit-access,.listing-detail .visit-summary .visit-facts>div:nth-child(2){grid-column:1/-1}}
.listing-detail .listing-map{overflow:hidden}
.listing-map-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.listing-detail .listing-map-heading h2{margin:0}
.listing-map-heading a{font-size:14px;font-weight:500;color:#f1f4f2;background:#293a32;border-radius:8px;padding:10px 14px;text-decoration:none}
.listing-map-heading a:hover{background:#34493d}
.listing-detail .listing-map-address{font-size:16px!important;margin:14px 0 20px;line-height:1.55!important}
.listing-map iframe{display:block;width:100%;height:320px;border:0;border-radius:12px;background:#293a32;color-scheme:normal}
@media(max-width:767px){.listing-map iframe{height:260px}.listing-map-heading a{font-size:13px}}
/* Approved editorial hierarchy: prominent page/section headings, quieter UI titles. */
:root{--type-h1:60px;--type-h2:60px}
h1,h2{letter-spacing:-.045em}
h1{line-height:1.08!important}
h2{line-height:1.12!important}
.method-intro h2{max-width:10ch}
@media(max-width:1023px){:root{--type-h1:48px;--type-h2:48px}}
@media(max-width:767px){:root{--type-h1:38px;--type-h2:38px}}
.finder-content h1{font-size:var(--type-h1)!important;line-height:1.08!important}
/* The icon and text form one field, with one focus ring around the whole control. */
.hero-search .input-wrap{background:var(--surface-control);border:0;border-radius:12px}
.hero-search .input-wrap input,.hero-search .input-wrap input:hover,.hero-search .input-wrap input:focus,.hero-search .input-wrap input:focus-visible{background:transparent!important;outline:none!important;box-shadow:none!important;border-radius:0!important}
.hero-search .input-wrap:focus-within{outline:2px solid #a1e4d1;outline-offset:3px}
/* Legal links retain their own spacing when inherited nav layout changes. */
.footer .legal-nav{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px}
.footer .legal-nav a{display:inline-flex;align-items:center;min-height:44px;white-space:nowrap}
@media(max-width:767px){.footer .legal-nav{justify-content:flex-start;gap:8px 20px}}
/* Detail disclosures use one full-width control instead of an inset browser marker. */
.listing-detail .detail-section:has(>details){padding:0;overflow:hidden;margin-bottom:14px}
.listing-detail .detail-section>details>summary{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:64px;box-sizing:border-box;padding:18px 24px;margin:0;list-style:none;font-size:17px;font-weight:500;line-height:1.5;border-radius:16px}
.listing-detail .detail-section>details>summary::-webkit-details-marker{display:none}
.listing-detail .detail-section>details>summary::marker{content:''}
.listing-detail .detail-section>details>summary::after{content:'';flex:none;width:9px;height:9px;border-right:1.5px solid #a1e4d1;border-bottom:1.5px solid #a1e4d1;transform:rotate(45deg);margin:0 3px 5px 0;transition:transform 160ms ease}
.listing-detail .detail-section>details[open]>summary{margin:0;background:#22332a;border-radius:16px 16px 0 0}
.listing-detail .detail-section>details[open]>summary::after{transform:rotate(225deg);margin-top:6px}
.listing-detail .detail-section>details>summary:hover{background:#293a32}
.listing-detail .detail-section>details>summary:focus-visible{outline:2px solid #a1e4d1;outline-offset:-3px}
.listing-detail .detail-section>details>.research-content,.listing-detail .detail-section>details>pre{margin:0;padding:22px 24px}
@media(max-width:767px){.listing-detail .detail-section>details>summary{padding:16px 20px;font-size:16px;min-height:60px}.listing-detail .detail-section>details>.research-content,.listing-detail .detail-section>details>pre{padding:20px}}
@media(prefers-reduced-motion:reduce){.listing-detail .detail-section>details>summary::after{transition:none}}
/* Potential day-pass options are visibly distinct from recorded drop-ins. */
.unresolved-notice{margin:0 0 18px;max-width:64ch}
.unresolved-badge{display:inline-flex;align-items:center;gap:8px;background:#423820;color:#f1d497;padding:7px 11px;border-radius:6px;font-size:13px;font-weight:550;line-height:1.4}
.unresolved-badge::before{content:'?';display:inline-flex;justify-content:center;align-items:center;width:16px;height:16px;border-radius:50%;background:#f1d497;color:#423820;font-size:12px;font-weight:650;flex:none}
.finder-content .unresolved-notice p{font-size:16px!important;line-height:1.6!important;color:#d4c6a7;margin:10px 0 0}
.finder-content .gym-record.is-unresolved{background:#24271e}
.gym-record.is-unresolved .record-fields{background:#181e16}
.listing-detail>.unresolved-notice{margin:22px 0 18px;padding:18px 20px;background:#292c20;border-radius:12px}
@media(max-width:767px){.finder-content .unresolved-notice p{font-size:15px!important}.listing-detail>.unresolved-notice{padding:16px}}
/* Entry pages: one reading surface, section navigation, compact unknown states. */
.entry-page .entry-meta{display:flex;flex-wrap:wrap;gap:8px 20px;color:#b5c5bd;font-size:15px;margin:16px 0 0}
.entry-jumps{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0 0}
.entry-jumps a{display:inline-flex;align-items:center;min-height:44px;padding:10px 16px;background:#22332a;border-radius:8px;font-size:14px;color:#f1f4f2;text-decoration:none}
.entry-jumps a:hover{background:#34493d}
.entry-page .detail-grid{margin-top:24px;gap:24px;grid-template-columns:minmax(0,1fr) 320px}
.entry-content{min-width:0;background:#19251f;border-radius:16px;padding:4px 28px}
.listing-detail.entry-page .entry-content>.entry-section{background:transparent;border-radius:0;box-shadow:none;margin:0;padding:26px 0;scroll-margin-top:24px}
.listing-detail.entry-page .entry-content>.entry-section+.entry-section{border-top:2px solid #293a32}
.listing-detail.entry-page .entry-section h2{font-size:24px!important;line-height:1.3!important;margin:0 0 14px;letter-spacing:-.025em}
.listing-detail.entry-page .entry-section p,.entry-list{font-size:17px!important;line-height:1.65!important;margin:0;max-width:65ch;color:#d4ded8}
.entry-list{padding-left:20px;display:grid;gap:8px}
.entry-list li{padding-left:4px}
.entry-list li::marker{color:#a1e4d1}
.entry-page .entry-section .actions{margin:18px 0 0;gap:10px}
.entry-page .entry-section .actions:empty{display:none}
.entry-page .entry-section .actions .pill{min-height:44px;padding:10px 16px;font-size:14px}
.listing-detail.entry-page .entry-content>.entry-missing{display:grid;grid-template-columns:180px minmax(0,1fr);align-items:baseline;gap:12px 20px;padding:20px 0}
.listing-detail.entry-page .entry-missing h2{font-size:17px!important;margin:0}
.listing-detail.entry-page .entry-missing .entry-unavailable{font-size:15px!important;color:#b5c5bd;line-height:1.6!important}
.entry-page .entry-facility-group+.entry-facility-group{margin-top:18px}
.listing-detail.entry-page .entry-facility-group h3{font-size:14px!important;margin:0 0 8px;color:#a1e4d1}
.entry-page .hours-details .detail-schedule{margin-top:0;padding:4px 16px}
.listing-detail.entry-page .detail-hours-caveat{margin-top:12px}
.entry-page .entry-research{padding:22px 0 12px}
.listing-detail.entry-page .entry-research .detail-section{background:#22332a}
.entry-page .visit-summary{margin:0;align-self:start}
@media(max-width:767px){.entry-page .detail-grid{grid-template-columns:minmax(0,1fr);gap:20px}.entry-page .visit-summary{grid-row:1}.entry-content{padding:0 20px}.listing-detail.entry-page .entry-content>.entry-section{padding:22px 0}.listing-detail.entry-page .entry-content>.entry-missing{grid-template-columns:minmax(0,1fr);gap:8px;padding:18px 0}.listing-detail.entry-page .entry-section p,.entry-list{font-size:16px!important}.entry-jumps{gap:8px}.entry-jumps a{padding:9px 12px}.listing-detail.entry-page .entry-section h2{font-size:22px!important}.listing-detail.entry-page .entry-missing h2{font-size:17px!important}}
.directory-footer .legal-nav{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px}
.directory-footer .legal-nav a{display:inline-flex;align-items:center;min-height:44px;white-space:nowrap}
.research-page{max-width:1000px;padding-top:120px;padding-bottom:80px}
.research-page .breadcrumb{font-size:15px;color:#b5c5bd;margin-bottom:26px}
.research-page h1{margin:0 0 20px}
.research-page .research-lead{font-size:24px!important;color:#d4ded8;max-width:55ch;margin:0 0 24px}
.research-page>section{padding:44px 0;scroll-margin-top:24px;max-width:70ch}
.research-page h2{margin:0 0 24px}
.research-page p{color:#b5c5bd;margin:0 0 18px;max-width:65ch}
.research-method{display:grid;gap:24px;margin:28px 0;background:#19251f;padding:28px;border-radius:16px}
.research-method dt{font-size:20px;font-weight:550;color:#f1f4f2;margin-bottom:8px}
.research-method dd{margin:0;color:#b5c5bd;font-size:18px;line-height:1.6;max-width:62ch}
.research-statuses{display:grid;gap:16px}
.research-statuses article{padding:24px;background:#19251f;border-radius:12px}
.research-statuses article p{margin:14px 0 0;font-size:18px!important}
.research-correction{background:#22332a;padding:28px;border-radius:16px;margin:28px 0}
.research-correction h3{margin:0 0 14px;font-size:22px!important}
.research-correction .pill{margin-top:6px}
@media(max-width:767px){.research-page{padding-top:110px}.research-page .research-lead{font-size:21px!important}.research-page>section{padding:32px 0}.research-method,.research-correction{padding:22px}.research-method dd,.research-statuses article p{font-size:17px!important}}
/* Compact listing rhythm: one consistent gap around each section divider. */
.listing-detail.entry-page .entry-content>.entry-section{padding:18px 0}
.listing-detail.entry-page .entry-section h2{margin-bottom:10px}
.listing-detail.entry-page .hours-details .detail-schedule{margin:0;padding:8px 16px}
.listing-detail.entry-page .hours-details .detail-schedule p{font-size:16px!important;line-height:1.5!important;margin:0}
.listing-detail.entry-page .hours-details p.detail-hours-caveat{font-size:14px!important;line-height:1.45!important;margin:8px 0 0}
.listing-detail.entry-page .entry-content>.entry-missing{padding:16px 0}
@media(max-width:767px){.listing-detail.entry-page .entry-content>.entry-section{padding:16px 0}.listing-detail.entry-page .entry-content>.entry-missing{padding:14px 0}.listing-detail.entry-page .hours-details .detail-schedule{padding:8px 12px}.listing-detail.entry-page .hours-details .detail-schedule p{font-size:15px!important}}
/* Facility facts use short lists instead of raw comma-separated exports. */
.listing-detail.entry-page .facility-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 32px;margin-top:16px}
.listing-detail.entry-page .facility-facts .entry-facility-group{margin:0;min-width:0}
.listing-detail.entry-page .facility-facts h3{font-size:14px!important;line-height:1.4;margin:0 0 10px}
.facility-facts-list{display:grid;gap:8px;padding:0 0 0 19px;margin:0;color:#d4ded8}
.facility-facts-list li{font-size:17px;line-height:1.5;padding-left:3px;overflow-wrap:anywhere}
.facility-facts-list li::marker{color:#829d8d}
.facility-fact-label{display:block;font-weight:550;color:#f1f4f2;margin-bottom:3px}
.facility-communities{grid-column:1/-1}
.facility-communities .facility-facts-list{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:767px){.listing-detail.entry-page .facility-facts{grid-template-columns:minmax(0,1fr);gap:20px;margin-top:14px}.facility-facts-list li{font-size:16px}.facility-communities .facility-facts-list{grid-template-columns:minmax(0,1fr)}}
/* Listing facts use comparison tables, aligned eligibility rows and an action panel. */
.listing-detail.entry-page .visit-layout-block{max-width:none;margin-top:20px;padding-top:20px}
.listing-detail.entry-page .visit-layout-context h3{font-size:20px!important;font-weight:550;line-height:1.35;margin:0 0 10px;color:#f1f4f2;letter-spacing:-.02em}
.visit-scope{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:24px;font-size:14px;color:#b5c5bd;line-height:1.5}
.visit-scope strong{font-size:13px;font-weight:550;color:#a1e4d1;background:#294235;padding:4px 8px;border-radius:6px}
.visit-information-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:26px 30px;margin-top:22px;align-items:start}
.visit-fact-section{min-width:0}
.visit-fact-section h4{font-size:16px;line-height:1.4;font-weight:600;color:#f1f4f2;margin:0 0 14px}
.visit-rate-table{border-collapse:collapse;table-layout:fixed;width:100%;margin:0;font-variant-numeric:tabular-nums}
.visit-rate-table th,.visit-rate-table td{padding:12px 0;border:0;border-bottom:1px solid #34483c;vertical-align:middle;text-align:left;line-height:1.4}
.visit-rate-table thead th{font-size:12px;font-weight:450;color:#b5c5bd;padding:0 0 9px;border-bottom-color:#637b6a}
.visit-rate-table th:first-child{width:62%;padding-right:12px}
.visit-rate-table th:last-child,.visit-rate-table td{text-align:right}
.visit-rate-table tbody th{font-size:16px;font-weight:450;color:#f1f4f2}
.visit-rate-table tbody th strong{font-weight:500}
.visit-rate-table tbody th span{display:block;font-size:13px;line-height:1.5;color:#b5c5bd;margin-top:3px}
.visit-rate-table td{font-size:22px;font-weight:550;letter-spacing:-.025em;white-space:nowrap;color:#f1f4f2}
.visit-rate-table tbody tr:last-child>*{border-bottom:0}
.visit-fact-passes .visit-rate-table td{font-size:19px}
.visit-discount-rows{margin:0}
.visit-discount-rows>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:11px 0;border-bottom:1px solid #34483c;min-height:62px;box-sizing:border-box}
.visit-discount-rows>div:first-child{padding-top:0}
.visit-discount-rows>div:last-child{border:0;padding-bottom:0}
.visit-discount-rows dt,.visit-discount-rows dd{margin:0;min-width:0}
.visit-discount-rows dt strong{font-size:16px;font-weight:500;line-height:1.4;color:#f1f4f2}
.visit-discount-rows span{display:block;font-size:13px;color:#b5c5bd;line-height:1.5;margin-top:3px}
.visit-discount-rows dd{text-align:right}
.visit-discount-rows dd strong{font-size:21px;font-weight:550;line-height:1.4;letter-spacing:-.02em;color:#a1e4d1;white-space:nowrap}
.visit-discount-rows .visit-discount-text{display:block;min-height:0}
.visit-discount-text dd{text-align:left;font-size:16px;line-height:1.5}
.visit-registration{padding:16px 18px;background:#22332a;border-radius:12px}
.visit-registration h5{font-size:16px;font-weight:550;line-height:1.4;margin:0 0 6px;color:#f1f4f2}
.listing-detail.entry-page .visit-registration p{font-size:14px!important;line-height:1.5!important;color:#b5c5bd;margin:0 0 16px}
.visit-registration dl{margin:0}
.visit-registration dl>div+div{margin-top:14px}
.visit-registration dt{font-size:12px;color:#a1e4d1;line-height:1.4}
.visit-registration dd{font-size:15px;color:#f1f4f2;line-height:1.5;margin:4px 0 0}
.listing-detail.entry-page .visit-plain-facts p{font-size:15px!important;line-height:1.55!important;margin:0 0 12px;color:#d4ded8;overflow-wrap:anywhere}
.visit-secondary{border-top:1px solid #34483c;margin:0;padding:0}
.visit-information-grid+.visit-secondary{margin-top:22px}
.listing-detail.entry-page .visit-secondary>summary{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:13px 0;font-size:14px;font-weight:450;line-height:1.5;list-style:none;color:#b5c5bd;cursor:pointer}
.visit-secondary>summary::-webkit-details-marker{display:none}
.visit-secondary>summary::marker{content:''}
.visit-secondary>summary::after{content:'+';font-size:20px;line-height:1;color:#a1e4d1}
.visit-secondary[open]>summary::after{content:'−'}
.listing-detail.entry-page .visit-secondary[open]>summary{margin-bottom:4px}
.visit-layout-block .entry-note-sources{padding-top:0}
.listing-detail.entry-page .facts.visit-summary{position:sticky;top:24px;padding:24px}
.listing-detail.entry-page .visit-summary>h2{font-size:18px!important;line-height:1.4;margin:0 0 16px}
.listing-detail.entry-page .visit-facts{margin:20px 0}
.listing-detail.entry-page .visit-facts>div{padding:12px 0;border-bottom:1px solid #3d5144;background:none;border-radius:0;margin:0}
.listing-detail.entry-page .visit-facts dt{font-size:12px;line-height:1.4;margin-bottom:5px;color:#b5c5bd}
.listing-detail.entry-page .visit-facts dd{font-size:16px;line-height:1.45;margin:0;color:#f1f4f2}
.listing-detail.entry-page .visit-facts .visit-updated{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 14px;border:0;padding-bottom:0}
.listing-detail.entry-page .visit-updated dt,.listing-detail.entry-page .visit-updated dd{font-size:12px;margin:0;color:#b5c5bd}
.listing-detail.entry-page .facts.visit-summary .visit-summary-note{font-size:12px!important;line-height:1.5!important;margin:12px 0 0;color:#b5c5bd}
@media(max-width:767px){.visit-information-grid{grid-template-columns:minmax(0,1fr);gap:24px}.listing-detail.entry-page .visit-layout-context h3{font-size:18px!important}.visit-scope{align-items:flex-start;gap:7px 10px;margin-bottom:18px}.visit-rate-table td{font-size:21px}.visit-fact-passes .visit-rate-table td{font-size:19px}.listing-detail.entry-page .facts.visit-summary{position:static;top:auto;padding:20px}.visit-rate-table tbody th{font-size:16px}}

/* Shared navigation: a quiet rounded hover surface without moving link text. */
.header .nav a,footer .legal-nav a{position:relative;isolation:isolate;text-decoration:none!important}
.header .nav a::before,footer .legal-nav a::before{content:"";position:absolute;inset:2px -10px;z-index:-1;border-radius:9px;background:rgba(157,219,199,.12);opacity:0;transition:opacity 160ms ease;pointer-events:none}
.header .nav a:hover::before,.header .nav a:focus-visible::before,footer .legal-nav a:hover::before,footer .legal-nav a:focus-visible::before{opacity:1}
.header .nav a:focus-visible,footer .legal-nav a:focus-visible{outline:2px solid #9ddbc7;outline-offset:5px;border-radius:5px}
@media(prefers-reduced-motion:reduce){.header .nav a::before,footer .legal-nav a::before{transition:none}}

/* Listing previews: separate facts within the shared panel. */
.finder-content .record-fields{column-gap:24px;row-gap:16px}
.finder-content .record-fields .address-field{border-top:1px solid #a1e4d124;padding-top:16px}
.finder-content .record-fields .hours-field{border-left:1px solid #a1e4d124;padding-left:24px}
.finder-content .record-fields .record-field dt{margin-bottom:8px}
.finder-content .record-fields .record-hours-table tr+tr{border-top:1px solid #a1e4d114}
@media(max-width:767px){.finder-content .record-fields .hours-field{border-left:0;border-top:1px solid #a1e4d124;padding:16px 0 0}.finder-content .record-fields{gap:16px}}

.location-components{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:12px 0 0}
.location-components li{font-size:14px;line-height:1.4;padding:5px 9px;border-radius:6px;background:#293a32;color:#d7e6dd}
.component-hours>div+div,.component-detail+.component-detail{border-top:1px solid #a1e4d124;padding-top:16px;margin-top:16px}
.finder-content .component-hours h4{font-size:14px;line-height:1.4;color:#d7e6dd;font-weight:600;margin:0 0 6px}
.finder-content .component-hours .hours-status{font-size:15px!important;line-height:1.5}
.finder-content .component-detail>h3{font-size:18px;color:#a1e4d1;margin:0 0 12px}
.component-access{display:grid;gap:12px}.component-access>div{display:grid;gap:3px}.component-access span{font-size:14px;color:#b5c5bd}.component-access strong{font-size:17px;font-weight:450}

.listing-detail .hours-details .detail-holiday{margin-top:14px;padding:14px 16px;border-left:3px solid #9ddbc780;border-radius:0 8px 8px 0;background:#9ddbc70a}
.listing-detail .hours-details .detail-holiday h3{font-size:15px;font-weight:600;color:#a1e4d1;margin:0 0 8px}
.listing-detail .hours-details .detail-holiday p,.listing-detail .hours-details .detail-holiday li{font-size:15px!important;line-height:1.55!important;margin:0;overflow-wrap:anywhere}
.listing-detail .hours-details .detail-holiday ul{padding-left:18px;margin:0;display:grid;gap:6px}
.listing-detail .hours-details .detail-holiday a{text-decoration:underline;text-underline-offset:3px}

/* Hours use even table rows; cell spacing supplies the panel's vertical padding. */
.listing-detail.entry-page .hours-details .detail-schedule{padding:0 16px;border-radius:10px}
.listing-detail.entry-page .hours-details .detail-schedule table{margin:0;width:100%;border-collapse:collapse}
.listing-detail.entry-page .hours-details .detail-schedule table th,.listing-detail.entry-page .hours-details .detail-schedule table td{padding:10px 0;font-size:16px;line-height:1.4;vertical-align:top}
.listing-detail.entry-page .hours-details .detail-schedule table th{padding-right:16px;width:40%;text-align:left}
.listing-detail.entry-page .hours-details .detail-schedule table td{text-align:right}
.listing-detail.entry-page .hours-details .detail-schedule table tr+tr{border-top:1px solid #a1e4d11c}
.listing-detail.entry-page .hours-details .detail-schedule:has(>.hours-status),.listing-detail.entry-page .hours-details .detail-schedule:has(>.record-hour-value>.hours-status){padding:12px 16px}
@media(max-width:767px){.listing-detail.entry-page .hours-details .detail-schedule{padding-left:12px;padding-right:12px}.listing-detail.entry-page .hours-details .detail-schedule table th,.listing-detail.entry-page .hours-details .detail-schedule table td{font-size:15px}.listing-detail.entry-page .hours-details .detail-schedule table th{padding-right:12px}}

/* Shared visitor-note rhythm across every listing, including combined facilities. */
.listing-detail.entry-page #entry-access>h2{margin-bottom:12px}
.listing-detail.entry-page #entry-access .entry-note-intro{display:grid;gap:8px;max-width:65ch}
.listing-detail.entry-page #entry-access .entry-note-intro p{margin:0;font-size:16px!important;line-height:1.5!important;max-width:none}
.listing-detail.entry-page #entry-access .actions{margin:14px 0 0;padding:0;gap:10px;align-items:center}
.listing-detail.entry-page #entry-access .actions .pill{min-height:44px;padding:10px 16px;font-size:14px;line-height:1.4}
.listing-detail.entry-page #entry-access .component-detail>h3{margin:0 0 10px}
@media(max-width:767px){.listing-detail.entry-page #entry-access .entry-note-intro{gap:8px}.listing-detail.entry-page #entry-access .entry-note-intro p{font-size:15px!important}.listing-detail.entry-page #entry-access .actions{gap:8px}}

/* Different visual treatments identify amenities, descriptive notes, and service areas. */
.listing-detail.entry-page .facility-facts{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:20px 28px;margin-top:14px}
.listing-detail.entry-page .facility-facts h3{color:#b5c5bd;font-size:13px!important;font-weight:550;margin-bottom:10px}
.facility-amenities .facility-facts-list{display:flex;flex-wrap:wrap;align-content:flex-start;gap:8px;list-style:none;padding:0}
.facility-amenities .facility-facts-list li{padding:7px 10px;background:#2a3b32;border-radius:7px;font-size:15px;line-height:1.35;color:#edf3ef;max-width:100%}
.facility-equipment .facility-facts-list{list-style:none;padding:0;gap:10px}
.facility-equipment .facility-facts-list li{padding:12px 14px;border-left:2px solid #9ddbc757;background:#101915;border-radius:0 8px 8px 0;font-size:15px;line-height:1.55;color:#c5d2ca}
.facility-equipment .facility-fact-label{font-size:14px;margin-bottom:5px;color:#edf3ef}
.listing-detail.entry-page .facility-communities{border-top:1px solid #a1e4d124;padding-top:14px;display:flex;align-items:baseline;gap:12px 20px;flex-wrap:wrap}
.listing-detail.entry-page .facility-communities h3{margin:0}
.facility-communities .facility-facts-list{display:flex;flex-wrap:wrap;gap:8px 18px;list-style:none;padding:0}
.facility-communities .facility-facts-list li{font-size:14px;line-height:1.5;padding:0;color:#b5c5bd}
@media(max-width:767px){.listing-detail.entry-page .facility-facts{grid-template-columns:minmax(0,1fr);gap:18px}.facility-amenities .facility-facts-list li{font-size:14px}.listing-detail.entry-page .facility-communities{gap:8px}}

/* Keep the location title, address and map as three clearly spaced elements. */
.listing-detail.entry-page .listing-map .listing-map-heading{margin:0 0 10px;gap:10px 16px;align-items:center}
.listing-detail.entry-page .listing-map .listing-map-heading h2{margin:0}
.listing-detail.entry-page .listing-map p.listing-map-address{margin:0 0 18px;font-size:16px!important;line-height:1.5!important;max-width:60ch;color:#d4ded8}
.listing-detail.entry-page .listing-map iframe{margin:0;border-radius:10px}
@media(max-width:767px){.listing-detail.entry-page .listing-map .listing-map-heading{margin-bottom:10px}.listing-detail.entry-page .listing-map p.listing-map-address{font-size:15px!important;margin-bottom:16px}}

/* Service areas form one compact text group, never a distributed column grid. */
.listing-detail.entry-page .facility-facts .facility-communities{display:block;padding-top:14px}
.listing-detail.entry-page .facility-facts .facility-communities h3{margin:0 0 8px}
.listing-detail.entry-page .facility-communities .facility-facts-list{display:flex;justify-content:flex-start;flex-wrap:wrap;gap:4px 0;grid-template-columns:none;list-style:none;padding:0;margin:0}
.listing-detail.entry-page .facility-communities .facility-facts-list li{flex:0 1 auto;width:auto;min-width:0;padding:0;margin:0;font-size:14px;line-height:1.5;color:#c5d2ca}
.listing-detail.entry-page .facility-communities .facility-facts-list li:not(:last-child)::after{content:"·";display:inline-block;padding:0 10px;color:#829d8d}

/* Short equipment names share the existing amenity tags; descriptive notes stay full width. */
.facility-equipment .facility-facts-list{display:flex;flex-wrap:wrap;align-content:flex-start;align-items:flex-start;gap:8px}
.facility-equipment .facility-facts-list li.equipment-tag{flex:0 1 auto;max-width:100%;padding:7px 10px;background:#2a3b32;border:0;border-radius:7px;font-size:15px;line-height:1.35;color:#edf3ef}
.facility-equipment .facility-facts-list li.equipment-note{flex:0 0 100%;min-width:0}
@media(max-width:767px){.facility-equipment .facility-facts-list li.equipment-tag{font-size:14px}}

/* Compact destination toolbar: search and filters share one row on wide screens. */
.directory-results .directory-controls-core{display:grid;grid-template-columns:minmax(0,640px) auto;justify-content:start;align-items:start;gap:12px}
.directory-results .directory-controls-core .search-form{min-width:0;margin:0}
.directory-results .directory-controls-core .search-row{grid-template-columns:minmax(0,1fr) auto;gap:10px}
.directory-results .directory-controls-core .filterbar{margin:0;display:flex;align-items:center;justify-content:flex-start}
.directory-results .directory-controls-core .filters-toggle{min-height:52px}
.directory-results .directory-controls-core .search-row input,.directory-results .directory-controls-core .search-row .pill{min-height:52px}
.directory-results .directory-controls-core .active-filters,.directory-results .directory-controls-core .filters-panel{grid-column:1/-1}
.directory-results .directory-controls{margin-bottom:24px}
@media(max-width:600px){.directory-results .directory-controls-core{grid-template-columns:minmax(0,1fr) auto;gap:10px}.directory-results .directory-controls-core .search-form{grid-column:1/-1}.directory-results .directory-controls-core .search-row{grid-template-columns:minmax(0,1fr) auto}.directory-results .directory-controls-core .filterbar{grid-column:1/-1}.directory-results .directory-controls-core .search-row .pill{width:auto;padding:10px 14px}.directory-results .directory-controls-core .filters-toggle{min-height:44px}}
.directory-results .directory-controls-core{grid-template-columns:minmax(0,800px)}
.directory-results .directory-controls-core .search-row{grid-template-columns:minmax(0,1fr) auto auto}
.directory-results .directory-controls-core .filterbar{display:contents}
.directory-results .directory-controls-core .search-row input,.directory-results .directory-controls-core .search-row .pill,.directory-results .directory-controls-core .filters-toggle{height:56px;min-height:56px}
@media(max-width:600px){.directory-results .directory-controls-core .search-row{grid-template-columns:minmax(0,1fr) auto auto;gap:8px}.directory-results .directory-controls-core .search-row input{padding:0 10px}.directory-results .directory-controls-core .search-row .pill{padding:10px 12px;font-size:13px}.directory-results .directory-controls-core .filters-toggle{padding:10px 12px;font-size:13px}.directory-results .directory-controls-core .search-row input,.directory-results .directory-controls-core .search-row .pill,.directory-results .directory-controls-core .filters-toggle{height:52px;min-height:52px}}
.directory-results .directory-controls-core .search-row{display:grid}
.directory-results .directory-controls-core .search-row>input,.directory-results .directory-controls-core .search-row>button{grid-column:auto;margin:0;min-width:0}
.directory-results .directory-controls-core .search-row>button{width:auto}

/* One schedule presentation for cards and detail pages, including qualified day rows. */
.finder-content .record-hour-value .record-hours-table{width:100%;border-collapse:collapse;table-layout:fixed;margin:0}
.finder-content .record-hour-value .record-hours-table th,.finder-content .record-hour-value .record-hours-table td{padding:10px 0;font-size:16px;line-height:1.45;vertical-align:top;overflow-wrap:anywhere}
.finder-content .record-hour-value .record-hours-table th{width:38%;padding-right:16px;text-align:left;font-weight:450;color:#b5c5bd}
.finder-content .record-hour-value .record-hours-table td{text-align:right;font-weight:500;color:#f1f4f2}
.finder-content .record-hour-value .record-hours-table tr+tr{border-top:1px solid #a1e4d11c}
.hours-context{display:block;font-size:13px;font-weight:600;color:#d7e6dd;margin-bottom:4px}
.finder-content .hours-context-note,.finder-content .record-hours-note{font-size:13px!important;line-height:1.5!important;color:#aabbb1;margin:8px 0 0!important;overflow-wrap:anywhere}
.hours-notes{display:grid;gap:8px;padding:4px 0}
.finder-content .record-hour-value .hours-notes .hours-status,.listing-detail.entry-page .hours-details .hours-notes .hours-status{font-size:15px!important;line-height:1.5!important;margin:0!important;font-weight:400}
.listing-detail.entry-page .hours-details .detail-schedule:has(.hours-notes){padding:10px 16px}
@media(max-width:767px){.finder-content .record-hour-value .record-hours-table th,.finder-content .record-hour-value .record-hours-table td{font-size:15px}.finder-content .record-hour-value .record-hours-table th{width:40%;padding-right:12px}}
.finder-content .facility-access-note{font-size:14px!important;line-height:1.5!important;color:#d0dcd4;margin:10px 0 0!important;max-width:60ch}

/* Listing contacts remain readable and tappable at phone widths. */
.listing-detail.entry-page .entry-contacts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0 0}
.entry-contacts>div{min-width:0;background:#101915;border-radius:10px;padding:12px 14px}
.entry-contacts dt{font-size:13px;line-height:1.4;color:#a1e4d1;margin:0 0 4px}
.entry-contacts dd{margin:0;min-width:0}
.entry-contacts a{display:flex;align-items:center;min-height:44px;color:#f1f4f2;font-size:16px;line-height:1.4;text-decoration:none;overflow-wrap:anywhere;border-radius:5px}
.entry-contacts a:hover{text-decoration:underline;text-underline-offset:4px}
.entry-contacts a:focus-visible{outline:2px solid #a1e4d1;outline-offset:3px}
.listing-detail.entry-page .hours-details .detail-schedule{margin:0;padding:4px 16px}
.listing-detail.entry-page .hours-details .detail-schedule .record-hours-note{margin:0;padding:8px 0 10px;border-top:1px solid #a1e4d120;font-size:13px!important;line-height:1.5!important}
.listing-detail.entry-page .hours-details .detail-holiday{margin-top:16px}
.listing-detail.entry-page .entry-content>.hours-details{padding-bottom:24px}
:is(.footer,.directory-footer){display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:24px}
:is(.footer,.directory-footer)>.wordmark{display:inline-flex;align-items:center;gap:8px;width:fit-content}
:is(.footer,.directory-footer)>.legal-nav{display:flex;align-items:center;gap:24px;width:auto;margin:0}
@media(max-width:767px){
 .listing-detail.entry-page .entry-contacts{grid-template-columns:minmax(0,1fr);gap:10px;margin-top:18px}
 .listing-detail.entry-page .entry-contacts>div{display:grid;grid-template-columns:70px minmax(0,1fr);gap:12px;align-items:center;padding:10px 14px}
 .entry-contacts dt{margin:0}
 .listing-detail.entry-page .entry-content>.entry-section{padding-top:22px;padding-bottom:22px}
 .listing-detail.entry-page .hours-details .detail-schedule{padding:4px 14px}
 .listing-detail.entry-page .hours-details .detail-holiday{margin-top:16px}
 :is(.footer,.directory-footer){display:grid;grid-template-columns:minmax(0,1fr);gap:16px;padding:26px 0 30px}
 :is(.footer,.directory-footer)>.legal-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:10px;padding-top:12px;border-top:1px solid #a1e4d120}
 :is(.footer,.directory-footer)>.legal-nav a{min-height:44px;font-size:14px;justify-content:flex-start;white-space:normal}
 :is(.footer,.directory-footer)>.legal-nav a:last-child{justify-self:end}
}

/* Listing titles and city labels provide context without a visible breadcrumb trail. */
.listing-detail .breadcrumb{display:none!important}

/* A lively open badge stays readable without relying on motion or colour alone. */
.finder-content .record-hour-value .hours-live,.listing-detail .detail-schedule .hours-live{display:inline-flex;align-items:center;gap:8px;width:fit-content;max-width:100%;box-sizing:border-box;padding:7px 12px;margin:10px 0 8px!important;border:1px solid transparent;border-radius:999px;font-size:14px!important;font-weight:650;line-height:1.3!important;letter-spacing:.01em;white-space:nowrap}
.finder-content .record-hour-value .hours-live.is-open,.listing-detail .detail-schedule .hours-live.is-open{background:#15392b;color:#bcffdc;border-color:#55e9a64d;border-radius:12px;font-size:16px!important;letter-spacing:0;min-height:42px;padding:8px 14px;box-shadow:0 0 18px #3add9809}
.hours-live.is-open::before{content:"";display:block;flex:0 0 7px;width:7px;height:7px;border-radius:50%;background:#64f7b1;box-shadow:0 0 8px #64f7b166;animation:open-now-pulse 2.8s cubic-bezier(.2,.65,.4,1) infinite}
.finder-content .record-hour-value .hours-live.is-closed,.listing-detail .detail-schedule .hours-live.is-closed{background:#293a32;color:#bdcbc3}
@keyframes open-now-pulse{0%{box-shadow:0 0 8px #64f7b180,0 0 0 0 #64f7b166}70%,100%{box-shadow:0 0 8px #64f7b166,0 0 0 7px #64f7b100}}
.listing-detail.entry-page .hours-details .detail-schedule .record-hour-value .hours-live.is-open{font-size:17px!important}
@media(prefers-reduced-motion:reduce){.hours-live.is-open::before{animation:none}}
@media(forced-colors:active){.finder-content .record-hour-value .hours-live{border-color:CanvasText}}

/* Phone status stands above the timetable rather than being squeezed into it. */
@media(max-width:767px){
 .finder-content .record-hour-value .hours-live.is-open,.listing-detail .detail-schedule .hours-live.is-open{font-size:17px!important;line-height:1.3!important;min-height:48px;padding:11px 18px;gap:10px;margin:0 0 16px!important}
 .hours-live.is-open::before{width:9px;height:9px;flex-basis:9px}
 .listing-detail.entry-page .hours-details .detail-schedule:has(.hours-live){background:transparent;padding:0}
 .listing-detail.entry-page .hours-details .detail-schedule:has(.hours-live) .hours-schedule-body{background:#101915;padding:4px 14px;border-radius:10px}
 .listing-detail.entry-page .hours-details .detail-schedule:has(.hours-live) .hours-schedule-body:has(.hours-notes){padding:12px 14px}
 .listing-detail.entry-page .hours-details .detail-schedule .hours-live.is-closed{margin:0 0 12px!important}
}
@media(max-width:767px){
 .listing-detail.entry-page .hours-details .detail-schedule .record-hour-value .hours-live.is-open{font-size:18px!important;line-height:1.3!important}
}

/* Equipment descriptions are prose; compact equipment/activity facts remain tags. */
.listing-detail.entry-page .facility-equipment .equipment-description{display:grid;gap:10px;margin:0 0 14px}
.listing-detail.entry-page .facility-equipment .equipment-description:last-child{margin-bottom:0}
.listing-detail.entry-page .facility-equipment .equipment-description p{background:none;border:0;border-radius:0;padding:0;margin:0;font-size:16px!important;line-height:1.55!important;color:#c5d2ca;max-width:60ch;overflow-wrap:anywhere}

/* Research badges define their own layout instead of relying on directory CSS. */
.research-statuses article>.record-badge,.research-statuses article>.unresolved-badge{display:inline-flex;align-items:center;gap:8px;min-height:36px;max-width:100%;box-sizing:border-box;padding:8px 12px;border:0;border-radius:7px;box-shadow:none;font-size:14px!important;font-weight:550;line-height:1.4!important;letter-spacing:0;white-space:normal;overflow-wrap:anywhere;vertical-align:top}
.research-statuses article>.record-badge{background:#2b3d32;color:#dce8df}
.research-statuses article>.record-badge.recorded{background:#254537;color:#a1e4d1}
.research-statuses article>.unresolved-badge{background:#423820;color:#f1d497}
.research-statuses article>.unresolved-badge::before{font-size:12px;line-height:1;width:16px;height:16px;flex:none}
@media(max-width:767px){.research-statuses article{padding:20px}.research-statuses article p{margin-top:14px}}

/* City visit shortcuts and per-control focus, without a focus ring on the whole form. */
.directory-results .search-row:focus-within{outline:none;box-shadow:none}
.directory-results .directory-controls-core{grid-template-columns:minmax(0,1fr)}
.directory-results .directory-controls-core .search-form{width:100%;max-width:800px}
.city-visit-filters{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:10px 0 0}
.city-visit-filters button{min-height:58px;padding:14px 16px;border:1px solid #3e5549;border-radius:12px;background:#192b22;color:#d4e3da;font:inherit;font-size:16px;font-weight:550;line-height:1.35;cursor:pointer;text-align:center}
.city-visit-filters button:hover{background:#2b4135;border-color:#749d87}
.city-visit-filters button[aria-pressed=true]{background:#a1e4d1;border-color:#a1e4d1;color:#12372b}
.directory-results .city-visit-filters button:focus-visible,.directory-results .filters-toggle:focus-visible{outline:2px solid #a1e4d1;outline-offset:3px}
@media(max-width:767px){.city-visit-filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}.city-visit-filters button{min-height:64px;padding:12px;font-size:15px}}
@media(max-width:480px){.directory-results .filters-panel .filter-grid{grid-template-columns:minmax(0,1fr)}}

.city-visit-filters button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:72px}
.city-visit-filters button strong{font:inherit;font-weight:600}
.city-visit-filters button span{font-size:13px;font-weight:400;opacity:.8}
.directory-results .filters-panel .filter-grid select{font-size:16px}
@media(max-width:480px){
 .directory-results .directory-controls-core .search-row{grid-template-columns:repeat(2,minmax(0,1fr))}
 .directory-results .directory-controls-core .search-row input#q{grid-column:1/-1}
 .directory-results .directory-controls-core .search-row .pill,.directory-results .directory-controls-core .filters-toggle{width:100%;font-size:14px}
}

@media(min-width:769px){.directory-results .city-visit-filters{grid-template-columns:repeat(5,minmax(0,1fr))}}

.directory-results{overflow-anchor:none}
.city-overview{position:relative}
.map-empty{position:absolute;z-index:450;left:50%;top:50%;transform:translate(-50%,-50%);margin:0;padding:16px 22px;max-width:calc(100% - 40px);width:max-content;border-radius:12px;background:#14251e;color:#eff8f2;box-shadow:0 4px 20px #0003;text-align:center;pointer-events:none}
.map-empty[hidden]{display:none}

/* Compact discovery controls; a focused native dialog handles touch filtering. */
.mobile-filter-bar{display:none}
.mobile-filter-sheet{width:min(100%,540px);max-width:100%;max-height:88dvh;padding:0;border:1px solid #3e5549;border-bottom:0;border-radius:24px 24px 0 0;background:#18271f;color:#eff5f1;box-sizing:border-box;inset:auto 0 0;margin:0 auto;overflow:hidden}
.mobile-filter-sheet[open]{display:flex;flex-direction:column}
.mobile-filter-sheet::backdrop{background:#050c09b8}
.filter-sheet-head{display:flex;align-items:center;justify-content:space-between;padding:20px 20px 14px;border-bottom:1px solid #a1e4d120;flex-shrink:0}
.mobile-filter-sheet h2{font-size:22px!important;line-height:1.25!important;letter-spacing:-.03em;margin:0}
.filter-sheet-head button{display:grid;place-items:center;min-width:44px;min-height:44px;border:0;border-radius:50%;background:#2b3f33;color:#e9f3ed;font-size:28px;line-height:1;cursor:pointer}
.filter-sheet-content{overflow-y:auto;overscroll-behavior:contain;padding:22px 20px 8px}
.mobile-filter-sheet fieldset{padding:0;margin:0 0 24px;border:0;min-width:0;scroll-margin-top:20px}
.mobile-filter-sheet legend{padding:0;margin-bottom:12px;font-size:16px;font-weight:600;color:#e3eee7}
.sheet-choices{display:flex;flex-wrap:wrap;gap:8px}
.sheet-choices button{font:inherit;font-size:14px;line-height:1.35;min-height:44px;padding:11px 14px;background:#263c2f;color:#dce8df;border:1px solid #476050;border-radius:12px;cursor:pointer}
.sheet-choices button[aria-pressed=true]{background:#a1e4d1;color:#12372b;border-color:#a1e4d1;font-weight:600}
.mobile-filter-sheet button:focus-visible,.mobile-filter-sheet summary:focus-visible{outline:2px solid #a1e4d1;outline-offset:3px}
.mobile-filter-sheet .sheet-price-note{font-size:12px!important;color:#aebfb4;line-height:1.5!important;margin:-14px 0 24px!important}
.sheet-more{border-top:1px solid #a1e4d120;padding-top:4px;margin-bottom:12px}
.sheet-more summary{padding:16px 0;min-height:44px;box-sizing:border-box;cursor:pointer;color:#b8d4c6;font-size:15px}
.sheet-more fieldset:first-of-type{margin-top:8px}
.filter-sheet-actions{display:flex;align-items:center;gap:16px;padding:14px 20px max(16px,env(safe-area-inset-bottom));border-top:1px solid #a1e4d120;flex-shrink:0;background:#18271f}
.filter-sheet-actions button{font:inherit;min-height:48px;border:0;cursor:pointer}
.filter-sheet-actions [data-sheet-clear]{background:none;color:#d9e7de;padding:8px 0;font-size:14px;text-decoration:underline;text-underline-offset:4px}
.filter-sheet-actions [data-sheet-apply]{flex:1;background:#a1e4d1;color:#12372b;border-radius:12px;padding:12px;font-size:16px;font-weight:600}
html.filter-sheet-open{overflow:hidden}
@media(max-width:767px){
 .directory-results .city-visit-filters,.directory-results .search-row .filters-toggle,.directory-results .filters-panel{display:none!important}
 .directory-results .directory-controls-core .search-row{display:flex;flex-direction:row;align-items:stretch;gap:8px}
 .directory-results .directory-controls-core .search-row input#q{min-width:0;flex:1;width:0;font-size:16px;padding:14px}
 .directory-results .directory-controls-core .search-row .pill{width:auto;flex:none;padding:12px 16px;font-size:14px;min-height:48px}
 .mobile-filter-bar{grid-column:1/-1;display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:3px 1px 6px;margin-top:2px}
 .mobile-filter-bar::-webkit-scrollbar{display:none}
 .mobile-filter-bar>button{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:none;min-height:44px;padding:10px 13px;border:1px solid #496252;border-radius:999px;background:#1b2e23;color:#e0ece4;font:inherit;font-size:13px;white-space:nowrap;cursor:pointer}
 .mobile-filter-bar>button[data-active=true]{border-color:#a1e4d1;color:#b9f6e1;background:#233e30}
 .mobile-filter-bar>button:focus-visible{outline:2px solid #a1e4d1;outline-offset:1px}
 .mobile-filter-count{display:grid;place-items:center;min-width:19px;height:19px;background:#a1e4d1;color:#12372b;border-radius:50%;font-size:11px;font-weight:650}
 .mobile-filter-count[hidden]{display:none}
 .directory-results .active-filters{gap:6px}
 .directory-results .filter-chip{min-height:36px;padding:8px 10px;font-size:12px;line-height:1.35;max-width:100%;text-align:left}
}
@media(prefers-reduced-motion:no-preference){.mobile-filter-sheet[open]{animation:filter-sheet-enter .18s ease-out}@keyframes filter-sheet-enter{from{transform:translateY(32px);opacity:.5}to{transform:translateY(0);opacity:1}}}
/* Native emoji uses Apple's glyph on Apple devices and the platform glyph elsewhere. */
.wordmark,.brand{display:inline-flex;align-items:center;gap:.4em}
.brand-emoji{display:inline-block;flex:none;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;font-size:1.1em;font-weight:400;line-height:1;letter-spacing:0}
