h1,h2,h3{text-transform:capitalize}
header #navigation{align-items:center}header #navigation>.nav-cta{margin-left:8px;white-space:nowrap}header>.nav-toggle{flex:0 0 48px;width:48px;height:48px;padding:0;align-items:center;justify-content:center;position:relative;color:var(--ink);z-index:72}header>.logo{position:relative;z-index:72}.menu-toggle-lines{display:block;position:relative;width:24px;height:20px}.menu-toggle-lines:before,.menu-toggle-lines:after{content:'';position:absolute;left:0;width:24px;height:2px;background:currentColor;transition:transform .18s,top .18s;transform-origin:center}.menu-toggle-lines:before{top:5px}.menu-toggle-lines:after{top:13px}.nav-toggle[aria-expanded=true] .menu-toggle-lines:before{top:9px;transform:rotate(45deg)}.nav-toggle[aria-expanded=true] .menu-toggle-lines:after{top:9px;transform:rotate(-45deg)}
@media(max-width:1000px){header{justify-content:space-between}header>.nav-toggle{display:flex;margin-left:auto}header #navigation{display:none;position:fixed;inset:0;top:0;left:0;right:0;bottom:0;width:100%;height:100vh;height:100dvh;max-height:100dvh;z-index:70;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:110px 7% max(40px,env(safe-area-inset-bottom));background:var(--cream);border:0;overflow-y:auto;overscroll-behavior:contain;text-align:center}header #navigation.open{display:flex}header #navigation>a:not(.nav-cta){font-family:"Rita Gothic",sans-serif;font-size:clamp(32px,7vw,54px);font-weight:700;letter-spacing:0;line-height:1.15;text-transform:uppercase;padding:6px 8px}header #navigation>.nav-cta{font-family:"Rita Gothic",sans-serif;font-size:14px;line-height:1.3;text-transform:uppercase;width:min(100%,300px);min-height:50px;margin:12px 0 0;justify-content:center}body.nav-open{overflow:hidden}body.nav-open header{z-index:80}body.nav-open .mobile-book{visibility:hidden}}
@media(max-width:800px){.hero-copy{align-items:center;text-align:center}.hero-copy h1,.hero-copy .intro{width:100%;text-align:center}.hero-copy .actions{width:100%;justify-content:center}.hero .actions>.btn{justify-content:center}.hero-rating{flex-direction:column;justify-content:center;align-items:center;gap:12px;min-width:0;width:auto;text-align:center}.hero-rating>.stars{font-size:32px;letter-spacing:-1px}.hero-rating>span:not(.stars){text-align:center}.hero-rating b{font-size:14px}.hero-rating small{font-size:12px;margin-top:5px}}
@media(max-width:560px){header{padding:12px 6%}.hero-copy h1{font-size:clamp(40px,11vw,61px);line-height:1.02}.hero-copy{padding-top:38px;padding-bottom:34px}.hero-copy .intro{font-size:13px;max-width:340px}.hero .actions{flex-direction:column;align-items:center;gap:14px}.hero .actions>.btn{width:100%;max-width:320px;min-height:47px;justify-content:center}.hero-rating{margin-top:28px}.hero-rating>.stars{font-size:32px}.hero-rating b{font-size:14px}.hero-rating small{font-size:12px}.topline{font-size:10px}.hero-copy .intro br{display:none}}
@media(max-width:1000px) and (max-height:520px){header #navigation{gap:14px;padding-top:85px;padding-bottom:22px}header #navigation>a:not(.nav-cta){font-size:30px;padding:2px}header #navigation>.nav-cta{margin-top:8px;min-height:44px}}
@media(prefers-reduced-motion:reduce){.menu-toggle-lines:before,.menu-toggle-lines:after{transition:none}}
@media(max-width:1000px){header #navigation>.nav-cta{font-size:13px;min-height:47px}}
@media(max-width:560px){header #navigation>.nav-cta{font-size:12px}}

/* Keep the announcement strip above a compact, centred mobile menu. */
@media(max-width:1000px){
  body.nav-open .topline{position:fixed;inset:0 0 auto;z-index:82;width:100%}
  body.nav-open header{position:fixed;top:var(--mobile-banner-height,40px);left:0;right:0;width:100%;z-index:83}
  header #navigation{inset:var(--mobile-nav-offset,113px) 0 0;height:calc(100vh - var(--mobile-nav-offset,113px));height:calc(100dvh - var(--mobile-nav-offset,113px));max-height:calc(100dvh - var(--mobile-nav-offset,113px));gap:0;padding:22px 7% max(30px,env(safe-area-inset-bottom));justify-content:center}
  header #navigation>a:not(.nav-cta){width:min(100%,340px);padding:17px 8px;font-size:clamp(30px,7vw,44px);line-height:1.15;text-align:center}
  header #navigation>a:not(.nav-cta)+a:not(.nav-cta){border-top:1px solid rgba(41,32,27,.16)}
  header #navigation>.nav-cta{margin:20px 0 0;flex-shrink:0}
}
@media(max-width:1000px) and (max-height:520px){
  header #navigation{justify-content:flex-start;padding-top:12px;padding-bottom:20px}
  header #navigation>a:not(.nav-cta){padding:10px 8px;font-size:27px}
  header #navigation>.nav-cta{margin-top:14px}
}
