:root {
  --bg: #0d0b0a; --surface: #151515; --surface-2: #1b1a19; --gold: #d9ad55;
  --cream: #f5f3ef; --muted: #a6a29d; --line: rgba(255,255,255,.1); --danger: #efaa99;
}
* { box-sizing: border-box; }
html { background: var(--bg); }
body { margin: 0; color: var(--cream); background: radial-gradient(circle at 89% 8%,rgba(128,91,37,.13),transparent 28%),var(--bg); font: 14px "DM Sans",Arial,sans-serif; min-height: 100vh; }
button,input,select { font: inherit; } button { cursor: pointer; } a { color: inherit; text-decoration: none; }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.booking-header { height:78px; width:min(1220px,92vw); margin:auto; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; }
.brand { display:flex; gap:9px; align-items:center; font-weight:600; font-size:14px; letter-spacing:.02em; }
.brand-mark { font-size:23px; color:var(--gold); }
.brand small { display:block; color:var(--gold); font:7px "DM Mono",monospace; letter-spacing:.18em; margin-top:5px; }
.quiet-link,.text-action { background:none; border:0; color:var(--muted); font:10px "DM Mono",monospace; letter-spacing:.06em; text-transform:uppercase; }
.quiet-link:hover,.text-action:hover { color:var(--gold); }
.booking-shell { width:min(1220px,92vw); margin:auto; padding:72px 0 90px; }
.booking-intro { text-align:center; max-width:530px; margin:0 auto 45px; }
.eyebrow { display:flex; align-items:center; gap:9px; color:var(--gold); font:500 9px "DM Mono",monospace; letter-spacing:.25em; text-transform:uppercase; margin:0 0 13px; }
.booking-intro .eyebrow { justify-content:center; }
.eyebrow span { height:1px; width:25px; background:rgba(217,173,85,.6); }
h1,h2 { font:400 52px/.98 Italiana,Georgia,serif; letter-spacing:-.025em; margin:0; }
h1 em,h2 em { color:var(--gold); font-style:normal; }
.booking-intro>p:last-child { max-width:440px; margin:14px auto 0; color:var(--muted); line-height:1.6; }
.booking-layout { display:grid; grid-template-columns:420px 1fr; align-items:start; background:rgba(255,255,255,.012); border:1px solid var(--line); }
.booking-summary-panel { padding:32px; border-right:1px solid var(--line); background:linear-gradient(160deg,rgba(255,255,255,.035),transparent 36%),var(--surface); }
.step-label { color:var(--gold); font:500 9px "DM Mono",monospace; text-transform:uppercase; letter-spacing:.18em; margin-bottom:14px; }
.step-label span { color:#776247; margin-right:7px; }
.package-summary { min-height:87px; border-bottom:1px solid var(--line); padding-bottom:17px; }
.package-summary h3 { font:400 30px/1 Italiana,Georgia,serif; margin:0 0 5px; }
.package-summary p { margin:0; color:var(--muted); font-size:11px; line-height:1.5; }
.package-summary strong { display:block; margin-top:10px; color:var(--gold); font-size:17px; }
.text-action { padding:14px 0 2px; color:var(--gold); }.text-action span { margin-left:4px; }
.form-section { padding:25px 0; border-bottom:1px solid var(--line); }.form-section .step-label { margin-bottom:11px; }
.variant-options { display:grid; gap:8px; }
.variant-option { width:100%; display:flex; justify-content:space-between; align-items:center; gap:12px; border:1px solid var(--line); padding:11px 12px; color:var(--cream); background:#111; cursor:pointer; text-align:left; }
.variant-option:hover,.variant-option.is-selected { border-color:var(--gold); background:rgba(217,173,85,.08); }
.variant-option b,.variant-option small { display:block; }.variant-option b { font-size:11px; }.variant-option small { color:var(--muted); font-size:9px; margin-top:3px; }.variant-option strong { color:var(--gold); font-size:11px; white-space:nowrap; }
select,input { width:100%; min-height:44px; border:1px solid var(--line); background:#10100f; color:var(--cream); outline:none; padding:0 12px; border-radius:0; }
select:focus,input:focus { border-color:var(--gold); box-shadow:0 0 0 3px rgba(217,173,85,.09); }
.field-note { font-size:10px; color:var(--muted); line-height:1.5; margin:8px 0 0; }
.fields-grid { display:grid; grid-template-columns:1fr 1fr; gap:13px; }.field { min-width:0; }.field.full { grid-column:1/-1; }
.field label { display:block; color:#dedbd6; font-size:10px; margin-bottom:7px; }.field label small { color:var(--muted); font-weight:400; }
.phone-field { display:flex; align-items:center; background:#10100f; border:1px solid var(--line); }.phone-field:focus-within { border-color:var(--gold); box-shadow:0 0 0 3px rgba(217,173,85,.09); }.phone-field span { padding-left:12px; color:var(--gold); font-size:11px; }.phone-field input { border:0; box-shadow:none!important; padding-left:7px; }
.check-row { display:flex; align-items:flex-start; gap:9px; color:#ddd9d2; font-size:11px; line-height:1.45; cursor:pointer; }.check-row input { accent-color:var(--gold); width:15px; min-height:auto; margin:1px 0 0; }.inline-link { background:none; color:var(--gold); border:0; padding:0; text-decoration:underline; font-size:inherit; }
.payment-summary { padding:24px 0 18px; border-bottom:1px solid var(--line); display:grid; gap:8px; color:var(--muted); font-size:11px; }.payment-summary div { display:flex; justify-content:space-between; }.payment-summary strong { color:var(--cream); font-size:13px; }.payment-summary .today { color:var(--gold); font-weight:600; }
.form-message { min-height:18px; margin:13px 0 0; color:var(--danger); font-size:11px; line-height:1.45; }
.pay-cta,.secondary-cta { border:0; width:100%; min-height:52px; margin-top:10px; background:var(--gold); color:#1b150c; padding:0 16px; display:flex; align-items:center; justify-content:space-between; gap:12px; font:500 10px "DM Mono",monospace; letter-spacing:.08em; }
.pay-cta:hover,.secondary-cta:hover { background:#e8bd63; }.pay-cta:disabled { cursor:not-allowed; opacity:.46; }.pay-cta strong { font-size:13px; border-left:1px solid rgba(20,15,8,.3); padding-left:14px; }
.secure-note { color:var(--muted); font-size:9px; text-align:center; margin:12px 0 0; }.hold-notice { border:1px solid rgba(217,173,85,.35); background:rgba(217,173,85,.07); color:#ead7a4; padding:10px; margin:12px 0 0; font:10px/1.4 "DM Mono",monospace; }
.availability-panel { padding:36px 39px 41px; min-width:0; }.calendar-head { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; }.calendar-head h2 { font-size:39px; }
.live-pill { border:1px solid rgba(142,183,115,.34); background:rgba(110,159,85,.08); color:#b2ce9f; white-space:nowrap; padding:8px 10px; font:8px "DM Mono",monospace; text-transform:uppercase; letter-spacing:.09em; }.live-pill i { display:inline-block; width:6px; height:6px; border-radius:50%; background:#9cc37e; margin-right:5px; }
.selection-summary { min-height:42px; margin:22px 0 18px; padding:11px 13px; background:rgba(217,173,85,.06); border-left:2px solid var(--gold); color:#d5cbc0; font-size:11px; }
.calendar-wrap { border:1px solid var(--line); background:#11110f; }.calendar-toolbar { height:60px; display:grid; grid-template-columns:56px 1fr 56px; align-items:center; border-bottom:1px solid var(--line); }.calendar-toolbar button { height:100%; border:0; background:transparent; color:var(--gold); font-size:19px; }.calendar-toolbar button:hover:not(:disabled) { background:rgba(217,173,85,.08); }.calendar-toolbar button:disabled { color:#4a4641; cursor:not-allowed; }.calendar-toolbar h3 { text-align:center; margin:0; font-size:13px; font-weight:500; }
.weekday-row,.calendar-grid { display:grid; grid-template-columns:repeat(7,1fr); }.weekday-row { padding:13px 10px 6px; text-align:center; color:#77736d; font:9px "DM Mono",monospace; text-transform:uppercase; }.calendar-grid { padding:5px 10px 14px; gap:5px; }.calendar-blank,.calendar-day { min-height:66px; }
.calendar-day { border:1px solid transparent; background:#181817; color:#827d77; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; padding:4px; font-size:11px; }.calendar-day time { font-weight:600; }.calendar-day small { font:7px "DM Mono",monospace; white-space:nowrap; }.calendar-day.is-available { border-color:rgba(157,190,126,.32); color:var(--cream); cursor:pointer; }.calendar-day.is-available small { color:#a7c98e; }.calendar-day.is-available:hover { border-color:var(--cream); background:var(--cream); color:#1c150b; }.calendar-day.is-available:hover small { color:#4f6241; }.calendar-day.is-selected { border-color:var(--gold); background:var(--gold); color:#1c150b; }.calendar-day.is-selected small { color:#463314; }.calendar-day.is-low small { color:#e0c473; }.calendar-day:disabled { cursor:not-allowed; opacity:.5; }.calendar-loading { grid-column:1/-1; padding:35px; text-align:center; color:var(--muted); }
.time-section { padding-top:29px; }.time-heading { display:flex; align-items:end; justify-content:space-between; gap:12px; margin-bottom:12px; }.time-heading .eyebrow { margin-bottom:7px; }.time-heading h3 { font:400 24px Italiana,Georgia,serif; margin:0; }.time-heading>span { color:var(--muted); font:9px "DM Mono",monospace; }
.time-options { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }.time-option { border:1px solid var(--line); background:#171716; color:var(--cream); padding:14px; text-align:left; min-height:76px; }.time-option:hover,.time-option.is-selected { border-color:var(--gold); background:rgba(217,173,85,.08); }.time-option b,.time-option small { display:block; }.time-option b { font-size:12px; }.time-option small { color:#a8c88e; font:9px "DM Mono",monospace; margin-top:7px; }.time-empty { border:1px dashed var(--line); padding:20px; color:var(--muted); font-size:11px; grid-column:1/-1; }
.drawer { margin:0 0 0 auto; width:min(540px,100%); height:100dvh; border:0; padding:0; color:var(--cream); background:var(--surface); box-shadow:-30px 0 80px rgba(0,0,0,.55); }.drawer::backdrop { background:rgba(0,0,0,.68); backdrop-filter:blur(4px); }.drawer-content { height:100%; overflow:auto; padding:39px; }.drawer-header { display:flex; justify-content:space-between; gap:18px; border-bottom:1px solid var(--line); padding-bottom:25px; }.drawer h2 { font-size:39px; }.icon-button { width:34px; height:34px; flex:0 0 auto; border:1px solid var(--line); background:none; color:var(--cream); font-size:22px; }.icon-button:hover { border-color:var(--gold); color:var(--gold); }
.package-grid { padding-top:21px; display:grid; gap:9px; }.package-card { background:#111; border:1px solid var(--line); padding:17px; text-align:left; color:var(--cream); }.package-card:hover,.package-card.is-current { border-color:var(--gold); background:rgba(217,173,85,.06); }.package-card .category { display:block; color:var(--gold); font:8px "DM Mono",monospace; text-transform:uppercase; letter-spacing:.12em; }.package-card h3 { font:400 27px Italiana,Georgia,serif; margin:8px 0 5px; }.package-card p { color:var(--muted); font-size:10px; line-height:1.5; margin:0; }.package-card footer { display:flex; justify-content:space-between; align-items:end; margin-top:14px; }.package-card strong { color:var(--gold); font-size:15px; }.package-card small { color:var(--muted); font-size:9px; }
.terms-version { color:var(--muted); font-size:10px; margin:10px 0 0; }.terms-content { color:#d8d3cc; font-size:12px; line-height:1.7; padding:28px 0; }.terms-content h3 { font:500 12px "DM Mono",monospace; color:var(--gold); letter-spacing:.1em; text-transform:uppercase; margin:22px 0 7px; }.terms-content p { margin:0 0 10px; }.secondary-cta { justify-content:center; position:sticky; bottom:0; }.sticky-pay { display:none; }
@media(max-width:850px) { .booking-layout { grid-template-columns:1fr; }.booking-summary-panel { display:contents; }.package-mobile-block { order:1; padding:29px; background:linear-gradient(160deg,rgba(255,255,255,.035),transparent 36%),var(--surface); border-bottom:1px solid var(--line); }.availability-panel { order:2; padding:29px; border-bottom:1px solid var(--line); }.details-mobile-block { order:3; padding:29px; background:linear-gradient(160deg,rgba(255,255,255,.035),transparent 36%),var(--surface); }.sticky-pay { display:flex; position:fixed; z-index:20; bottom:0; left:0; right:0; align-items:center; justify-content:space-between; gap:10px; padding:10px 5%; background:rgba(15,14,13,.96); border-top:1px solid var(--line); backdrop-filter:blur(12px); }.sticky-pay span { font:10px/1.35 "DM Mono",monospace; color:#d8d1c7; }.sticky-pay button { min-height:42px; border:0; background:var(--gold); padding:0 16px; color:#20180d; font:500 9px "DM Mono",monospace; letter-spacing:.06em; }.sticky-pay button:disabled { opacity:.45; }.booking-shell { padding-bottom:90px; } }
@media(max-width:550px) { .booking-header { height:65px; width:90vw; }.brand { font-size:12px; }.brand small { font-size:5px; }.quiet-link { font-size:8px; }.booking-shell { width:100%; padding:40px 0 92px; }.booking-intro { padding:0 7%; margin-bottom:30px; }.booking-intro h1 { font-size:45px; }.booking-layout { border-left:0; border-right:0; }.package-mobile-block,.details-mobile-block,.availability-panel { padding:25px 6%; }.step-label { font-size:10px; }.package-summary h3 { font-size:33px; }.package-summary p,.selection-summary,.field label { font-size:12px; }.field-note,.check-row,.payment-summary,.form-message { font-size:12px; }select,input { font-size:16px; }.fields-grid { grid-template-columns:1fr; }.field.full { grid-column:auto; }.calendar-head { display:block; }.live-pill { display:inline-block; margin-top:15px; }.calendar-toolbar h3 { font-size:14px; }.calendar-grid { gap:2px; padding:4px 5px 9px; }.weekday-row { padding-left:5px; padding-right:5px; }.calendar-blank,.calendar-day { min-height:53px; }.calendar-day { font-size:11px; }.calendar-day small { font-size:7px; }.time-heading>span,.time-option small { font-size:10px; }.time-option b { font-size:13px; }.time-options { grid-template-columns:1fr; }.sticky-pay span,.sticky-pay button { font-size:10px; }.drawer-content { padding:28px 20px; }.drawer h2 { font-size:35px; } }
