/* Secondary sales page, sharing the homepage's colour and spacing. */
.sv-page .booking-page .bk-container { width:min(calc(100% - 64px),1200px); margin-inline:auto; }
.booking-page { padding-bottom:100px; }
.booking-page .bk-intro { padding-top:26px; }
.booking-page .bk-breadcrumb { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:32px; color:#73788b; font-size:12px; }
.booking-page .bk-breadcrumb a:hover { color:#5147e5; }
.booking-page .bk-intro-grid { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; }
.booking-page .bk-kicker { margin:0 0 18px; color:#5147e5; font-size:11px; font-weight:750; letter-spacing:.14em; text-transform:uppercase; line-height:1.5; }
.booking-page h1 { font-size:clamp(36px,3.7vw,53px); line-height:1.08; letter-spacing:-.055em; }
.booking-page h1 span { color:#5147e5; }
.booking-page .bk-intro-copy>p { margin:0 0 22px; font-size:16px; line-height:1.8; }
.booking-page .bk-actions { display:flex; flex-wrap:wrap; align-items:center; gap:17px 22px; }
.booking-page .sv-button { min-height:48px; padding:12px 18px; font-size:13px; gap:12px; }
.booking-page .bk-textlink { display:inline-flex; align-items:center; gap:9px; color:#5147e5; font-size:13px; font-weight:650; line-height:1.6; }
.booking-page .bk-textlink:hover { color:#3024b3; }
.booking-page .bk-textlink .sv-icon { width:17px; height:17px; }
.booking-page .bk-overview { margin-top:40px; }
.booking-page .bk-agenda { padding:24px 24px 14px; border-radius:30px; background:#eee8fc; }
.booking-page .bk-agenda-frame { overflow:hidden; border:1px solid #dedfeb; border-radius:15px; background:#fff; box-shadow:0 18px 40px -20px #30285240; }
.booking-page .bk-agenda iframe { display:block; width:100%; height:460px; border:0; pointer-events:none; }
.booking-page figcaption { margin-top:13px; color:#655b7d; font-size:10px; line-height:1.6; text-align:center; }
.booking-page .bk-benefits { display:grid; grid-template-columns:repeat(3,1fr); gap:30px; margin:0; padding:28px 18px 0; list-style:none; }
.booking-page .bk-benefits li { display:flex; gap:13px; align-items:flex-start; }
.booking-page .bk-benefits .sv-icon { width:22px; height:22px; margin-top:3px; color:#7c69bd; }
.booking-page .bk-benefits strong { display:block; font-size:14px; font-weight:650; }
.booking-page .bk-benefits span { display:block; color:#6a7185; font-size:12px; margin-top:3px; }
.booking-page .bk-section { padding-block:104px 0; scroll-margin-top:110px; }
.booking-page .bk-booking { display:grid; grid-template-columns:1fr 1fr; gap:90px; align-items:center; }
.booking-page h2 { font-size:clamp(30px,3vw,40px); line-height:1.15; letter-spacing:-.045em; }
.booking-page .bk-copy>p:not(.bk-kicker) { margin:22px 0 0; color:#5d687f; font-size:15px; line-height:1.8; }
.booking-page .bk-booking-steps { list-style:none; margin:28px 0; padding:0; display:grid; gap:23px; }
.booking-page .bk-booking-steps li { display:flex; gap:16px; }
.booking-page .bk-booking-steps li>span { display:grid; place-items:center; flex:0 0 32px; height:32px; border-radius:50%; background:#eeebfc; color:#6652b2; font-size:10px; font-weight:750; }
.booking-page .bk-booking-steps h3 { margin:2px 0 5px; font-size:15px; letter-spacing:-.02em; line-height:1.4; }
.booking-page .bk-booking-steps p { margin:0; font-size:13px; line-height:1.65; }
.booking-page .bk-booking-visual { padding:38px 40px 22px; border-radius:30px; background:#e8f5ed; }
.booking-page .bk-booking-card { overflow:hidden; border:1px solid #e5e6ef; border-radius:18px; background:#fff; box-shadow:0 18px 32px -24px #183e3266; font-size:12px; }
.booking-page .bk-booking-card header { padding:24px 24px 16px; }
.booking-page .bk-booking-card header b { display:block; font-size:21px; letter-spacing:-.04em; }
.booking-page .bk-booking-card header span { display:block; color:#788092; font-size:10px; }
.booking-page .bk-progress { display:flex; justify-content:space-between; padding:0 24px 20px; border-bottom:1px solid #eef0f5; }
.booking-page .bk-progress>span { display:grid; justify-items:center; gap:5px; color:#83899a; }
.booking-page .bk-progress b { display:grid; place-items:center; width:24px; height:24px; border-radius:50%; background:#f4f4f9; font-size:10px; }
.booking-page .bk-progress small { font-size:8px; }
.booking-page .bk-progress .is-selected { color:#5147e5; }
.booking-page .bk-progress .is-selected b { background:#5147e5; color:#fff; }
.booking-page .bk-services { padding:22px 20px; }
.booking-page .bk-services h3 { font-size:19px; letter-spacing:-.035em; }
.booking-page .bk-services>p { margin:7px 0 19px; font-size:10px; }
.booking-page .bk-service { display:flex; align-items:center; gap:10px; padding:14px 12px; margin-top:10px; border:1px solid #e8e9f0; border-radius:11px; }
.booking-page .bk-service.is-selected { border-color:#b5a7f5; background:#f7f5ff; }
.booking-page .bk-service>span { flex:1; }
.booking-page .bk-service b { display:block; font-size:11px; font-weight:650; }
.booking-page .bk-service small { display:block; font-size:9px; color:#7a8192; }
.booking-page .bk-service strong { font-size:11px; }
.booking-page .bk-service i { display:grid; place-items:center; width:20px; height:20px; border-radius:50%; background:#f0edf9; color:#6653c2; font-size:15px; font-style:normal; }
.booking-page .bk-service i .sv-icon { width:12px; height:12px; }
.booking-page .bk-booking-card footer { display:flex; align-items:center; justify-content:space-between; padding:16px 20px; border-top:1px solid #eef0f5; }
.booking-page .bk-booking-card footer>span:first-child { color:#747b8f; font-size:10px; }
.booking-page .bk-booking-card footer b { display:block; color:#101426; font-size:16px; }
.booking-page .bk-next { display:flex; align-items:center; gap:20px; padding:11px 16px; border-radius:9px; background:#5147e5; color:#fff; font-size:11px; font-weight:650; }
.booking-page .bk-next .sv-icon { width:14px; height:14px; }
.booking-page .bk-section-heading { max-width:650px; margin-bottom:36px; }
.booking-page .bk-feature-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.booking-page .bk-feature { display:flex; flex-direction:column; gap:28px; padding:36px; border-radius:30px; background:#ecf1fb; }
.booking-page .bk-feature.bk-visit { background:#fbefe5; }
.booking-page .bk-feature .bk-kicker { color:#5c6380; font-size:10px; margin-bottom:12px; }
.booking-page .bk-feature h3 { font-size:28px; }
.booking-page .bk-feature .bk-copy>p:not(.bk-kicker) { margin-top:16px; font-size:14px; }
.booking-page .bk-availability-visual { margin-top:auto; padding:24px; background:#fff; border-radius:15px; }
.booking-page .bk-time-row { display:flex; justify-content:space-between; margin-bottom:13px; color:#7b8193; font-size:11px; }
.booking-page .bk-time-blocks { display:grid; grid-template-columns:3fr 1fr; gap:6px; }
.booking-page .bk-time-blocks>div { display:flex; flex-direction:column; justify-content:center; padding:16px 12px; border-radius:8px; background:#ece8fa; color:#6c58b7; }
.booking-page .bk-time-blocks>div:last-child { background:repeating-linear-gradient(135deg,#f7f8fb,#f7f8fb 5px,#edf0f6 5px,#edf0f6 6px); color:#717b8b; }
.booking-page .bk-time-blocks b { font-size:12px; font-weight:650; }
.booking-page .bk-time-blocks small { font-size:10px; margin-top:4px; }
.booking-page .bk-availability-visual p { display:flex; gap:7px; align-items:center; margin:19px 0 0; font-size:10px; }
.booking-page .bk-availability-visual .sv-icon { width:14px; height:14px; color:#32856a; }
.booking-page .bk-visit-visual { margin-top:auto; padding:20px; background:#fff; border-radius:15px; }
.booking-page .bk-event { padding:14px 16px; border-left:4px solid #8b7be8; background:#efecfb; color:#7563c5; }
.booking-page .bk-event>div { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.booking-page .bk-event time { font-size:11px; font-weight:650; }
.booking-page .bk-event>div>span { padding:3px 9px; border-radius:999px; background:#dcfce7; color:#166534; font-size:9px; font-weight:650; }
.booking-page .bk-event strong { display:block; font-size:16px; margin-top:6px; }
.booking-page .bk-event p { margin:0; color:inherit; font-size:12px; }
.booking-page .bk-event small { font-size:10px; }
.booking-page .bk-visit-links { display:flex; gap:18px; padding-top:16px; font-size:10px; color:#677085; }
.booking-page .bk-visit-links span { display:flex; align-items:center; gap:6px; }
.booking-page .bk-visit-links .sv-icon { width:14px; height:14px; }
.booking-page .bk-included { display:grid; grid-template-columns:1fr auto; gap:70px; align-items:center; margin-top:104px; padding:42px 46px; border:1px solid #e8e6f0; border-radius:30px; }
.booking-page .bk-included h2 { max-width:540px; font-size:30px; }
.booking-page .bk-included p:not(.bk-kicker) { max-width:650px; margin:18px 0 0; font-size:14px; }
.booking-page .bk-included p.bk-plan-note { font-size:11px; line-height:1.8; }
.booking-page .bk-price { min-width:215px; padding-left:34px; border-left:1px solid #e8e6f0; }
.booking-page .bk-price>span { font-size:12px; color:#6e7287; }
.booking-page .bk-included .bk-price p { margin:5px 0 0; font-size:12px; }
.booking-page .bk-price strong { color:#101426; font-size:42px; letter-spacing:-.055em; }
.booking-page .bk-price small { display:block; font-size:10px; color:#73798c; margin:0 0 18px; }
.booking-page .bk-faq { display:grid; grid-template-columns:.8fr 1.2fr; gap:90px; }
.booking-page .bk-faq .bk-textlink { margin-top:22px; }
.booking-page .bk-questions details { border-bottom:1px solid #e5e6ee; }
.booking-page .bk-questions summary { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:22px 0; list-style:none; cursor:pointer; font-size:15px; font-weight:650; line-height:1.5; }
.booking-page .bk-questions summary>span { color:#8c7bb7; font-size:24px; font-weight:400; }
.booking-page .bk-questions details[open] summary>span { transform:rotate(45deg); }
.booking-page .bk-questions details>p { margin:0 0 24px; font-size:14px; line-height:1.8; }
.booking-page .bk-final { display:grid; grid-template-columns:1fr auto; align-items:center; gap:60px; margin-top:104px; padding:44px 46px; border-radius:30px; background:#f5f2fc; }
.booking-page .bk-final h2 { max-width:530px; font-size:34px; }
.booking-page .bk-final p:not(.bk-kicker) { max-width:580px; margin:18px 0 0; font-size:14px; }
.booking-page .bk-final .bk-actions { flex-direction:column; align-items:flex-start; }
@media(max-width:1000px) {
  .booking-page .bk-intro-grid { gap:35px; }
  .booking-page .bk-booking,.booking-page .bk-faq { gap:40px; }
  .booking-page .bk-booking-visual { padding:28px 22px 20px; }
  .booking-page .bk-feature { padding:28px; }
  .booking-page .bk-included,.booking-page .bk-final { padding:34px; gap:30px; }
}
@media(max-width:760px) {
  .sv-page .booking-page .bk-container { width:calc(100% - 40px); }
  .booking-page { padding-bottom:64px; }
  .booking-page .bk-intro { padding-top:19px; }
  .booking-page .bk-breadcrumb { margin-bottom:26px; font-size:10px; gap:7px; }
  .booking-page .bk-intro-grid,.booking-page .bk-booking,.booking-page .bk-feature-grid,.booking-page .bk-included,.booking-page .bk-faq,.booking-page .bk-final { grid-template-columns:minmax(0,1fr); gap:30px; }
  .booking-page h1 { font-size:39px; }
  .booking-page .bk-intro-copy>p { font-size:15px; }
  .booking-page .bk-agenda { padding:12px 12px 10px; border-radius:22px; }
  .booking-page .bk-agenda iframe { height:400px; }
  .booking-page .bk-agenda-frame { border-radius:12px; }
  .booking-page .bk-benefits { grid-template-columns:1fr; padding:24px 4px 0; gap:18px; }
  .booking-page .bk-benefits span { font-size:12px; }
  .booking-page .bk-section { padding-top:72px; }
  .booking-page .bk-booking-visual { max-width:500px; width:100%; margin-inline:auto; border-radius:22px; }
  .booking-page .bk-feature-grid { gap:20px; }
  .booking-page .bk-feature { padding:28px 22px; border-radius:22px; gap:24px; }
  .booking-page .bk-feature h3 { font-size:26px; }
  .booking-page .bk-availability-visual { padding:20px 15px; }
  .booking-page .bk-included,.booking-page .bk-final { margin-top:72px; padding:30px 24px; border-radius:22px; }
  .booking-page .bk-price { padding:24px 0 0; border-left:0; border-top:1px solid #e8e6f0; }
  .booking-page .bk-final h2 { font-size:30px; }
  .booking-page .bk-faq { gap:26px; }
}
@media(max-width:380px) {
  .booking-page h1 { font-size:34px; }
  .booking-page .bk-booking-visual { padding:22px 12px 16px; }
  .booking-page .bk-services { padding:20px 12px; }
  .booking-page .bk-progress { padding-inline:16px; }
  .booking-page .bk-feature { padding-inline:18px; }
  .booking-page .bk-time-blocks>div { padding:14px 8px; }
}
