* { min-width: 0; }
html, body { overflow-x: hidden; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
.button, .tiny, .about-link, .text-button { min-height: 44px; }
.button:focus-visible, .tiny:focus-visible, .about-link:focus-visible, .text-button:focus-visible, .close:focus-visible, input:focus-visible { outline: 3px solid #ef3459; outline-offset: 3px; }
.hero { min-height: max(680px, 100svh); }
.hero-caption p, .manifesto-copy, .night-copy > p:last-child, .limits > p:last-child { font-family: Arial, sans-serif; letter-spacing: .01em; }
.booking-dialog { width: min(94vw, 680px); max-height: min(90dvh, 920px); padding: clamp(1.35rem, 3.5vw, 2.75rem); border: 2px solid var(--black); box-shadow: 10px 10px 0 var(--lime); }
.booking-dialog h2 { max-width: 9ch; font-size: clamp(2.65rem, 5.6vw, 4.5rem); line-height: .92; letter-spacing: -.11em; }
.form-wrap > p:not(.label), .success p { font-family: Arial, sans-serif; font-size: 1rem; line-height: 1.5; }
.booking-form { gap: 1.2rem; }
.booking-form > label, .booking-form legend { font-size: .72rem; letter-spacing: -.04em; }
.booking-form input:not([type=radio]):not([type=checkbox]) { min-height: 58px; font-family: Arial, sans-serif; font-size: 1.05rem; border: 2px solid #111; }
.times { gap: .7rem; }
.times span { min-height: 48px; padding: .85rem .5rem; font-size: .68rem; display: grid; place-items: center; }
.notice { padding: 1rem; font-family: Arial, sans-serif; font-size: .86rem; line-height: 1.45; }
.consent { display: flex; align-items: flex-start; font-family: Arial, sans-serif !important; font-size: .84rem !important; line-height: 1.45 !important; }
.consent input { margin-top: .2rem; min-width: 18px; min-height: 18px; }
.booking-form .button { width: 100%; justify-content: center; font-size: .76rem; }
.form-status { min-height: 2.8em; font-family: Arial, sans-serif; font-size: .88rem; line-height: 1.45; }
.about-dialog { width: min(94vw, 1100px); max-height: 90dvh; }
.about-layout > div { padding: clamp(1.35rem, 4vw, 4rem); }
.about-layout > div > p:not(.label), .about-sections p { font-family: Arial, sans-serif; line-height: 1.6; }
.about-dialog h2 { line-height: .9; }
.close { display: grid; place-items: center; width: 44px; height: 44px; top: .45rem; right: .55rem; font-size: 2rem; }
.analytics-consent { font-family: Arial, sans-serif; font-size: .85rem; line-height: 1.45; }

@media (min-width: 1100px) and (max-width: 1350px) {
  .hero h1 { font-size: clamp(5.5rem, 8.7vw, 8rem); left: 6%; }
  .hero-kicker { left: 8%; font-size: clamp(2rem, 3.7vw, 3.7rem); }
  .hero-woman { width: min(90vw, 1120px); transform: translateX(-21%); }
}

@media (max-width: 720px) {
  .hero { min-height: 760px; }
  .hero h1 { font-size: clamp(3.75rem, 16vw, 5.6rem); line-height: .72; }
  .hero h1 span { font-size: clamp(1.8rem, 8vw, 3.2rem); }
  .hero-kicker { font-size: clamp(1.85rem, 8vw, 2.8rem); }
  .hero-caption p { font-size: 1rem; }
  .hero-caption .button { width: 100%; margin-top: .4rem; }
  .booking-dialog { width: 100vw; max-height: 100dvh; min-height: 100dvh; border: 0; box-shadow: none; padding: 5rem 1.25rem 2rem; }
  .booking-dialog h2 { font-size: clamp(2.75rem, 13vw, 4.15rem); }
  .times { grid-template-columns: 1fr; }
  .about-dialog { width: 100vw; max-height: 100dvh; border: 0; }
  .about-dialog h2 { font-size: clamp(2.7rem, 13vw, 4.3rem); }
  .about-main-photo { height: 330px; }
  .about-video-placeholder { min-height: 190px; }
  .analytics-consent { bottom: 0; left: 0; right: 0; max-width: none; box-shadow: none; border-top: 2px solid var(--black); }
}

@media (max-width: 390px) {
  .booking-dialog { padding-inline: 1rem; }
  .booking-dialog h2 { font-size: 2.65rem; }
  .hero { min-height: 720px; }
  .hero-woman { width: 150%; left: 58%; }
}

@media (min-width: 1600px) {
  .hero-woman { width: min(74vw, 1280px); transform: translateX(-17%); }
  .hero h1 { left: 10%; font-size: min(9.3vw, 10.5rem); }
  .hero-kicker { left: 11%; }
}
