/* Scroll reveal is a progressive enhancement; pages remain readable without JS. */
.scroll-reveal{transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:var(--reveal-delay,0ms)}
.scroll-reveal.reveal-pending{opacity:0;transform:translateY(26px)}
.scroll-reveal.reveal-visible{opacity:1;transform:none}
.scroll-reveal:focus-within{opacity:1;transform:none;transition:none}
.scroll-reveal.is-scroll-linked{--reveal-distance:26px;opacity:var(--reveal-progress,1);transform:translate3d(0,calc((1 - var(--reveal-progress,1))*var(--reveal-distance)),0);transition:none;transition-delay:0ms}
@media(max-width:650px){.scroll-reveal.is-scroll-linked{--reveal-distance:18px}}
.booking-section{border-block:1px solid var(--color-line);background:linear-gradient(125deg,#120e18,#09090c);scroll-margin-top:96px}
.booking-layout{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(35px,7vw,140px);align-items:center;padding-block:90px}
.booking-copy h2{margin:22px 0}.booking-copy>p:not(.eyebrow){color:#aca1b8;max-width:520px}
.booking-details{display:flex;flex-wrap:wrap;gap:10px 22px;margin:30px 0 20px;color:#c7b2dd;font-size:14px}
.booking-details span+span:before{content:'·';margin-right:20px;color:#84728f}
.booking-copy .booking-timezone{font-size:14px;color:#9987aa;margin-bottom:24px}
.booking-email-link{font-size:15px;text-decoration:underline;text-underline-offset:5px;color:#c6b0dc}
.booking-panel{min-width:0;padding:32px;border:1px solid #ffffff21;border-radius:18px;background:linear-gradient(145deg,#1a1422,#100e14);box-shadow:inset 0 1px 0 #ffffff07,0 15px 50px #0002}
.booking-start h3{font-size:27px;margin:22px 0 15px}.booking-start>p{color:#aea0bc;max-width:480px}
.calendar-symbol{display:grid;place-items:center;width:45px;height:45px;font-size:23px!important;border:1px solid #ac8dcc44;border-radius:13px;color:#c7adde;background:#b797d910}
.booking-launch{display:inline-flex;gap:30px;align-items:center;justify-content:space-between;margin-top:25px;padding:15px 22px;font-size:15px;font-weight:500;border-radius:40px;background:#7460a4;color:white;border:1px solid #ffffff20;cursor:pointer}
.booking-launch:hover{background:#7b67af;color:white}.booking-launch:disabled{opacity:.65;cursor:wait}
.booking-start .booking-privacy{font-size:13px;margin-top:20px;color:#96849f}
.booking-calendar{height:760px;min-width:0;border-radius:12px;overflow:hidden;margin-top:20px;background:#100e14}
.booking-calendar iframe{width:100%;height:100%;border:0}.booking-panel.calendar-open .booking-start{display:none}
.booking-status{font-size:14px!important;color:#b9a2cd;line-height:1.7;margin-top:15px}
.booking-external{display:inline-block;margin-top:18px;font-size:14px;text-decoration:underline;text-underline-offset:4px;color:#bfa7d6}
#contact-note{scroll-margin-top:120px}
.call-preferences{grid-column:1/-1;border:1px solid #ffffff20;border-radius:12px;padding:18px;min-width:0}.call-preferences legend{padding-inline:7px;font-size:15px;color:#c6b0dc}.call-preferences>p{font-size:13px;line-height:1.7;color:#aa98b5;margin-bottom:18px}.call-preference-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}.call-preference-fields label{display:grid;gap:10px;min-width:0}.call-preference-fields input,.call-preference-fields select{width:100%;padding:10px 12px;border-width:1px;min-width:0}.timezone-field{grid-column:1/-1}
[data-theme=light] .call-preferences{border-color:#d1c1df;background:#ffffff60}[data-theme=light] .call-preferences legend{color:#70518a}[data-theme=light] .call-preferences>p{color:#796386}
[data-theme=light] .booking-section{background:linear-gradient(130deg,#f8f3fc,#eee5f6)}
[data-theme=light] .booking-copy>p:not(.eyebrow){color:#67516f}
[data-theme=light] .booking-details{color:#6d4e84}[data-theme=light] .booking-copy .booking-timezone{color:#776080}
[data-theme=light] .booking-panel{border-color:#d3c3e1;background:linear-gradient(145deg,#fff,#f3ebf9);box-shadow:inset 0 1px 0 #fff,0 15px 50px #79568e12}
[data-theme=light] .booking-start>p{color:#6d587a}[data-theme=light] .calendar-symbol{border-color:#c9b1dd;color:#76518e;background:#f0e5fa}
[data-theme=light] .booking-launch{background:linear-gradient(135deg,#7f65a7,#6b5292);box-shadow:inset 0 1px 0 #ffffff60,0 5px 18px #77539925;color:white}
[data-theme=light] :is(.booking-external,.booking-email-link){color:#704d89}
[data-theme=light] .booking-start .booking-privacy{color:#7c6788}[data-theme=light] .booking-status{color:#6d4e84}
[data-theme=light] .booking-calendar{background:#faf7fd}
@media(max-width:850px){.booking-layout{grid-template-columns:1fr;gap:32px}.booking-panel{padding:25px}.booking-section{scroll-margin-top:96px}}
@media(max-width:650px){.scroll-reveal.reveal-pending{transform:translateY(18px)}.booking-layout{padding-block:55px}.booking-panel{padding:22px 16px}.booking-start h3{font-size:24px}.booking-details{gap:10px 15px}.booking-details span+span:before{margin-right:13px}.booking-calendar{height:800px}.booking-launch{font-size:14px;gap:20px}.booking-section{scroll-margin-top:80px}}
@media(prefers-reduced-motion:reduce){.scroll-reveal,.scroll-reveal.reveal-pending,.scroll-reveal.reveal-visible{opacity:1!important;transform:none!important;transition:none!important}}
@media print{.scroll-reveal.is-scroll-linked,.scroll-reveal.reveal-pending{opacity:1!important;transform:none!important}}
.booking-section,#contact-note{scroll-margin-top:0}
.call-preferences{container-type:inline-size;max-width:100%;box-sizing:border-box}
.call-preference-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
.call-preference-fields label{min-width:0;max-width:100%}
.call-preference-fields :is(input,select){display:block;box-sizing:border-box;min-width:0;max-width:100%;min-height:46px}
.call-preference-fields input::-webkit-date-and-time-value{min-width:0;text-align:left}
@container(max-width:460px){.call-preference-fields{grid-template-columns:minmax(0,1fr)}}
@media(max-width:650px){.call-preferences{padding:14px}.call-preferences legend{max-width:100%;font-size:14px;white-space:normal}.call-preference-fields{grid-template-columns:minmax(0,1fr);gap:18px}}
@media(max-width:650px){.booking-panel.calendar-open{width:100vw;max-width:100vw;margin-inline:-5vw;padding:0;border:0;border-radius:0;box-shadow:none}.calendar-open .booking-calendar{margin-top:0;border-radius:0}.calendar-open .booking-status,.calendar-open .booking-external{margin-inline:5vw}.calendar-open .booking-external{margin-bottom:20px}}
/* Avoid native fieldset/date-control intrinsic sizing on mobile browsers. */
#contact-note{min-inline-size:0;max-inline-size:100%}
#contact-note>div{min-inline-size:0}
.call-preferences{display:block;inline-size:100%;min-inline-size:0;max-inline-size:100%;margin:0;overflow-wrap:anywhere}
.call-preferences>.call-preferences-title{font-size:15px!important;line-height:1.5;font-weight:500;color:#c6b0dc;margin:0 0 12px}
[data-theme=light] .call-preferences>.call-preferences-title{color:#70518a}
.call-preference-fields{inline-size:100%;min-inline-size:0;max-inline-size:100%}
.call-preference-fields label{display:flex;flex-direction:column;align-items:stretch;inline-size:100%;min-inline-size:0;max-inline-size:100%}
.call-preference-fields :is(input,select){inline-size:100%;min-inline-size:0;max-inline-size:100%;box-sizing:border-box;flex:none}
.call-preference-fields input:is([type=date],[type=time]){appearance:none;-webkit-appearance:none;overflow:hidden}
.call-preference-fields input::-webkit-datetime-edit{min-width:0;padding:0}
.call-preference-fields input::-webkit-calendar-picker-indicator{flex-shrink:0;margin:0 0 0 4px;padding:2px}
.scroll-reveal.is-scroll-linked.reveal-pending{opacity:var(--reveal-progress,1);transform:translate3d(0,calc((1 - var(--reveal-progress,1))*var(--reveal-distance)),0);transition:none}

/* Primary calendar, with a compact, keyboard-operable email alternative. */
.email-alternative-section>.container-page{padding-block:45px!important}
.email-alternative{border:1px solid #ffffff25;border-radius:16px;background:#ffffff03;scroll-margin-top:0}
.email-alternative>summary{display:flex;align-items:center;gap:24px;padding:25px 30px;list-style:none;cursor:pointer;font-size:21px}
.email-alternative>summary::-webkit-details-marker{display:none}
.email-summary-note{font-size:14px!important;color:#ab9cb7}.email-summary-icon{font-size:28px!important;margin-left:auto;color:#ccb6e0;transition:transform .2s}
.email-alternative[open] .email-summary-icon{transform:rotate(45deg)}
.email-alternative-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:40px;padding:15px 30px 30px}
.email-alternative-grid>div{min-width:0}
.form-error-summary{grid-column:1/-1;border:1px solid #dc9aab80;border-radius:9px;padding:14px 16px;background:#9b34561a;color:#f0b3c3}
.form-error-summary p{font-size:14px;margin:0}.form-error-summary ul{margin:8px 0 0}.form-error-summary li{font-size:14px}.form-error-summary a{text-decoration:underline;text-underline-offset:3px}
form .field-error{font-size:13px!important;line-height:1.6;color:#f1aabe;display:block;margin-top:6px}
form :is(input,textarea,select)[aria-invalid=true]{border-color:#e6a2b7!important;box-shadow:0 0 0 1px #e6a2b730}
form[data-state=success] .form-status{padding:15px;border:1px solid #8dbca960;border-radius:10px;background:#537f6f15;color:#acd6bf}
form[aria-busy=true]{cursor:progress}form button:disabled{opacity:.7;cursor:wait}
:is(a,button,input,select,textarea,summary):focus-visible{outline:2px solid #c7ace6;outline-offset:4px}
[data-theme=light] .email-alternative{border-color:#cdbbdf;background:linear-gradient(135deg,#fff,#f1eaf8)}
[data-theme=light] .email-summary-note{color:#796487}[data-theme=light] .email-summary-icon{color:#76528d}
[data-theme=light] .form-error-summary{border-color:#b8517270;background:#fff0f4;color:#8c294d}
[data-theme=light] form .field-error{color:#9b3154}
[data-theme=light] form :is(input,textarea,select)[aria-invalid=true]{border-color:#b24a70!important}
[data-theme=light] form[data-state=success] .form-status{background:#edf8f1;color:#2b6249;border-color:#54816c66}
[data-theme=light] :is(a,button,input,select,textarea,summary):focus-visible{outline-color:#76528d}
@media(max-width:850px){.email-alternative-grid{grid-template-columns:minmax(0,1fr);gap:28px}.email-summary-note{display:none}}
@media(max-width:650px){.email-alternative>summary{padding:19px 16px;font-size:19px}.email-alternative-grid{padding:8px 12px 18px}.email-alternative-grid>div.space-y-12>div{padding:18px 12px}.email-alternative-section>.container-page{padding-block:25px!important}}
@media(max-width:650px){.call-preference-fields{display:flex;flex-direction:column}.call-preference-fields input,.call-preference-fields select{padding-inline:10px}}

/* Readable primary actions and control boundaries in both themes. */
.bg-brand:hover{background:#7b67af!important;color:#fff!important}
form :is(input,textarea,select){border-color:#82718f!important}
[data-theme=light] form :is(input,textarea,select){border-color:#9b84ad!important}
[data-theme=light] .bg-brand:hover{background:#70518e!important}
form :is(input,textarea,select)[aria-invalid=true]{border-color:#e6a2b7!important}
[data-theme=light] form :is(input,textarea,select)[aria-invalid=true]{border-color:#a63b62!important}
