/* Public booking follows the same warm paper, ink and red as the CCC homepage.
   Presentation only: form fields, state, validation and payloads remain unchanged. */
.booking-page {
  color-scheme:light;
  --page:#f1eee7; --panel:#fffefa; --panel2:#fff; --black:#202326;
  --white:#202326; --chrome:#50534f; --dim:#64655f;
  --red:#bd2319; --red-dark:#a31b14; --ok:#276339;
  --line:#d9d4ca; --line2:#aaa69d;
  --booking-panel:#fffefa; --booking-line:#d9d4ca; --booking-soft:#e8e3da;
  background:radial-gradient(ellipse at 10% 0%,#fffdf8,transparent 70%),var(--page);
  color:var(--black);
}
.booking-page .grain { mix-blend-mode:multiply; opacity:.016; }
.booking-page .bk-top { border-bottom:1px solid var(--line); padding-bottom:16px; }
.booking-page .bk-top a.back { font:700 14px/1.4 'Manrope',sans-serif; letter-spacing:0; text-transform:none; color:var(--black); }
.booking-page .bk-brand .wm b { font-size:18px; }
.booking-page .bk-brand .wm small { font:600 12px/1.4 'Manrope',sans-serif; letter-spacing:.02em; }
.booking-page .bk-top img { height:62px; }
.booking-page .booking-stage { min-height:0; background:var(--panel); border:1px solid var(--line); box-shadow:0 18px 50px #29241a0a; }
.booking-page .booking-stage::before,.booking-page .booking-stage::after { display:none; }
.booking-page .booking-stage__media { position:relative; height:clamp(180px,22vw,290px); overflow:hidden; background:#1c1e20; }
.booking-page .booking-stage__media video { filter:saturate(.9); transform:none; }
.booking-page .booking-stage__content { display:block; padding:28px; min-height:0; }
.booking-page .booking-stage .kicker { border:0; padding:0; border-radius:0; background:none; color:var(--chrome); font:700 12px/1.6 'Manrope',sans-serif; letter-spacing:.07em; margin-bottom:14px; }
.booking-page .kicker .dot { box-shadow:none; }
.booking-page .booking-stage h1 { max-width:16ch; font-size:clamp(30px,3.4vw,47px); line-height:1.07; letter-spacing:-.04em; color:var(--black); text-shadow:none; }
.booking-page .booking-stage h1 span { color:var(--red); }
.booking-page .booking-stage .lead { font-size:16px; line-height:1.65; color:var(--chrome); margin-top:18px; }
.booking-page .booking-stage .advisor-inline { background:#f7f1e9; color:var(--black); border-color:#c7b7a9; font-size:14px; line-height:1.45; text-align:left; margin-top:18px; min-height:48px; }
.booking-page .booking-stage__topline>span { font:600 12px/1.4 'Manrope',sans-serif; text-transform:none; letter-spacing:0; color:#fff; background:#191b20df; }
.booking-page .booking-film-toggle { min-height:44px; color:#fff; background:#191b20df; }
.booking-page .booking-recap { margin-top:24px; border-color:var(--line); background:var(--line); backdrop-filter:none; }
.booking-page .booking-recap__item { background:#f7f4ed; }
.booking-page .booking-recap__item.is-current { background:#fff5f0; box-shadow:inset 3px 0 var(--red); }
.booking-page .booking-recap__item span,.booking-page .booking-final-summary span { color:var(--chrome); font:600 12px/1.5 'Manrope',sans-serif; letter-spacing:.02em; }
.booking-page .booking-recap__item strong { color:var(--black); font-size:14px; white-space:normal; overflow-wrap:anywhere; }
.booking-page .booking-flow-head { background:var(--panel); box-shadow:none; }
.booking-page .booking-flow-head strong { color:var(--black); }
.booking-page .booking-flow-head__eyebrow,.booking-page .step { color:var(--red); font-size:12px; letter-spacing:.09em; }
.booking-page .booking-flow-head__count { color:var(--chrome); font-size:14px; }
.booking-page .booking-progress { background:#e4ddd2; }
.booking-page .booking-progress i { background:var(--red); box-shadow:none; }
.booking-page .booking-flow-message { color:var(--red-dark); font-size:16px; }
.booking-page .booking-stepper { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); overflow:visible; }
.booking-page .booking-stepper button { min-width:0; background:#f8f6f0; color:var(--chrome); border-color:#c7c2b7; box-shadow:none; }
.booking-page .booking-stepper button:hover { background:#fff; color:var(--black); border-color:var(--red); }
.booking-page .booking-stepper button.is-active { background:#fff4ed; color:var(--black); border-color:var(--red); box-shadow:inset 0 -3px var(--red); }
.booking-page .booking-stepper b { color:var(--red); font-size:12px; }
.booking-page .booking-stepper span { font-size:14px; white-space:normal; }
.booking-page .booking-panel,.booking-page .card,.booking-page .success { background:var(--panel); border-color:var(--line); box-shadow:0 16px 45px #29241a08; }
.booking-page .booking-panel>h2 { color:var(--black); line-height:1.1; }
.booking-page .booking-panel__intro { color:var(--chrome); font-size:16px; }
.booking-page label.fl { font-size:16px; }
.booking-page input[type=text],.booking-page input[type=tel],.booking-page input[type=email],.booking-page input[type=date],.booking-page textarea,.booking-page select {
  background-color:#fff; color:var(--black); border-color:#aaa69d; font-size:16px;
}
.booking-page select { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2350534f' stroke-width='1.5' fill='none'/%3E%3C/svg%3E"); }
.booking-page input:hover,.booking-page textarea:hover,.booking-page select:hover { background-color:#fff; border-color:#74746c; }
.booking-page :is(input,textarea,select)::placeholder { color:#686b65; opacity:1; }
.booking-page :is(button,a,input,textarea,select):focus-visible { outline:3px solid var(--red); outline-offset:3px; }
.booking-page .service-preview { background:#f9f3eb; border-color:var(--line); }
.booking-page .service-preview strong,.booking-page .booking-final-summary strong { color:var(--black); font-size:16px; }
.booking-page .service-preview span { color:var(--red-dark); font-size:12px; }
.booking-page .service-preview p { color:var(--chrome); font-size:14px; }
.booking-page .quick-days { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); overflow:visible; margin-right:0; padding-right:0; }
.booking-page .quick-day { min-width:0; background:#fff; color:var(--black); border-color:#aaa69d; }
.booking-page .quick-day:hover { color:var(--black); border-color:var(--red); }
.booking-page .quick-day.is-selected { color:#fff; background:var(--red); border-color:var(--red); }
.booking-page .quick-day span { font-size:12px; }
.booking-page .quick-day strong { font-size:16px; }
.booking-page .chip { font-size:14px; color:var(--black); background:#fff; border-color:#aaa69d; }
.booking-page .chip.on { color:#fff; background:var(--red); border-color:var(--red); }
.booking-page .chip:disabled { opacity:.65; color:#64655f; background:#ebe8e0; }
.booking-page .booking-panel__actions .btn.secondary { background:#f5f1e8; }
.booking-page .booking-final-summary { border-color:var(--line); background:var(--line); }
.booking-page .booking-final-summary>div { background:#f7f4ed; }
.booking-page .note-line,.booking-page .terms,.booking-page .terms label,.booking-page .risk-ack ul,.booking-page .risk-ack .terms label { color:var(--chrome); font-size:14px; line-height:1.6; }
.booking-page .risk-ack>p,.booking-page .interior-mini-config__head span,.booking-page .advisor-prefill { font-size:14px; }
.booking-page .interior-mini-config label,.booking-page .config-summary :is(dt,dd,li,.config-summary__status,.config-summary__price span) { font-size:14px; }
.booking-page .config-summary dl>div { background:#fffefa; }
.booking-page .alt-cta a { font:600 14px/1.5 'Manrope',sans-serif; letter-spacing:0; text-transform:none; background:#fffefa; }
.booking-page .foot { font:500 12px/1.7 'Manrope',sans-serif; text-transform:none; letter-spacing:.015em; }
@media(max-width:979px) {
  .booking-page .booking-stage { position:static; }
  .booking-page .booking-stage__content { padding:24px; }
  .booking-page .booking-stage h1 { max-width:24ch; }
  .booking-page .booking-stage__media { height:190px; }
}
@media(max-width:520px) {
  .booking-page .booking-stepper { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .booking-page .booking-stage__content { padding:22px 20px; }
  .booking-page .booking-stage h1 { font-size:30px; }
  .booking-page .booking-stage .lead { font-size:16px; }
  .booking-page .booking-stage__topline { left:14px; right:14px; top:14px; gap:8px; }
  .booking-page .booking-film-toggle { color:transparent; }
  .booking-page .quick-days { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
