/* Atlas identity: ink, ivory, antique gold and woven geometry. */
:root {
    --ink: #172d28;
    --deep: #11231f;
    --paper: #f8f4eb;
    --paper-muted: #c7c8ba;
    --acid: #d1b578;
    --coral: #d1b578;
    --champagne: #b79758;
    --champagne-bright: #ead6a7;
    --nav: "Manrope", system-ui, sans-serif;
    --display: "Newsreader", Georgia, serif;
    --line: rgba(209,181,120,.24);
    --glass: #142b25;
}

/* The header and its menus are a pale blue-grey surface, so their type,
   rules and accents are set dark rather than ivory. */
.site-header {
    grid-template-rows: 86px 48px;
    min-height: 134px;
    border-color: #000;
    background-color: #dee4ea;
    background-image:
        repeating-linear-gradient(45deg, transparent 0 17px, #33465912 17px 18px, transparent 18px 35px),
        repeating-linear-gradient(-45deg, transparent 0 17px, #33465912 17px 18px, transparent 18px 35px);
    background-size: auto;
    background-position: 0 0;
    box-shadow: 0 8px 28px #10203a1f;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
}
.header-identity { grid-template-columns: max-content minmax(270px, 490px) 1fr; gap: 26px; padding-inline: 28px; }
.site-mark { min-width: 0; padding: 12px 24px 10px 0; border-color: #b9c4cf; color: #101c33; }
.site-mark strong { font: 400 32px/1 var(--display); letter-spacing: -.045em; }
.site-mark small { margin-top: 9px; color: #7a6127; font: 600 8px/1.4 var(--sans); letter-spacing: .16em; }
.header-search { height: 44px; margin: 0; border-color: #b3bfcc; background: #ffffffb3; box-shadow: none; }
.header-search input { color: #101c33; font: 400 12px/1.3 var(--sans); letter-spacing: 0; }
.header-search input::placeholder { color: #5d6b7a; }
.header-search:focus-within { border-color: #000; background: #ffffffe6; }
.header-search > svg, .header-search > button { color: #5d6b7a; stroke: #5d6b7a; }
.header-search-results, .submenu { background: #dee4ea; background-image: none; border-color: #000; box-shadow: 0 18px 44px #10203a33; }
.secondary-menu-panel { background: #dee4ea; background-image: none; border-color: #b9c4cf; box-shadow: 0 18px 44px #10203a33; }
.header-search-summary, .header-search-distance { color: #000; }
.secondary-menu-panel > p { color: #000; }
.header-search-result, .submenu a { color: #101c33; }
.header-search-kind, .header-search-copy small { color: #55616e; }
.header-search-copy strong { font: 400 19px/1.15 var(--display); }
.header-search-result:hover, .header-search-result.is-active, .submenu a:hover, .submenu a.is-active { color: #000; background: #101c3312; }
.header-edition { justify-self: end; align-self: center; color: #101c33; font: 600 13px/1.5 var(--sans); letter-spacing: .11em; text-transform: uppercase; }
.main-menu { padding: 0 28px; border-color: #b9c4cf; background: #dee4ea; }
.menu-cluster, .menu-cluster:first-child, .menu-cluster.is-learn { border-color: #b9c4cf; }
.menu-link { min-height: 47px; padding-inline: clamp(12px, 1.5vw, 27px); color: #101c33; font: 700 12px/1.2 var(--nav); letter-spacing: .025em; }
.menu-link::after { background: #000; height: 2px; }
.menu-link:hover, .menu-link.is-active, .menu-cluster:focus-within > .menu-link { color: #000; background: #101c330d; }
.submenu { padding: 9px; width: 300px; }
.submenu a { padding: 12px; border-color: #c3ccd6; font: 500 12px/1.4 var(--sans); }
.menu-toggle { color: #101c33; border-color: #b9c4cf; font: 700 11px/1 var(--sans); }

.hero-intro { bottom: 88px; text-shadow: none; }
.hero-actions { gap: 0; width: fit-content; box-shadow: 0 8px 30px #10203a29; }
.hero-actions a, .hero-actions button { min-height: 48px; padding: 13px 19px; border-color: #b9c4cf; background: #dee4ea; color: #101c33; font: 600 11px/1.4 var(--sans); letter-spacing: .035em; text-transform: none; box-shadow: none; }
.hero-actions .hero-primary { border-color: #b9c4cf; background: #dee4ea; color: #101c33; }
.hero-actions a:hover, .hero-actions button:hover, .hero-actions .hero-primary:hover { border-color: #000; background: #eaeef3; color: #000; }
.hero-actions button { border-left: 0; }
.hero-primary::after { display: inline-block; margin-left: 20px; content: "↗"; font-size: 17px; }
.map-key { background: #142b25; border-color: #b797585e; box-shadow: 0 8px 25px #11251e26; }
.reset-map { min-height: 34px; margin-bottom: 0; padding: 5px 0; font: 600 10px/1 var(--sans); }
.gesture-help { display: none; }
.secondary-navigation { background: #dee4ea; background-image: none; border-color: #b9c4cf; box-shadow: 0 5px 20px #10203a1f; }
.secondary-about-link, .secondary-menu summary { color: #101c33; font: 500 10px/1.4 var(--sans); }
.secondary-about-link { border-right-color: #b9c4cf; }
.secondary-menu summary b { color: #000; }
.secondary-about-link:hover, .secondary-menu-panel a:hover { background: #101c3310; color: #000; }
.secondary-menu-panel > p { border-bottom-color: #c3ccd6; }
.secondary-menu-panel a { border-bottom-color: #c3ccd6; color: #101c33; font-family: var(--display); }
.secondary-menu-panel a span { color: #55616e; }
.attribution { padding: 3px 5px; background: #f8f4ebd9; border-radius: 2px; font-size: 9px; text-shadow: none; }

.directory-panel {
    top: calc(var(--site-header-bottom, 134px) + 16px);
    border: 1px solid #b6a47d;
    background: #f8f5edf7;
    background-image: repeating-linear-gradient(0deg, #ae936b03 0 1px, transparent 1px 4px);
    box-shadow: 0 20px 70px #10251d30;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
}
.directory-content { padding: 45px clamp(22px, 4vw, 56px) 65px; }
.directory-kicker { color: #826a39; font: 600 10px/1.4 var(--sans); letter-spacing: .18em; }
.directory-title { padding-right: 26px; color: #17382e; font-weight: 300; line-height: 1.02; letter-spacing: -.04em; }
.directory-lede { margin-block: 28px; gap: 30px; }
.directory-lede p { color: #475249; font-size: 14px; line-height: 1.8; }
.directory-close { width: 38px; height: 38px; border-color: #b9ae92; background: #f8f5ed; box-shadow: none; }
.directory-subpage { min-height: 85px; padding: 15px; border-color: #c9c2b0; background: #fdfaf3; box-shadow: none; }
.directory-subpage strong { font: 400 22px/1.1 var(--display); }
.directory-subpage span { color: #776740; font-size: 9px; }
.provider-section-head { padding-bottom: 16px; border-color: #ada084; }
.provider-section-head h3 { font: 400 32px/1.15 var(--display); }
.provider-grid { gap: 18px; }
.provider-card { padding: 24px; border: 1px solid #d4ccbb; border-radius: 0; background: #fffcf5; box-shadow: 0 4px 18px #42331b08; transition: border-color .18s, box-shadow .18s; }
.provider-card::before { top: 0; left: 24px; right: auto; width: 40px; height: 2px; background: #a88a49; }
.provider-card:hover { border-color: #a88a49; box-shadow: 0 6px 24px #42331b12; }
.provider-card.is-selected { border-color: #315d4b; box-shadow: inset 0 0 0 1px #315d4b; }
.provider-card-top { padding-bottom: 16px; border-color: #e2dbcd; }
.provider-card-index { color: #8e7950; font-size: 10px; }
.provider-badge { padding: 6px 8px; background: #eeeadf; color: #65593e; font: 600 9px/1.3 var(--sans); letter-spacing: .025em; }
.provider-badge.official { background: #17382e; color: #ead6a7; }
.provider-badge.access { background: #dce6da; color: #244536; }
.provider-card h4 { margin: 20px 0 14px; color: #17382e; font: 400 28px/1.06 var(--display); letter-spacing: -.025em; }
.provider-evidence { color: #475249; font-size: 15px; line-height: 1.7; padding-bottom: 22px; }
.provider-location, .provider-contact-details a, .provider-contact-details button { color: #475249; font: 500 12px/1.55 var(--sans); }
.provider-location { border-color: #e2dbcd; padding-top: 15px; }
.provider-contact-details { gap: 8px; margin-bottom: 20px; }
.provider-contact-details :is(a, button) { grid-template-columns: 48px minmax(0, 1fr); overflow-wrap: anywhere; white-space: normal; }
.provider-contact-details span { align-self: center; color: #786746; font: 600 9px/1.5 var(--sans); }
.provider-card-actions { gap: 6px; }
.show-provider, .provider-source, .provider-directions, .provider-contact, .provider-profile { min-height: 38px; border-color: #b5b9a9; background: transparent; color: #294636; font: 600 10px/1.3 var(--sans); text-transform: none; }
.show-provider { background: #17382e; border-color: #17382e; color: #f1dfb8; }
.show-provider:hover { background: #27523f; color: #fff5de; }
.provider-float { border-color: #a58b56; background: #142b25; box-shadow: 0 16px 40px #08231940; }
.provider-float h3 { font-family: var(--display); color: #f7f2e7; }
/* Page and panel copy is set in black; only the inverted chips and buttons
   inside the panel keep their light type. */
.directory-panel { color: #000; }
.directory-panel :is(h1, h2, h3, h4, h5, p, li, span, small, strong, em, address, dt, dd, label, a, button, summary, input, textarea, select):not(
    .show-provider, .show-provider *, .wizard-primary, .wizard-primary *, .provider-badge.official, .provider-badge.official *
) { color: #000; }

body.directory-open .label-layer { visibility: hidden; }
body.provider-focused .hero-intro { opacity: 0; pointer-events: none; }
body.provider-focused .hero-actions { pointer-events: none; }
.provider-legend { background: #142b25; border-color: #a58b56; }
.provider-legend-copy strong { font: 400 19px/1.15 var(--display); }
.provider-legend-copy small { color: #c7c8ba; }
.provider-summary-narrative, .provider-summary-methods, .provider-summary-contact, .provider-summary-service { background: #fffcf5; border-color: #d4ccbb; box-shadow: none; }
.provider-summary-narrative > p:not(.provider-summary-section-label) { font-size: 15px; }
.provider-summary-introduction { font-family: var(--display); }

@media (min-width: 881px) and (max-width: 1180px) {
    .header-identity { gap: 20px; padding-inline: 20px; }
    .site-mark strong { font-size: 29px; }
    .header-edition { display: none; }
    .main-menu { padding-inline: 12px; }
    .menu-link { padding-inline: 11px; font-size: 11px; }
}
@media (max-width: 880px) {
    .site-header { grid-template-rows: 76px; min-height: 76px; }
    .header-identity { grid-template-columns: max-content minmax(150px, 1fr) auto; gap: 14px; padding-inline: 16px; }
    .site-mark { padding-right: 12px; }
    .site-mark strong { font-size: 27px; }
    .site-mark small { font-size: 7px; }
    .header-edition { display: none; }
    .main-menu { background: #dee4ea; padding: 0; max-height: calc(100dvh - var(--site-header-bottom, 76px)); }
    .submenu { width: auto; padding: 0 8px 12px; box-shadow: none; }
    .menu-link { color: #101c33; }
    .header-search-results { border-color: #c3ccd6; }
    .menu-toggle { padding-inline: 12px; }
}
@media (max-width: 700px) {
    .site-header { grid-template-rows: 124px; min-height: 124px; }
    .header-identity { grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: 72px 52px; gap: 0; padding-inline: 16px; }
    .site-mark { padding: 9px 0; border: 0; }
    .site-mark strong { font-size: 27px; letter-spacing: -.04em; }
    .site-mark small { font-size: 7px; margin-top: 8px; letter-spacing: .08em; }
    .header-search { height: 40px; margin: 0 0 10px; }
    .header-search input { font-size: 16px; }
    .menu-toggle { padding: 0 0 0 13px; min-width: 67px; font-size: 10px; }
    .directory-panel { top: calc(var(--site-header-bottom, 124px) + 8px); width: calc(100vw - 16px); bottom: 8px; }
    .directory-content { padding: 30px 19px 40px; }
    .directory-lede p { font-size: 14px; }
    .directory-close { top: 12px; right: 12px; }
    .provider-grid { gap: 14px; }
    .provider-card { padding: 21px 18px; }
    .hero-intro { left: 16px; bottom: 100px; width: calc(100vw - 80px); }
    .hero-actions { width: 100%; }
    .hero-actions a, .hero-actions button { flex: 1; display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 10px 11px; font-size: 11px; }
    .hero-primary::after { margin-left: 8px; }
    .secondary-navigation { left: 16px; bottom: 35px; }
    .secondary-about-link { font-size: 9px; }
    .attribution { right: 10px; bottom: 5px; max-width: calc(100vw - 20px); font-size: 8px; }
    .map-locate-control { bottom: 45px; }
    .map-zoom-control { bottom: 99px; }
    .provider-summary-contact .provider-contact-details :is(a, button) { font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
    .provider-card, .hero-intro { transition: none; }
}
