:root { color-scheme: dark; --ink:#f7f1ea; --muted:#b8ada1; --bg:#15110e; --card:#211b16; --line:rgba(255,255,255,.12); --accent:#e57c52; --accent-soft:rgba(229,124,82,.14); --ok:#a8d7a3; }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; background:radial-gradient(900px 500px at 20% -15%,#392015 0%,transparent 65%),var(--bg); color:var(--ink); font-family:"DM Sans",system-ui,sans-serif; }
.booking-shell { width:min(100%,1120px); margin:0 auto; padding:28px 20px 64px; }
.booking-brand { display:flex; align-items:center; gap:12px; color:var(--muted); font-size:.8rem; font-weight:600; letter-spacing:.03em; }
.booking-brand img { width:139px; height:30px; object-fit:contain; object-position:left center; }
.booking-card { display:grid; grid-template-columns:minmax(250px,.72fr) minmax(0,1.28fr); gap:0; margin-top:28px; overflow:hidden; border:1px solid var(--line); border-radius:24px; background:rgba(33,27,22,.9); box-shadow:0 22px 70px rgba(0,0,0,.35); }
.booking-intro { padding:42px 36px; background:linear-gradient(145deg,rgba(229,124,82,.2),transparent 52%),#1a1511; border-right:1px solid var(--line); }
.eyebrow { margin:0 0 10px; color:var(--accent); font-size:.72rem; letter-spacing:.12em; font-weight:800; }
h1 { font-size:clamp(2rem,4vw,3rem); line-height:1.04; letter-spacing:-.05em; margin:0 0 17px; } h2 { margin:0; font-size:1.02rem; } p { line-height:1.55; }
.booking-intro > p:not(.eyebrow):not(.booking-safe) { color:var(--muted); margin:0; }
.booking-details { display:grid; gap:12px; margin:38px 0 0; padding-top:24px; border-top:1px solid var(--line); }.booking-details div { display:flex; justify-content:space-between; gap:12px; font-size:.8rem; }.booking-details dt { color:var(--muted); }.booking-details dd { margin:0; font-weight:700; text-align:right; }.booking-details select { max-width:205px; border:1px solid var(--line); border-radius:8px; padding:6px 26px 6px 8px; color:var(--ink); background:#15110e; font:inherit; font-size:.75rem; font-weight:700; }.booking-details small { display:block; max-width:205px; margin-top:5px; color:var(--muted); font-size:.67rem; font-weight:400; line-height:1.35; }
.booking-safe { margin:30px 0 0; padding:11px 12px; border:1px solid rgba(229,124,82,.45); border-radius:11px; background:var(--accent-soft); color:#ffd3c2; font-size:.8rem; }
.booking-flow { padding:30px 34px; }.booking-step { display:grid; grid-template-columns:28px minmax(0,1fr); gap:13px; padding:2px 0 28px; margin-bottom:27px; border-bottom:1px solid var(--line); }.booking-step:last-child { margin-bottom:0; padding-bottom:0; border-bottom:0; }.step-label { display:grid; width:28px; height:28px; place-items:center; border-radius:50%; color:var(--accent); background:var(--accent-soft); font-size:.78rem; font-weight:800; }.booking-step-main { min-width:0; }.helper { margin:5px 0 14px; color:var(--muted); font-size:.83rem; }
.offer-options { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:13px; }.offer-option { text-align:left; border:1px solid var(--line); border-radius:12px; padding:12px; background:transparent; color:var(--ink); font:inherit; cursor:pointer; }.offer-option strong,.offer-option span { display:block; }.offer-option strong { font-size:.86rem; }.offer-option span { margin-top:3px; color:var(--muted); font-size:.72rem; line-height:1.35; }.offer-option.selected { border-color:var(--accent); background:var(--accent-soft); }
.month-calendar { margin-top:15px; border:1px solid var(--line); border-radius:14px; padding:12px; background:rgba(21,17,14,.45); }.calendar-toolbar { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:13px; }.calendar-month { font-size:.88rem; font-weight:800; }.calendar-nav { display:grid; place-items:center; width:28px; height:28px; border:1px solid var(--line); border-radius:8px; background:transparent; color:var(--ink); font:inherit; cursor:pointer; }.calendar-nav:hover:not(:disabled) { border-color:var(--accent); color:#fff; }.calendar-nav:disabled { opacity:.28; cursor:not-allowed; }.calendar-weekdays,.calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:5px; }.calendar-weekdays { margin-bottom:5px; }.calendar-weekday { color:var(--muted); font-size:.64rem; font-weight:800; text-align:center; }.calendar-day { position:relative; display:grid; place-items:center; min-height:38px; border:1px solid transparent; border-radius:9px; background:transparent; color:var(--muted); font:inherit; font-size:.78rem; cursor:default; }.calendar-day.empty { pointer-events:none; }.calendar-day.available { border-color:var(--line); color:var(--ink); cursor:pointer; }.calendar-day.available:hover,.calendar-day.selected { border-color:var(--accent); background:var(--accent-soft); color:#fff; }.calendar-day.today { box-shadow:inset 0 0 0 1px rgba(229,124,82,.48); }.availability-dot { position:absolute; bottom:5px; width:4px; height:4px; border-radius:50%; background:var(--accent); }.calendar-day.selected .availability-dot { background:#fff; }.booking-times-panel { min-height:0; margin-top:12px; }.booking-times-heading { margin:0 0 8px; color:var(--muted); font-size:.78rem; font-weight:700; }.booking-times { display:flex; flex-wrap:wrap; gap:7px; }.booking-slot { border:1px solid var(--line); border-radius:9px; padding:7px 10px; background:transparent; color:var(--ink); font:inherit; font-size:.8rem; cursor:pointer; }.booking-slot:hover,.booking-slot.selected { border-color:var(--accent); background:var(--accent-soft); color:#fff; }
form { display:grid; gap:12px; margin-top:13px; } label { display:grid; gap:6px; color:var(--muted); font-size:.78rem; font-weight:600; } label span { font-weight:400; }.field-row { display:grid; grid-template-columns:1fr 1fr; gap:10px; } input,textarea { width:100%; border:1px solid var(--line); border-radius:10px; padding:10px 11px; color:var(--ink); background:#15110e; font:inherit; } input:focus,textarea:focus { outline:2px solid rgba(229,124,82,.55); outline-offset:1px; } textarea { min-height:84px; resize:vertical; }.booking-honeypot { position:absolute; left:-9999px; }.selected-time,.form-message { min-height:1.5em; margin:0; font-size:.82rem; }.selected-time { color:var(--ok); }.form-message { color:#ffad91; }.form-message.success { color:var(--ok); }.form-message a { color:inherit; font-weight:800; } button[type="submit"] { justify-self:start; border:0; border-radius:10px; padding:11px 16px; background:var(--accent); color:#fff; font:inherit; font-weight:800; cursor:pointer; } button[type="submit"]:disabled { cursor:not-allowed; opacity:.45; }.booking-next-step { margin:0; padding:10px 12px; border-left:2px solid var(--accent); border-radius:0 8px 8px 0; background:rgba(229,124,82,.08); color:var(--muted); font-size:.73rem; line-height:1.45; }.privacy { margin:0; color:var(--muted); font-size:.7rem; }
@media (max-width:760px) { .booking-shell { padding:18px 14px 40px; }.booking-card { grid-template-columns:1fr; margin-top:18px; border-radius:18px; }.booking-intro { padding:28px 22px; border-right:0; border-bottom:1px solid var(--line); }.booking-details { margin-top:24px; }.booking-flow { padding:24px 20px; }.offer-options,.field-row { grid-template-columns:1fr; }.calendar-day { min-height:36px; } }
