/* Visitor-first additions. Existing BAS colors, typography and official marks
   remain the design system; these components expose clearer paths through it. */
.visitor-finder {
    padding-block:70px 55px
}
.visitor-finder .section-top {
    align-items:end;
    gap:50px
}
.visitor-finder .section-top>p {
    max-width:460px;
    color:var(--muted);
    font-size:.95rem;
    margin:0 0 5px
}
.experience-paths {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:16px
}
.experience-path {
    display:flex;
    flex-direction:column;
    text-decoration:none;
    background:#eaf0dd;
    border:1px solid #d0dcc5;
    border-radius:8px;
    padding:26px 22px;
    color:var(--ink);
    transition:background-color .15s,border-color .15s
}
.experience-path.reef {
    background:#e5efea
}
.experience-path.birds {
    background:#f0ecd9
}
.experience-path.caves {
    background:#e6e9e0
}
.experience-path:hover {
    background:#f9fbf1;
    color:var(--ink);
    border-color:#6e8b60
}
.experience-symbol {
    display:grid;
    place-items:center;
    width:42px;
    height:42px;
    border:1px solid #a8b997;
    border-radius:50%;
    font:2rem var(--serif);
    margin-bottom:28px;
    color:#4d7455
}
.experience-path h3 {
    font:2rem/1.05 var(--serif);
    letter-spacing:-.02em;
    margin-bottom:15px
}
.experience-path p {
    font-size:.82rem;
    color:var(--muted);
    margin:0 0 24px;
    flex:1
}
.experience-count {
    font-size:.68rem;
    border-top:1px solid #c7d3bd;
    padding-top:15px;
    display:flex;
    justify-content:space-between;
    gap:10px
}
.experience-count b {
    font-weight:400;
    font-size:1rem
}
.visitor-shortcuts {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:24px;
    margin-top:28px
}
.visitor-shortcuts a {
    font-size:.78rem;
    line-height:1.5;
    display:flex;
    justify-content:space-between;
    gap:12px;
    text-decoration:none;
    border-bottom:1px solid var(--line);
    padding:10px 0
}
.visitor-shortcuts a:hover {
    text-decoration:underline
}
.hero-actions {
    display:flex;
    align-items:center;
    gap:26px;
    flex-wrap:wrap
}
.hero-secondary {
    font-size:.88rem;
    color:white;
    text-decoration:none;
    border-bottom:1px solid #c4d5bb;
    padding:8px 0
}
.hero-secondary:hover {
    color:var(--lime)
}
/* Search is a real page, not a keyboard-trapping overlay. The results stay local
   and render as ordinary links that can be opened in tabs or shared. */
.site-search-page {
    padding-bottom:70px
}
.site-search-page .page-heading {
    padding-bottom:30px
}
.site-search-form {
    border:1px solid #a6b99b;
    background:#edf1e3;
    padding:24px;
    border-radius:7px
}
.site-search-form>label {
    display:block;
    font-size:.75rem;
    font-weight:600;
    margin-bottom:10px
}
.site-search-form>div {
    display:flex;
    gap:12px
}
.site-search-form input[type=search] {
    width:100%;
    min-width:0;
    border:1px solid #9aaf8f;
    border-radius:4px;
    padding:15px;
    background:white;
    color:var(--ink);
    font-size:1rem
}
.site-search-form .button {
    flex-shrink:0
}
.search-suggestions {
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin:20px 0 40px
}
.search-suggestions a {
    border:1px solid var(--line);
    padding:8px 15px;
    border-radius:30px;
    font-size:.8rem;
    text-decoration:none
}
.search-suggestions a:hover {
    background:var(--lime)
}
.search-starters {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:28px
}
.search-starters article,.search-results article {
    padding:24px 0;
    border-bottom:1px solid var(--line)
}
.search-starters h2,.search-results h2 {
    font-family:var(--serif);
    font-size:1.9rem;
    line-height:1.12;
    margin:10px 0 15px
}
.search-starters h2 a,.search-results h2 a {
    text-decoration:none
}
.search-starters p,.search-results p {
    font-size:.89rem;
    color:var(--muted);
    margin-bottom:0
}
.search-result-tools {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    font-size:.8rem;
    margin:25px 0 5px
}
.search-result-tools p {
    margin:0
}
.search-result-tools p span {
    font-size:.68rem
}
.search-results {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:0 50px
}
.search-results .eyebrow {
    font-size:.65rem;
    color:#647c58
}
.search-results small {
    display:block;
    margin-top:12px;
    font-size:.65rem;
    color:var(--muted)
}
.search-empty {
    background:#e9eedf;
    padding:35px;
    margin-top:30px
}
.search-empty h2 {
    font-size:2.6rem
}
.nav-search {
    display:flex;
    align-items:center;
    gap:7px
}
.nav-search svg {
    width:17px;
    height:17px;
    stroke:currentColor;
    fill:none;
    stroke-width:1.7
}
/* Planning questions and overview links lower the effort needed to move from
   inspiration to a shortlist. Fees and current operational advice stay sourced. */
