:root{--navy:#0a1f4d;--ink:#0f1b3d;--blue:#1456d8;--orange:#ff8a1f;--muted:#52617d;--line:#dbe5f5;--paper:#f5f8ff;--white:#fff;--success:#12764d;--danger:#8f2b1f}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.6 'Manrope',sans-serif;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit}
a{color:inherit}
:focus-visible{outline:3px solid #ff8a1f;outline-offset:3px}
.skip-link{position:absolute;left:-9999px;top:8px;z-index:20;background:#fff;padding:10px 14px}
.skip-link:focus{left:8px}
.site-header{height:76px;padding:0 max(24px,calc((100vw - 1180px)/2));display:flex;align-items:center;justify-content:space-between;background:var(--navy);border-bottom:1px solid rgba(255,255,255,.14)}
.site-header img,.site-footer img{display:block;width:142px;height:auto}
.header-back{color:#e8efff;text-decoration:none;font-weight:700;font-size:.9rem}
.header-back:hover{color:var(--orange)}
.booking-hero{position:relative;isolation:isolate;overflow:hidden;min-height:260px;padding:48px max(24px,calc((100vw - 1180px)/2));display:flex;align-items:center;justify-content:space-between;gap:32px;background:radial-gradient(800px 340px at 85% 5%,rgba(20,86,216,.58),transparent 65%),linear-gradient(115deg,#0a1f4d,#0c2459 70%,#142d66);color:#fff}
.grid-hero{display:none}
.grid-hero,.hero-grid{position:absolute;inset:0;z-index:-1;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(110deg,transparent,#000 80%)}
.hero-copy{max-width:700px}
.eyebrow{display:block;margin-bottom:11px;color:#ffb26a;font-size:.76rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.eyebrow.light{color:var(--blue)}
.booking-hero h1,.section-heading h2,.confirmation h3{font-family:'Bricolage Grotesque',sans-serif;letter-spacing:0;line-height:1.08}
.booking-hero h1{max-width:17ch;margin:0;font-size:clamp(2rem,4vw,3.2rem);font-weight:800;color:#fff}
.booking-hero p{max-width:52ch;margin:14px 0 0;color:#d2ddf7}
.hero-note{display:flex;align-items:center;gap:12px;flex:none;padding:16px 20px;border-left:2px solid var(--orange);background:rgba(255,255,255,.08)}
.note-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:linear-gradient(135deg,var(--blue),var(--orange));font-family:'Bricolage Grotesque',sans-serif;font-size:1.3rem;font-weight:800;color:#fff}
.hero-note b,.hero-note small{display:block}.hero-note b{font-size:.92rem}.hero-note small{margin-top:2px;color:#c5d1ec;font-size:.79rem}
.booking-section{padding:48px 24px 76px}
.booking-wrap{max-width:1180px;margin:0 auto}
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}
.section-heading h2{margin:0;font-size:2rem;font-weight:700;color:var(--navy)}
.section-heading>p{max-width:340px;margin:0;color:var(--muted);font-size:.87rem;text-align:right}
.section-heading>p strong{color:var(--navy)}
.steps{display:flex;gap:9px;list-style:none;margin:0 0 22px;padding:0;counter-reset:step}
.steps li{display:flex;align-items:center;gap:9px;min-height:42px;padding:5px 15px 5px 7px;border:1px solid var(--line);border-radius:99px;background:#fff;color:#586783;font-size:.83rem;font-weight:700}
.steps li span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#e9eef8;color:#53627f;font-size:.78rem}
.steps li.active{border-color:var(--blue);color:var(--navy)}.steps li.active span{background:var(--blue);color:#fff}.steps li.complete span{background:var(--orange);color:var(--navy)}
.form-alert{margin:0 0 18px;padding:13px 16px;border-left:4px solid #c65424;background:#fff0e8;color:#64290f;font-size:.92rem;font-weight:600}
.booking-layout{display:grid;grid-template-columns:275px minmax(0,1fr);border:1px solid #dce5f3;background:#fff;box-shadow:0 26px 55px -38px rgba(10,31,77,.45)}
.booking-aside{padding:29px 26px;background:linear-gradient(155deg,#edf3ff,#fff4e9);border-right:1px solid var(--line)}
.aside-label{color:var(--blue);font-size:.75rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.booking-aside h3{margin:7px 0 22px;color:var(--navy);font:700 1.45rem/1.15 'Bricolage Grotesque',sans-serif}
.booking-aside ul{display:grid;gap:15px;list-style:none;margin:0;padding:0}
.booking-aside li b,.booking-aside li span{display:block}.booking-aside li b{color:var(--ink);font-size:.91rem}.booking-aside li span{color:var(--muted);font-size:.79rem}
.aside-topics{margin-top:27px;padding-top:22px;border-top:1px solid #d6dfed}.aside-topics h4{margin:0 0 7px;color:var(--navy);font-size:.87rem}.aside-topics p{margin:0;color:var(--muted);font-size:.82rem;line-height:1.7}
.aside-contact{display:block;margin-top:25px;color:var(--muted);font-size:.78rem;text-decoration:none}.aside-contact b{display:block;margin-top:3px;color:var(--blue);font-size:.88rem}
.booking-main{min-width:0}
.booking-picker{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(250px,.92fr)}
.calendar-panel,.times-panel{min-width:0;padding:27px 29px 30px}
.calendar-panel{border-right:1px solid var(--line)}
.panel-step{display:flex;align-items:center;gap:11px;margin-bottom:21px}
.panel-step>span{display:grid;place-items:center;width:31px;height:31px;flex:none;border-radius:50%;background:#fff1e4;color:#b04c0d;font-size:.72rem;font-weight:800}
.panel-step b,.panel-step small{display:block}.panel-step b{font-size:.93rem;color:var(--navy)}.panel-step small{margin-top:2px;color:var(--muted);font-size:.74rem}
.calendar-heading{display:grid;grid-template-columns:38px 1fr 38px;align-items:center;margin-bottom:15px}
.calendar-heading h3{margin:0;text-align:center;color:var(--navy);font:700 1rem 'Bricolage Grotesque',sans-serif}
.calendar-heading button{width:36px;height:36px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--navy);font-size:1.45rem;line-height:1;cursor:pointer}
.calendar-heading button:hover:not(:disabled){background:var(--blue);border-color:var(--blue);color:#fff}.calendar-heading button:disabled{opacity:.35;cursor:not-allowed}
.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;text-align:center}
.weekdays{margin-bottom:6px}.weekdays span{padding:5px 0;color:#65728b;font-size:.66rem;font-weight:800;text-transform:uppercase}
.calendar-grid{transition:opacity .15s}.calendar-grid.loading{opacity:.35}
.calendar-day{width:100%;aspect-ratio:1;border:0;border-radius:50%;background:transparent;color:#8a96a9;font-size:.84rem;font-weight:600;cursor:not-allowed}
.calendar-day.available{position:relative;background:#edf3ff;color:var(--navy);cursor:pointer;font-weight:800}
.calendar-day.available::after{position:absolute;bottom:4px;left:calc(50% - 2px);width:4px;height:4px;border-radius:50%;background:var(--orange);content:""}
.calendar-day.available:hover{background:var(--blue);color:#fff}.calendar-day.available.chosen{background:var(--orange);color:var(--navy);box-shadow:0 5px 15px rgba(242,119,27,.25)}.calendar-day.available.chosen::after{background:var(--navy)}
.calendar-day:disabled{opacity:.72}
.calendar-legend{display:flex;align-items:center;gap:8px;margin:13px 0 0;color:var(--muted);font-size:.74rem}.calendar-legend i{width:8px;height:8px;border-radius:50%;background:var(--orange)}
.times-panel h3{margin:0;color:var(--navy);font:700 1rem 'Bricolage Grotesque',sans-serif}
.times-status{min-height:46px;margin-top:8px;color:var(--muted);font-size:.8rem;line-height:1.55}
.time-slots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;max-height:340px;overflow:auto;padding:1px}
.time-option{min-height:43px;border:1px solid #a9c0ee;background:#fff;color:var(--blue);font-size:.83rem;font-weight:800;cursor:pointer;transition:background .16s,color .16s,border-color .16s}
.time-option:hover,.time-option.selected{border-color:var(--navy);background:var(--navy);color:#fff}
.details-form{padding:27px 29px 25px;border-top:1px solid var(--line);background:linear-gradient(180deg,#f7faff,#fffaf5)}
.details-form[hidden]{display:none}
.form-heading .panel-step{margin-bottom:17px}
.selected-time{position:relative;display:grid;gap:3px;margin-bottom:18px;padding:12px 118px 12px 15px;border-left:4px solid var(--orange);background:#fff}
.selected-time span{color:var(--muted);font-size:.69rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.selected-time b{color:var(--navy);font-size:.91rem}.selected-time button{position:absolute;right:13px;top:50%;transform:translateY(-50%);border:0;background:none;color:var(--blue);font-size:.78rem;font-weight:800;text-decoration:underline;cursor:pointer}
.honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.form-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}
.form-fields>label{display:flex;flex-direction:column;gap:5px;color:var(--ink);font-size:.79rem;font-weight:700}
.form-fields>label span{color:#a23920}
.form-fields input:not([type=checkbox]),.form-fields select,.form-fields textarea{width:100%;min-height:45px;padding:10px 12px;border:1px solid #cbd6e8;border-radius:2px;background:#fff;color:var(--ink);font-size:.88rem}
.form-fields textarea{resize:vertical;min-height:90px}
.form-fields input:focus,.form-fields select:focus,.form-fields textarea:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 3px rgba(20,86,216,.16)}
.interest-field{grid-column:1/-1;min-width:0;margin:0;padding:0;border:0}
.interest-field legend{margin-bottom:8px;color:var(--ink);font-size:.79rem;font-weight:700}
.interest-options{display:flex;flex-wrap:wrap;gap:7px}
.interest-options label{position:relative;cursor:pointer}
.interest-options input{position:absolute;opacity:0}
.interest-options span{display:block;padding:7px 11px;border:1px solid #d4deee;background:#fff;color:var(--muted);font-size:.75rem;font-weight:700}
.interest-options input:checked+span{border-color:var(--blue);background:#eaf1ff;color:var(--navy)}
.interest-options input:focus-visible+span{outline:3px solid var(--orange);outline-offset:2px}
.full-field{grid-column:1/-1}
.primary-button,.secondary-button{display:inline-flex;min-height:47px;align-items:center;justify-content:center;padding:11px 19px;border:1px solid transparent;text-align:center;text-decoration:none;font-size:.87rem;font-weight:800;cursor:pointer;transition:transform .16s,background .16s}
.primary-button{background:var(--orange);color:#182544}.primary-button:hover{transform:translateY(-2px);background:#ff9c42}
.secondary-button{border-color:#b9c8e0;background:#fff;color:var(--navy)}.secondary-button:hover{border-color:var(--blue);color:var(--blue)}
.submit-button{width:100%;margin-top:18px}
.privacy-note{margin:9px 0 0;text-align:center;color:var(--muted);font-size:.7rem}
.confirmation{max-width:850px;padding:30px;border:1px solid var(--line);border-top:4px solid var(--orange);background:#fff;box-shadow:0 24px 52px -38px rgba(10,31,77,.42)}
.confirmation-top{display:flex;gap:17px;align-items:flex-start;padding-bottom:22px;border-bottom:1px solid var(--line)}
.confirm-check{display:grid;place-items:center;width:45px;height:45px;flex:none;border-radius:50%;background:#e5f5eb;color:var(--success);font-size:1.4rem;font-weight:800}
.confirmation-top .eyebrow{margin-bottom:4px}.confirmation h3{margin:0;color:var(--navy);font-size:1.65rem}.confirmation-top p:last-child{margin:5px 0 0;color:var(--muted);font-size:.89rem}
.confirmation-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 25px;margin:16px 0 23px}
.confirmation-details>div{padding:12px 0;border-bottom:1px solid #e8edf4}.confirmation-details dt{color:var(--muted);font-size:.69rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.confirmation-details dd{margin:3px 0 0;color:var(--navy);font-size:.86rem;font-weight:700;overflow-wrap:anywhere}.confirmation-details .detail-wide{grid-column:1/-1}
.calendar-actions{display:flex;gap:10px;flex-wrap:wrap}.calendar-actions .primary-button,.calendar-actions .secondary-button{flex:1 1 210px}
.meeting-link,.mail-note{margin:14px 0;color:var(--muted);font-size:.83rem;overflow-wrap:anywhere}.meeting-link a{color:var(--blue)}
.mail-note{padding:10px 12px;background:#fff6e9}
.site-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:24px max(24px,calc((100vw - 1180px)/2));background:#06142f;color:#aab8d4;font-size:.76rem}
.site-footer img{width:120px}
@media(max-width:900px){.booking-layout{grid-template-columns:1fr}.booking-aside{display:grid;grid-template-columns:1fr 1.1fr;gap:0 22px;padding:22px 25px;border-right:0;border-bottom:1px solid var(--line)}.booking-aside h3{margin-bottom:11px}.booking-aside ul{grid-row:span 2;grid-column:2;align-self:center}.aside-topics{margin-top:4px;padding-top:12px}.aside-contact{grid-column:1/-1;margin-top:14px}.booking-picker{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.site-header{height:64px;padding:0 18px}.site-header img{width:125px}.booking-hero{min-height:0;padding:37px 20px 32px;display:block}.booking-hero h1{font-size:2.25rem}.hero-note{margin-top:24px;width:max-content;max-width:100%;padding:12px 14px}.booking-section{padding:34px 15px 50px}.section-heading{display:block;margin-bottom:18px}.section-heading h2{font-size:1.65rem}.section-heading>p{margin-top:8px;text-align:left;font-size:.79rem}.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-bottom:14px}.steps li{justify-content:center;gap:5px;min-width:0;padding:5px 4px;border-radius:3px;font-size:.68rem}.steps li span{width:23px;height:23px;font-size:.68rem}.booking-aside{grid-template-columns:1fr;padding:18px}.booking-aside ul{grid-column:1;grid-row:auto;grid-template-columns:1fr 1fr;gap:12px;margin-top:5px}.booking-aside h3{margin:4px 0 10px}.aside-topics{margin-top:16px}.booking-picker{grid-template-columns:1fr}.calendar-panel,.times-panel{padding:20px 18px}.calendar-panel{border-right:0;border-bottom:1px solid var(--line)}.calendar-grid,.weekdays{gap:3px}.calendar-day{max-width:44px;justify-self:center}.calendar-day.available::after{bottom:3px}.times-panel{min-height:150px}.time-slots{grid-template-columns:repeat(3,minmax(0,1fr));max-height:240px}.details-form{padding:21px 18px}.form-fields{grid-template-columns:1fr;gap:12px}.interest-field,.full-field{grid-column:1}.confirmation{padding:22px 17px}.confirmation-details{grid-template-columns:1fr 1fr;gap:0 15px}.confirmation h3{font-size:1.4rem}.site-footer{align-items:flex-start;flex-direction:column;padding:22px 18px}.site-footer span{max-width:34ch}}
@media(max-width:390px){.time-slots{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-panel,.times-panel{padding-right:13px;padding-left:13px}.confirmation-details{grid-template-columns:1fr}.confirmation-details .detail-wide{grid-column:auto}.steps li{font-size:.62rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}