:root{--paper:#f1f3f5;--graphite:#2f343a;--ink:#14181c;--graphite-60:rgba(47,52,58,.6);--graphite-40:rgba(47,52,58,.4);--graphite-20:rgba(47,52,58,.2);--graphite-12:rgba(47,52,58,.12);--daily:#3fa8b8;--power:#9cd33a;--glow:#d94b7f;--reset:#7b2cbf;--pure:#3d5afe;--cell:#00c896;--cell-pro:#005f4d;--reserve:#b8b5ff;--bg:var(--paper);--surface:var(--paper);--fg:var(--ink);--fg-muted:var(--graphite-60);--fg-strong:var(--ink);--divider:var(--graphite-12);--rule-input:var(--graphite-20);--cta-bg:var(--ink);--cta-fg:var(--paper);--focus-ring:var(--ink);--font-display:var(--font-fraunces),"PP Editorial New","Times New Roman",serif;--font-body:var(--font-inter-tight),"Söhne",system-ui,-apple-system,sans-serif;--fraunces-axes:"opsz" 96,"SOFT" 60;--text-h1:clamp(40px,5vw,80px);--text-h2:clamp(28px,3.5vw,56px);--text-h3:clamp(22px,3vw,36px);--text-h4:clamp(20px,2.2vw,26px);--text-h5:clamp(18px,1.8vw,20px);--text-lead:clamp(18px,2vw,24px);--text-body:clamp(16px,1.5vw,19px);--text-small:clamp(15px,1.2vw,16px);--text-button:clamp(16px,1.1vw,17px);--text-label:clamp(14px,1vw,15px);--text-input:clamp(17px,1.3vw,18px);--text-footnote:14px;--text-price-lg:clamp(28px,4vw,56px);--text-bignum:clamp(64px,12vw,220px);--lh-display:1.05;--lh-heading:1.20;--lh-body:1.60;--lh-body-mob:1.65;--lh-lead:1.50;--tracking-tight:-0.02em;--tracking-normal:0;--tracking-uppercase:0.10em;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:clamp(28px,4vw,48px);--space-3xl:clamp(36px,5vw,64px);--space-4xl:clamp(48px,7vw,96px);--space-5xl:clamp(48px,8vh,120px);--radius-sm:8px;--radius-md:16px;--radius-lg:24px;--radius-full:999px;--shadow-card:0 2px 24px rgba(20,24,28,.04);--shadow-hover:0 4px 32px rgba(20,24,28,.08);--shadow-sticky:0 -2px 24px rgba(20,24,28,.06);--container-max:1440px;--container-pad-mobile:20px;--container-pad-tablet:32px;--container-pad-desktop:64px;--ease-standard:cubic-bezier(0.2,0.6,0.2,1);--dur-fast:150ms;--dur-base:200ms;--dur-slow:300ms}body,html{background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:var(--text-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (max-width:767px){body{line-height:var(--lh-body-mob)}}.h1,h1{font-family:var(--font-display);font-variation-settings:var(--fraunces-axes);font-weight:200;font-size:var(--text-h1);line-height:var(--lh-display);letter-spacing:var(--tracking-tight);color:var(--fg-strong);margin:0}@media (max-width:767px){.h1,h1{font-size:clamp(40px,11vw,48px)}}.h2,h2{font-family:var(--font-display);font-variation-settings:var(--fraunces-axes);font-weight:400;font-size:var(--text-h2);line-height:var(--lh-display);letter-spacing:var(--tracking-tight);color:var(--fg-strong);margin:0}.h3,h3{font-size:var(--text-h3)}.h3,.h4,h3,h4{font-family:var(--font-body);font-weight:500;line-height:var(--lh-heading);color:var(--fg-strong);margin:0}.h4,h4{font-size:var(--text-h4)}.h5,h5{font-weight:500;font-size:var(--text-h5);line-height:var(--lh-heading);color:var(--fg-strong);margin:0}.h5,.lead,h5{font-family:var(--font-body)}.lead{font-weight:400;font-size:var(--text-lead);line-height:var(--lh-lead)}.lead,.p,p{color:var(--fg)}.p,p{font-size:var(--text-body);line-height:var(--lh-body);margin:0 0 1em}.small{font-size:var(--text-small)}.footnote{font-size:var(--text-footnote)}.footnote,.label{color:var(--fg-muted)}.label{font-family:var(--font-body);font-size:var(--text-label);font-weight:500;letter-spacing:var(--tracking-uppercase);text-transform:uppercase}.italic-accent{font-style:italic}.tnum{font-feature-settings:"tnum","lnum"}.bignum{font-variation-settings:var(--fraunces-axes);font-weight:200;font-size:var(--text-bignum);line-height:.95;letter-spacing:-.03em}.bignum,.price-lg{font-family:var(--font-display);color:var(--fg-strong)}.price-lg{font-variation-settings:var(--fraunces-axes);font-weight:400;font-size:var(--text-price-lg);line-height:1;font-feature-settings:"tnum","lnum"}[data-accent=daily]{--accent:var(--daily);--accent-text:#1f7a85}[data-accent=power]{--accent:var(--power);--accent-text:#4f7a12}[data-accent=glow]{--accent:var(--glow);--accent-text:#b11d5c}[data-accent=reset]{--accent:var(--reset);--accent-text:var(--reset)}[data-accent=pure]{--accent:var(--pure);--accent-text:#2540d9}[data-accent=cell]{--accent:var(--cell);--accent-text:#007a5a}[data-accent=cell-pro]{--accent:var(--cell-pro);--accent-text:var(--cell-pro)}[data-accent=reserve]{--accent:var(--reserve);--accent-text:#5752c7}.booking-section{padding-top:clamp(40px,8vh,96px)}.booking-layout{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:clamp(40px,5vw,72px);align-items:start;max-width:1100px;margin:0 auto}.booking-side{position:sticky;top:96px}.booking-side-info{display:contents}.booking-side-h{font-family:var(--font-display);font-variation-settings:var(--fraunces-axes);font-weight:200;font-size:clamp(28px,3vw,36px);line-height:1.1;letter-spacing:-.01em;color:var(--ink);margin:0 0 24px}.booking-side-card{padding:20px 22px;background:var(--paper);border-radius:14px;box-shadow:0 0 0 1px var(--graphite-12)}.booking-session-label{font-size:14px;text-transform:uppercase;letter-spacing:.14em;color:var(--ink);font-weight:500;margin-bottom:6px}.booking-session-name{font-family:var(--font-display);font-variation-settings:var(--fraunces-axes);font-weight:400;font-size:22px;line-height:1.2;color:var(--ink);margin-bottom:4px}.booking-session-meta{font-size:14px;color:var(--ink);font-feature-settings:"tnum","lnum"}.booking-side-note{margin:14px 0 0;padding-top:14px;border-top:1px solid var(--graphite-12)}.booking-side-foot,.booking-side-note{font-size:14px;line-height:1.55;color:var(--ink)}.booking-side-foot{margin:24px 0 0}.booking-main{min-width:0}@media (max-width:899px){.booking-section{padding-top:0}.booking-layout{grid-template-columns:1fr;gap:32px}.booking-side{position:relative;top:auto;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);width:100vw;max-width:100vw;padding:0 clamp(20px,5vw,64px) 32px;border-radius:0;overflow:hidden;isolation:isolate;background:var(--paper);display:flex;flex-direction:column;min-height:520px}.booking-portrait{position:absolute!important;top:0;left:0;right:0;bottom:0;width:100%;height:100%;aspect-ratio:auto;margin:0;border-radius:0;overflow:hidden;z-index:0;pointer-events:none;background:var(--graphite-12)}.booking-portrait:after{content:none}.booking-side>.booking-side-card,.booking-side>.booking-side-h,.booking-side>.booking-side-label,.booking-side>.booking-side-trust{position:relative;z-index:2}.booking-side-info{display:flex;flex-direction:column;margin-top:auto;margin-bottom:24px;background:rgba(241,243,245,.7);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:14px;padding:24px 22px;box-shadow:0 0 0 1px rgba(20,24,28,.08),0 12px 32px rgba(20,24,28,.08)}.booking-side-h{margin-bottom:20px}.booking-side-card{background:transparent;box-shadow:none;padding:14px 0 0;border-top:1px solid var(--graphite-12)}.booking-portrait-accent{display:none}.booking-side-label{margin-bottom:12px}.booking-side-trust{display:flex;margin-top:14px;padding-top:14px;border-top:1px solid var(--graphite-12)}}.booking-form{display:flex;flex-direction:column;gap:32px}.booking-fieldset{border:none;margin:0;padding:0}.booking-legend{font-family:var(--font-body);font-size:14px;text-transform:uppercase;letter-spacing:.14em;color:var(--ink);font-weight:500;margin-bottom:12px;padding:0}.booking-row3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 20px}@media (max-width:599px){.booking-row3{grid-template-columns:1fr}}.booking-field{display:flex;flex-direction:column;gap:6px}.booking-field>span{font-size:14px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink);font-weight:500}.booking-field .input,.booking-field textarea.input{width:100%;background:transparent;border:none;border-bottom:1px solid var(--graphite-20);padding:10px 0 12px;font-family:inherit;font-size:17px;color:var(--ink);transition:border-color var(--dur-base) var(--ease-standard);border-radius:0}.booking-field .input:focus,.booking-field textarea.input:focus{outline:none;border-color:var(--ink)}.booking-field textarea.input{resize:vertical;line-height:1.55;padding-top:12px}.booking-error{color:#c43a3a;font-size:14px;margin-top:4px}.booking-loc{display:grid;grid-template-columns:1fr 1fr;gap:12px}.booking-loc-card{background:var(--paper);border:none;text-align:left;padding:20px 22px;border-radius:14px;box-shadow:0 0 0 1px var(--graphite-12);cursor:pointer;transition:box-shadow var(--dur-base) var(--ease-standard);display:flex;flex-direction:column;gap:6px}.booking-loc-card:hover{box-shadow:0 0 0 1px var(--graphite-20)}.booking-loc-card.is-on{box-shadow:0 0 0 1.5px var(--ink),var(--shadow-card)}.booking-loc-h{font-family:var(--font-display);font-variation-settings:var(--fraunces-axes);font-weight:400;font-size:18px;line-height:1.2;color:var(--ink)}.booking-loc-sub{font-size:14px;color:var(--ink);line-height:1.45}.booking-cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.booking-day{background:var(--paper);border:none;padding:12px 6px;border-radius:10px;box-shadow:0 0 0 1px var(--graphite-12);cursor:pointer;transition:box-shadow var(--dur-base) var(--ease-standard);display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--ink);font-family:var(--font-body)}.booking-day:hover:not(.is-off){box-shadow:0 0 0 1px var(--graphite-20)}.booking-day.is-on{background:var(--ink);color:var(--paper);box-shadow:0 0 0 1.5px var(--ink)}.booking-day.is-off{opacity:.4;cursor:not-allowed}.booking-day-name{font-size:14px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink)}.booking-day.is-on .booking-day-name{color:rgba(241,243,245,.7)}.booking-day-date{font-size:14px;font-feature-settings:"tnum","lnum";font-weight:500}.booking-times{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:8px}.booking-time{background:var(--paper);border:none;padding:12px 8px;border-radius:999px;box-shadow:0 0 0 1px var(--graphite-12);cursor:pointer;color:var(--ink);font-family:var(--font-body);font-size:14px;font-feature-settings:"tnum","lnum";transition:box-shadow var(--dur-base) var(--ease-standard)}.booking-time:hover{box-shadow:0 0 0 1px var(--graphite-20)}.booking-time.is-on{background:var(--ink);color:var(--paper);box-shadow:0 0 0 1.5px var(--ink)}.booking-submit{margin-top:8px;padding-top:24px;border-top:1px solid var(--graphite-12);display:flex;flex-direction:column;gap:14px;align-items:flex-start}.booking-submit-btn{min-width:240px;padding:16px 28px;min-height:52px}.booking-submit-row{display:flex;gap:16px;flex-wrap:wrap;align-items:center}.booking-fieldset[disabled]{opacity:.55;pointer-events:none}.booking-submit-note{margin:0;color:var(--ink);font-size:14px;line-height:1.55;max-width:560px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}.booking-portrait{position:relative;width:100%;aspect-ratio:4/5;border-radius:14px;overflow:hidden;margin-bottom:28px;background:var(--graphite-12)}.booking-portrait-accent{position:absolute;left:16px;bottom:16px;width:36px;height:4px;border-radius:2px;background:var(--ink);opacity:.95}.booking-side-label{margin-bottom:14px;color:var(--ink)}.booking-side-card-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:6px 0}.booking-side-card-key{font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:var(--graphite-60);font-weight:500}.booking-side-card-name{font-family:var(--font-display);font-variation-settings:var(--fraunces-axes);font-weight:400;font-size:18px;line-height:1.2;color:var(--ink);text-align:right}.booking-side-card-line{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:4px 0;margin-top:8px;font-size:14px;color:var(--graphite-60);font-feature-settings:"tnum","lnum"}.booking-side-card-line:first-of-type{margin-top:12px;padding-top:12px;border-top:1px solid var(--graphite-12)}.booking-side-card-divider{height:1px;background:var(--graphite-12);margin:12px 0}.booking-side-card-price{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.booking-side-card-price-value{font-family:var(--font-display);font-variation-settings:var(--fraunces-axes);font-weight:400;font-size:28px;color:var(--ink);font-feature-settings:"tnum","lnum"}.booking-side-trust{margin-top:20px;display:flex;flex-direction:column;gap:10px}.booking-side-trust-item{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--graphite-60);line-height:1.4}.booking-side-trust-item svg{flex:0 0 16px;color:var(--ink);opacity:.6}.booking-steps{list-style:none;margin:0 0 40px;padding:0;gap:0}.booking-step,.booking-steps{display:flex;align-items:center}.booking-step{gap:10px;flex:1 1 0;position:relative;padding-right:12px}.booking-step:not(:last-child):after{content:"";flex:1;height:1px;background:var(--graphite-12);margin-left:12px;margin-right:12px}.booking-step.is-done:not(:last-child):after{background:var(--ink)}.booking-step-num{flex:0 0 28px;width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:500;background:transparent;color:var(--graphite-40);border:1px solid var(--graphite-20);font-feature-settings:"tnum","lnum";transition:all var(--dur-base) var(--ease-standard)}.booking-step-label{font-size:13px;text-transform:uppercase;letter-spacing:.12em;color:var(--graphite-40);font-weight:500;transition:color var(--dur-base) var(--ease-standard)}.booking-step.is-active .booking-step-num{background:var(--ink);color:var(--paper);border-color:var(--ink)}.booking-step.is-active .booking-step-label{color:var(--ink)}.booking-step.is-done .booking-step-num{background:var(--paper);color:var(--ink);border-color:var(--ink)}.booking-step.is-done .booking-step-label{color:var(--ink);opacity:.7}@media (max-width:599px){.booking-steps{position:relative;display:flex;justify-content:space-between;align-items:center;gap:0;padding:0 4px;margin-bottom:32px}.booking-step-label{display:none}.booking-step{flex:0 0 auto;gap:0;padding:0;position:relative;z-index:1}.booking-step:not(:last-child):after{display:none}.booking-steps:after,.booking-steps:before{content:"";position:absolute;top:50%;height:1px;background:var(--graphite-20);transform:translateY(-50%);z-index:0;pointer-events:none}.booking-steps:before{left:calc(4px + 28px + 12px);right:calc(50% + 14px + 12px)}.booking-steps:after{left:calc(50% + 14px + 12px);right:calc(4px + 28px + 12px)}}.booking-honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}.booking-rate-limit{margin:0;padding:12px 14px;border-radius:8px;background:rgba(217,75,127,.08);border:1px solid rgba(217,75,127,.25);color:var(--ink);font-size:14px;line-height:1.5;max-width:480px}.booking-consent-note{margin:0;font-size:13px;line-height:1.55;color:var(--graphite-60);max-width:480px}.booking-consent-note a{color:var(--ink);text-decoration:underline;text-underline-offset:2px}.booking-consent-note a:hover{opacity:.7}.booking-review{padding:32px 0 8px}.booking-review-h{font-family:var(--font-display);font-variation-settings:var(--fraunces-axes);font-weight:200;font-size:clamp(32px,4.5vw,48px);line-height:1.05;letter-spacing:-.01em;color:var(--ink);margin:14px 0}.booking-review-lead{margin:0 0 32px;font-size:17px;line-height:1.55;color:var(--graphite-60);max-width:520px}.booking-review-list{margin:0;padding:0;display:flex;flex-direction:column}.booking-review-row{display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:16px;align-items:start;padding:18px 0;border-top:1px solid var(--graphite-12)}.booking-review-row:last-child{border-bottom:1px solid var(--graphite-12)}.booking-review-row dt{margin:0;font-size:13px;text-transform:uppercase;letter-spacing:.14em;color:var(--graphite-60);font-weight:500;padding-top:4px}.booking-review-row dd{margin:0;min-width:0}.booking-review-primary{font-family:var(--font-display);font-variation-settings:var(--fraunces-axes);font-weight:400;font-size:19px;line-height:1.3;color:var(--ink);margin-bottom:4px}.booking-review-meta{font-size:14px;line-height:1.5;color:var(--graphite-60)}.booking-review-edit{background:none;border:none;padding:4px 0;font-family:var(--font-body);font-size:13px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink);font-weight:500;border-bottom:1px solid var(--ink);cursor:pointer;align-self:start;margin-top:4px}.booking-review-edit:hover{opacity:.7}@media (max-width:599px){.booking-review-row{grid-template-columns:1fr auto}.booking-review-row dt{grid-column:1/-1;padding-top:0}.booking-review-row dd{grid-column:1}.booking-review-edit{grid-column:2;grid-row:2}}.booking-next{margin-top:72px;padding-top:40px;border-top:1px solid var(--graphite-12)}.booking-next-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}@media (max-width:767px){.booking-next-list{grid-template-columns:1fr;gap:28px}.booking-next{margin-top:56px}}.booking-next-list li{display:flex;flex-direction:column;gap:12px}.booking-next-num{font-family:var(--font-display);font-variation-settings:var(--fraunces-axes);font-weight:300;font-size:22px;color:var(--graphite-40);font-feature-settings:"tnum","lnum"}.booking-next-h{font-family:var(--font-display);font-variation-settings:var(--fraunces-axes);font-weight:400;font-size:19px;line-height:1.3;color:var(--ink);margin-bottom:6px}.booking-next-body{margin:0;font-size:14px;line-height:1.55;color:var(--graphite-60)}.booking-confirm-mark{width:56px;height:56px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--paper);margin-bottom:28px}.booking-confirm{max-width:820px;margin:0 auto}.booking-confirm-summary{margin:48px 0 0;padding:32px 0;border-top:1px solid var(--graphite-12);border-bottom:1px solid var(--graphite-12);display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px 48px}.booking-confirm-summary dt{font-size:14px;text-transform:uppercase;letter-spacing:.14em;color:var(--ink);font-weight:500;margin-bottom:6px}.booking-confirm-summary dd{margin:0;font-size:16px;line-height:1.5;color:var(--ink)}@media (max-width:600px){.booking-loc{grid-template-columns:1fr}.booking-cal{grid-template-columns:repeat(4,minmax(0,1fr))}.booking-pills{grid-template-columns:1fr}.booking-submit-btn{width:100%}}