:root { --color-ground:#F5F1E8; --color-ground-2:#eae3d6; --color-ground-3:#dbd0c0; --color-paper:#fffdf8; --color-paper-2:#f5f1e8; --color-paper-3:#eee6d9; --color-ink:#1C2932; --color-ink-2:#35444b; --color-muted:#53616a; --color-rule:#c9c0b3; --color-rule-ink:#817a70; --color-field:#243C4B; --color-field-2:#345365; --color-field-3:#496a79; --color-on-field:#fffaf1; --color-on-field-2:#d5e1e3; --color-signal:#F2A65A; --color-signal-2:#d58b43; --color-signal-ink:#1C2932; --color-seal:#9b4f36; --color-on-seal:#fffaf2; --color-focus:#162b3d; --color-focus-field:#fff; }
.booking-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;align-items:end}.booking-form label{display:grid;gap:.4rem;font-weight:700}.booking-form input,.booking-form select{font:inherit;padding:.8rem;border:1px solid var(--color-rule-ink);background:var(--color-paper);color:var(--color-ink);min-width:0}.booking-form button{grid-column:1 / 3;cursor:pointer}.booking-note{grid-column:3 / -1;font-size:.9rem;color:var(--color-muted)}@media(max-width:60rem){.booking-form{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-form button,.booking-note{grid-column:1/-1}}@media(max-width:36rem){.booking-form{grid-template-columns:1fr}.booking-form button,.booking-note{grid-column:1}}
.mobile-menu{display:none}@media(max-width:48rem){.masthead__top{display:flex;align-items:center;justify-content:space-between;gap:1rem}.desktop-nav{display:none!important}.mobile-menu{display:block;position:relative}.mobile-menu summary{cursor:pointer;list-style:none;border:1px solid var(--color-on-field-2);padding:.55rem .7rem;color:var(--color-on-field);font:700 .9rem var(--font-body)}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu nav{position:absolute;z-index:50;right:0;top:calc(100% + .6rem);width:min(16rem,85vw);display:grid;background:var(--color-field);border:1px solid var(--color-on-field-2);box-shadow:0 8px 20px #0004}.mobile-menu nav a{padding:.8rem 1rem;color:var(--color-on-field);text-decoration:none;border-bottom:1px solid #ffffff30}.mobile-menu nav a[aria-current=page]{color:var(--color-signal)}.mobile-menu nav a:focus-visible,.mobile-menu summary:focus-visible{outline:3px solid var(--color-signal);outline-offset:3px}}

@media(max-width:48rem){.masthead__top{width:100%}.mobile-menu{margin-left:auto}.mobile-menu summary{width:44px;height:44px;display:grid;place-items:center;padding:0}.menu-icon{display:grid;gap:5px;width:22px}.menu-icon span{display:block;height:2px;width:100%;background:currentColor}}
@media(max-width:48rem){details.mobile-menu{border:0;padding:0}}

/* Location article links must wrap naturally on narrow screens. */
.link-more { text-wrap: balance; overflow-wrap: anywhere; }

@media(max-width: 40rem){.about-hero .hero__text{grid-column:1 / -1 !important}}
/* Booking form: one aligned row on wide screens, compact in article sidebars. */
.booking-section{background:var(--color-ground-2)}
.booking-section--wide{padding-block:clamp(2.5rem,5vw,4rem)}
.booking-intro{margin-bottom:1.5rem}
.booking-intro h2{font-size:clamp(1.5rem,2vw,2.25rem);line-height:1.1;margin:0 0 .5rem}
.booking-intro p{font-size:.95rem;line-height:1.5;max-width:60ch;color:var(--color-ink-2)}
.booking-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;align-items:end}
.booking-form label{display:flex;flex-direction:column;gap:.45rem;font-size:.9rem;line-height:1.3;font-weight:700;min-width:0}
.booking-form input:not([type=hidden]),.booking-form select{box-sizing:border-box;width:100%;height:3.25rem;min-width:0;padding:0 .75rem;font:400 1rem var(--font-body);border:1px solid var(--color-rule-ink);border-radius:0;background:var(--color-paper);color:var(--color-ink)}
.booking-form button{grid-column:1 / -1;width:100%;margin:0;cursor:pointer}
.article-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,320px);gap:clamp(2rem,4vw,4rem);align-items:start}
.article-content{min-width:0;grid-column:1;grid-row:1}
.article-content .section > .container,.article-content .article > .container{padding-inline:0}
.article-booking{grid-column:2;grid-row:1;padding-top:var(--space-2xl);min-width:0}
.booking-section--sidebar{padding:1.5rem;border-top:4px solid var(--color-signal)}
.booking-section--sidebar .booking-intro h2{font-size:1.55rem}
.booking-section--sidebar .booking-form{grid-template-columns:minmax(0,1fr)}
.booking-section--sidebar .booking-form button{grid-column:1}
.article-content .section > .container{grid-template-columns:minmax(0,1fr)}
.article-content .section > .container > *{grid-column:1 / -1;margin-top:0}
@media(min-width: 63rem) and (min-height: 850px){.article-booking{position:sticky;top:var(--banner-height)}}
@media(max-width:62rem){.article-layout{grid-template-columns:minmax(0,1fr);gap:0}.article-booking{grid-column:1;grid-row:1;padding-top:var(--space-xl)}.article-content{grid-column:1;grid-row:2}.booking-form{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-section--sidebar .booking-form{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-section--sidebar .booking-form button{grid-column:1 / -1}}
@media(max-width:36rem){.booking-form,.booking-section--sidebar .booking-form{grid-template-columns:minmax(0,1fr)}.booking-form button,.booking-section--sidebar .booking-form button{grid-column:1}}
@media(max-width:40rem){.hero .hero__text[style*="grid-column"]{grid-column:1 / -1 !important}}

@media(min-width:62.01rem){.booking-section--wide .booking-form{grid-template-columns:repeat(4,minmax(0,1fr)) minmax(150px,.8fr)}.booking-section--wide .booking-form button{grid-column:auto;height:3.25rem}}
.route-copy{max-width:76ch;font-family:var(--font-body);font-size:var(--text-md);line-height:1.7;color:var(--color-ink)}
.route-copy > p + p{margin-top:1.15em}.route-copy a{color:var(--color-ink);text-decoration:underline;text-decoration-color:var(--color-signal-2);text-underline-offset:.2em}.route-copy .fact-list{max-width:76ch}.route-copy .faq-group{max-width:76ch}.article-content .route-copy{max-width:70ch}
