:root {
  --wine: #401d24;
  --wine-deep: #241014;
  --coral: #ef735b;
  --coral-light: #ff8a72;
  --cream: #f4eddf;
  --paper: #fbf8f0;
  --white: #fffdf8;
  --ink: #251d1a;
  --muted: #75645d;
  --line: rgba(64, 29, 36, .18);
  --soft-line: rgba(64, 29, 36, .1);
  --success: #4f7c60;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; background: var(--wine-deep); }
body { min-height: 100vh; margin: 0; color: var(--ink); background: var(--paper); font-family: Arial, Helvetica, sans-serif; }
body, a { color: inherit; }
a { text-decoration: none; }
img { display: block; width: 100%; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
button, label { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }

.book-header {
  position: relative; z-index: 20; display: flex; align-items: center; justify-content: space-between;
  min-height: 84px; padding: 0 clamp(18px, 5vw, 72px); color: var(--cream); background: var(--wine-deep);
  border-bottom: 1px solid rgba(255,255,255,.14);
}
.book-brand { display: inline-flex; align-items: center; gap: 12px; width: fit-content; }
.brand-mark { display: grid; place-items: center; width: 43px; height: 43px; border: 1px solid currentColor; border-radius: 50%; font: italic 15px Georgia, serif; }
.brand-copy { display: grid; gap: 3px; }
.brand-copy strong { font-size: 12px; letter-spacing: .17em; }
.brand-copy small { font-size: 8px; letter-spacing: .32em; opacity: .72; }
.header-tools, .language-links { display: flex; align-items: center; }
.header-tools { gap: 28px; }
.language-links { gap: 4px; padding: 4px; border: 1px solid rgba(255,255,255,.18); border-radius: 99px; }
.language-links a { display: grid; place-items: center; width: 36px; height: 30px; border-radius: 99px; color: rgba(255,255,255,.58); font-size: 10px; font-weight: 900; letter-spacing: .08em; }
.language-links a.active { color: var(--wine-deep); background: var(--coral); }
.back-site { padding-bottom: 5px; border-bottom: 1px solid rgba(255,255,255,.4); color: rgba(255,255,255,.86); font-size: 11px; font-weight: 800; }
.back-site span { margin-left: 8px; }

.wizard-shell { max-width: 1440px; margin: 0 auto; padding-bottom: 100px; }
.wizard-intro { display: grid; grid-template-columns: 1.02fr .98fr; min-height: 420px; color: var(--cream); background: var(--wine); }
.wizard-intro > div { display: flex; justify-content: center; flex-direction: column; padding: 68px clamp(24px, 6vw, 88px); }
.wizard-intro figure { position: relative; min-height: 420px; margin: 0; overflow: hidden; background: var(--wine-deep); }
.wizard-intro figure::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(64,29,36,.45), transparent 55%); }
.wizard-intro img { height: 100%; object-fit: cover; object-position: center 48%; }
.eyebrow { margin: 0 0 24px; color: rgba(255,255,255,.7); font-size: 9px; font-weight: 900; letter-spacing: .22em; }
.wizard-intro h1 { max-width: 650px; margin: 0; font: 400 clamp(52px, 5.6vw, 88px)/.91 Georgia, serif; letter-spacing: -.055em; }
.wizard-intro h1 em { color: var(--coral); font-weight: 400; }
.wizard-intro > div > p:last-child { max-width: 580px; margin: 28px 0 0; color: rgba(255,255,255,.72); font-size: 16px; line-height: 1.65; }
.control-ribbon { display: grid; grid-template-columns: repeat(3,1fr); color: var(--cream); background: var(--wine-deep); border-bottom: 1px solid rgba(255,255,255,.13); }
.control-ribbon span { padding: 18px 25px; border-right: 1px solid rgba(255,255,255,.13); text-align: center; font-size: 8px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.control-ribbon span b { margin-right: 8px; color: var(--coral); font: italic 11px Georgia,serif; }

.progress-wrap { position: relative; margin: 0 clamp(18px, 5vw, 72px); padding: 30px 0 25px; border-bottom: 1px solid var(--line); }
.wizard-progress { display: grid; grid-template-columns: repeat(7, 1fr); gap: 16px; margin: 0; padding: 0; list-style: none; }
.wizard-progress li { display: flex; align-items: center; gap: 9px; color: #a3948d; transition: color .25s ease; }
.wizard-progress li span { display: grid; place-items: center; width: 29px; height: 29px; flex: 0 0 auto; border: 1px solid var(--line); border-radius: 50%; font: italic 10px Georgia, serif; background: var(--paper); transition: .25s ease; }
.wizard-progress li small { font-size: 9px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.wizard-progress li.is-active, .wizard-progress li.is-complete { color: var(--wine); }
.wizard-progress li.is-active span { color: var(--wine-deep); background: var(--coral); border-color: var(--coral); }
.wizard-progress li.is-complete span { color: var(--cream); background: var(--wine); border-color: var(--wine); }
.progress-line { position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; overflow: hidden; }
.progress-line i { display: block; width: 14.28%; height: 100%; background: var(--coral); transition: width .3s ease; }
.mobile-progress { display: none; }

.global-alert { display: grid; gap: 6px; margin: 30px clamp(18px, 5vw, 72px) 0; padding: 18px 20px; color: #7d2e25; background: #fff0ec; border: 1px solid rgba(160,62,48,.22); }
.global-alert strong { font: 21px Georgia, serif; }
.global-alert span { font-size: 13px; line-height: 1.5; }

.booking-grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: clamp(30px, 5vw, 74px); align-items: start; padding: 48px clamp(18px, 5vw, 72px) 0; }
.booking-form { min-width: 0; }
.wizard-step { animation: step-in .34s ease both; }
.step-heading { display: grid; grid-template-columns: 48px 1fr; gap: 22px; margin-bottom: 38px; }
.step-heading > span { display: grid; place-items: center; width: 46px; height: 46px; color: var(--coral); border: 1px solid var(--line); border-radius: 50%; font: italic 13px Georgia, serif; }
.step-heading h2 { margin: 0; font: 400 clamp(38px, 4vw, 58px)/.96 Georgia, serif; letter-spacing: -.045em; }
.step-heading p { max-width: 630px; margin: 15px 0 0; color: var(--muted); font-size: 14px; line-height: 1.6; }

.field-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 22px; }
.field-grid .wide { grid-column: 1 / -1; }
.field-grid label { display: grid; gap: 9px; }
.field-grid label > span { font-size: 10px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.field-grid label > span small { margin-left: 6px; color: #a2928b; font-size: 8px; }
input, textarea, select { width: 100%; color: var(--ink); background: var(--white); border: 1px solid var(--line); border-radius: 0; }
input, select { min-height: 54px; padding: 0 15px; }
input[type="date"] { display: block; width: 100%; min-width: 0; max-width: 100%; -webkit-appearance: none; appearance: none; }
.field-grid > label, .event-fields > label { min-width: 0; max-width: 100%; overflow: hidden; }
.field-grid select { appearance: none; -webkit-appearance: none; padding-right: 48px; background-color: var(--white); background-image: linear-gradient(45deg,transparent 50%,var(--wine) 50%),linear-gradient(135deg,var(--wine) 50%,transparent 50%); background-position: calc(100% - 21px) 24px,calc(100% - 15px) 24px; background-size: 6px 6px,6px 6px; background-repeat: no-repeat; cursor: pointer; }
textarea { min-height: 104px; padding: 15px; resize: vertical; }
input:hover, textarea:hover, select:hover { border-color: rgba(64,29,36,.38); }
input:focus, textarea:focus, select:focus { outline: 2px solid rgba(239,115,91,.28); border-color: var(--coral); }
input:user-invalid, textarea:user-invalid { border-color: #b34b3e; }
.number-field { display: grid; grid-template-columns: 50px 1fr 50px; background: var(--white); border: 1px solid var(--line); }
.number-field input { min-width: 0; text-align: center; border: 0; border-inline: 1px solid var(--soft-line); appearance: textfield; }
.number-field input::-webkit-inner-spin-button { display: none; }
.number-field button { border: 0; background: transparent; cursor: pointer; font-size: 22px; }
.honeypot { position: absolute !important; left: -9999px !important; }

.experience-options { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; }
.experience-option, .tier-option, .service-option, .addon-option { position: relative; cursor: pointer; }
.experience-option > input, .tier-option > input, .service-option > input, .addon-option > input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.experience-option:has(input:focus-visible), .tier-option:has(input:focus-visible), .service-option:has(input:focus-visible), .addon-option:has(input:focus-visible) { outline: 3px solid var(--coral); outline-offset: 4px; }
.experience-option { display: grid; overflow: hidden; background: var(--white); border: 1px solid var(--line); transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
.experience-option:hover { transform: translateY(-3px); border-color: var(--coral); }
.experience-option:has(input:checked), .experience-option.is-selected { border: 2px solid var(--coral); box-shadow: 0 15px 42px rgba(64,29,36,.12); }
.experience-image { position: relative; aspect-ratio: 4 / 4.7; overflow: hidden; background: var(--wine-deep); }
.experience-image::after { content: ''; position: absolute; inset: 55% 0 0; background: linear-gradient(transparent, rgba(24,9,12,.68)); }
.experience-image img { height: 100%; object-fit: cover; transition: transform .5s ease; }
.experience-option:hover img { transform: scale(1.025); }
.experience-image i { position: absolute; z-index: 2; right: 14px; bottom: 12px; color: white; font: italic 13px Georgia, serif; }
.experience-copy { display: grid; gap: 10px; padding: 20px 18px 22px; }
.experience-copy strong { font: 25px/1.05 Georgia, serif; }
.experience-copy small { min-height: 56px; color: var(--muted); font-size: 12px; line-height: 1.5; }
.experience-copy b { color: var(--wine); font-size: 10px; text-transform: uppercase; letter-spacing: .06em; }

.tier-options { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; align-items: stretch; }
.tier-option { display: flex; flex-direction: column; min-height: 390px; padding: 28px 22px; background: var(--white); border: 1px solid var(--line); transition: .2s ease; }
.tier-option:hover { border-color: var(--coral); transform: translateY(-2px); }
.tier-option:has(input:checked), .tier-option.is-selected { color: var(--cream); background: var(--wine); border-color: var(--wine); box-shadow: 0 18px 45px rgba(64,29,36,.16); }
.popular { position: absolute; top: 0; left: 20px; transform: translateY(-50%); padding: 7px 12px; color: var(--wine-deep); background: var(--coral); border-radius: 99px; font-size: 8px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.tier-name { display: grid; gap: 10px; padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.tier-option:has(input:checked) .tier-name, .tier-option.is-selected .tier-name { border-color: rgba(255,255,255,.18); }
.tier-name strong { font: 31px Georgia, serif; }
.tier-name b { font-size: 19px; }
.tier-name b small { color: var(--muted); font-size: 9px; font-weight: 400; }
.tier-option:has(input:checked) .tier-name b small, .tier-option.is-selected .tier-name b small { color: rgba(255,255,255,.6); }
.tier-option > p { min-height: 64px; color: var(--muted); font-size: 12px; line-height: 1.55; }
.tier-option:has(input:checked) > p, .tier-option.is-selected > p { color: rgba(255,255,255,.68); }
.includes-label { margin-top: auto; font-size: 8px; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.tier-option ul { display: grid; gap: 10px; margin: 15px 0 0; padding: 0; list-style: none; }
.tier-option li { position: relative; padding-left: 17px; color: var(--muted); font-size: 11px; line-height: 1.35; }
.tier-option li::before { content: ''; position: absolute; top: .62em; left: 0; width: 8px; height: 1px; background: var(--coral); }
.tier-option:has(input:checked) li, .tier-option.is-selected li { color: rgba(255,255,255,.76); }

.service-options { display: grid; gap: 12px; }
.service-option { display: grid; grid-template-columns: 54px 1fr; gap: 19px; align-items: start; padding: 22px; background: var(--white); border: 1px solid var(--line); transition: .2s ease; }
.service-option:hover { border-color: var(--coral); }
.service-option:has(input:checked), .service-option.is-selected { border: 2px solid var(--coral); box-shadow: 0 12px 35px rgba(64,29,36,.08); }
.service-icon { display: grid; place-items: center; width: 52px; height: 52px; color: var(--coral); background: var(--wine); border-radius: 50%; font: 20px Georgia, serif; }
.service-option > span:last-child { display: grid; grid-template-columns: 1fr auto; column-gap: 20px; }
.service-option strong { font: 25px Georgia, serif; }
.service-option small { align-self: center; color: var(--wine); font-size: 10px; font-weight: 800; }
.service-option p { grid-column: 1 / -1; max-width: 560px; margin: 8px 0 0; color: var(--muted); font-size: 12px; line-height: 1.55; }

.addon-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.addon-option { display: grid; grid-template-columns: 26px 1fr auto; gap: 13px; align-items: start; min-height: 126px; padding: 20px; background: var(--white); border: 1px solid var(--line); transition: .2s ease; }
.addon-option:hover { border-color: var(--coral); }
.addon-option:has(input:checked), .addon-option.is-selected { background: #fff3ee; border: 2px solid var(--coral); }
.addon-check { position: relative; display: grid; place-items: center; width: 23px; height: 23px; color: transparent; border: 1px solid var(--line); border-radius: 50%; font-size: 11px; }
.addon-option:has(input:checked) .addon-check, .addon-option.is-selected .addon-check { color: var(--wine-deep); background: var(--coral); border-color: var(--coral); }
.addon-option:has(input:checked) .addon-check::after, .addon-option.is-selected .addon-check::after { content: ''; width: 7px; height: 4px; border-left: 1.5px solid var(--wine-deep); border-bottom: 1.5px solid var(--wine-deep); transform:translateY(-1px) rotate(-45deg); }
.addon-option > span:nth-child(3) { display: grid; gap: 7px; }
.addon-option strong { font: 20px Georgia, serif; }
.addon-option small { color: var(--muted); font-size: 11px; line-height: 1.45; }
.addon-option > b { color: var(--wine); font-size: 11px; }

.step-actions { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-top: 40px; padding-top: 25px; border-top: 1px solid var(--line); }
.step-actions.end { justify-content: flex-end; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 22px; min-height: 52px; padding: 0 25px; border: 0; border-radius: 99px; cursor: pointer; font-size: 11px; font-weight: 900; transition: transform .2s ease, background .2s ease; }
.button:hover { transform: translateY(-2px); }
.button.primary { min-width: 190px; color: var(--wine-deep); background: var(--coral); }
.button.primary:hover { background: var(--coral-light); }
.button.secondary { color: var(--wine); background: transparent; border: 1px solid var(--line); }
.button.submit { min-width: 280px; justify-content: space-between; }

.review-card { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 32px; border: 1px solid var(--line); background: var(--white); }
.review-card > div { display: grid; gap: 5px; min-height: 120px; padding: 20px; border-right: 1px solid var(--soft-line); border-bottom: 1px solid var(--soft-line); }
.review-card > div:nth-child(even) { border-right: 0; }
.review-card > div:nth-last-child(-n+2) { border-bottom: 0; }
.review-card span { color: var(--muted); font-size: 8px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.review-card strong { font: 21px Georgia, serif; }
.review-card small { color: var(--muted); font-size: 11px; line-height: 1.45; }
.review-card > div:last-child strong { color: var(--wine); font-size: 28px; }
.terms-check { display: flex; align-items: flex-start; gap: 12px; margin-top: 24px; color: var(--muted); font-size: 11px; line-height: 1.55; }
.terms-check input { width: 18px; height: 18px; min-height: 0; flex: 0 0 auto; margin: 2px 0 0; accent-color: var(--coral); }
.terms-check a { color: var(--wine); border-bottom: 1px solid var(--wine); }
.cancellation-disclosure,.signature-card{margin-top:24px;padding:22px;background:var(--white);border:1px solid var(--line)}
.cancellation-disclosure>.eyebrow,.signature-card>.eyebrow{margin-bottom:10px;color:var(--coral)}
.cancellation-disclosure>p:not(.eyebrow),.signature-card>p:not(.eyebrow){margin:0;color:var(--muted);font-size:12px;line-height:1.55}
.cancellation-disclosure ul{display:grid;gap:0;margin:17px 0 0;padding:0;list-style:none;border-top:1px solid var(--soft-line)}
.cancellation-disclosure li{display:flex;justify-content:space-between;gap:18px;padding:11px 0;border-bottom:1px solid var(--soft-line);font-size:11px}
.cancellation-disclosure strong{color:var(--wine)}
.signature-card>label:first-of-type{display:grid;gap:9px;margin-top:20px}.signature-card>label:first-of-type>span{font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.signature-card>label:first-of-type input{font:italic 20px Georgia,serif}
.signature-card .terms-check{margin-top:18px}
.terms-print{border:0;border-bottom:1px solid rgba(255,255,255,.4);border-radius:0;cursor:pointer}
.terms-version{padding-bottom:25px;border-bottom:1px solid var(--line)}.terms section{padding:8px 0}.terms .eyebrow{color:var(--coral)}
.signed-record{display:grid;gap:8px;margin:25px 0;padding:20px;color:var(--cream);background:var(--wine)}.signed-record span{font-size:12px}.public-terms-snapshot{padding:25px;white-space:pre-wrap;color:var(--ink);background:var(--white);border:1px solid var(--line);font:13px/1.7 Arial,sans-serif}.terms-hash{overflow-wrap:anywhere;font:10px ui-monospace,monospace}
.secure-note { margin: 14px 0 0; color: var(--muted); text-align: right; font-size: 9px; }

.booking-summary { position: sticky; top: 24px; overflow: hidden; color: var(--cream); background: var(--wine-deep); box-shadow: 0 22px 65px rgba(50,18,24,.17); }
.summary-image { position: relative; height: 180px; overflow: hidden; }
.summary-image::after { content: ''; position: absolute; inset: 35% 0 0; background: linear-gradient(transparent, rgba(24,8,12,.86)); }
.summary-image img { height: 100%; object-fit: cover; transition: opacity .25s ease; }
.summary-image > span { position: absolute; z-index: 1; left: 22px; bottom: 17px; font-size: 9px; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.summary-content { padding: 25px; }
.summary-title { display: flex; align-items: start; justify-content: space-between; gap: 15px; padding-bottom: 20px; border-bottom: 1px solid rgba(255,255,255,.15); }
.summary-title small { color: var(--coral); font-size: 9px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.summary-title h2 { margin: 5px 0 0; font: 29px Georgia, serif; }
.summary-title button { padding: 0 0 3px; color: rgba(255,255,255,.6); background: none; border: 0; border-bottom: 1px solid currentColor; cursor: pointer; font-size: 9px; }
.summary-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; padding: 18px 0; border-bottom: 1px solid rgba(255,255,255,.15); }
.summary-meta span { display: grid; gap: 5px; }
.summary-meta small, .estimate-head, .lead-line, .summary-total span, .deposit-line span { color: rgba(255,255,255,.5); font-size: 8px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.summary-meta b { font-size: 11px; }
.estimate-head { display: flex; justify-content: space-between; gap: 15px; padding-top: 20px; }
.estimate-head small { color: rgba(255,255,255,.48); text-align: right; font-size: 8px; letter-spacing: 0; text-transform: none; }
.price-breakdown { display: grid; gap: 11px; margin: 17px 0; }
.price-breakdown div { display: flex; justify-content: space-between; gap: 18px; }
.price-breakdown dt, .price-breakdown dd { margin: 0; font-size: 11px; }
.price-breakdown dt { color: rgba(255,255,255,.62); }
.summary-total, .deposit-line, .lead-line { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.summary-total { padding: 18px 0 8px; border-top: 1px solid rgba(255,255,255,.2); }
.summary-total strong { color: var(--coral); font: 35px Georgia, serif; }
.deposit-line { padding: 14px 0; }
.deposit-line strong { font: 20px Georgia, serif; }
.lead-line { padding: 13px 0; border-top: 1px solid rgba(255,255,255,.12); }
.lead-line b { font-size: 10px; }
.minimum-warning { margin-top: 14px; padding: 11px 12px; color: #ffd7cd; background: rgba(239,115,91,.14); border: 1px solid rgba(239,115,91,.35); font-size: 9px; font-weight: 800; line-height: 1.4; }
.summary-content > p { margin: 16px 0 0; color: rgba(255,255,255,.48); font-size: 9px; line-height: 1.55; }
.mobile-total { display: none; }

/* Shared result and terms pages */
.result { max-width: 760px; min-height: calc(100vh - 84px); margin: 0 auto; padding: 90px 24px; text-align: center; background: var(--paper); }
.result > img { width: 70px; margin: 0 auto; }
.result h1 { margin: 25px 0 20px; color: var(--wine); font: 400 clamp(46px,7vw,72px)/.95 Georgia, serif !important; letter-spacing: -.04em; }
.result p { color: var(--muted); line-height: 1.7; }
.result .button { width: auto; margin-top: 25px; color: var(--wine-deep); background: var(--coral); }
.muted { color: var(--muted); }
.terms { max-width: 850px; min-height: calc(100vh - 84px); margin: 0 auto; padding: 70px 24px 100px; line-height: 1.75; }
.terms h1 { margin: 0 0 45px; color: var(--wine); font: 400 clamp(48px,7vw,72px)/.95 Georgia, serif; letter-spacing: -.04em; }
.terms h2 { margin-top: 35px; font: 28px Georgia, serif; }
.terms p { color: var(--muted); }

@keyframes step-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }

@media (max-width: 1050px) {
  .wizard-intro { min-height: 360px; }
  .wizard-intro figure { min-height: 360px; }
  .booking-grid { grid-template-columns: minmax(0,1fr) 320px; gap: 30px; }
  .experience-options, .tier-options { gap: 10px; }
  .experience-copy { padding: 17px 14px 20px; }
  .experience-copy strong { font-size: 21px; }
  .tier-option { padding: 25px 17px; }
  .wizard-progress li small { display: none; }
}

@media (max-width: 820px) {
  body.booking-page { padding-bottom: 74px; }
  .book-header { min-height: 72px; padding-inline: 16px; }
  .brand-mark { width: 38px; height: 38px; font-size: 13px; }
  .brand-copy strong { font-size: 10px; }
  .back-site { display: none; }
  .header-tools { gap: 8px; }
  .wizard-intro { grid-template-columns: 1fr; min-height: 0; }
  .wizard-intro > div { padding: 42px 20px 45px; }
  .wizard-intro h1 { font-size: clamp(48px, 13vw, 70px); }
  .wizard-intro figure { min-height: 0; height: 220px; grid-row: 1; }
  .wizard-intro figure::after { background: linear-gradient(0deg, rgba(64,29,36,.45), transparent 60%); }
  .control-ribbon { grid-template-columns: 1fr; padding: 9px 18px; }
  .control-ribbon span { padding: 9px 0; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.1); text-align: left; }
  .control-ribbon span:last-child { border-bottom: 0; }
  .progress-wrap { margin-inline: 18px; padding: 18px 0 16px; }
  .wizard-progress { display: none; }
  .mobile-progress { display: flex; justify-content: space-between; font-size: 9px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
  .progress-line i { width: 14.28%; }
  .booking-grid { grid-template-columns: 1fr; padding: 34px 18px 0; }
  .booking-summary { position: fixed; z-index: 100; inset: auto 12px 84px; max-height: calc(100svh - 115px); overflow-y: auto; transform: translateY(calc(100% + 110px)); opacity: 0; pointer-events: none; transition: .3s ease; }
  .booking-summary.is-open { transform: none; opacity: 1; pointer-events: auto; }
  .summary-image { height: 145px; }
  .mobile-total { position: fixed; z-index: 110; left: 0; right: 0; bottom: 0; display: flex; align-items: center; justify-content: space-between; min-height: 72px; padding: 11px 18px; color: var(--cream); background: var(--wine-deep); box-shadow: 0 -10px 35px rgba(36,16,20,.2); }
  .mobile-total > div { display: grid; gap: 2px; }
  .mobile-total small { color: rgba(255,255,255,.55); font-size: 8px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
  .mobile-total strong { color: var(--coral); font: 23px Georgia, serif; }
  .mobile-total button { padding: 10px 16px; color: var(--wine-deep); background: var(--coral); border: 0; border-radius: 99px; font-size: 9px; font-weight: 900; }
  .step-heading { grid-template-columns: 38px 1fr; gap: 15px; margin-bottom: 30px; }
  .step-heading > span { width: 36px; height: 36px; }
  .step-heading h2 { font-size: clamp(36px, 10vw, 48px); }
  .experience-options, .tier-options { grid-template-columns: 1fr; }
  .experience-option { grid-template-columns: 125px 1fr; }
  .experience-image { aspect-ratio: auto; min-height: 180px; }
  .experience-copy small { min-height: 0; }
  .tier-option { min-height: 0; }
  .tier-option > p { min-height: 0; }
  .addon-options { grid-template-columns: 1fr; }
  .step-actions { position: sticky; z-index: 5; bottom: 74px; margin-inline: -18px; padding: 14px 18px; background: rgba(251,248,240,.96); backdrop-filter: blur(12px); }
  .button { min-height: 49px; padding-inline: 20px; }
  .button.primary { min-width: 155px; }
  .button.submit { min-width: 0; flex: 1; }
}

@media (max-width: 560px) {
  .field-grid { grid-template-columns: 1fr; }
  .field-grid .wide { grid-column: auto; }
  .experience-option { grid-template-columns: 105px 1fr; }
  .experience-option:has(input:checked), .experience-option.is-selected { box-shadow: 0 18px 38px rgba(64,29,36,.18); }
  .experience-copy { gap: 7px; }
  .experience-copy strong { font-size: 19px; }
  .experience-copy small { font-size: 10px; }
  .service-option { grid-template-columns: 43px 1fr; padding: 18px 15px; gap: 14px; }
  .service-icon { width: 43px; height: 43px; }
  .service-option > span:last-child { grid-template-columns: 1fr; }
  .service-option small { margin-top: 5px; }
  .addon-option { grid-template-columns: 24px 1fr; }
  .addon-option > b { grid-column: 2; }
  .review-card { grid-template-columns: 1fr; }
  .review-card > div { min-height: 0; border-right: 0; border-bottom: 1px solid var(--soft-line) !important; }
  .review-card > div:last-child { border-bottom: 0 !important; }
  .step-actions.final { align-items: stretch; flex-direction: column-reverse; }
  .step-actions.final .button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

/* Desktop keeps the live estimate visible; mobile opens it on demand. */
.booking-form{width:100%}.summary-close{position:absolute;z-index:3;top:12px;right:14px;display:grid;place-items:center;width:36px;height:36px;color:#fff;background:rgba(36,16,20,.72);border:1px solid rgba(255,255,255,.28);border-radius:50%;cursor:pointer;font-size:23px}
@media(min-width:821px){body.booking-page{padding-bottom:0}.booking-grid{grid-template-columns:minmax(0,1fr) clamp(300px,28vw,360px);max-width:none;margin:0;gap:clamp(28px,4vw,64px)}.booking-summary{position:sticky;inset:auto;top:24px;width:auto;max-width:none;max-height:calc(100vh - 48px);margin:0;padding:0;overflow:auto;transform:none;border:0}.booking-summary[open]{display:block}.booking-summary::backdrop{display:none}.summary-close,.mobile-total{display:none!important}}
@media(max-width:820px){body.booking-page{padding-bottom:78px}.booking-grid{grid-template-columns:1fr}.booking-summary{position:fixed;z-index:120;inset:auto 0 0;width:100%;max-width:none;max-height:90svh;margin:0;padding:0;overflow:auto;transform:none;color:var(--cream);background:var(--wine-deep);border:0;box-shadow:0 30px 100px rgba(20,8,10,.42)}.booking-summary::backdrop{background:rgba(22,10,13,.72);backdrop-filter:blur(5px)}.booking-summary[open]{display:block}.mobile-total{left:0;right:0;bottom:0;min-height:72px;border:0;border-radius:0}.summary-image{height:145px}}
@media(max-width:820px){.booking-summary{opacity:1;pointer-events:auto}}
