.spg-booking-section { background:#323d50; color:#fff; padding:0!important; border:0!important; font:400 16px/1.65 Roboto,Arial,sans-serif; width:100%; }
.spg-booking-section .spg-booking-split { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); width:100%; max-width:none; margin:0; }
.spg-booking-section .spg-p1-session-copy { padding:64px max(32px,calc((100vw - 1200px)/2)); padding-right:64px; min-width:0; }
.spg-booking-section .spg-p1-session-copy h2 { font:400 42px/1.12 Georgia,serif; margin:0 0 24px; color:#fff; }
.spg-booking-section .spg-p1-session-copy p { color:#fff; margin:0 0 20px; font:inherit; }
.spg-booking-section .spg-p1-session-copy .spg-p1-session-eyebrow { font-size:12px; font-weight:700; letter-spacing:2px; text-transform:uppercase; margin-bottom:18px; }
.spg-booking-section .spg-p1-session-benefits { list-style:none; margin:0 0 24px; padding:0; }
.spg-booking-section .spg-p1-session-benefits li { display:flex; align-items:flex-start; gap:12px; margin:0 0 8px; }
.spg-booking-section .spg-andrew-icon { width:24px; height:24px; flex:none; filter:brightness(0) invert(1); }
.spg-booking-section .spg-p1-session-copy .spg-p1-session-reassurance { font-weight:700; }
.spg-booking-section .spg-andrew-booking-actions { display:flex; flex-direction:column; align-items:flex-start; gap:20px; margin:28px 0 0; }
.spg-booking-section .spg-p1-booking-button { display:inline-flex; align-items:center; gap:10px; min-height:44px; padding:14px 24px; color:#fff!important; background:#c91417; font:700 16px/1.4 Roboto,Arial,sans-serif; text-decoration:none; margin:0; border:0; }
.spg-booking-section .spg-andrew-calculator-link { display:inline-block; align-self:flex-start!important; padding:0 0 8px; margin:0; border-bottom:2px solid #c91417; color:#fff!important; font:700 16px/1.5 Roboto,Arial,sans-serif; text-decoration:none; }
.spg-booking-section .spg-booking-photo { position:relative; min-width:0; align-self:stretch; }
.spg-booking-section .spg-booking-photo img { position:absolute!important; inset:0; display:block; width:100%!important; height:100%!important; max-height:none!important; object-fit:cover; object-position:center; }
.spg-booking-section a:focus-visible { outline:3px solid #fff; outline-offset:4px; }
.spg-owned-floating-action.spg-shared-floating { position:fixed; z-index:50; right:0; left:auto; top:50%; bottom:auto; writing-mode:vertical-rl; padding:20px 14px; min-width:44px; background:#c91417; color:#fff!important; border-radius:4px 0 0 4px; text-decoration:none!important; font:500 14px/1.4 Roboto,Arial,sans-serif; }
.spg-owned-floating-action.spg-shared-floating:hover,.spg-booking-section .spg-p1-booking-button:hover { background:#a91013; }
.spg-owned-floating-action.spg-shared-floating:focus-visible { outline:3px solid #455979; outline-offset:3px; }
/* The native theme's max-height/auto-height rules must not constrain the poster. */
.spg-andrew-hero .spg-andrew-hero-video > img { position:absolute!important; inset:0!important; width:100%!important; height:100%!important; min-height:100%!important; max-height:none!important; max-width:none!important; object-fit:cover!important; }
#gform_confirmation_message_9:has([data-spg-handoff-accepted]) > p:first-child,
#gform_confirmation_message_10:has([data-spg-handoff-accepted]) > p:first-child,
#gform_confirmation_message_11:has([data-spg-handoff-accepted]) > p:first-child { color:#c91417!important; font-weight:500!important; }
.spg-andrew-calculator-visual .spg-calculator-teaser { display:block; color:#455979; text-decoration:none; }
.spg-andrew-calculator-visual .spg-calculator-teaser img { display:block; width:100%; height:auto; border:0; }
.spg-calculator-teaser-invitation { display:inline-block; margin-top:14px; padding-bottom:5px; border-bottom:2px solid #c91417; font:700 16px/1.4 Roboto,Arial,sans-serif; }
.spg-calculator-teaser:focus-visible { outline:3px solid #c91417; outline-offset:6px; }
/* Gravity Forms appends the durable acceptance marker after its wrapper. */
:is(#gform_confirmation_wrapper_9,#gform_confirmation_wrapper_10,#gform_confirmation_wrapper_11):has(+ [data-spg-handoff-accepted]) .gform_confirmation_message > p:first-child { color:#c91417!important; font-weight:500!important; font-size:20px!important; line-height:1.5!important; }
/* Contact details occupy the space released by its retired callback column. */
body:has(.spg-booking-section) #smANPtuE .columns > .column--left:only-child { width:100%!important; }
/* Bound the inherited article sidebar decoration to its own content edge. */
body:has(.spg-booking-section) #single__education .related::before,
body:has(.spg-booking-section) #single__education .related::after { width:auto; right:0; }
body:has(.spg-booking-section) #single__education .education-wrap { min-width:0; }
body:has(.spg-booking-section) #single__education .education__article { overflow-wrap:anywhere; }
/* These old single-cell tables contain article copy, rather than tabular data. */
body:has(.spg-booking-section) #single__education .education__article table[width]:has(> tbody > tr:only-child > td:only-child) { width:100%!important; max-width:100%; table-layout:fixed; }
body:has(.spg-booking-section) #single__education .education__article table[width]:has(> tbody > tr:only-child > td:only-child) > tbody > tr > td { width:auto!important; }
/* Keep the inherited production header controls separate on narrow phones. */
@media(max-width:360px) {
 body:has(.spg-booking-section) #header .header__logo,
 body:has(.spg-booking-section) #header .header__logo .svg--icon,
 body:has(.spg-booking-section) #header .header__logo svg { width:calc(100vw - 168px)!important; }
}
@media(max-width:1023px) { .spg-booking-section .spg-p1-session-copy { padding:44px 32px; } .spg-booking-section .spg-p1-session-copy h2 { font-size:36px; } }
@media(max-width:767px) {
 .spg-booking-section .spg-booking-split { grid-template-columns:minmax(0,1fr); }
 .spg-booking-section .spg-p1-session-copy { padding:44px 20px; }
 .spg-booking-section .spg-p1-session-copy h2 { font-size:32px; }
 .spg-booking-section .spg-booking-photo { aspect-ratio:3/2; }
 .spg-owned-floating-action.spg-shared-floating { top:auto; bottom:0; left:0; right:0; width:100%; writing-mode:horizontal-tb; text-align:center; border-radius:0; padding:16px 20px calc(16px + env(safe-area-inset-bottom)); font-size:16px; }
 body:has(.spg-shared-floating) { padding-bottom:calc(55px + env(safe-area-inset-bottom)); }
 .spg-shared-floating[data-spg-input-focus=true],.spg-shared-floating[data-spg-booking-visible=true] { visibility:hidden; pointer-events:none; }
}
