@font-face { font-family: "Cheddar Gothic Sans"; src: url("Font/CheddarGothicSans.woff2?v=1.0.2") format("woff2"); font-style:normal; font-weight:400; font-display:swap; }
:root { --night:#08150f; --raised:#102018; --cream:#fcf7f1; --olive:#979b54; --line:#536058; --muted:#b3b9b1; --danger:#d18b7b; --headline:"Cheddar Gothic Sans","Oswald",sans-serif; --copy:"Asap Condensed",Arial,sans-serif; --display:"Oswald",sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--night); color:var(--cream); font:400 18px/1.45 var(--copy); }
body a { color:var(--olive); }
body::before { content:""; position:fixed; inset:0; z-index:10; pointer-events:none; opacity:.14; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.16'/%3E%3C/svg%3E"); }
.booking-site-header { position:absolute; z-index:10; inset:0 0 auto; width:min(calc(100% - 48px),1800px); height:96px; margin-inline:auto; padding:0; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; }
.booking-site-home { place-self:start; display:grid; place-items:center; width:128px; height:156px; margin-top:12px; }
.booking-site-home img { display:block; width:100%; height:100%; object-fit:contain; }
.booking-site-nav { display:flex; align-items:center; gap:clamp(22px,3vw,48px); }
.booking-site-nav a,.booking-mobile-nav a,.booking-site-action { color:var(--cream); font:400 22px/1 var(--headline); letter-spacing:.04em; text-decoration:none; text-transform:lowercase; }
.booking-site-nav a:hover,.booking-mobile-nav a:hover { color:var(--olive); }
.booking-site-action { justify-self:end; padding:11px 16px; border:1px solid rgba(252,247,241,.65); font-size:17px; }
.booking-site-action:hover { border-color:var(--olive); color:var(--olive); }
.booking-mobile-nav { display:none; }
.booking-hero { width:min(100%,1800px); min-height:530px; margin-inline:auto; padding:180px clamp(24px,3.5vw,64px) 90px; display:grid; grid-template-columns:1.25fr .75fr; align-content:end; gap:26px 70px; border-bottom:1px solid var(--line); background:linear-gradient(130deg,var(--night) 20%,#0e2118e0),url("assets/subpage-hero-background.jpg") center 34%/cover; }
.hero-copy { display:contents; }
.hero-copy p,.kicker { grid-column:1/-1; margin:0 0 12px; color:var(--olive); font-size:12px; line-height:1; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.hero-copy h1 { margin:0; font:400 clamp(88px,12vw,190px)/.88 var(--headline); text-transform:lowercase; }
.hero-copy > div { max-width:560px; align-self:end; color:var(--muted); font-size:18px; line-height:1.55; }
.booking-section { width:min(calc(100% - 48px),1800px); margin:0 auto; padding:0 0 120px; }
.booking-intro { display:block; padding:52px 0 57px; border-bottom:1px solid var(--olive); }
.booking-intro h2 { margin:0; color:var(--olive); font:400 clamp(48px,4.1vw,78px)/.9 var(--headline); text-transform:lowercase; white-space:nowrap; }
.booking-form { padding-top:57px; }
.booking-form fieldset { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:23px 30px; width:100%; min-width:0; margin:0 0 48px; padding:0 0 48px; border:0; border-bottom:1px solid var(--line); }
.booking-form legend { width:100%; margin-bottom:28px; padding:0; color:var(--cream); font:400 34px/1 var(--headline); text-transform:lowercase; }
.booking-form label { display:grid; min-width:0; min-inline-size:0; max-width:100%; overflow:hidden; gap:8px; color:var(--olive); font:400 12px/1 var(--display); letter-spacing:.1em; text-transform:uppercase; }
.booking-form .wide { grid-column:1/-1; }
.booking-form input,.booking-form select,.booking-form textarea { display:block; width:100%; inline-size:100%; max-width:100%; min-width:0; min-inline-size:0; min-height:51px; padding:12px 14px; border:1px solid var(--line); border-radius:0; outline:0; background:rgba(16,32,24,.45); color:var(--cream); font:400 17px/1.35 var(--copy); text-transform:none; }
.booking-form input[type="date"],.booking-form input[type="time"] { height:51px; min-height:51px; -webkit-appearance:none; appearance:none; color-scheme:dark; }
.booking-form input[type="date"]::-webkit-date-and-time-value,.booking-form input[type="time"]::-webkit-date-and-time-value { min-width:0; margin:0; text-align:left; }
.booking-form textarea { resize:vertical; }
.booking-form input:focus,.booking-form select:focus,.booking-form textarea:focus { border-color:var(--olive); }
.booking-form select option { background:var(--night); }
.performance-planner { width:100%; max-width:100%; min-width:0; overflow:hidden; margin:5px 0 8px; padding:24px; border:1px solid var(--line); background:rgba(151,155,84,.055); }
.performance-heading { display:flex; align-items:baseline; justify-content:space-between; gap:22px; margin-bottom:21px; }
.performance-heading strong { color:var(--cream); font:400 25px/1 var(--headline); letter-spacing:.025em; text-transform:lowercase; }
.performance-heading span { color:var(--muted); font-size:14px; font-weight:300; }
.performance-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); min-width:0; gap:18px; }
.performance-grid .duration-field { grid-column:span 2; }
.performance-grid p { grid-column:1/-1; margin:0; color:var(--muted); font-size:14px; font-weight:300; }
.performance-grid input[readonly] { border-color:var(--olive); background:rgba(151,155,84,.12); color:var(--cream); cursor:not-allowed; }
.form-final { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); min-width:0; gap:25px 30px; }
.form-final .privacy,.form-final button,.form-message { grid-column:1/-1; }
.privacy { display:flex!important; grid-template-columns:22px 1fr!important; align-items:start; color:var(--muted)!important; font:300 15px/1.4 var(--copy)!important; letter-spacing:0!important; text-transform:none!important; }
.privacy input { width:18px; min-height:18px; margin:1px 0 0; accent-color:var(--olive); }
.form-final button { min-height:58px; border:1px solid var(--olive); background:var(--olive); color:var(--night); font:500 16px/1 var(--display); letter-spacing:.13em; text-transform:uppercase; cursor:pointer; transition:background-color .18s,border-color .18s,color .18s,opacity .18s; }
.form-final button:hover:not(:disabled) { background:var(--cream); border-color:var(--cream); }
.form-final button:disabled { border-color:var(--line); background:rgba(83,96,88,.28); color:var(--muted); opacity:.55; cursor:not-allowed; }
.form-message { padding:17px 20px; border-left:3px solid; }
.form-message ul { margin:8px 0 0; }
.form-message.error { border-color:var(--danger); background:rgba(209,139,123,.09); color:var(--danger); }
.form-message.success { border-color:var(--olive); background:rgba(151,155,84,.1); color:var(--cream); }
.bot-field { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
footer { display:flex; justify-content:space-between; gap:25px; padding:26px clamp(22px,5vw,76px); border-top:1px solid var(--line); color:var(--muted); font-size:14px; }
footer a { color:var(--olive); text-decoration:none; }
footer a:hover { color:var(--olive); }
.booking-gate { position:relative; display:grid; place-items:center; min-height:100vh; padding:40px 20px; overflow:hidden; }
.booking-gate > picture,.booking-gate > picture::after { position:absolute; inset:0; }
.booking-gate > picture::after { content:""; background:rgba(8,21,15,.7); }
.booking-gate > picture img { width:100%; height:100%; object-fit:cover; }
.gate-panel { position:relative; z-index:1; width:min(100%,520px); padding:38px; border:1px solid rgba(252,247,241,.35); background:rgba(8,21,15,.92); backdrop-filter:blur(8px); }
.gate-panel > img { display:block; width:min(100%,260px); height:auto; margin:0 auto 34px; }
.gate-panel > p { margin:0 0 9px; color:var(--olive); font:500 12px/1 var(--display); letter-spacing:.15em; text-transform:uppercase; }
.gate-panel h1 { margin:0; font:400 76px/.8 var(--headline); text-transform:lowercase; }
.gate-panel > span { display:block; margin:22px 0 28px; color:var(--muted); font-weight:300; }
.gate-panel form { display:grid; gap:10px; padding-top:24px; border-top:1px solid var(--line); }
.gate-panel label { color:var(--olive); font:400 12px/1 var(--display); letter-spacing:.1em; text-transform:uppercase; }
.gate-panel input { width:100%; min-height:50px; padding:0 13px; border:1px solid var(--line); outline:0; background:transparent; color:var(--cream); font:400 17px/1 var(--copy); }
.gate-panel input:focus { border-color:var(--olive); }
.gate-password-field { position:relative; display:block; }
.gate-password-field input { padding-right:54px; }
.gate-password-field button { position:absolute; top:50%; right:6px; width:40px; height:40px; padding:8px; border:0; background:transparent; color:var(--muted); cursor:pointer; transform:translateY(-50%); }
.gate-password-field button:hover,.gate-password-field button[aria-pressed="true"] { color:var(--olive); }
.gate-password-field svg { width:100%; fill:none; stroke:currentColor; stroke-width:1.5; }
.gate-submit { min-height:52px; margin-top:8px; border:1px solid var(--olive); background:var(--olive); color:var(--night); font:500 14px/1 var(--display); letter-spacing:.1em; text-transform:uppercase; cursor:pointer; }
.gate-submit:hover { border-color:var(--cream); background:var(--cream); }
.gate-panel > a { display:inline-block; margin-top:22px; color:var(--muted); font-size:14px; }
.gate-panel > a:hover { color:var(--olive); }
.gate-error { margin:0 0 18px; padding:12px 14px; border-left:2px solid var(--danger); background:rgba(209,139,123,.09); color:var(--danger); }
@media (max-width:700px) {
  html.headline-font-fallback { --headline:"Oswald",sans-serif; }
  html.headline-font-fallback .hero-copy h1,
  html.headline-font-fallback .booking-intro h2,
  html.headline-font-fallback .booking-form legend,
  html.headline-font-fallback .performance-heading strong,
  html.headline-font-fallback .gate-panel h1 { text-transform:uppercase; }
  .booking-site-header { width:calc(100% - 32px); height:70px; grid-template-columns:1fr auto; padding:0; }
  .booking-site-home { width:88px; height:116px; margin-top:8px; }
  .booking-site-nav,.booking-site-action { display:none; }
  .booking-mobile-nav { position:relative; z-index:9; display:block; justify-self:end; }
  .booking-mobile-nav summary { display:block; width:46px; height:46px; padding:9px 5px; cursor:pointer; list-style:none; }
  .booking-mobile-nav summary::-webkit-details-marker { display:none; }
  .booking-mobile-nav summary span { display:block; width:30px; height:2px; margin:6px auto; background:var(--cream); }
  .booking-mobile-nav nav { position:fixed; inset:70px -16px auto; display:flex; flex-direction:column; gap:22px; padding:32px 24px 38px; background:rgba(3,12,8,.98); border-top:1px solid var(--line); }
  .booking-mobile-nav nav a { font-size:38px; }
  .booking-mobile-nav nav .mobile-band-login { margin-top:8px; padding-top:24px; border-top:1px solid var(--line); color:var(--olive); }
  .booking-hero { width:100%; min-height:620px; padding-top:130px; grid-template-columns:1fr; }
  .hero-copy > div { font-size:16px; }
  .hero-copy > div br { display:none; }
  .booking-section { width:calc(100% - 32px); padding:36px 0 80px; }
  .booking-intro { padding:12px 0 34px; }
  .booking-intro h2 { font-size:clamp(34px,9.6vw,44px); white-space:normal; }
  .booking-form { padding-top:35px; }
  .booking-form fieldset,.form-final { display:block; }
  .booking-form fieldset > label,.form-final > label { margin-bottom:19px; }
  .booking-form .wide,.form-final .privacy,.form-final button,.form-message { grid-column:auto; }
  .form-final .privacy,.form-final button,.form-message { width:100%; margin-top:19px; }
  .performance-planner { padding:19px 15px; }
  .performance-heading { display:block; }
  .performance-heading span { display:block; margin-top:8px; }
  .performance-grid { grid-template-columns:1fr 1fr; gap:16px 12px; }
  .performance-grid .duration-field,.performance-grid p { grid-column:1/-1; }
  footer { flex-wrap:wrap; }
  .booking-gate { padding:15px; }
  .gate-panel { padding:27px 22px; }
  .gate-panel > img { width:210px; margin-bottom:28px; }
  .gate-panel h1 { font-size:64px; }
}
@media (max-width:460px) {
  .performance-grid { display:block; }
  .performance-grid label { width:100%; margin-bottom:16px; }
  .performance-grid .duration-field,.performance-grid p { grid-column:auto; }
}
