/* Mobile reading, navigation and booking improvements. */
.menu-toggle,.mobile-booking{display:none}
:focus-visible{outline:3px solid #a46f38;outline-offset:4px}
@media(max-width:750px){
 body{font-size:16px;padding-bottom:calc(84px + env(safe-area-inset-bottom))}
 body:has(#date-inquiry),body:has(#booking-calendar){padding-bottom:0}
 header{padding:18px 5%;gap:16px;align-items:center;justify-content:space-between}
 header .brand{flex:1 1 65%;font-size:25px;max-width:270px}
 header .brand span{font-size:12px;line-height:1.4}
 .js header .menu-toggle{display:flex;gap:9px;align-items:center;justify-content:center;min-height:48px;padding:10px 12px;border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:4px;font-size:15px}
 header nav{width:100%;max-width:none;gap:0;display:grid;grid-template-columns:1fr 1fr;font-size:16px}
 header nav a,header nav a:first-child{display:flex;align-items:center;min-height:48px;padding:12px 8px;border-bottom:1px solid var(--line)}
 .js header nav{display:none}.js header nav.is-open{display:grid}
 .header-photos{padding:0 5%;gap:5px}.header-photos img{height:88px}
 .hero{padding:26px 5% 0}.hero-copy{padding:0 0 26px}
 .hero h1{font-size:clamp(34px,9vw,48px);line-height:1.06;margin:12px 0 20px}
 .eyebrow{font-size:12px;letter-spacing:.12em}
 .offer-price{margin:18px 0}.offer-price strong{font-size:64px}.price-caption{font-size:12px;letter-spacing:.1em}
 .offer-inclusions{font-size:15px;gap:12px;grid-template-columns:1fr;margin:20px 0}
 .hero-copy>p:not(.eyebrow):not(.intro):not(.fine){font-size:16px}
 .button{min-height:50px;justify-content:center;align-items:center;font-size:16px;padding:13px 20px;border-radius:3px}
 .hero-copy>.button{width:100%}.fine{font-size:13px;line-height:1.6}.hero-copy .fine a{display:inline-flex;align-items:center;min-height:44px}
 .hero-photo img{height:auto;max-height:540px;aspect-ratio:4/5;object-fit:cover}
 .hero-photo figcaption{font-size:13px}.hero-bottom{font-size:12px;letter-spacing:.03em;gap:12px;align-items:center;padding:18px 0}.hero-bottom a{padding:12px 0}
 .section{padding:48px 5%}h2,.story-title h1{font-size:clamp(34px,9vw,46px);line-height:1.1}h3{font-size:32px}
 .section-heading>p:last-child,.story-note p,.approach p:not(.eyebrow),details p,.package-summary,.narrative div p{font-size:16px}
 .text-link{display:inline-flex;align-items:center;min-height:48px;font-size:16px;line-height:1.5}
 .home .approach figure{display:none}.home .approach{gap:0}.home .approach .offer-price,.home .approach .offer-inclusions{display:none}
 summary{min-height:48px;font-size:16px;padding:10px 0}details{padding:8px 0}details p{margin-bottom:16px}
 .review-card{padding:22px 0}.review-card figcaption{font-size:14px}.review-card figcaption a{min-height:44px;display:inline-flex;align-items:center}
 .closing{padding:48px 5%}.closing h2{font-size:52px}.closing .fine{font-size:14px}
 footer{padding:36px 5%;font-size:14px;grid-template-columns:1fr}footer small{font-size:12px}footer>div a{display:flex;align-items:center;min-height:44px;margin:0}
 .mobile-booking{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:10;align-items:center;justify-content:space-between;gap:12px;background:var(--paper);border-top:1px solid var(--line);padding:10px 5% calc(10px + env(safe-area-inset-bottom));box-shadow:0 -3px 18px #26332812}
 .mobile-booking>span{font-size:14px;white-space:nowrap}.mobile-booking .button{font-size:15px;padding:12px 16px}
 .story-title{padding-bottom:24px}.inquiry-layout{gap:24px}.inquiry-layout:has(#date-inquiry)>div{order:2}.inquiry-layout form{order:1}.form-grid{margin-top:0}.form-grid label{font-size:16px}.form-grid input{min-height:50px}.form-grid input,.form-grid textarea{font-size:16px}.inquiry-layout form>.button{width:100%}
 dialog{padding:8px;max-width:100vw}dialog button{min-height:48px;min-width:60px;font-size:16px}dialog img{max-width:92vw;max-height:76dvh}
 .gallery-open{white-space:normal!important}.editorial-gallery .photo{min-width:0}
}
@media(max-width:360px){header .brand{font-size:22px}.mobile-booking{padding-left:4%;padding-right:4%}.mobile-booking>span{font-size:12px}.mobile-booking .button{font-size:14px}}