.plan-jump {
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:25px
}
.plan-jump a {
    font-size:.8rem;
    padding:8px 14px;
    border:1px solid var(--line);
    border-radius:25px;
    text-decoration:none
}
.plan-jump a:hover {
    background:var(--lime)
}
.visit-questions {
    padding-block:30px 65px
}
.visit-questions>h2 {
    margin:16px 0 30px
}
.visit-questions details {
    border-top:1px solid var(--line);
    padding:20px 0
}
.visit-questions details:last-child {
    border-bottom:1px solid var(--line)
}
.visit-questions summary {
    cursor:pointer;
    font-size:1.03rem;
    font-weight:600;
    line-height:1.5;
    padding-right:20px
}
.visit-questions p {
    font-size:.91rem;
    color:var(--muted);
    margin:16px 0
}
.visit-questions a {
    font-size:.83rem
}
.question-actions {
    display:flex;
    flex-wrap:wrap;
    gap:15px 30px
}
.park-essentials {
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin:22px 0
}
.park-essentials a {
    font-size:.8rem;
    padding:8px 14px;
    border:1px solid var(--line);
    border-radius:25px;
    text-decoration:none
}
.park-essentials a:hover {
    background:#e6eddb
}
.site-search-page:focus {
    outline:none
}
/* Layout and focus adaptations preserve reading order. No content is removed
   on mobile; cards stack and the navigation uses the established menu button. */
@media(max-width:1100px) {
    .experience-paths {
        grid-template-columns:repeat(2,minmax(0,1fr))
    }
    .experience-path h3 {
        font-size:2.2rem
    }
    .experience-symbol {
        margin-bottom:20px
    }
    .visitor-shortcuts {
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:8px 28px
    }
    .search-starters {
        grid-template-columns:repeat(2,minmax(0,1fr))
    }
    .visitor-finder .section-top {
        display:block
    }
    .visitor-finder .section-top>p {
        max-width:700px;
        margin-top:22px
    }
    .site-head nav {
        gap:18px
    }
}
@media(max-width:650px) {
    .visitor-finder {
        padding-block:45px 35px
    }
    .experience-paths {
        gap:12px
    }
    .experience-path {
        padding:20px 16px
    }
    .experience-path h3 {
        font-size:1.75rem
    }
    .experience-path p {
        font-size:.76rem
    }
    .experience-count {
        font-size:.6rem
    }
    .search-starters,.search-results {
        grid-template-columns:1fr
    }
    .site-search-form {
        padding:18px
    }
    .site-search-form>div {
        display:block
    }
    .site-search-form .button {
        margin-top:12px;
        width:100%
    }
    .search-result-tools {
        align-items:start;
        flex-wrap:wrap;
        gap:10px
    }
    .search-starters {
        gap:0
    }
    .visit-questions {
        padding-bottom:40px
    }
    .visit-questions summary {
        font-size:.95rem
    }
    .hero-actions {
        gap:16px 25px
    }
}
@media(max-width:380px) {
    .experience-paths {
        grid-template-columns:1fr
    }
    .experience-path {
        padding:22px
    }
    .experience-path h3 {
        font-size:2.1rem
    }
    .experience-symbol {
        margin-bottom:15px
    }
    .experience-path p {
        font-size:.85rem
    }
    .experience-count {
        font-size:.7rem
    }
    .visitor-shortcuts {
        grid-template-columns:1fr;
        gap:4px
    }
    .hero-actions .button {
        width:100%
    }
    .site-head nav {
        gap:5px 18px
    }
}
@media(prefers-reduced-motion:reduce) {
    .experience-path {
        transition:none
    }
}

/* Native directory filter links work in static HTML and retain query state. */
.filters a {
    display: inline-flex;
    align-items: center;
    font-size: .8rem;
    border: 1px solid var(--line);
    border-radius: 40px;
    padding: 9px 15px;
    text-decoration: none;
}
.filters a[aria-current="true"] {
    background: var(--forest);
    color: white;
    border-color: var(--forest);
}
.directory-search-form { margin: 0; min-width: 230px; }
@media (max-width: 650px) {
    .directory-search-form { width: 100%; min-width: 0; }
}
