:root { --sc-accent: #2d596c; --sc-accent-ink: #fff; }
.skip-link { position:absolute;top:-100px;left:20px;z-index:100;background:#fff;padding:12px 18px;color:#243f4a; }
.skip-link:focus { top:12px; }
.hero-booking { display:flex;flex-direction:column;align-items:center;gap:14px;margin:28px auto 0; }
.hero-booking p { font-size:14px;margin:0;color:#425b64; }
.funnel-page { --button:#2d596c;--button-text:#fff; }
.funnel-page .announcement { font-size:14px; }
.funnel-page .nav { max-width:1440px;margin:auto; }
.funnel-page .back-link { font-size:14px;color:#425b64; }
.funnel-page .nav nav > .back-link { display:inline; }
.funnel-stage { margin:0 20px;padding:54px clamp(20px,5vw,76px) 44px;border-radius:40px;background:radial-gradient(ellipse at 8% 5%,#d6e9f2,transparent 65%),#f7dfbd; }
.funnel-heading { text-align:center;max-width:840px;margin:0 auto 34px; }
.funnel-heading .eyebrow { font-size:12px;color:#42616d;letter-spacing:.12em;margin-bottom:20px; }
.funnel-heading h1 { font-size:clamp(42px,5.6vw,80px);margin-bottom:22px;line-height:1.07; }
.funnel-heading h1 span { color:#527e8e; }
.funnel-heading .lead { margin:0 auto;max-width:600px;font-size:18px; }
.booking-surface { background:#fff;border:1px solid #ffffffc4;border-radius:26px;overflow:hidden;max-width:1080px;margin:auto;box-shadow:0 24px 60px -32px #344f6159; }
.calendar-host { min-width:0;height:750px;position:relative; }
.calendar-host iframe { width:100%;height:100%;border:0;display:block; }
.calendar-loading { text-align:center;padding:64px 20px;color:#425b64;font-size:16px; }
.calendar-host.calendar-failed { height:auto;min-height:200px; }
.calendar-loading a { text-decoration:underline;text-underline-offset:4px; }
.calendar-help { text-align:center;font-size:14px;line-height:1.6;margin:22px 0 0;color:#425b64; }
.calendar-help a,.prep-note a,.prep-step a { text-decoration:underline;text-underline-offset:4px; }
.booking-note { max-width:740px;margin:38px auto 5px;text-align:center; }
.booking-note p { font-size:16px;color:#425b64;margin-bottom:0; }
.booking-note h2 { font-size:28px;margin-bottom:12px; }
.funnel-page footer { font-size:14px;gap:20px; }
.prep-stage { padding-bottom:56px; }
.prep-stage .vertical-video { max-width:860px; }
.funnel-page .player-top,.funnel-page .player-bottom { font-size:14px;line-height:1.5; }
.funnel-page .player-top > span:last-child { opacity:1; }
.prep-steps { max-width:1080px;padding:64px 28px 28px;margin:auto; }
.prep-steps > h2 { font-size:clamp(34px,4vw,48px);max-width:700px;margin-bottom:36px; }
.prep-step { display:grid;grid-template-columns:54px 1fr;gap:20px;padding:26px 0;border-top:1px solid #d8dfdf; }
.prep-step > span { color:#537580;font-size:14px;padding-top:4px; }
.prep-step h3 { font-size:26px;letter-spacing:-.035em;margin-bottom:12px; }
.prep-step p { font-size:16px;color:#52626a;max-width:750px;margin-bottom:0; }
.prep-step ul { margin:12px 0 0;padding-left:21px;color:#52626a;font-size:16px;line-height:1.8; }
.prep-note { max-width:1024px;margin:18px auto 36px;padding:28px 32px;border-radius:22px;background:#ecf2f2; }
.prep-note h2 { font-size:25px;margin-bottom:12px; }
.prep-note p { font-size:16px;color:#425b64;margin:0; }
.booking-dialog { width:min(1100px,calc(100% - 48px));max-height:calc(100dvh - 40px);padding:0;border:1px solid #fff;border-radius:28px;color:#242323;background:#fff;box-shadow:0 30px 100px #132f4a50; }
.booking-dialog[open] { display:flex;flex-direction:column;height:min(850px,calc(100dvh - 40px));overflow:hidden; }
.booking-dialog::backdrop { background:#1938449e;backdrop-filter:blur(7px); }
.dialog-header { display:flex;flex-shrink:0;justify-content:space-between;align-items:center;gap:20px;padding:22px 28px;background:linear-gradient(110deg,#e1eef2,#f7e5c9); }
.dialog-header h2 { font-size:30px;margin:0; }
.dialog-close { border:1px solid #738990;border-radius:50%;background:#ffffff90;min-width:44px;min-height:44px;line-height:1;font-size:26px;color:#2d596c; }
.booking-dialog .calendar-host { height:auto;flex:1;min-height:0;overflow:auto; }
.dialog-footer { flex-shrink:0;padding:16px 28px;border-top:1px solid #e2e9e9; }
.dialog-footer p { margin:0;font-size:14px;color:#425b64; }
.dialog-footer a { text-decoration:underline;text-underline-offset:3px; }
.modal-open { overflow:hidden; }
@media (max-width:750px) {
  .funnel-page .announcement { padding:10px 18px; }
  .funnel-page .nav { gap:14px;padding:22px 6%; }
  .funnel-page .brand { font-size:21px; }
  .funnel-stage { margin:0 8px;padding:34px 16px 30px;border-radius:24px; }
  .funnel-heading { margin-bottom:28px; }
  .funnel-heading h1 { font-size:clamp(40px,10.5vw,62px); }
  .funnel-heading .lead { font-size:16px; }
  .booking-surface { border-radius:18px; }
  .calendar-host { height:790px; }
  .calendar-help { padding-inline:8px; }
  .booking-note { margin-top:28px;padding-inline:8px; }
  .prep-steps { padding:40px 24px 16px; }
  .prep-step { grid-template-columns:28px 1fr;gap:12px; }
  .prep-step h3 { font-size:24px; }
  .prep-note { margin:12px 16px 26px;padding:25px; }
  .funnel-page .player-top,.funnel-page .player-bottom { font-size:13px;padding:12px 8px;flex-wrap:wrap; }
  .funnel-page footer { padding:22px 24px;flex-wrap:wrap;font-size:13px; }
  .booking-dialog { width:calc(100% - 16px);max-height:calc(100dvh - 16px);border-radius:20px; }
  .dialog-header { padding:18px; }
  .dialog-header h2 { font-size:25px; }
  .dialog-footer { padding:16px 18px; }
}
@media (max-width:360px) { .funnel-page .nav { flex-wrap:wrap; } .funnel-stage { padding-inline:8px; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
