:root { --cream:#f5efe4; --paper:#fffaf2; --ink:#241913; --muted:#786c63; --brown:#612f20; --brown-dark:#2a1912; --clay:#934c35; --brass:#bc8a43; --line:rgba(71,43,28,.14); --green:#2e6d4f; --red:#9d4038; }
* { box-sizing:border-box; }
[hidden] { display:none!important; }
html { background:var(--cream); scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--cream); font-family:"DM Sans",system-ui,sans-serif; }
a { color:inherit; text-decoration:none; } button,input,select,textarea { font:inherit; } button { cursor:pointer; } img { max-width:100%; display:block; }
.public-header { position:sticky; z-index:20; top:0; display:flex; min-height:72px; align-items:center; justify-content:space-between; gap:18px; padding:12px max(20px,calc((100vw - 1180px)/2)); border-bottom:1px solid var(--line); background:rgba(245,239,228,.96); }
.wordmark { display:flex; align-items:center; gap:10px; font-family:"Playfair Display",serif; }
.wordmark span { display:grid; width:42px; height:42px; place-items:center; border:1px solid var(--brass); border-radius:8px; color:var(--brown); font-size:13px; }
.public-header nav { display:flex; align-items:center; gap:24px; font-weight:700; }
.public-language { display:flex; align-items:center; gap:3px; padding:3px; border:1px solid var(--line); border-radius:8px; background:#f1e6d6; }
.public-language a { display:grid; min-width:36px; height:34px; place-items:center; border-radius:6px; color:var(--muted); font-size:10px; font-weight:800; }
.public-language a.active { color:#fff; background:var(--brown); }
.header-cta,.button { display:inline-flex; min-height:48px; align-items:center; justify-content:center; padding:0 20px; border:1px solid transparent; border-radius:8px; font-weight:700; }
.header-cta,.button.primary { color:#fff; background:var(--brown); }
.button.secondary { border-color:var(--line); background:var(--paper); }
.button.text { color:var(--brown); background:transparent; }
.danger-text { color:var(--red)!important; }
.booking-hero { padding:72px 20px 44px; color:#fff; background:linear-gradient(rgba(30,17,11,.68),rgba(30,17,11,.78)),url("../images/demo/hero.cd62736c0628.webp") center 44%/cover; text-align:center; }
.kicker { margin:0 0 10px; color:var(--clay); font-size:12px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.booking-hero .kicker { color:#ead3aa; }
.booking-hero h1,.status-shell h1 { margin:0; font-family:"Playfair Display",serif; font-size:clamp(38px,7vw,64px); line-height:1.02; }
.booking-hero > p:last-child { max-width:560px; margin:18px auto 0; color:rgba(255,255,255,.8); line-height:1.6; }
.booking-shell { width:min(920px,calc(100% - 32px)); margin:32px auto 64px; padding:30px; border:1px solid var(--line); border-radius:12px; background:var(--paper); box-shadow:0 18px 50px rgba(60,38,25,.08); scroll-margin-top:90px; }
.steps { display:grid; grid-template-columns:repeat(3,1fr); margin:0 0 34px; padding:0; list-style:none; }
.steps li { position:relative; display:flex; align-items:center; gap:9px; color:#a3978d; font-size:13px; }
.steps li:not(:last-child)::after { content:""; position:absolute; z-index:0; right:12px; left:45px; height:1px; background:var(--line); }
.steps span { z-index:1; display:grid; width:34px; height:34px; place-items:center; border:1px solid var(--line); border-radius:50%; background:var(--paper); font-weight:800; }
.steps li.active { color:var(--brown); }.steps li.active span { color:#fff; border-color:var(--brown); background:var(--brown); }
.form-step { display:none; min-width:0; margin:0; padding:0; border:0; }.form-step.active { display:block; }
.form-step legend { padding:0; font-family:"Playfair Display",serif; font-size:30px; font-weight:700; }.step-note { margin:8px 0 24px; color:var(--muted); }
.field-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }.field { margin-bottom:20px; }.field label { display:block; margin:0 0 8px; font-weight:700; }.field label small { color:var(--muted); font-weight:500; }
.field input,.field select,.field textarea { width:100%; min-height:52px; padding:12px 14px; border:1px solid var(--line); border-radius:8px; outline:0; color:var(--ink); background:#fff; }.field textarea { resize:vertical; }.field input:focus,.field select:focus,.field textarea:focus { border-color:var(--clay); box-shadow:0 0 0 3px rgba(147,76,53,.1); }
.guest-field { max-width:320px; }.guest-counter { display:grid; grid-template-columns:52px 1fr 52px; }.guest-counter input { border-radius:0; text-align:center; }.guest-counter button { border:1px solid var(--line); color:var(--brown); background:#f1e4d2; font-size:24px; }.guest-counter button:first-child { border-radius:8px 0 0 8px; }.guest-counter button:last-child { border-radius:0 8px 8px 0; }
.step-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:12px; }.step-actions.split { justify-content:space-between; }.errorlist { margin:7px 0 0; padding:0; color:var(--red); font-size:13px; list-style:none; }.form-alert { margin:0 0 24px; padding:14px 16px; border-left:4px solid var(--red); border-radius:6px; color:#71342f; background:#f8e6e2; }
.space-grid { display:grid; gap:12px; }.space-card { display:grid; grid-template-columns:150px 1fr auto; align-items:center; min-height:132px; overflow:hidden; padding:0; border:1px solid var(--line); border-radius:10px; color:inherit; background:#fff; text-align:left; }.space-card:hover:not(:disabled),.space-card.selected { border-color:var(--brown); box-shadow:0 0 0 2px rgba(97,47,32,.1); }.space-card.selected .space-select { color:#fff; background:var(--brown); }.space-card.disabled { cursor:not-allowed; opacity:.65; }
.space-photo { width:150px; height:132px; background:#e7dac7; }.space-photo img { width:100%; height:100%; object-fit:cover; }.space-photo i { display:grid; height:100%; place-items:center; color:var(--brown); font-family:"Playfair Display",serif; font-style:normal; font-size:25px; }
.space-copy { display:flex; min-width:0; flex-direction:column; gap:4px; padding:16px; }.space-copy small { color:var(--clay); font-size:10px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }.space-copy b { font-family:"Playfair Display",serif; font-size:21px; }.space-copy span { overflow:hidden; color:var(--muted); font-size:13px; text-overflow:ellipsis; white-space:nowrap; }.space-copy em { margin-top:5px; font-size:12px; font-style:normal; font-weight:700; }.space-copy strong { color:var(--red); font-size:12px; }
.space-select { margin-right:18px; padding:9px 12px; border-radius:6px; color:var(--brown); background:#f0e3d2; font-size:12px; font-weight:800; }.loading-card,.empty-message { padding:30px; border:1px dashed var(--line); border-radius:10px; color:var(--muted); text-align:center; }.empty-message h2 { margin-top:0; color:var(--ink); font-family:"Playfair Display",serif; }.empty-message>div { display:flex; justify-content:center; gap:8px; }
.booking-preview { margin-top:28px; padding:24px; border:1px solid var(--line); border-radius:10px; background:#f1e6d6; }.booking-preview h2 { margin:0 0 20px; font-family:"Playfair Display",serif; font-size:30px; }.booking-preview dl,.status-details { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; overflow:hidden; border:1px solid var(--line); border-radius:8px; background:var(--line); }.booking-preview dl div,.status-details div { padding:13px 15px; background:var(--paper); }.booking-preview dl .wide { grid-column:1/-1; }.booking-preview dt,.status-details dt { color:var(--muted); font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }.booking-preview dd,.status-details dd { margin:4px 0 0; font-weight:700; }.pending-note { margin:18px 0 0; color:var(--muted); font-size:13px; }
.public-footer { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:32px max(20px,calc((100vw - 1180px)/2)); color:#fff; background:var(--brown-dark); }.public-footer div { display:flex; flex-direction:column; gap:4px; }.public-footer span { color:rgba(255,255,255,.6); font-size:12px; }
.status-shell { width:min(700px,calc(100% - 32px)); min-height:550px; margin:54px auto; padding:42px; border:1px solid var(--line); border-radius:12px; background:var(--paper); text-align:center; }.status-shell h1 { font-size:clamp(34px,7vw,54px); }.status-icon { display:grid; width:68px; height:68px; margin:0 auto 20px; place-items:center; border-radius:50%; font-size:32px; font-weight:800; }.status-icon.pending,.status-icon.proposed { color:#875f22; background:#f5e5bd; }.status-icon.accepted { color:var(--green); background:#deeee5; }.status-icon.rejected,.status-icon.cancelled { color:var(--red); background:#f4dfdb; }.status-lead { max-width:520px; margin:16px auto 28px; color:var(--muted); line-height:1.6; }.status-details { text-align:left; }.proposal-card,.reason-box { margin-top:22px; padding:22px; border-radius:10px; background:#f1e6d6; }.proposal-card>p { margin:0 0 5px; color:var(--muted); }.proposal-card>strong { font-family:"Playfair Display",serif; font-size:28px; }.proposal-card blockquote { margin:16px 0; padding-left:14px; border-left:3px solid var(--brass); color:var(--muted); }.status-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:26px; }.status-actions form { margin:0; }.reason-box { text-align:left; }.reason-box p { margin:7px 0 0; }.live-note { margin:28px 0 0; color:var(--muted); font-size:12px; }.live-note span { display:inline-block; width:7px; height:7px; margin-right:5px; border-radius:50%; background:var(--green); animation:pulse 2s infinite; }.status-toast { position:fixed; z-index:30; right:20px; bottom:20px; max-width:360px; padding:15px 18px; border-radius:8px; color:#fff; background:var(--green); box-shadow:0 12px 30px rgba(0,0,0,.2); transform:translateY(120px); transition:.3s; }.status-toast.show { transform:none; }
@keyframes pulse { 50% { opacity:.35; } }
@media (max-width:640px) { .public-header { min-height:64px; }.wordmark b,.public-header nav>a:not(.header-cta) { display:none; }.header-cta { min-height:44px; }.booking-hero { padding:48px 18px 34px; }.booking-shell { width:100%; margin:0; padding:26px 16px 90px; border:0; border-radius:0; box-shadow:none; }.steps b { display:none; }.steps li:not(:last-child)::after { left:39px; }.field-grid { grid-template-columns:1fr; gap:0; }.form-step legend { font-size:27px; }.step-actions { position:sticky; z-index:5; bottom:0; margin:28px -16px -90px; padding:12px 16px calc(12px + env(safe-area-inset-bottom)); border-top:1px solid var(--line); background:rgba(255,250,242,.96); }.step-actions .button.primary { flex:1; }.space-card { grid-template-columns:92px 1fr; }.space-photo { width:92px; height:142px; }.space-copy { padding:12px; }.space-select { grid-column:2; margin:0 12px 12px; text-align:center; }.space-copy span { white-space:normal; }.status-shell { width:100%; min-height:calc(100vh - 64px); margin:0; padding:36px 16px; border:0; border-radius:0; }.status-details,.booking-preview dl { grid-template-columns:1fr 1fr; }.public-footer { flex-direction:column; align-items:flex-start; }.button { min-height:48px; }.status-actions .button { width:100%; }.status-actions form { width:100%; } }
@media (max-width:380px) { .status-details,.booking-preview dl { grid-template-columns:1fr; }.booking-preview dl .wide { grid-column:auto; }.steps { margin-bottom:26px; }.booking-hero h1 { font-size:38px; } }
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; animation:none!important; transition:none!important; } }
@media (min-width:641px) and (max-width:700px) { .wordmark b,.public-header nav>a:not(.header-cta) { display:none; }.public-header nav { margin-left:auto; } }
.status-toast:empty { display:none; }

@media (min-width:720px) {
  body { padding:28px 0; background:radial-gradient(circle at 10% 10%,rgba(190,146,76,.16),transparent 28rem),radial-gradient(circle at 88% 82%,rgba(99,48,31,.1),transparent 30rem),#e8dfd2; }
  .public-app-shell { width:620px; min-height:calc(100vh - 56px); margin:0 auto; overflow:hidden; border-radius:30px; background:var(--cream); box-shadow:0 30px 90px rgba(58,37,23,.2); }
  .public-app-shell .public-header,.public-app-shell .public-footer { padding-right:20px; padding-left:20px; }
  .booking-shell { width:calc(100% - 32px); }
}

@media (max-width:430px) {
  .public-header { gap:8px; padding-right:12px; padding-left:12px; }
  .public-header nav { display:none; }
  .public-language { margin-left:auto; }
}

#submit-button.is-loading { position:relative; padding-left:42px; cursor:wait; opacity:.82; }
#submit-button.is-loading::before { position:absolute; left:16px; width:16px; height:16px; border:2px solid rgba(255,255,255,.45); border-top-color:#fff; border-radius:50%; content:""; animation:submitSpin .7s linear infinite; }
@keyframes submitSpin { to { transform:rotate(360deg); } }
