.svb-booking { --svb-earth:#5c4f45; --svb-terra:#c87961; --svb-terra-dark:#a95f4b; --svb-sage:#9ba993; --svb-oat:#f4f1ea; max-width: 980px; margin-inline: auto; scroll-margin-top: 120px; color: var(--svb-earth); }
.svb-progress { display: grid; grid-template-columns: repeat(3,1fr); margin-bottom: 2rem; border-bottom: 1px solid rgba(92,79,69,.16); }
.svb-progress span { display:flex; padding: 0 0 1rem; align-items:center; gap:.6rem; color:rgba(92,79,69,.55); font-size:.78rem; font-weight:650; }
.svb-progress b { display:grid; width:28px; height:28px; place-items:center; border:1px solid rgba(92,79,69,.22); border-radius:50%; font-size:.7rem; }
.svb-progress span.is-active { color:var(--svb-terra-dark); }
.svb-progress span.is-active b, .svb-progress span.is-complete b { border-color:var(--svb-terra); background:var(--svb-terra); color:#fff; }
.svb-step { animation:svb-in .3s ease both; }
.svb-step[hidden], .svb-success[hidden], .svb-notice[hidden] { display:none; }
.svb-kicker { margin:0 0 .7rem; color:var(--svb-terra-dark); font-size:.72rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase; }
.svb-step h2, .svb-success h2, .svb-cancel-confirm h2 { margin-bottom:1.8rem; font-size:clamp(1.8rem,4vw,3.3rem); }
.svb-service-options { display:grid; grid-template-columns:repeat(2,1fr); gap:.9rem; }
.svb-service-option { position:relative; display:flex; min-height:92px; align-items:center; gap:1rem; border:1px solid rgba(92,79,69,.16); border-radius:1rem; padding:1rem 3rem 1rem 1rem; background:#fff; cursor:pointer; transition:.2s ease; }
.svb-service-option:hover { border-color:var(--svb-sage); transform:translateY(-1px); }
.svb-service-option:has(input:checked) { border-color:var(--svb-terra); background:#fff9f6; box-shadow:0 10px 28px rgba(200,121,97,.12); }
.svb-service-option input { position:absolute; opacity:0; }
.svb-service-option span { display:grid; gap:.2rem; }
.svb-service-option strong { font-family:"Playfair Display",Georgia,serif; font-size:1.15rem; font-weight:500; }
.svb-service-option small { color:rgba(92,79,69,.64); font-size:.76rem; }
.svb-service-option i { position:absolute; right:1rem; display:grid; width:25px; height:25px; place-items:center; border:1px solid rgba(92,79,69,.18); border-radius:50%; color:transparent; font-style:normal; }
.svb-service-option:has(input:checked) i { border-color:var(--svb-terra); background:var(--svb-terra); color:#fff; }
.svb-actions { display:flex; margin-top:2rem; align-items:center; justify-content:space-between; gap:1rem; }
.svb-back { border:0; padding:.75rem 0; background:transparent; color:var(--svb-earth); cursor:pointer; }
.svb-next:disabled, .svb-submit:disabled { cursor:not-allowed; opacity:.55; }
.svb-date-row { display:grid; grid-template-columns:1fr 1fr; align-items:end; gap:1rem; }
.svb-date-row p { margin:0; }
.svb-date-row label, .svb-fields label { display:grid; gap:.4rem; font-size:.83rem; font-weight:650; }
.svb-selected-service { border-radius:.8rem; padding:.9rem 1rem; background:var(--svb-oat); font-family:"Playfair Display",Georgia,serif; font-size:1.1rem; }
.svb-slots { min-height:110px; margin-top:1.3rem; border-top:1px solid rgba(92,79,69,.13); padding-top:1.3rem; }
.svb-loading { color:rgba(92,79,69,.65); }
.svb-slot-label { color:rgba(92,79,69,.65); font-size:.78rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.svb-slot-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:.55rem; }
.svb-slot { min-height:46px; border:1px solid rgba(92,79,69,.18); border-radius:999px; background:#fff; color:var(--svb-earth); cursor:pointer; }
.svb-slot:hover, .svb-slot.is-selected { border-color:var(--svb-terra); background:var(--svb-terra); color:#fff; }
.svb-summary { display:flex; margin-bottom:1.4rem; justify-content:space-between; gap:1rem; border-radius:1rem; padding:1rem 1.2rem; background:var(--svb-oat); }
.svb-summary strong { font-family:"Playfair Display",Georgia,serif; font-size:1.12rem; }
.svb-fields { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.svb-fields p { margin:0; }
.svb-fields .svb-full { grid-column:1/-1; }
.svb-fields small { font-weight:400; }
.svb-checkbox { margin:1rem 0 0; }
.svb-checkbox label { display:flex; align-items:flex-start; gap:.6rem; font-size:.83rem; }
.svb-checkbox input { margin-top:.4rem; }
.svb-hp { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.svb-error, .svb-notice { margin:1rem 0; border-radius:.9rem; padding:1rem 1.15rem; }
.svb-error, .svb-notice--warning { background:#f8dcd3; color:#713e31; }
.svb-notice--success { background:#dfe5dc; color:#3f5142; }
.svb-success { border-radius:1.5rem; padding:clamp(2rem,6vw,4.5rem); background:var(--svb-oat); text-align:center; }
.svb-success > span { display:grid; width:56px; height:56px; margin:0 auto 1.5rem; place-items:center; border-radius:50%; background:var(--svb-sage); color:#fff; font-size:1.4rem; }
.svb-cancel-confirm { border-radius:1.5rem; padding:clamp(1.5rem,5vw,3rem); background:var(--svb-oat); }
.svb-cancel-confirm form { display:flex; align-items:center; flex-wrap:wrap; gap:1rem; }
@keyframes svb-in { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:none} }
@media(max-width:760px){.svb-service-options,.svb-fields,.svb-date-row{grid-template-columns:1fr}.svb-slot-grid{grid-template-columns:repeat(3,1fr)}.svb-progress span{font-size:0}.svb-progress b{font-size:.7rem}.svb-summary{flex-direction:column;gap:.25rem}}
@media(prefers-reduced-motion:reduce){.svb-step{animation:none}.svb-booking *{scroll-behavior:auto!important}}

