.booking-page{background:var(--fs-ivory-50)}.confirmation-loading{display:grid;min-height:52vh;place-content:center;justify-items:center;grid-gap:13px;gap:13px;color:var(--fs-muted)}.confirmation-loading span{width:32px;height:32px;border:3px solid var(--fs-line);border-top-color:var(--fs-thynk-500);border-radius:50%;animation:confirmation-spin .7s linear infinite}.confirmation-loading p{margin:0;font-size:.85rem;font-weight:700}@keyframes confirmation-spin{to{transform:rotate(1turn)}}.booking-header{padding-block:44px 34px;border-bottom:1px solid var(--fs-line);background:var(--fs-white)}.booking-header-inner{display:flex;justify-content:space-between;gap:28px;align-items:flex-end}.booking-header-inner>div:first-child{display:grid;grid-gap:10px;gap:10px}.booking-header .headline{font-size:clamp(2rem,4vw,3.6rem)}.booking-back{display:inline-flex;width:-moz-fit-content;width:fit-content;gap:7px;align-items:center;margin-bottom:10px;color:var(--fs-muted);font-size:.85rem;font-weight:800}.booking-brand{width:min(250px,32vw)}.booking-brand img{display:block;width:100%;height:auto}.booking-stepper{display:grid;grid-template-columns:repeat(4,1fr);padding-block:22px;border-bottom:1px solid var(--fs-line)}.booking-stepper>button{position:relative;display:flex;gap:10px;align-items:center;padding:0;border:0;background:transparent;color:var(--fs-muted);font:inherit;font-size:.8rem;text-align:left}.booking-stepper>button:not(:last-child):after{position:absolute;top:50%;right:18px;left:48px;height:1px;background:var(--fs-line);content:""}.booking-stepper>button:not(:disabled){cursor:pointer}.booking-stepper>button:focus-visible{outline:3px solid rgba(184,115,51,.32);outline-offset:5px;border-radius:4px}.booking-stepper>button span{z-index:1;display:grid;width:30px;height:30px;place-items:center;border:1px solid var(--fs-line-strong);border-radius:50%;background:var(--fs-white);font-weight:800}.booking-stepper .active{color:var(--fs-navy-900)}.booking-stepper .active span{border:7px solid rgba(47,191,113,.18);background:var(--fs-thynk-500);color:var(--fs-navy-950);background-clip:padding-box}.booking-stepper .complete span{border-color:var(--fs-thynk-500);background:rgba(47,191,113,.12);color:var(--fs-success)}.booking-mobile-progress{display:none}.booking-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;grid-gap:clamp(28px,5vw,64px);gap:clamp(28px,5vw,64px);align-items:start}.booking-main{display:grid;grid-gap:24px;gap:24px;min-width:0}.booking-section{display:grid;grid-gap:28px;gap:28px}.booking-section-heading{display:grid;grid-gap:8px;gap:8px}.booking-section-heading h2,.booking-section-heading p{margin:0}.booking-section-heading h2{color:var(--fs-navy-900);font-size:clamp(1.6rem,3vw,2.35rem)}.booking-section-heading>p:last-child{color:var(--fs-muted)}.product-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px;gap:16px}.product-choice{position:relative;display:grid;grid-template-columns:104px 1fr;grid-template-rows:auto auto auto 1fr auto auto;grid-gap:6px 16px;gap:6px 16px;min-height:248px;overflow:hidden;padding:22px;text-align:left;border:1px solid var(--fs-line);border-radius:var(--fs-radius-md);background:var(--fs-white);color:var(--fs-ink);cursor:pointer;transition:transform .2s var(--fs-ease),border-color .2s var(--fs-ease),background .2s var(--fs-ease),box-shadow .2s var(--fs-ease)}.product-choice:hover{transform:translateY(-2px);border-color:rgba(47,191,113,.55);box-shadow:var(--fs-shadow-subtle)}.product-choice.selected{border-color:var(--fs-thynk-500);background:rgba(47,191,113,.045);box-shadow:inset 0 0 0 1px var(--fs-thynk-500),0 12px 34px rgba(47,191,113,.1)}.product-choice.sold-out{cursor:not-allowed;filter:grayscale(.45);opacity:.58}.product-choice-image{position:relative;grid-row:1/5;width:104px;height:112px;overflow:hidden;border-radius:6px;background:var(--fs-ivory-100)}.product-choice-image img{object-fit:cover}.choice-check{position:absolute;top:16px;right:16px;display:grid;width:24px;height:24px;place-items:center;border:1px solid var(--fs-line);border-radius:50%}.selected .choice-check{border-color:var(--fs-thynk-500);background:var(--fs-thynk-500);animation:choice-check-in .22s var(--fs-ease)}.product-badge{width:-moz-fit-content;width:fit-content;margin-right:35px;padding:4px 7px;border:1px solid rgba(47,191,113,.22);background:rgba(47,191,113,.08);color:var(--fs-thynk-700);font-size:.62rem;font-weight:850}.product-kicker{color:var(--fs-muted);font-size:.68rem;font-weight:850;letter-spacing:.07em;text-transform:uppercase}.product-choice>.product-name{max-width:90%;color:var(--fs-navy-900);font-size:1.25rem;line-height:1.2}.product-choice p{grid-column:1/-1;margin:8px 0 2px;color:var(--fs-muted);font-size:.83rem;line-height:1.5}.product-feature,.product-meta,.product-stock{display:inline-flex;gap:7px;align-items:center;color:var(--fs-muted);font-size:.75rem;font-weight:700}.product-feature{grid-column:1/-1;color:var(--fs-navy-800)}.product-meta{grid-column:1}.product-stock{grid-column:1/-1;color:var(--fs-success)}.sold-out .product-stock{color:var(--fs-danger)}.product-choice .product-price{grid-column:2;justify-self:end;color:var(--fs-navy-900);font-size:1.2rem}.product-choice b small{color:var(--fs-muted);font-size:.75rem;font-weight:700}@keyframes choice-check-in{0%{opacity:0;transform:scale(.65)}to{opacity:1;transform:scale(1)}}.plan-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.plan-choice{display:grid;grid-gap:5px;gap:5px;padding:17px;text-align:left;border:1px solid var(--fs-line);border-radius:var(--fs-radius-sm);background:var(--fs-white);color:var(--fs-ink);cursor:pointer}.plan-choice.selected{border-color:var(--fs-thynk-500);box-shadow:inset 0 0 0 1px var(--fs-thynk-500)}.plan-choice span{color:var(--fs-navy-900);font-weight:800}.plan-choice strong{color:var(--fs-muted);font-size:.75rem}.plan-choice b{margin-top:5px;color:var(--fs-navy-900)}.schedule-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:18px;gap:18px;padding:24px;border:1px solid var(--fs-line);border-radius:var(--fs-radius-md);background:var(--fs-white)}.schedule-card .field:first-child{grid-column:1/-1}.availability-success,.booking-error,.booking-note,.booking-warning{display:flex;gap:12px;align-items:flex-start;padding:16px 18px;border-radius:var(--fs-radius-sm)}.availability-success{border:1px solid rgba(47,191,113,.3);background:rgba(47,191,113,.09);color:var(--fs-success)}.availability-success div{display:grid;grid-gap:4px;gap:4px}.availability-success span{color:var(--fs-muted);font-size:.8rem}.booking-warning{border:1px solid rgba(184,115,51,.26);background:rgba(184,115,51,.08);color:var(--fs-navy-900)}.booking-error,.booking-warning{font-size:.84rem;line-height:1.55}.booking-error{border:1px solid rgba(180,35,24,.22);background:rgba(180,35,24,.07);color:var(--fs-danger)}.details-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:20px;gap:20px;padding:26px;border:1px solid var(--fs-line);border-radius:var(--fs-radius-md);background:var(--fs-white)}.details-wide{grid-column:1/-1}.field-error{color:var(--fs-danger);font-size:.75rem;font-weight:700}.input[aria-invalid=true]{border-color:rgba(180,35,24,.55)}.label em{color:var(--fs-muted);font-style:normal;font-weight:500}.review-card{overflow:hidden;border:1px solid var(--fs-line);border-radius:var(--fs-radius-md);background:var(--fs-white)}.review-card>div{display:grid;grid-template-columns:150px 1fr;grid-gap:18px;gap:18px;padding:17px 20px;border-bottom:1px solid var(--fs-line)}.review-card>div:last-child{border:0}.review-card span{color:var(--fs-muted);font-size:.82rem;font-weight:700}.review-card strong{color:var(--fs-navy-900);font-size:.9rem}.review-sections>div{grid-template-columns:110px 1fr auto;align-items:start}.review-sections strong{display:grid;grid-gap:4px;gap:4px}.review-sections strong small{color:var(--fs-muted);font-size:.77rem;font-weight:500;line-height:1.45}.review-sections button{min-width:44px;min-height:44px;padding:0 6px;border:0;background:transparent;color:var(--fs-thynk-700);font-weight:800;cursor:pointer}.review-sections button:hover{text-decoration:underline}.policy-box{padding:20px;border-left:3px solid var(--fs-copper-600);background:rgba(184,115,51,.07)}.policy-box h3,.policy-box p{margin:0}.policy-box h3{margin-bottom:6px;color:var(--fs-navy-900);font-size:.95rem}.policy-box p{color:var(--fs-muted);font-size:.82rem;line-height:1.6}.agreement{display:flex;gap:11px;align-items:flex-start;color:var(--fs-muted);font-size:.84rem;line-height:1.5}.agreement input{width:18px;height:18px;margin-top:1px;accent-color:var(--fs-thynk-500)}.agreement a{color:var(--fs-navy-900);font-weight:700;text-decoration:underline}.paystack-button{width:100%;min-height:52px}.paystack-button[aria-busy=true]{cursor:wait}.payment-note{display:flex;justify-content:center;gap:7px;align-items:center;margin:-12px 0 0;color:var(--fs-muted);font-size:.76rem}.booking-controls{display:flex;justify-content:space-between;padding-top:22px;border-top:1px solid var(--fs-line)}.booking-summary{position:-webkit-sticky;position:sticky;top:92px;display:grid;grid-gap:11px;gap:11px;padding:25px;border:1px solid var(--fs-line);border-radius:var(--fs-radius-md);background:var(--fs-white);box-shadow:var(--fs-shadow-subtle)}.booking-summary h2,.booking-summary p{margin:0}.booking-summary h2{color:var(--fs-navy-900);font-size:1.35rem}.booking-summary>p:not(.eyebrow,.summary-tax){color:var(--fs-muted);font-size:.84rem}.summary-lines{display:grid;grid-gap:13px;gap:13px;padding-block:18px;border-block:1px solid var(--fs-line)}.summary-lines div{display:grid;grid-template-columns:20px 1fr;grid-gap:9px;gap:9px;align-items:start;color:var(--fs-muted);font-size:.8rem;line-height:1.45}.summary-lines svg{color:var(--fs-thynk-700)}.summary-lines em{color:var(--fs-muted);font-style:normal}.summary-subtotal{display:flex;justify-content:space-between;color:var(--fs-muted);font-size:.82rem}.summary-subtotal strong{color:var(--fs-navy-900)}.summary-total{display:flex;justify-content:space-between;align-items:flex-end;padding-top:5px;color:var(--fs-muted)}.summary-total strong{color:var(--fs-navy-900);font-size:1.55rem}.summary-tax{color:var(--fs-muted);font-size:.74rem;line-height:1.45}.summary-safe{display:flex;gap:8px;align-items:center;padding:12px;background:var(--fs-ivory-100);color:var(--fs-navy-900);font-size:.76rem;font-weight:800}.booking-mobile-dock,.summary-mobile-close{display:none}.booking-confirmation{display:grid;justify-items:center;max-width:720px;grid-gap:26px;gap:26px;padding-block:clamp(48px,7vw,78px)}.confirmation-success{display:grid;justify-items:center;max-width:620px;grid-gap:10px;gap:10px;text-align:center;animation:confirmation-enter .42s var(--fs-ease) both}.confirmation-success .headline{color:var(--fs-navy-900);font-size:clamp(2.15rem,5vw,3.75rem);line-height:1.04}.confirmation-success .subtitle{max-width:580px;font-size:.96rem}.confirmation-mark{display:grid;width:76px;height:76px;margin-bottom:5px;place-items:center;border:1px solid rgba(47,191,113,.28);border-radius:50%;background:rgba(47,191,113,.12);color:var(--fs-success);box-shadow:0 0 0 9px rgba(47,191,113,.05);animation:confirmation-check .38s var(--fs-ease) both}.confirmation-card{display:grid;width:100%;overflow:hidden;border:1px solid var(--fs-line);border-radius:var(--fs-radius-md);background:var(--fs-white);box-shadow:0 16px 44px rgba(8,19,34,.07);animation:confirmation-enter .44s .1s var(--fs-ease) both}.confirmation-card-status{display:flex;gap:8px;align-items:center;padding:13px 24px;border-bottom:1px solid rgba(47,191,113,.2);background:rgba(47,191,113,.07);color:var(--fs-success);font-size:.72rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase}.confirmation-workspace{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;padding:26px 26px 23px}.confirmation-workspace>div{display:grid;grid-gap:4px;gap:4px}.confirmation-workspace h2,.confirmation-workspace p{margin:0}.confirmation-workspace p{color:var(--fs-muted);font-size:.75rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.confirmation-workspace h2{color:var(--fs-navy-900);font-size:clamp(1.55rem,4vw,2.15rem)}.confirmation-workspace>strong{color:var(--fs-navy-900);font-size:1.35rem;white-space:nowrap}.confirmation-details{display:grid;grid-template-columns:1.25fr 1fr 1fr;grid-gap:1px;gap:1px;margin-inline:26px;border-block:1px solid var(--fs-line);background:var(--fs-line)}.confirmation-details>div{display:grid;grid-template-columns:20px 1fr;grid-gap:9px;gap:9px;padding:18px 14px;background:var(--fs-white)}.confirmation-details svg{color:var(--fs-thynk-700)}.confirmation-details span{display:grid;grid-gap:4px;gap:4px}.confirmation-details small,.confirmation-payment span,.confirmation-reference span{color:var(--fs-muted);font-size:.68rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.confirmation-details strong{color:var(--fs-navy-900);font-size:.8rem;line-height:1.4}.confirmation-reference{display:flex;justify-content:space-between;gap:20px;align-items:center;margin:0 26px;padding:21px 0;border-bottom:1px solid var(--fs-line)}.confirmation-reference>div{display:grid;min-width:0;grid-gap:5px;gap:5px}.confirmation-reference strong{overflow-wrap:anywhere;color:var(--fs-navy-900);font-size:1.05rem;letter-spacing:.07em}.confirmation-reference small{color:var(--fs-muted);font-size:.72rem}.confirmation-reference button{display:inline-flex;min-width:92px;min-height:44px;gap:7px;align-items:center;justify-content:center;border:1px solid var(--fs-line-strong);border-radius:var(--fs-radius-sm);background:var(--fs-white);color:var(--fs-navy-900);font-weight:800;cursor:pointer;transition:.18s var(--fs-ease)}.confirmation-reference button.copied,.confirmation-reference button:hover{border-color:var(--fs-thynk-500);background:rgba(47,191,113,.08);color:var(--fs-success)}.confirmation-payment{display:grid;grid-template-columns:1fr 1fr;grid-gap:30px;gap:30px;padding:22px 26px}.confirmation-payment>div{display:flex;justify-content:space-between;gap:12px;align-items:center}.confirmation-payment strong{color:var(--fs-navy-900)}.confirmation-payment .paid-status{display:inline-flex;gap:6px;align-items:center;color:var(--fs-success)}.confirmation-checkin{display:grid;grid-gap:11px;gap:11px;margin:0 26px 26px;padding:18px;border-left:3px solid var(--fs-copper-600);background:var(--fs-ivory-100)}.confirmation-checkin h3,.confirmation-checkin p{margin:0}.confirmation-checkin h3{color:var(--fs-navy-900);font-size:.9rem}.confirmation-checkin>div{display:grid;grid-template-columns:20px 1fr;grid-gap:9px;gap:9px;color:var(--fs-muted);font-size:.82rem;line-height:1.5}.confirmation-checkin svg{color:var(--fs-thynk-700)}.confirmation-checkin p{display:grid;grid-gap:5px;gap:5px}.confirmation-checkin small{color:var(--fs-navy-900);font-size:.75rem;font-weight:800}.confirmation-actions{display:flex;justify-content:center;width:100%}.confirmation-actions .button{min-width:210px}.confirmation-downloads{display:flex;width:100%;gap:22px;align-items:center;justify-content:space-between;padding:20px 22px;border:1px solid var(--fs-line);border-radius:var(--fs-radius-md);background:var(--fs-white);box-shadow:0 10px 30px rgba(8,19,34,.05)}.confirmation-downloads>div:first-child{display:flex;min-width:0;gap:12px;align-items:center;color:var(--fs-thynk-700)}.confirmation-downloads span{display:grid;grid-gap:3px;gap:3px}.confirmation-downloads strong{color:var(--fs-navy-900);font-size:.88rem}.confirmation-downloads small{color:var(--fs-muted);font-size:.74rem;line-height:1.45}.confirmation-download-buttons{display:flex;flex:0 0 auto;gap:9px}.confirmation-download-buttons .button{min-width:126px}.confirmation-download-buttons .button:disabled{cursor:wait;opacity:.58}@keyframes confirmation-check{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes confirmation-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (max-width:900px){.booking-page{padding-bottom:112px}.booking-layout{grid-template-columns:1fr}.booking-summary{position:fixed;z-index:70;right:12px;bottom:105px;left:12px;top:auto;max-height:min(70vh,620px);overflow-y:auto;visibility:hidden;opacity:0;transform:translateY(18px);transition:.2s var(--fs-ease)}.booking-summary.mobile-open{visibility:visible;opacity:1;transform:translateY(0)}.summary-mobile-close{display:inline-flex;justify-self:end;min-height:44px;align-items:center;padding:0;border:0;background:transparent;color:var(--fs-muted);font-weight:800;cursor:pointer}.booking-mobile-dock{position:fixed;z-index:65;right:0;bottom:0;left:0;display:grid;grid-template-columns:1fr minmax(150px,.8fr);grid-gap:10px;gap:10px;padding:12px max(14px,env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));border-top:1px solid var(--fs-line);background:rgba(255,255,255,.97);box-shadow:0 -12px 34px rgba(8,19,34,.1)}.booking-mobile-dock .button{min-height:52px}.mobile-summary-trigger{display:grid;align-content:center;justify-items:start;min-height:52px;padding:0 8px;border:0;background:transparent;color:var(--fs-navy-900);cursor:pointer}.mobile-summary-trigger strong{font-size:.95rem}.mobile-summary-trigger span{color:var(--fs-thynk-700);font-size:.72rem;font-weight:800}.booking-controls .button:last-child{visibility:hidden;pointer-events:none}}@media (max-width:640px){.booking-header-inner{align-items:start}.booking-brand{display:none}.booking-header{padding-block:28px 24px}.booking-stepper{display:block;padding-block:16px}.booking-stepper>button{display:none}.booking-mobile-progress{display:grid;grid-template-columns:1fr auto;grid-gap:5px;gap:5px;color:var(--fs-muted);font-size:.72rem}.booking-mobile-progress strong{color:var(--fs-navy-900);font-size:.82rem}.booking-mobile-progress i{position:relative;grid-column:1/-1;height:4px;overflow:hidden;border-radius:2px;background:var(--fs-line)}.booking-mobile-progress i:after{position:absolute;inset:0 auto 0 0;width:var(--booking-progress);background:var(--fs-thynk-500);transition:width .22s var(--fs-ease);content:""}.details-grid,.plan-choice-grid,.product-choice-grid,.schedule-card{grid-template-columns:1fr}.product-choice{grid-template-columns:86px 1fr;min-height:238px;padding:18px}.product-choice-image{width:86px;height:100px}.details-wide,.schedule-card .field:first-child{grid-column:auto}.review-card>div{grid-template-columns:1fr;gap:4px}.review-sections>div{grid-template-columns:1fr auto}.review-sections>div>span,.review-sections>div>strong{grid-column:1}.review-sections>div>button{grid-column:2;grid-row:1/3}.booking-controls .button{padding-inline:16px}.booking-confirmation{gap:22px;padding:38px 14px 52px}.confirmation-success .headline{font-size:clamp(2rem,10.5vw,2.75rem)}.confirmation-success .subtitle{font-size:.88rem}.confirmation-mark{width:66px;height:66px}.confirmation-workspace{align-items:start;flex-direction:column;padding:22px 20px}.confirmation-details{grid-template-columns:1fr;margin-inline:20px}.confirmation-details>div{padding-inline:0}.confirmation-reference{align-items:flex-start;margin-inline:20px}.confirmation-reference strong{font-size:.92rem}.confirmation-reference button{flex:0 0 auto}.confirmation-payment{grid-template-columns:1fr;gap:13px;padding-inline:20px}.confirmation-checkin{margin-inline:20px;margin-bottom:20px}.confirmation-actions .button{width:100%}.confirmation-downloads{align-items:stretch;flex-direction:column}.confirmation-download-buttons{display:grid;grid-template-columns:1fr 1fr}.confirmation-download-buttons .button{min-width:0;width:100%}}@media (prefers-reduced-motion:reduce){.booking-mobile-progress i:after,.booking-summary,.product-choice{transition:none}.confirmation-card,.confirmation-loading span,.confirmation-mark,.confirmation-success,.selected .choice-check{animation:none}}@media (max-width:640px){.booking-header{padding-block:24px 20px}.booking-header .headline{font-size:clamp(1.8rem,8.2vw,2.2rem)}.booking-section-heading{gap:8px}.booking-section-heading h2{font-size:clamp(1.45rem,6.8vw,1.85rem)}.booking-section-heading p{font-size:.82rem;line-height:1.55}.product-choice{min-height:220px;padding:15px}.product-name{font-size:1.08rem}.plan-choice{min-height:112px;padding:15px}.confirmation-success .headline{font-size:clamp(1.8rem,8.5vw,2.25rem)}.confirmation-success .subtitle{font-size:.84rem;line-height:1.55}.confirmation-workspace h2{font-size:1.4rem}}