.booking-hero { padding-block: clamp(3rem, 7vw, 6rem) clamp(5rem, 9vw, 8rem); }
.booking-hero h1 { max-width: 880px; margin-block-end: 18px; text-wrap: balance; }
.booking-lede { max-width: 760px; margin: 0; color: var(--muted); font-size: clamp(1rem, 1.6vw, 1.2rem); }
.booking-layout { display: grid; grid-template-columns: minmax(16rem, .72fr) minmax(0, 1.28fr); gap: clamp(1.25rem, 3vw, 2.5rem); align-items: start; margin-block-start: clamp(2.25rem, 5vw, 4.25rem); }
.meeting-brief { position: sticky; top: 7.2rem; overflow: hidden; padding: clamp(1.4rem, 3vw, 2.1rem); border: 1px solid var(--line); border-radius: 1.5rem; background: linear-gradient(145deg, color-mix(in srgb, var(--surface) 88%, transparent), color-mix(in srgb, var(--surface-2) 64%, transparent)); box-shadow: var(--shadow); }
.meeting-brief::before { content: ""; position: absolute; inset-block: 0; inset-inline-start: 0; width: 4px; background: linear-gradient(var(--accent), var(--accent-strong)); }
.meeting-brief__index { display: inline-flex; margin-block-end: 1.5rem; color: var(--accent); font-family: var(--font-en); font-size: .72rem; font-weight: 800; letter-spacing: .16em; }
.meeting-brief h2 { margin-block-end: 1.4rem; font-size: clamp(1.45rem, 2vw, 2rem); text-wrap: balance; }
.meeting-brief dl { margin: 0; border-block: 1px solid var(--line); }
.meeting-brief dl > div { display: grid; grid-template-columns: .72fr 1.28fr; gap: 1rem; padding-block: .9rem; }
.meeting-brief dl > div + div { border-block-start: 1px solid var(--line); }
.meeting-brief dt { color: var(--muted); font-size: .78rem; font-weight: 700; }
.meeting-brief dd { margin: 0; font-weight: 800; }
.meeting-brief__camera, .meeting-brief__provider { color: var(--muted); font-size: .86rem; }
.meeting-brief__rule { margin-block: 1.4rem; padding-block: 1.25rem; border-block: 1px solid var(--line); }
.meeting-brief__rule h3 { margin-block-end: .8rem; font-size: .96rem; text-wrap: balance; }
.meeting-brief__rule ul { margin: 0; padding-inline-start: 1.2rem; color: var(--muted); font-size: .85rem; }
.meeting-brief__rule li + li { margin-block-start: .42rem; }
.meeting-brief__warning { padding: .85rem 1rem; border-radius: .9rem; background: rgba(122, 148, 80, .11); color: var(--text); font-size: .82rem; }
.meeting-brief__provider a { color: var(--accent); font-weight: 800; text-underline-offset: 4px; }
.booking-stage { min-width: 0; }
.booking-language-note { margin: 0 0 .85rem; padding: .8rem 1rem; border: 1px solid color-mix(in srgb, var(--accent) 36%, var(--line)); border-radius: .9rem; background: color-mix(in srgb, var(--accent) 10%, transparent); color: var(--text); font-size: .86rem; font-weight: 700; }
.booking-frame-shell, .booking-unconfigured { min-height: 720px; border: 1px solid var(--line); border-radius: 1.5rem; overflow: hidden; background: color-mix(in srgb, var(--surface) 92%, transparent); box-shadow: var(--shadow); }
.booking-frame-shell { position: relative; }
.booking-frame-shell[data-booking-failed] { min-height: 0; }
.booking-frame { display: block; width: 100%; min-height: 720px; border: 0; background: var(--surface); }
.booking-frame cal-inline, .booking-frame iframe { display: block; width: 100% !important; min-height: 720px; border: 0; }
.booking-frame[hidden] { display: none; }
.booking-loading { position: absolute; inset: 0; z-index: 2; display: grid; place-items: center; margin: 0; background: var(--surface); color: var(--muted); }
.booking-loading[hidden] { display: none; }
.booking-failure, .booking-unconfigured { display: grid; align-content: center; justify-items: start; padding: clamp(1.5rem, 5vw, 3.25rem); }
.booking-failure[hidden] { display: none; }
.booking-failure h2, .booking-unconfigured h2 { margin-block-end: .8rem; font-size: clamp(1.45rem, 2.6vw, 2.2rem); }
.booking-failure p, .booking-unconfigured p { max-width: 580px; margin: 0 0 1.4rem; color: var(--muted); }
.booking-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.booking-success { margin: 0; padding: 1rem 1.25rem; border-block-start: 1px solid var(--line); background: rgba(122, 148, 80, .12); color: var(--text); font-weight: 800; }
@media (max-width: 860px) { .booking-layout { grid-template-columns: 1fr; } .meeting-brief { position: static; } .booking-frame-shell, .booking-frame { min-height: 780px; } }
@media (max-width: 620px) { .booking-frame-shell, .booking-unconfigured { min-height: 700px; border-radius: 1.15rem; } .booking-frame { min-height: 700px; } .meeting-brief { border-radius: 1.15rem; } }
@media (prefers-reduced-motion: reduce) { .booking-page *, .booking-page *::before, .booking-page *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; } }
