*{box-sizing:border-box}
html{scroll-behavior:smooth;color-scheme:light}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
h1,h2,h3,p,figure{margin:0}
h1,h2,h3{line-height:1.12;letter-spacing:-.04em}
h1{font-weight:500;font-size:clamp(3rem,6.4vw,5.5rem);max-width:9em}
h2{font-size:clamp(1.8rem,3.5vw,2.75rem);font-weight:500}
h3,legend{font-size:1.3rem;font-weight:600}
p{margin-block:.8rem}
a{color:inherit;text-underline-offset:4px}
a,button,input{touch-action:manipulation}
button,.button{min-height:48px;padding:12px 22px;border:1px solid var(--sea);background:var(--sea);color:var(--paper);font:600 1rem/1.4 system-ui;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:24px;text-decoration:none;border-radius:4px}
button:active,.button:active{transform:translateY(1px)}
button:disabled{opacity:.65;cursor:wait}
.secondary{background:transparent;color:var(--sea)}
[hidden]{display:none!important}
:focus-visible{outline:3px solid var(--ink);outline-offset:4px}
input{min-height:48px;border:1px solid var(--sea);background:var(--paper);border-radius:4px;color:var(--ink);font:inherit;padding:10px;width:100%;min-width:0}
input:focus{border-color:var(--sea)}
label{display:grid;gap:6px;font-weight:600;min-width:0}
small{font-weight:400}
.shell{max-width:1200px;margin-inline:auto;padding-inline:40px}
.demo{background:var(--mist);text-align:center;padding:7px 16px;font-size:.75rem}
.header{height:80px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}
.wordmark{display:inline-flex;align-items:center;min-height:44px;font-size:1.8rem;font-weight:600;text-decoration:none;letter-spacing:-.06em}
.wordmark span{font-size:1rem;vertical-align:top;margin-left:4px}
nav{display:flex;align-items:center;gap:28px}
nav a{display:inline-flex;min-height:44px;align-items:center}
.locale{font-size:.85rem;border-left:1px solid var(--line);padding-left:22px}
.hero{display:grid;grid-template-columns:.95fr 1.05fr;gap:48px;align-items:center;padding-top:44px;padding-bottom:52px}
.eyebrow{font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;margin-bottom:24px}
.intro{max-width:29em;font-size:1.1rem;margin:25px 0}
.hero-art{position:relative}
.hero-art img{width:100%;height:auto;display:block;aspect-ratio:760/600;border-radius:4px}
.hero-art figcaption{font-size:.75rem;letter-spacing:.04em;margin-top:10px}
.journey{border-block:1px solid var(--line);padding-block:32px;display:grid;grid-template-columns:1fr 1.5fr;gap:40px;align-items:center}
.journey h2{font-size:1.5rem}
.journey ol{list-style:none;display:flex;gap:25px;padding:0;margin:0}
.journey li{flex:1;line-height:1.45;font-size:.9rem}
.journey li span{display:block;color:var(--sea);font-size:.75rem;margin-bottom:8px}
.booking{padding-block:64px;display:grid;grid-template-columns:.72fr 1.28fr;gap:54px;align-items:start}
.booking-heading{position:sticky;top:28px}
.booking-heading p{max-width:24em}
.booking-panel{min-width:0;border:1px solid var(--line);border-radius:4px;padding:28px;background:white}
.search-form{display:grid;grid-template-columns:1.2fr .7fr;gap:16px}
.search-form button{grid-column:1/-1}
.search-form input{background:white}
.muted,small{color:var(--ink);font-size:.85rem}
fieldset{border:0;padding:0;margin:20px 0;min-width:0}
legend{margin-bottom:12px;letter-spacing:-.02em}
.service-options{display:grid;gap:8px}
.option{display:flex;align-items:center;padding:12px;border:1px solid var(--line);border-radius:4px;gap:12px;font-weight:400;cursor:pointer;min-height:48px}
.option:has(input:checked){border-color:var(--sea);background:var(--mist)}
.option input{width:20px;min-height:20px;height:20px;flex-shrink:0;accent-color:var(--sea);padding:0}
.option span{min-width:0}
.option strong,.option small{display:block}
.summary{background:var(--mist);padding:18px;margin-block:24px;border-radius:4px}
.summary>div{display:flex;gap:12px;justify-content:space-between;align-items:center}
.summary p{margin:0}
.summary strong{font-size:1.55rem;white-space:nowrap}
.summary #split{font-size:.85rem;margin-top:6px}
.guest-fields{display:grid;gap:16px}
.error,.notice{padding:14px;border-left:3px solid var(--sea);background:var(--mist);margin-block:16px;overflow-wrap:anywhere}
#retry{margin-bottom:16px}
#turnstile-widget{min-height:65px;width:100%}
#submit{width:100%}
.contact{padding-block:42px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:40px}
.contact h2{font-size:1.8rem}
.contact p{max-width:32em}
.contact-links{display:flex;flex-direction:column;align-items:start}
.contact-links a{min-height:44px;display:inline-flex;gap:12px;align-items:center;flex-wrap:wrap;overflow-wrap:anywhere}
.contact-links a span{font-size:.9rem}
.footer{display:flex;align-items:center;justify-content:space-between;padding-block:24px;border-top:1px solid var(--line);gap:20px;font-size:.85rem}
.result{max-width:850px;padding-block:64px;min-height:52vh}
.result h1{font-size:clamp(2.2rem,5vw,3.8rem);max-width:15em}
.result>p{max-width:42em}
.result .button{margin:18px 10px 0 0}
.reference{font-family:monospace;overflow-wrap:anywhere}
.booking-facts{display:flex;gap:36px;flex-wrap:wrap;padding-block:20px;border-block:1px solid var(--line)}
dt{font-size:.85rem}
dd{margin:4px 0 0;font-weight:600}
.manage-items{list-style:none;padding:0}
.manage-items li{padding:14px 0;border-bottom:1px solid var(--line)}
.manage-items strong,.manage-items span{display:block}
.confirmation{padding:20px;background:var(--mist);border-radius:4px;margin-top:20px}
.confirmation button{margin:8px 8px 0 0}
.skip{position:absolute;left:12px;top:-200px;background:white;padding:12px;z-index:10}
.skip:focus{top:12px}
@media(max-width:767px){.shell{padding-inline:22px}
.header{height:68px}
.wordmark{display:inline-flex;align-items:center;min-height:44px;font-size:1.6rem}
nav{gap:16px}
.locale{padding-left:16px}
.nav-book{font-size:.85rem}
.hero{grid-template-columns:1fr;gap:28px;padding-top:32px;padding-bottom:32px}
.hero h1{font-size:3.6rem;max-width:8em}
.eyebrow{margin-bottom:16px}
.intro{font-size:1rem;margin-block:20px}
.hero-art img{aspect-ratio:760/440;object-fit:cover;object-position:50% 54%}
.hero-art figcaption{margin-top:8px}
.journey{grid-template-columns:1fr;gap:22px;padding-block:28px}
.journey ol{flex-direction:column;gap:16px}
.journey li{display:flex;align-items:baseline;gap:20px}
.journey li span{margin:0}
.booking{grid-template-columns:1fr;gap:24px;padding-block:36px}
.booking-heading{position:static}
.booking-panel{padding:18px}
.contact{grid-template-columns:1fr;gap:12px;padding-block:32px}
.footer{align-items:start;gap:24px}
.footer p{margin:0;text-align:right;max-width:13em}
.result{padding-block:40px}
.summary>div{flex-wrap:wrap}
.search-form{grid-template-columns:1fr}
.search-form button{grid-column:auto}
.result .button{width:100%;margin-right:0}
#turnstile-widget{min-width:0}
.booking-facts{gap:20px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
button:active,.button:active{transform:none}
}
