:root { --ink:#162321; --paper:#f7f4ec; --cream:#ebe6d8; --lime:#d5ff47; --coral:#ef755e; --soft-ink:#4e5b57; --line:rgba(22,35,33,.18); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:"DM Sans",sans-serif; font-size:16px; line-height:1.5; }
button,input { font:inherit; } button { cursor:pointer; } a { color:inherit; }
.skip-link { position:absolute; left:-999px; top:8px; background:var(--lime); color:var(--ink); padding:10px 14px; z-index:10; }.skip-link:focus { left:8px; }
.site-header { max-width:1440px; margin:auto; min-height:80px; padding:0 5.4vw; display:flex; align-items:center; justify-content:space-between; gap:30px; border-bottom:1px solid var(--line); }
.brand { text-decoration:none; letter-spacing:-.04em; font-size:21px; font-weight:700; white-space:nowrap; }.brand em { font-family:"Playfair Display",serif; font-weight:600; }.brand-mark { display:inline-flex; width:23px; height:23px; margin-right:6px; justify-content:center; align-items:center; border:1.5px solid var(--ink); border-radius:50%; font-family:"DM Mono"; font-size:14px; letter-spacing:0; }
nav { display:flex; gap:29px; margin-left:auto; } nav a { color:var(--soft-ink); text-decoration:none; font-size:14px; font-weight:600; } nav a:hover { text-decoration:underline; text-underline-offset:5px; }
.header-action,.button { border:0; border-radius:0; padding:12px 17px; font-weight:700; font-size:14px; }.header-action { background:var(--ink); color:var(--paper); }.header-action span { margin-left:8px; }
.hero { max-width:1440px; margin:auto; min-height:612px; padding:88px 11.1vw 70px; display:grid; grid-template-columns:minmax(0,1.16fr) minmax(280px,.84fr); gap:80px; position:relative; overflow:hidden; }.hero::after { content:""; position:absolute; width:440px; height:440px; border-radius:50%; border:1px solid rgba(22,35,33,.13); right:-280px; top:-200px; box-shadow:0 0 0 44px rgba(22,35,33,.035),0 0 0 89px rgba(22,35,33,.025); pointer-events:none; }
.eyebrow { margin:0 0 16px; font:500 11px/1.3 "DM Mono",monospace; color:#60706a; letter-spacing:.1em; }.hero h1,.section-heading h2,.prepare h2,.questions h2,.method h2 { margin:0; letter-spacing:-.065em; font-size:clamp(48px,6.4vw,85px); line-height:.95; font-weight:500; max-width:720px; }.hero h1 i,.section-heading h2 i,.prepare h2 i,.method h2 i { font-family:"Playfair Display",serif; font-weight:600; }.lede { max-width:580px; margin:29px 0; font-size:19px; line-height:1.55; color:var(--soft-ink); }
.hero-actions { display:flex; align-items:center; gap:24px; }.button-primary { background:var(--lime); color:var(--ink); padding:15px 19px; }.button-primary:hover { background:#c4ec31; }.button-primary span { margin-left:12px; font-size:17px; }.text-button { background:transparent; border:0; color:var(--ink); border-bottom:1px solid var(--ink); padding:3px 0; font-weight:700; font-size:14px; }
.hero-panel { align-self:end; background:var(--ink); color:var(--paper); padding:34px 38px; position:relative; z-index:1; }.panel-kicker { display:block; color:var(--lime); font:500 11px "DM Mono"; letter-spacing:.1em; }.hero-panel h2 { font:500 30px/1.08 "DM Sans"; letter-spacing:-.04em; margin:25px 0 30px; }.hero-panel h2 i { font-family:"Playfair Display"; }.hero-panel ol { padding:0; margin:0; list-style:none; border-top:1px solid rgba(247,244,236,.25); }.hero-panel li { padding:13px 0; border-bottom:1px solid rgba(247,244,236,.25); display:flex; gap:16px; font-size:14px; }.hero-panel li span { color:var(--lime); font:11px "DM Mono"; padding-top:3px; }.hero-stamp { position:absolute; bottom:28px; left:5.4vw; font:500 11px/1.6 "DM Mono"; letter-spacing:.08em; transform:rotate(-3deg); color:#52645d; }.hero-stamp small { font-size:9px; }
.notice { background:var(--coral); padding:24px max(5.4vw,24px); display:grid; grid-template-columns:34px 1fr auto; align-items:center; gap:18px; color:#2f1612; }.notice-icon { border:1px solid #2f1612; border-radius:50%; width:25px; height:25px; display:flex; align-items:center; justify-content:center; font-weight:700; }.notice p { margin:0; max-width:970px; font-size:14px; }.notice a { font-size:13px; font-weight:700; text-underline-offset:5px; white-space:nowrap; }
.finder { padding:108px max(5.4vw,24px) 116px; max-width:1440px; margin:auto; }.section-heading { display:flex; justify-content:space-between; align-items:end; gap:30px; margin-bottom:42px; }.section-heading h2 { font-size:clamp(40px,4.6vw,64px); max-width:680px; }.result-count { color:#60706a; font:12px "DM Mono"; letter-spacing:.04em; margin:0 0 5px; white-space:nowrap; }
.filters { border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:16px 0; display:flex; justify-content:space-between; gap:24px; margin-bottom:0; }.search-label { flex:1; max-width:335px; position:relative; }.search-label::before { content:"⌕"; position:absolute; top:7px; left:0; font-size:23px; color:#60706a; }.search-label input { width:100%; border:0; border-bottom:1px solid var(--line); background:transparent; padding:8px 4px 8px 26px; color:var(--ink); outline-offset:4px; }.filter-buttons { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:6px; }.filter { border:1px solid transparent; background:transparent; padding:8px 11px; color:#52615c; font:500 12px "DM Mono"; }.filter:hover,.filter.is-active { border-color:var(--ink); color:var(--ink); }
.park-grid { display:grid; grid-template-columns:repeat(3,1fr); }.park-card { min-height:303px; padding:31px 27px 22px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); display:flex; flex-direction:column; transition:background .18s ease; }.park-card:nth-child(3n) { border-right:0; }.park-card:hover { background:var(--cream); }.park-top { display:flex; justify-content:space-between; align-items:start; gap:16px; }.park-country { color:#61716b; font:11px "DM Mono"; letter-spacing:.08em; text-transform:uppercase; }.tag { border:1px solid var(--line); border-radius:999px; padding:5px 8px; font:10px "DM Mono"; color:#51615b; white-space:nowrap; }.park-card h3 { margin:32px 0 7px; font:500 31px/1.05 "Playfair Display",serif; letter-spacing:-.04em; }.park-location { margin:0; color:#65736f; font:11px "DM Mono"; letter-spacing:.06em; }.park-summary { margin:22px 0; font-size:15px; line-height:1.45; min-height:44px; }.park-card button { margin-top:auto; background:none; padding:0; border:0; width:max-content; border-bottom:1px solid var(--ink); font-size:13px; font-weight:700; }.park-card button span { margin-left:9px; }.empty-state { padding:40px 0; color:#52615c; }
.prepare { background:var(--cream); padding:105px max(11.1vw,24px) 94px; display:grid; grid-template-columns:.85fr 1.15fr; gap:95px; }.prepare h2 { font-size:clamp(39px,4.4vw,61px); }.prepare-intro > p:last-child { color:#53625e; margin:25px 0 0; max-width:390px; }.checklist { border-top:1px solid var(--line); }.checklist label { display:flex; gap:15px; padding:18px 0; border-bottom:1px solid var(--line); cursor:pointer; }.checklist input { position:absolute; opacity:0; }.check-box { margin-top:2px; flex:none; width:20px; height:20px; border:1px solid var(--ink); display:grid; place-items:center; }.checklist input:checked + .check-box { background:var(--ink); }.checklist input:checked + .check-box::after { content:"✓"; color:var(--lime); font-size:14px; }.checklist b { display:block; font-size:15px; }.checklist small { display:block; margin-top:3px; color:#5c6a65; font-size:13px; }.button-outline { grid-column:2; width:max-content; margin-top:-67px; background:transparent; border:1px solid var(--ink); }
.systems { padding:105px max(11.1vw,24px); display:grid; grid-template-columns:.8fr 1.2fr; gap:100px; border-bottom:1px solid var(--line); }.systems h2 { margin:0; max-width:500px; font-size:clamp(38px,4.1vw,58px); line-height:.98; letter-spacing:-.06em; font-weight:500; }.systems h2 i { font-family:"Playfair Display",serif; }.systems-heading > p:last-child { max-width:410px; margin:27px 0 0; color:var(--soft-ink); }.systems-list { border-top:1px solid var(--line); }.systems-list article { display:grid; grid-template-columns:44px 1fr; gap:14px; padding:19px 0; border-bottom:1px solid var(--line); }.system-icon { width:27px; height:27px; display:grid; place-items:center; border:1px solid var(--ink); border-radius:50%; font:16px "DM Mono"; }.priority-icon { border-color:#799100; color:#799100; }.timed-icon { color:#59757a; }.desk-icon { color:#9d5a21; }.systems-list h3 { margin:0 0 4px; font-size:16px; }.systems-list p { margin:0; font-size:14px; color:#57655f; }
.questions { padding:108px max(11.1vw,24px); display:grid; grid-template-columns:.9fr 1.1fr; gap:100px; background:var(--ink); color:var(--paper); }.questions h2 { font-size:clamp(37px,4vw,56px); }.questions .eyebrow { color:#c2cac5; }.question-list { border-top:1px solid rgba(247,244,236,.3); }.question-list article { display:grid; grid-template-columns:50px 1fr; border-bottom:1px solid rgba(247,244,236,.3); padding:20px 0; }.question-list span { color:var(--lime); font:11px "DM Mono"; }.question-list p { margin:0; font-size:18px; line-height:1.35; }
.method { padding:105px max(11.1vw,24px); display:grid; grid-template-columns:1.2fr .8fr; gap:110px; }.method h2 { font-size:clamp(38px,4vw,57px); }.method-card > p:last-child { color:var(--soft-ink); max-width:600px; margin-top:26px; }.method-points { border-top:1px solid var(--line); }.method-points > div { border-bottom:1px solid var(--line); padding:17px 0; display:grid; grid-template-columns:35px 1fr; gap:12px; }.method-points span { color:#799100; font-size:21px; }.method-points p { margin:0; font-size:14px; color:#53615d; }.method-points b { color:var(--ink); }
footer { background:#d5ff47; padding:30px max(5.4vw,24px); display:flex; gap:30px; align-items:center; justify-content:space-between; font-size:12px; color:#32433c; } footer p { margin:0; } footer .brand { color:var(--ink); }
dialog { width:min(780px,calc(100vw - 32px)); max-height:calc(100vh - 32px); padding:0; border:0; background:var(--paper); color:var(--ink); box-shadow:0 24px 70px rgba(0,0,0,.3); }.dialog-close { position:absolute; right:14px; top:13px; border:0; background:var(--lime); height:34px; width:34px; border-radius:50%; font-size:24px; line-height:1; z-index:2; }.dialog-inner { padding:56px; }.dialog-inner h2 { margin:10px 0 3px; font:500 48px/1 "Playfair Display"; letter-spacing:-.055em; }.dialog-inner .location { margin:0; color:#60706a; font:11px "DM Mono"; letter-spacing:.08em; }.detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px 34px; margin:37px 0 27px; }.detail-grid > div { border-top:1px solid var(--line); padding-top:13px; }.detail-grid h3 { margin:0 0 7px; font:500 11px "DM Mono"; color:#63716c; letter-spacing:.07em; }.detail-grid p { margin:0; font-size:15px; }.source-link { display:inline-block; margin-top:15px; background:var(--ink); color:var(--paper); padding:13px 16px; text-decoration:none; font-weight:700; font-size:14px; }.source-link:hover { background:#32423d; }.dialog-note { margin:28px 0 0; padding:16px; background:var(--cream); font-size:13px; color:#46554f; }.dialog-note strong { color:var(--ink); }
::backdrop { background:rgba(10,21,18,.65); }.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media (max-width:800px) { .site-header { min-height:70px; padding:0 24px; }.site-header nav,.header-action { display:none; }.hero { min-height:auto; padding:68px 24px 80px; grid-template-columns:1fr; gap:45px; }.hero-panel { max-width:470px; }.hero-stamp { display:none; }.notice { grid-template-columns:30px 1fr; padding:20px 24px; }.notice a { grid-column:2; }.finder { padding:75px 24px; }.section-heading { display:block; }.result-count { margin-top:20px; }.filters { display:block; }.search-label { display:block; max-width:none; margin-bottom:13px; }.filter-buttons { justify-content:flex-start; }.park-grid { grid-template-columns:1fr; }.park-card { min-height:260px; border-right:0; }.prepare,.systems,.questions,.method { padding:75px 24px; grid-template-columns:1fr; gap:44px; }.button-outline { grid-column:auto; margin:0; }.questions { gap:43px; }.method { gap:50px; } footer { padding:26px 24px; display:block; } footer p { margin-top:12px; }.dialog-inner { padding:48px 25px 30px; }.dialog-inner h2 { font-size:39px; }.detail-grid { grid-template-columns:1fr; gap:18px; } }
@media (max-width:420px) { .hero h1 { font-size:50px; }.hero-actions { align-items:flex-start; flex-direction:column; gap:18px; }.filters { margin-top:0; } }

.trip-brief { padding:105px max(11.1vw,24px); background:var(--lime); display:grid; grid-template-columns:.82fr 1.18fr; gap:100px; }.trip-brief h2,.support h2 { margin:0; max-width:620px; font-size:clamp(38px,4.1vw,58px); line-height:.98; letter-spacing:-.06em; font-weight:500; }.trip-brief h2 i,.support h2 i { font-family:"Playfair Display",serif; }.brief-intro > p:last-of-type { max-width:400px; margin:25px 0 0; color:#34453e; }.trust-points { display:flex; flex-wrap:wrap; gap:9px 16px; margin-top:24px; font:500 11px "DM Mono"; color:#405049; }.brief-form { padding:7px 0 0; }.brief-form > label,.brief-form fieldset { display:block; border:0; border-top:1px solid rgba(22,35,33,.4); margin:0; padding:17px 0 21px; font-size:14px; font-weight:700; }.brief-form select { display:block; width:100%; margin-top:10px; padding:12px 14px; border:1px solid var(--ink); background:var(--paper); color:var(--ink); }.brief-form legend { padding:0; }.brief-options { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:12px; }.brief-options label { padding:10px; border:1px solid rgba(22,35,33,.4); background:rgba(247,244,236,.28); font-size:13px; font-weight:500; }.brief-options input { accent-color:var(--ink); }.brief-form .button-primary { background:var(--ink); color:var(--paper); }.brief-form .button-primary:hover { background:#32423d; }.brief-result { grid-column:2; border-top:1px solid var(--ink); padding:24px 0 0; }.brief-result h3 { margin:0; font:500 28px/1.05 "Playfair Display"; letter-spacing:-.04em; }.brief-result p { max-width:700px; margin:14px 0; color:#34453e; }.brief-result ul { padding-left:20px; margin:17px 0; }.brief-result li { margin:8px 0; }.brief-actions { display:flex; gap:12px; margin-top:20px; }.brief-actions button { padding:10px 13px; border:1px solid var(--ink); background:transparent; font-size:13px; font-weight:700; }.brief-actions button:first-child { background:var(--ink); color:var(--paper); }
.support { border-top:1px solid var(--line); padding:95px max(11.1vw,24px); display:grid; grid-template-columns:.9fr 1.1fr; gap:100px; }.support-copy { max-width:650px; color:#4d5d57; }.support-copy > p:first-child { margin-top:0; font-size:17px; }.support-copy ul { list-style:none; padding:0; margin:27px 0; border-top:1px solid var(--line); }.support-copy li { padding:13px 0; border-bottom:1px solid var(--line); font-size:14px; }.support-copy b { color:var(--ink); }.support-note { font:11px "DM Mono"; color:#697872; }
@media (max-width:800px) { .trip-brief,.support { padding:75px 24px; grid-template-columns:1fr; gap:44px; }.brief-result { grid-column:auto; }.brief-options { grid-template-columns:1fr; } }

.park-card { position:relative; }.save-park { position:absolute; right:23px; bottom:20px; width:31px !important; height:31px; border:1px solid var(--line) !important; border-radius:50%; padding:0 !important; display:grid; place-items:center; color:#52615c; font-size:16px !important; }.save-park:hover,.save-park[aria-pressed="true"] { background:var(--lime); color:var(--ink); border-color:var(--ink) !important; }.park-card > button[data-park] { padding-right:43px; }
.full-guide-link { display:block; margin:11px 0 0; width:max-content; color:#485852; font-size:12px; font-weight:700; text-underline-offset:4px; }.full-guide-link:hover { color:var(--ink); }
.saved-parks { margin-top:47px; padding:29px; background:var(--ink); color:var(--paper); display:grid; grid-template-columns:.7fr 1.3fr; gap:35px; }.saved-parks .eyebrow { color:var(--lime); }.saved-parks h3 { margin:0 0 7px; font:500 29px/1.05 "Playfair Display"; letter-spacing:-.04em; }.saved-parks p:last-child { margin:0; color:#bdc6c1; font-size:13px; }.saved-list { display:flex; flex-wrap:wrap; align-content:start; gap:9px; }.saved-list button { padding:9px 11px; border:1px solid rgba(247,244,236,.35); background:transparent; color:var(--paper); font-size:13px; }.saved-list button:hover { border-color:var(--lime); color:var(--lime); }
.travel-toolkit { padding:112px max(5.4vw,24px) 96px; background:var(--paper); }.travel-heading { display:grid; grid-template-columns:1.05fr .95fr; column-gap:85px; margin:0 max(5.7vw,0px) 48px; }.travel-heading .eyebrow { grid-column:1 / -1; }.travel-heading h2,.faq h2 { margin:0; font-size:clamp(40px,4.5vw,64px); font-weight:500; letter-spacing:-.06em; line-height:.96; max-width:650px; }.travel-heading h2 i,.faq h2 i { font-family:"Playfair Display",serif; }.travel-heading > p:last-child { align-self:end; margin:0 0 4px; color:#53625e; max-width:440px; }.travel-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }.travel-card { min-height:315px; padding:29px; display:flex; flex-direction:column; border:1px solid var(--line); }.travel-card.flight { background:#e6eee5; }.travel-card.rail { background:#e9e3f3; }.travel-card.arrival { background:#f8d9c8; }.travel-card > span { font:11px "DM Mono"; color:#51615a; }.travel-card h3 { margin:50px 0 12px; font:500 28px/1.05 "Playfair Display"; letter-spacing:-.04em; }.travel-card p { margin:0; font-size:14px; color:#43534d; }.travel-card a,.travel-card button { display:block; margin-top:auto; padding-top:22px; border:0; background:transparent; text-align:left; color:var(--ink); font-size:13px; font-weight:700; text-underline-offset:4px; }.travel-card a:hover,.travel-card button:hover { text-decoration:underline; }.toolkit-note { margin:17px max(5.7vw,0px) 0; color:#5b6964; font-size:12px; }
.faq { padding:105px max(11.1vw,24px); display:grid; grid-template-columns:.85fr 1.15fr; gap:100px; background:#31433c; color:var(--paper); }.faq .eyebrow { color:#d5ff47; }.faq-intro > p:last-child { max-width:420px; margin:25px 0 0; color:#d4dcd7; }.faq-list { border-top:1px solid rgba(247,244,236,.32); }.faq details { border-bottom:1px solid rgba(247,244,236,.32); }.faq summary { cursor:pointer; list-style:none; position:relative; padding:21px 35px 21px 0; font-size:17px; font-weight:600; }.faq summary::-webkit-details-marker { display:none; }.faq summary::after { content:"+"; position:absolute; right:3px; top:16px; color:var(--lime); font:24px "DM Mono"; }.faq details[open] summary::after { content:"−"; }.faq details p { margin:0; padding:0 30px 23px 0; color:#d4dcd7; font-size:14px; line-height:1.55; }
@media (max-width:800px) { .saved-parks,.travel-heading,.faq { grid-template-columns:1fr; gap:34px; }.saved-parks { padding:24px; }.travel-toolkit { padding:75px 24px; }.travel-heading { margin:0 0 37px; }.travel-heading > p:last-child { margin-top:22px; }.travel-cards { grid-template-columns:1fr; }.travel-card { min-height:260px; }.toolkit-note { margin-left:0; margin-right:0; }.faq { padding:75px 24px; }.faq-intro > p:last-child { margin-top:20px; } }
