.header-booking { white-space:nowrap; }
.hero-booking-mobile { display:none; }
.booking-container { max-width:980px; }
.booking-container > h2 { margin-bottom:14px; }
.booking-card { margin-top:28px; padding:44px; border:1px solid var(--line); border-radius:24px; background:#fff; }
.booking-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 24px; }
.booking-field { min-width:0; }
.booking-field--full { grid-column:1/-1; }
.booking-field > label,.booking-field legend { display:block; margin-bottom:10px; font-size:16px; font-weight:600; }
.booking-field input:not([type=checkbox]):not([type=radio]),.booking-field select,.booking-field textarea { display:block; width:100%; min-height:52px; padding:13px 16px; border:1px solid #c7cec3; border-radius:12px; background:#fbfcf8; color:var(--ink); font:400 16px/1.5 var(--site-font); }
.booking-field textarea { resize:vertical; }
.booking-field fieldset { min-width:0; border:0; padding:0; margin:0; }
.booking-field [aria-invalid=true] { outline:2px solid #a33f2f; outline-offset:2px; }
.booking-help { font-size:14px; color:var(--muted); margin:8px 0 0; line-height:1.55; }
.booking-required { color:#8c452a; }
.booking-form .booking-check { display:flex; gap:12px; align-items:flex-start; line-height:1.5; cursor:pointer; }
.booking-form .booking-check input { flex:0 0 20px; width:20px; height:20px; margin:3px 0 0; accent-color:#6d7538; }
.booking-notice { margin:32px 0 24px; padding:20px 24px; border-radius:14px; background:var(--sage); font-size:15px; }
.booking-consent { font-size:14px; }
.booking-submit { margin-top:28px; min-width:220px; }
.booking-submit:disabled { opacity:.65; cursor:wait; }
.booking-alert { border-left:3px solid #a33f2f; padding:12px 18px; background:#fff4f0; margin-bottom:28px; }
.booking-alert p { margin:6px 0; }
.booking-success { padding:24px; border-radius:16px; background:var(--sage); }
.booking-success h2 { font-size:30px; }
.booking-trap { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.page-hero .button[href="#booking-form"] { margin-top:30px; }
.mega-menu__top .booking-entry { margin-left:auto; margin-right:24px; }
@media(max-width:1200px) { .has-booking-entry .site-header .main-nav { display:none; } }
@media(max-width:1050px) { .header-booking { display:none; } .hero-booking-mobile { display:inline-flex; } .booking-card { padding:32px; } }
@media(max-width:600px) { .booking-fields { grid-template-columns:1fr; gap:24px; } .booking-field { grid-column:1; } .booking-card { padding:24px 20px; border-radius:18px; } .booking-submit { width:100%; min-width:0; } .booking-notice { padding:18px; } .mega-menu__top { flex-wrap:wrap; gap:16px; } .mega-menu__top .booking-entry { order:3; width:100%; margin:0; font-size:14px; } }
