/* The launch invitation has its own presentation; tickets and staff pages keep their existing layout. */
.launch-page{--cream:#faf7f1;--wine:#510d25;--gold:#aa8761;background:var(--cream)}
.launch-page .site-header{max-width:none;padding:20px max(32px,calc((100vw - 1200px)/2 + 32px));background:#faf7f1f2}
.launch-page .site-header img{width:180px;max-height:80px}
.launch-page .header-link{border:1px solid var(--wine);border-radius:99px;padding:10px 19px;text-decoration:none}
.launch-page .eyebrow{letter-spacing:2.4px;font-size:11px;color:#856745}
.launch-page .button{border-radius:99px;padding:15px 24px;min-height:52px}
.launch-page h2{font-size:clamp(34px,4.1vw,52px);line-height:1.08}
.launch-hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(270px,.8fr);gap:90px;align-items:center;padding-top:54px;padding-bottom:64px}
.hero-copy h1{color:var(--wine);font-family:Georgia,serif;font-weight:400;letter-spacing:-.055em;line-height:.98;margin:0 0 27px}
.hero-brand{display:block;font-size:clamp(74px,7.7vw,108px)}
.hero-invitation{display:block;font-size:clamp(42px,5.2vw,70px);font-style:italic;letter-spacing:-.055em;margin-top:10px}
.launch-subtitle{font-size:17px;font-weight:650;letter-spacing:.015em;margin-bottom:16px}
.hero-intro{font-size:18px;line-height:1.7;max-width:485px;color:#514449}
.hero-date{border-left:2px solid var(--gold);padding-left:18px;margin:28px 0}
.hero-date strong,.hero-date span{display:block}.hero-date strong{color:var(--wine);font-size:18px}.hero-date span{font-size:14px;margin-top:3px}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:19px 24px}.hero-actions .text-link{font-size:13px}
.hero-small{font-size:12px;color:var(--muted);margin:16px 0 0}
.hero-film{width:100%;max-width:324px;justify-self:center;min-width:0}
.film-heading{display:flex;justify-content:space-between;align-items:center;font-size:10px;font-weight:650;letter-spacing:2px;color:#785d43;margin-bottom:12px}.film-heading>span:last-child{font-size:23px;line-height:1}
.film-caption{font-size:12px;color:var(--muted);text-align:center;margin:13px 0 0}
.invitation-video-shell{width:100%;position:relative;min-height:200px}
.invitation-player{width:100%;overflow:hidden;border-radius:14px;background:#2a121b;color:#fff;box-shadow:0 18px 50px #32132223;border:1px solid #684152}
.invitation-player video{display:block;width:100%;aspect-ratio:9/16;max-height:480px;object-fit:contain;background:#28151e}
.video-topline{display:flex;justify-content:space-between;align-items:center;min-height:36px;padding:7px 13px;font-size:12px;letter-spacing:.5px}
.video-topline-detail{opacity:.75;font-size:10px;letter-spacing:0}
.video-topline [data-video-close]{display:none}
.video-controls{display:flex;align-items:center;justify-content:space-between;gap:5px;padding:5px 7px;background:#2a121b}
.video-controls button,.video-topline button{border:0;color:#fff;background:transparent;min-height:40px;padding:8px 10px;font-size:12px;font-weight:600;border-radius:5px}
.video-controls button:hover,.video-topline button:hover{background:#ffffff1a}
.video-controls [data-video-expand]{display:none}
.video-status{margin:0;padding:0 13px 10px;font-size:10px;color:#e4d7db;line-height:1.4}
.invitation-player.is-floating{position:fixed;width:210px;right:20px;bottom:max(18px,env(safe-area-inset-bottom));z-index:50;box-shadow:0 12px 44px #21081150}
.invitation-player.is-floating video{max-height:290px;object-fit:contain;background:#28151e}
.invitation-player.is-floating .video-topline{padding:2px 5px 2px 11px;min-height:36px}
.invitation-player.is-floating .video-topline-detail{display:none}
.invitation-player.is-floating [data-video-close],.invitation-player.is-floating [data-video-expand]{display:block}
.invitation-player.is-floating [data-video-close]{font-size:23px;line-height:1;min-width:38px;min-height:36px}
.invitation-player.is-floating [data-video-expand]{font-size:21px;line-height:1;padding-inline:9px}
.invitation-player.is-floating .video-controls{gap:0;padding:2px}
.invitation-player.is-floating .video-controls button{font-size:11px;padding:7px 8px}
.invitation-player.is-floating .video-status{font-size:10px;padding-bottom:7px}
.invitation-player.is-floating.is-suspended{visibility:hidden;pointer-events:none}
.event-highlights{background:var(--wine);color:#fff}.highlights-grid{display:grid;grid-template-columns:1fr 1.15fr 1.2fr;gap:25px;padding-block:24px}.highlights-grid p{margin:0;font-size:14px}.highlights-grid span{font:italic 19px Georgia,serif;color:#d2b894;margin-right:13px}
.clinic-welcome{display:grid;grid-template-columns:.9fr 1.1fr;gap:90px;padding-block:80px}.clinic-welcome h2{color:var(--wine);margin-bottom:0}.clinic-welcome p{font-size:16px;line-height:1.8}.clinic-welcome .eyebrow{font-size:11px;line-height:1.5}.clinic-welcome .welcome-extras{font-size:13px;font-weight:600;margin:22px 0 0}.welcome-extras span{padding:0 7px;color:var(--gold)}
.demonstrations{padding:66px 0;background:#eee7dc;border-block:1px solid var(--line)}
.section-heading{max-width:700px;margin-bottom:33px}.section-heading h2{color:var(--wine);margin-bottom:18px}.section-heading>p:last-child{max-width:540px;font-size:15px;margin-bottom:0}
.demonstration-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.demonstration-card{padding:30px;background:var(--cream);border:1px solid #d8cbb8;border-radius:12px;display:flex;flex-direction:column}.area-heading{display:flex;align-items:center;gap:15px;margin-bottom:22px}.area-number{font:italic 34px/1 Georgia,serif;color:#967452}.area-heading p{font-size:10px;letter-spacing:1.7px;font-weight:600;color:#806141;margin:0}.demonstration-card h3{font:32px/1.12 Georgia,serif;letter-spacing:-.03em;color:var(--wine);margin-bottom:18px}.demonstration-card>p{font-size:15px;line-height:1.75}.demonstration-card .area-note{font-size:13px;color:#6d5c61;margin-top:auto;margin-bottom:24px}.area-sessions{border-top:1px solid var(--line)}.area-sessions a{display:grid;grid-template-columns:67px 1fr 16px;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding:14px 0;text-decoration:none}.area-sessions strong{font-size:15px}.area-sessions a>span{font-size:12px;color:#5e5155}.area-sessions a:hover{background:#ede5d8}.demonstration-note{max-width:830px;font-size:12px;color:#65565b;margin:24px 0 13px}
.event-offer{display:grid;grid-template-columns:.8fr 1.2fr;align-items:center;gap:85px;padding-block:70px}.offer-mark{font:42px/1.2 Georgia,serif;color:var(--wine);letter-spacing:-.04em;border:1px solid var(--gold);border-radius:50%;width:290px;height:220px;display:flex;flex-direction:column;justify-content:center;align-items:center;transform:rotate(-7deg);justify-self:center}.offer-mark em{font-weight:400}.event-offer h2{font-size:42px;color:var(--wine);margin-bottom:20px}.event-offer p{font-size:15px}.event-offer .eyebrow{font-size:11px}.event-offer .offer-small{font-size:12px;color:var(--muted);margin-bottom:0}
.reserve-section{background:#f0e9de;padding:65px 0;border-block:1px solid var(--line)}.reserve-grid{display:grid;grid-template-columns:.83fr 1.17fr;gap:80px;align-items:start}.reserve-intro{padding-top:20px}.reserve-intro h2{color:var(--wine);font-size:56px}.reserve-intro>p{max-width:360px}.reserve-intro .small{font-size:13px}.event-facts{margin:30px 0}.event-facts>div{padding:15px 0;border-top:1px solid var(--line)}.event-facts dt{font-size:10px;letter-spacing:1.8px;font-weight:600;color:#896743;margin-bottom:5px}.event-facts dd{margin:0;font-size:14px}.launch-page .booking-card{border-radius:12px;box-shadow:0 12px 38px #49213408}.launch-page .booking-card h2{font-size:34px}.launch-page .session-option{border-radius:7px}.launch-page .booking-card>.eyebrow{font-size:10px}.launch-page .details-grid{padding-block:65px}.launch-page .site-footer{background:#eee7dc}
@media(min-width:1600px){.invitation-player.is-floating{right:30px;width:225px}}
@media(max-width:1000px){.launch-hero{gap:45px;grid-template-columns:1.2fr .8fr}.hero-brand{font-size:80px}.hero-invitation{font-size:56px}.hero-intro{font-size:16px}.hero-actions{gap:15px}.hero-film{max-width:290px}.clinic-welcome,.reserve-grid{gap:45px}.event-offer{gap:45px}.highlights-grid{gap:15px}.highlights-grid p{font-size:12px}.demonstration-card{padding:25px}.demonstration-card h3{font-size:28px}.launch-page .site-header{padding-inline:32px}.offer-mark{width:240px;height:190px;font-size:36px}}
@media(max-width:700px){
 .launch-page .site-header{padding:15px 22px;gap:15px}.launch-page .site-header img{width:142px;max-height:64px}.launch-page .header-link{font-size:11px;padding:8px 12px}
 .launch-hero{grid-template-columns:1fr;gap:32px;padding-top:32px;padding-bottom:38px}.hero-copy>.eyebrow{font-size:9px;letter-spacing:1.8px;margin-bottom:24px}.hero-brand{font-size:76px}.hero-invitation{font-size:52px;margin-top:8px}.hero-copy h1{margin-bottom:22px}.launch-subtitle{font-size:15px;margin-bottom:14px}.hero-intro{font-size:16px;line-height:1.65}.hero-date{margin:24px 0}.hero-date strong{font-size:17px}.hero-date span{font-size:13px}.hero-actions{gap:18px;align-items:flex-start;flex-direction:column}.hero-actions .button{width:100%}.hero-small{font-size:11px;line-height:1.7}.hero-film{max-width:300px}.invitation-player video{max-height:420px;object-fit:contain}.film-heading{font-size:9px}
 .highlights-grid{grid-template-columns:1fr;gap:12px;padding-block:23px}.highlights-grid p{font-size:13px}.highlights-grid span{font-size:18px;margin-right:15px}
 .clinic-welcome{grid-template-columns:1fr;gap:22px;padding-block:44px}.clinic-welcome h2{font-size:38px}.clinic-welcome p{font-size:15px;line-height:1.75}.clinic-welcome .welcome-extras{font-size:12px;line-height:1.8}
 .demonstrations{padding:42px 0}.section-heading h2{font-size:37px}.section-heading>p:last-child{font-size:14px}.demonstration-grid{grid-template-columns:1fr;gap:20px}.demonstration-card{padding:25px 22px}.demonstration-card h3{font-size:31px}.demonstration-card>p{font-size:14px}.area-heading{margin-bottom:19px}.area-sessions a{grid-template-columns:59px 1fr 14px;gap:8px}.area-sessions a>span{font-size:11px}.area-sessions strong{font-size:14px}
 .event-offer{grid-template-columns:1fr;gap:30px;padding-block:45px}.offer-mark{width:220px;height:155px;font-size:31px}.event-offer h2{font-size:37px}.event-offer p{font-size:14px}.event-offer .eyebrow{font-size:10px}
 .reserve-section{padding:42px 0}.reserve-grid{grid-template-columns:1fr;gap:24px}.reserve-intro{padding:0}.reserve-intro h2{font-size:44px;margin-bottom:20px}.reserve-intro h2 br{display:none}.reserve-intro h2 br::after{content:' '}.reserve-intro>p{max-width:none;font-size:14px}.event-facts{margin:20px 0}.event-facts dd{font-size:13px}.launch-page .booking-card{margin-top:0;padding:25px 20px}.launch-page .booking-card h2{font-size:30px}.launch-page .details-grid{padding-block:40px}
 .invitation-player.is-floating{width:156px;right:10px;bottom:max(12px,env(safe-area-inset-bottom));border-radius:10px}.invitation-player.is-floating video{max-height:208px}.invitation-player.is-floating .video-topline{font-size:10px;padding-left:9px}.invitation-player.is-floating .video-controls button{font-size:10px;padding:7px 6px;min-height:36px}.invitation-player.is-floating .video-status{font-size:9px;padding:0 8px 7px}.invitation-player.is-floating [data-video-close]{min-width:34px}.invitation-player.is-floating [data-video-expand]{font-size:18px;padding-inline:7px}
}
@media(max-width:370px){.launch-page .site-header{padding-inline:15px}.launch-page .site-header img{width:124px}.launch-page .header-link{max-width:none;font-size:10px;padding:8px 10px}.hero-brand{font-size:67px}.hero-invitation{font-size:47px}.hero-date strong{font-size:15px}.hero-small{font-size:10px}.hero-film{max-width:270px}.demonstration-card{padding:23px 18px}.demonstration-card h3{font-size:28px}.launch-page .booking-card{padding:22px 15px}.invitation-player.is-floating{width:145px}.invitation-player.is-floating video{max-height:184px}}
@media(prefers-reduced-motion:reduce){.launch-page{scroll-behavior:auto}}

/* Start with the real booking form; the film and event guide follow on phones. */
.launch-hero{grid-template-columns:minmax(0,.9fr) minmax(0,1.2fr);grid-template-areas:"intro booking" "film booking";gap:32px 64px;align-items:start;padding-top:38px}
.hero-copy{grid-area:intro;padding-top:12px}.launch-hero>.booking-card{grid-area:booking;min-width:0;margin-top:0}.hero-film{grid-area:film;justify-self:start;max-width:300px}
.hero-brand{font-size:clamp(52px,6vw,82px)}.hero-invitation{font-size:clamp(36px,4vw,54px)}
.hero-copy h1{margin-bottom:24px}.hero-date{margin:24px 0 16px}.hero-small{font-size:12px;margin:0}
@media(max-width:1000px) and (min-width:701px){.launch-hero{gap:28px 30px}.hero-film{max-width:260px}.launch-page .booking-card{padding:24px}.launch-page .booking-card h2{font-size:30px}.launch-hero .session-option{grid-template-columns:18px minmax(0,1fr)}.launch-hero .session-option>input{grid-column:1;grid-row:1 / 3;align-self:start;margin-top:6px}.launch-hero .session-copy{grid-column:2}.launch-hero .availability{grid-column:2;justify-self:start;max-width:none}}
@media(max-width:700px){
 .launch-hero{grid-template-columns:1fr;grid-template-areas:"intro" "booking" "film";gap:22px;padding-top:20px}
 .hero-copy{padding-top:0}.hero-copy>.eyebrow{margin-bottom:12px;font-size:9px}.hero-copy h1{margin-bottom:14px;display:flex;flex-wrap:wrap;align-items:baseline;gap:0 10px}
 .hero-brand{font-size:43px}.hero-invitation{font-size:30px;margin-top:0}.launch-subtitle{font-size:14px;margin-bottom:12px}
 .hero-date{margin:0 0 12px;padding-left:12px}.hero-date strong{font-size:15px}.hero-date span{font-size:12px}.hero-small{font-size:11px}
 .launch-hero>.booking-card{padding:22px 20px}.launch-page .booking-card h2{font-size:29px}.launch-hero .booking-card>.eyebrow{margin-bottom:8px}
 .hero-film{justify-self:center;margin-top:14px}.launch-hero .price{margin-bottom:17px}
}
@media(max-width:370px){.hero-brand{font-size:38px}.hero-invitation{font-size:27px}.launch-hero>.booking-card{padding:21px 15px}.hero-copy h1{gap:0 8px}}

/* A session opens a short, accessible registration flow in the booking card. */
.chosen-session{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;border-block:1px solid var(--line);padding:18px 0;margin:5px 0 22px}
.chosen-session>div{display:flex;flex-direction:column;min-width:0;gap:3px}.chosen-label{font-size:9px;font-weight:650;letter-spacing:1.7px;color:#856745}.chosen-session strong{font-size:23px;color:var(--wine);line-height:1.3}.chosen-session #chosen-session-focus{font-size:13px;font-weight:600;line-height:1.45}.chosen-session .small{margin-top:4px}
.change-session,.back-link{background:transparent;border:0;color:var(--wine);text-decoration:underline;text-underline-offset:4px;font-size:12px;font-weight:600;min-height:44px;padding:8px 2px;white-space:nowrap}.change-session{margin-top:12px}.back-link{display:block;margin:3px auto 0}
.booking-progress{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;list-style:none;padding:0;margin:0 0 27px}.booking-progress li{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--muted)}.booking-progress li>span{border:1px solid #d5c8bc;border-radius:50%;display:grid;place-items:center;flex:none;width:25px;height:25px;font-size:11px}.booking-progress [aria-current=step]{font-weight:650;color:var(--wine)}.booking-progress [aria-current=step]>span{background:var(--wine);color:#fff;border-color:var(--wine)}.booking-progress .is-complete>span{background:#eee7dc;color:var(--wine);border-color:#d7c3aa}
.booking-step h3{font:29px/1.15 Georgia,serif;letter-spacing:-.025em;color:var(--wine);margin-bottom:12px}.booking-step h3:focus{outline:none}.booking-step .step-intro{font-size:13px;color:#62555a;line-height:1.65;margin-bottom:20px}.booking-step .guest-details{grid-template-columns:1fr 1fr;gap:14px 12px}.guest-details .full{grid-column:1 / -1}.field-hint{display:block;font-size:11px;font-weight:400;color:var(--muted);margin-top:5px}.booking-step>.button.primary{margin-top:22px}.booking-step>.centred{margin-bottom:0}.booking-step .visited{margin:20px 0 12px}.booking-step .visited label{display:flex;min-height:37px;gap:8px;margin-bottom:4px}.record-note{padding-bottom:20px;margin-bottom:23px;border-bottom:1px solid var(--line)}
.marketing-options>legend{font-size:15px;margin-bottom:12px}.booking-step .marketing-options .step-intro{margin-bottom:8px}.marketing-options>.small{margin-bottom:13px}.marketing-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0}.marketing-grid .check{margin:0;border:1px solid var(--line);border-radius:7px;padding:12px;min-height:50px;font-size:12px;align-items:center}.marketing-grid .check:has(input:checked){background:#fcf7f9;border-color:var(--wine)}.marketing-grid .check input{margin:0}.step-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:22px}.step-actions .button{padding-inline:20px}.step-actions .button:last-child{flex:1}
.booking-review{margin:20px 0;padding:0;border-top:1px solid var(--line)}.booking-review>div{display:grid;grid-template-columns:90px minmax(0,1fr);gap:12px;padding:11px 0;border-bottom:1px solid var(--line);font-size:12px}.booking-review dt{color:var(--muted)}.booking-review dd{margin:0;overflow-wrap:anywhere}.booking-review .booking-total{display:flex;justify-content:space-between;align-items:center;padding:16px 0}.booking-total dt{color:var(--ink);font-weight:600}.booking-total dd{font-size:24px;color:var(--wine);font-weight:600}.booking-terms{padding:15px;background:#faf7f1;border-radius:7px}.booking-privacy{border-top:1px solid var(--line);padding-top:17px;margin:22px 0 0}.booking-card:has(#booking-fields:not([hidden])) .price{margin-bottom:12px}
@media(max-width:1000px) and (min-width:701px){.marketing-grid{grid-template-columns:1fr}.booking-progress{gap:3px}.booking-progress li{font-size:10px;gap:5px}.step-actions .button{padding-inline:14px;font-size:12px}.booking-step .guest-details{grid-template-columns:1fr}.booking-review>div{grid-template-columns:70px minmax(0,1fr);gap:8px}}
@media(max-width:430px){.booking-progress{gap:3px}.booking-progress li{font-size:10px;gap:5px}.booking-step h3{font-size:27px}.marketing-grid{grid-template-columns:1fr}.step-actions .button{padding-inline:16px;font-size:12px}.chosen-session #chosen-session-focus{font-size:12px}.booking-review>div{grid-template-columns:75px minmax(0,1fr);gap:9px}.booking-terms{padding:13px}}
@media(max-width:370px){.booking-step .guest-details{grid-template-columns:1fr}.booking-progress li{font-size:9px;gap:4px}.booking-progress li>span{width:23px;height:23px}.chosen-session{gap:10px}.chosen-session .small{font-size:10px}.step-actions .button{padding-inline:13px}}
