/* Stage 7F.2 — Minimal Editorial Dialog. Scoped to the shared dialog only. */
html:has(#booking[open]) { overflow: hidden; }
#booking.cf-dialog {
  --cf-paper: var(--pe-surface); --cf-ink: #263b32; --cf-muted: #56615d;
  --cf-line: #cccfc2;
  width: min(760px, calc(100% - 48px)); height: auto;
  max-width: calc(100% - 24px); max-height: var(--cf-available, calc(100dvh - 24px));
  top: var(--cf-top, 50%); transform: translateY(-50%);
  border: 1px solid #c4c9bc; box-shadow: 0 24px 100px #0d201d45;
  opacity: 0; translate: 0 6px;
  transition: opacity .18s ease, translate .18s ease, display .18s allow-discrete, overlay .18s allow-discrete;
}
#booking.cf-dialog[open] { opacity: 1; translate: 0 0; }
@starting-style { #booking.cf-dialog[open] { opacity: 0; translate: 0 6px; } }
#booking.cf-dialog::backdrop {
  background: #172923b8; opacity: 0;
  transition: opacity .18s ease, display .18s allow-discrete, overlay .18s allow-discrete;
}
#booking.cf-dialog[open]::backdrop { opacity: 1; }
@starting-style { #booking.cf-dialog[open]::backdrop { opacity: 0; } }
#booking .cf-layout { display: block; height: auto; max-height: inherit; }
#booking .cf-aside { display: none; }
#booking .cf-main { height: auto; max-height: inherit; }
#booking #booking-form, #booking #booking-success {
  display: flex; flex-direction: column; height: auto; max-height: inherit;
}
#booking .cf-scroll, #booking .cf-success-scroll {
  flex: 1 1 auto; padding: 30px 38px 24px;
  scrollbar-width: thin; scrollbar-color: #a3b0a4 transparent;
  scroll-padding-block: 20px;
}
#booking .cf-kicker { font-size: .625rem; letter-spacing: .13em; margin: 0 44px 16px 0; }
#booking h2 { font-size: clamp(2.25rem, 3.8vw, 3.125rem); margin-bottom: 10px; line-height: 1.05; }
#booking #booking-intro { max-width: 36rem; margin-bottom: 8px; font-size: .8125rem; line-height: 1.6; }
#booking .cf-demo { max-width: none; font-size: .6875rem; line-height: 1.6; }
#booking .steps, #booking[data-step="2"] .steps { gap: 18px; margin: 22px 0 24px; }
#booking .steps li { display: flex; gap: 8px; align-items: baseline; padding-bottom: 9px; position: relative; border-bottom-width: 1px; }
#booking .steps li span { display: inline; margin: 0; }
#booking .steps li::after { content: ''; position: absolute; height: 2px; background: #456554; bottom: -1px; inset-inline: 0; transform: scaleX(0); transform-origin: left; transition: transform .2s ease; }
#booking .steps li.active::after { transform: scaleX(1); }
#booking .cf-fields { min-block-size: 228px; }
#booking .service-options { gap: 10px; }
#booking .service-options label>span { display: flex; align-items: center; gap: 13px; min-height: 66px; padding: 16px 38px 16px 16px; background: #ffffff35; transition: background .16s, border-color .16s, box-shadow .16s; }
#booking .service-options small { margin: 0; font-size: .625rem; color: #64756b; }
#booking .service-options strong { font-size: .8125rem; line-height: 1.5; }
#booking .service-options i { top: calc(50% - 7px); right: 15px; }
#booking .service-options label:hover>span { background: #e9ede4; border-color: #8b9b8d; }
#booking .service-options input:active+span, #booking .service-options label:active>span { background: #d9e2d4; }
#booking .service-options input:checked+span { background: #e1e8db; border-color: #69846b; box-shadow: inset 2px 0 #456554; }
#booking .field, #booking[data-step="2"] .field { margin-bottom: 16px; font-size: .75rem; }
#booking .field input, #booking .field select { min-height: 48px; padding: 10px 13px; margin-top: 6px; border-color: #acb5a7; background: #fcfaf5; }
#booking .cf-hint { margin-top: 6px; line-height: 1.6; }
#booking .cf-privacy-note { padding-top: 12px; margin-top: 16px; font-size: .6875rem; line-height: 1.7; }
#booking .cf-review { margin: 12px 0; padding: 0; }
#booking .cf-review__row { padding: 8px 0; }
#booking .cf-review__row + .cf-review__row { border-top: 1px solid var(--cf-line); }
#booking .cf-review { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; margin: 0 0 16px; }
#booking .cf-review__row { grid-template-columns: minmax(0, 1fr); gap: 2px; padding: 10px 0 6px; }
#booking .cf-review__row + .cf-review__row { border-top: 0; }
#booking .cf-review button { grid-column: 1; grid-row: 3; justify-self: start; min-height: 44px; }
#booking .cf-review strong { align-self: start; }
#booking .cf-review strong { font-size: .8125rem; line-height: 1.55; }
#booking .consent, #booking[data-step="2"] .consent { margin-top: 12px; line-height: 1.65; font-size: .6875rem; gap: 10px; }
#booking .cf-after, #booking[data-step="2"] .cf-after { margin-top: 8px; }
#booking .cf-actions { flex: 0 0 auto; padding: 16px 38px; min-height: 80px; gap: 16px; padding-bottom: max(16px, env(safe-area-inset-bottom)); }
#booking .cf-button { min-height: 48px; padding: 11px 20px; background: #344e40; border-color: #344e40; font-size: .75rem; }
#booking .cf-button:hover { background: #456554; }
#booking .cf-button:active { background: #263e31; }
#booking .cf-button--quiet { background: transparent; color: #344e40; border-color: transparent; padding-left: 0; }
#booking .cf-button--quiet:hover { background: transparent; text-decoration: underline; text-underline-offset: 4px; }
#booking .cf-close { top: 12px; right: 12px; border-color: transparent; background: transparent; color: #56675c; }
#booking .cf-close:hover { background: #e5e9df; }
#booking #booking-status, #booking #booking-lock { margin-bottom: 14px; font-size: .75rem; }
#booking #form-error { margin-top: 14px; font-size: .75rem; }
#booking .cf-field-error { animation: cf-error-in .16s ease-out; }
#booking .cf-success-mark { margin: 12px 0; }
#booking .cf-success-intro { margin-bottom: 16px; }
#booking #success-summary { margin: 16px 0; padding-block: 4px; }
#booking #success-summary>div { padding: 7px 0; }
#booking #booking-success h2 { font-size: 3rem; }
#booking #booking-success h2 br { display: none; }
#booking #booking-success h2 em::before { content: ' '; }
#booking .cf-success-scroll { animation: cf-error-in .2s ease-out; }
#booking[data-step="2"] .cf-kicker { margin-bottom: 16px; }
#booking[data-step="2"] .cf-head h2 { margin-bottom: 10px; }
@keyframes cf-error-in { from { opacity: .4; } to { opacity: 1; } }
@media (max-width: 620px) {
  #booking.cf-dialog { width: calc(100% - 24px); }
  #booking .cf-scroll, #booking .cf-success-scroll { padding: max(24px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) 20px max(20px, env(safe-area-inset-left)); }
  #booking .cf-kicker { margin-bottom: 18px; max-width: 210px; font-size: .5625rem; }
  #booking h2 { font-size: 2.25rem; }
  #booking .steps, #booking[data-step="2"] .steps { gap: 9px; margin: 20px 0; }
  #booking .steps li { display: block; font-size: .625rem; }
  #booking .steps li span { display: block; margin-bottom: 4px; }
  #booking .service-options { gap: 8px; }
  #booking .service-options label>span { min-height: 76px; display: block; padding: 12px 27px 12px 12px; }
  #booking .service-options small { margin-bottom: 5px; }
  #booking .service-options strong { font-size: .75rem; }
  #booking .service-options i { top: 13px; right: 11px; }
  #booking .cf-fields { min-block-size: 244px; }
  #booking .cf-actions { padding-inline: 20px; gap: 10px; }
  #booking .cf-button { padding-inline: 12px; }
  #booking .cf-review__row { grid-template-columns: minmax(0, 1fr) minmax(0, .65fr); gap: 4px 10px; }
  #booking .cf-review { display: block; margin-bottom: 16px; }
  #booking .cf-review__row + .cf-review__row { border-top: 1px solid var(--cf-line); }
  #booking .cf-review button { grid-column: 2; grid-row: 1 / span 2; }
}
@media (max-width: 340px) {
  #booking .service-options { grid-template-columns: minmax(0, 1fr); }
  #booking .steps { gap: 6px; }
  #booking .cf-actions { flex-wrap: wrap; }
  #booking .cf-actions>button { flex-basis: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  #booking.cf-dialog, #booking.cf-dialog::backdrop, #booking *, #booking *::before, #booking *::after { animation: none !important; transition: none !important; }
}
