.booking-page-v5 { background: var(--ink); color: var(--white); }
.booking-page-v5 .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.booking-topbar { background: rgba(255,255,255,.97); color: var(--ink); }
.booking-nav-shell { display: grid; grid-template-columns: 1fr auto 1fr; }
.booking-nav-shell .language-nav { justify-self: end; }
.booking-back { font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.booking-back:hover { color: var(--coral); }
.booking-intro-v5 { padding: clamp(58px, 8vw, 112px) 0 clamp(38px, 5vw, 66px); background: var(--ink); }
.booking-intro-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(260px, .5fr); gap: clamp(36px, 7vw, 96px); align-items: end; }
.booking-intro-v5 h1 { max-width: 900px; margin: 14px 0 0; font-family: "Bebas Neue", Impact, sans-serif; font-size: clamp(4rem, 9vw, 8.5rem); font-weight: 400; line-height: .88; letter-spacing: -.018em; text-transform: uppercase; }
.booking-intro-v5 h1 em { display: block; color: transparent; font-style: normal; -webkit-text-stroke: 1.5px var(--white); }
.booking-lead { max-width: 710px; margin: 28px 0 0; color: rgba(255,255,255,.72); font-size: clamp(1rem, 1.6vw, 1.18rem); }
.booking-proofs { display: grid; gap: 10px; padding-bottom: 8px; }
.booking-proofs span { position: relative; padding: 15px 18px 15px 46px; border: 1px solid rgba(255,255,255,.16); border-radius: 999px; background: rgba(255,255,255,.06); font-size: .83rem; font-weight: 700; }
.booking-proofs span::before { content: "✓"; position: absolute; left: 18px; color: var(--mint-light); font-weight: 900; }
.booking-widget-area { padding: 0 0 clamp(64px, 8vw, 104px); background: var(--ink); }
.booking-widget-card { position: relative; min-height: 640px; padding: clamp(8px, 2.2vw, 28px); overflow: hidden; border-radius: var(--radius); background: var(--white); box-shadow: 0 28px 90px rgba(0,0,0,.3); }
.booking-loading { position: absolute; z-index: 2; inset: 0; display: grid; place-content: center; justify-items: center; gap: 14px; color: var(--ink); background: var(--white); transition: opacity .25s ease, visibility .25s ease; }
.booking-loading.is-hidden { visibility: hidden; opacity: 0; pointer-events: none; }
.booking-loading.is-error { padding: 30px; text-align: center; }
.booking-spinner { width: 40px; height: 40px; border: 4px solid rgba(17,18,20,.14); border-top-color: var(--coral); border-radius: 50%; animation: booking-spin .8s linear infinite; }
@keyframes booking-spin { to { transform: rotate(360deg); } }
#ESKbookingBox { width: 100%; min-height: 590px; color: var(--ink); }
#ESKbookingBox iframe { width: 100% !important; min-height: 760px; border: 0 !important; }
.booking-fallback { padding: 32px; color: var(--ink); }
.booking-help-v5 { padding: 0 0 clamp(70px, 9vw, 118px); background: var(--ink); }
.booking-help-card-v5 { display: grid; grid-template-columns: 1fr auto; gap: 34px; align-items: center; padding: clamp(30px, 5vw, 62px); border-radius: var(--radius); background: var(--mint); color: var(--ink); }
.booking-help-card-v5 h2 { max-width: 830px; margin: 8px 0 0; font-family: "Bebas Neue", Impact, sans-serif; font-size: clamp(2.7rem, 5.6vw, 5.3rem); font-weight: 400; line-height: .92; text-transform: uppercase; }
.booking-help-card-v5 p:last-child { max-width: 660px; margin: 18px 0 0; }
.booking-footer-v5 { padding: 30px 0; border-top: 1px solid rgba(255,255,255,.12); background: var(--ink); color: rgba(255,255,255,.64); font-size: .78rem; }
.booking-footer-inner { display: flex; justify-content: space-between; align-items: center; gap: 24px; }
.booking-footer-inner p { margin: 0; }
.booking-footer-inner div { display: flex; gap: 22px; align-items: center; }
.booking-footer-inner a:hover, .booking-footer-inner button:hover { color: var(--white); }
.booking-footer-inner button { cursor: pointer; }
.booking-cookie { position: fixed; z-index: 200; right: 18px; bottom: 18px; left: 18px; display: grid; grid-template-columns: 1fr auto; gap: 26px; align-items: center; width: min(820px, calc(100% - 36px)); margin-left: auto; padding: 22px; border: 1px solid rgba(255,255,255,.14); border-radius: 20px; background: #17191d; box-shadow: 0 22px 70px rgba(0,0,0,.36); }
.booking-cookie[hidden] { display: none; }
.booking-cookie strong { font-size: 1rem; }
.booking-cookie p { margin: 5px 0 4px; color: rgba(255,255,255,.68); font-size: .82rem; }
.booking-cookie a { color: var(--mint-light); font-size: .78rem; text-decoration: underline; }
.booking-cookie-actions { display: flex; gap: 8px; }
.booking-cookie-actions button { min-height: 44px; padding: 10px 15px; cursor: pointer; border: 1px solid rgba(255,255,255,.2); border-radius: 999px; font-size: .78rem; font-weight: 800; }
.booking-cookie-actions .accept { border-color: var(--mint); background: var(--mint); color: var(--ink); }

@media (max-width: 800px) {
  .booking-nav-shell { grid-template-columns: 1fr auto; }
  .booking-back { display: none; }
  .booking-intro-grid { grid-template-columns: 1fr; gap: 28px; }
  .booking-intro-v5 h1 { font-size: clamp(3.5rem, 17vw, 6.4rem); }
  .booking-proofs { grid-template-columns: 1fr; }
  .booking-help-card-v5 { grid-template-columns: 1fr; }
  .booking-help-card-v5 .button { width: 100%; }
  .booking-footer-inner, .booking-footer-inner div { align-items: flex-start; flex-direction: column; }
  .booking-cookie { grid-template-columns: 1fr; gap: 16px; }
  .booking-cookie-actions { display: grid; grid-template-columns: 1fr 1fr; }
}

@media (max-width: 520px) {
  .booking-page-v5 .shell { width: min(calc(100% - 24px), var(--max)); }
  .booking-topbar, .booking-topbar .nav-shell { min-height: 82px; }
  .booking-topbar .brand-surface { width: 102px; height: 66px; }
  .booking-intro-v5 { padding-top: 48px; }
  .booking-intro-v5 h1 { font-size: clamp(3.15rem, 17vw, 5rem); }
  .booking-widget-card { min-height: 680px; padding: 5px; border-radius: 18px; }
  #ESKbookingBox iframe { min-height: 880px; }
  .booking-cookie { right: 10px; bottom: 10px; left: 10px; width: calc(100% - 20px); padding: 18px; }
}
