:root{--booking-font-display: "Futura", "Futura PT", "Avenir Next", Avenir, "Century Gothic", ui-sans-serif, system-ui, sans-serif;--booking-font-body: "Aptos", "Inter", "SF Pro Text", "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;font-family:var(--booking-font-body);color:#25302a;background:#f6f4ef}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}body:has(.booking-app--embedded){min-width:0;min-height:0}.booking-app.booking-app--embedded{min-height:0;overflow-wrap:anywhere}button,input,select{font:inherit}a{color:var(--booking-primary-readable, #53634d)}.booking-app{min-height:100vh;background:radial-gradient(circle at top right,var(--booking-wash-accent),transparent 34rem),radial-gradient(circle at 8% 28%,var(--booking-wash-primary),transparent 28rem),var(--booking-page)}.brand-header{padding:1rem clamp(1rem,4vw,3rem);border-bottom:2px solid var(--booking-card-border);background:linear-gradient(115deg,var(--booking-header-start),var(--booking-header-end));box-shadow:0 8px 24px color-mix(in srgb,var(--booking-primary) 10%,transparent)}.brand-header a{display:inline-flex;gap:.75rem;align-items:center;color:inherit;max-width:100%;text-decoration:none}.brand-header a>span:last-child{min-width:0}.brand-header small,.brand-header strong{display:block}.brand-header strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand-header strong{color:var(--booking-heading)}.brand-header small{color:var(--booking-primary-readable);font-size:.75rem}.brand-mark{display:grid;flex:0 0 2.5rem;place-items:center;width:2.5rem;height:2.5rem;border-radius:50% 50% 44% 56%;color:var(--booking-on-primary);background:var(--booking-primary);font-weight:700}.brand-logo{display:block;flex:0 0 auto;width:auto;max-width:min(14rem,48vw);height:3.5rem;object-fit:contain;object-position:left center}main{width:min(64rem,calc(100% - 2rem));margin:0 auto;padding:clamp(2rem,6vw,5rem) 0}.hero{max-width:46rem;margin-bottom:2rem}.hero.compact{margin:0 auto 1.5rem;max-width:44rem}.hero-coach{margin:-.25rem 0 .75rem;color:var(--booking-primary-readable);font-size:clamp(1rem,2.8vw,1.2rem);font-weight:700}.hero-collection-title{color:var(--booking-primary-readable);font-size:clamp(1.15rem,3.4vw,1.45rem);margin:.65rem 0 .35rem}h1,h2{font-family:var(--booking-font-display);color:var(--booking-heading)}h1{margin:.25rem 0 1rem;font-size:clamp(2rem,7vw,4.25rem);line-height:1}h2{margin:0 0 1.25rem;font-size:clamp(1.4rem,4vw,2rem)}h3{font-size:.95rem;margin:1.5rem 0 .7rem}.eyebrow{color:var(--booking-primary-readable);font-size:.78rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.booking-flow{display:grid;gap:1rem}.booking-flow>*{min-width:0}.preview-banner{display:grid;gap:.25rem;margin-bottom:1rem;padding:1rem 1.2rem;border:1px solid #b8c9b4;border-radius:.8rem;color:#28452c;background:#e8f2e6}.preview-banner strong{text-transform:capitalize}.preview-setup-note{padding:.8rem 1rem;border-radius:.65rem;color:#6f4d19;background:#fff2d8}.card{position:relative;padding:clamp(1.25rem,4vw,2.25rem);border:1px solid var(--booking-card-border);border-radius:1.25rem;background:color-mix(in srgb,var(--booking-card) 96%,transparent);box-shadow:0 14px 40px color-mix(in srgb,var(--booking-primary) 10%,transparent)}.step-number{float:right;display:grid;place-items:center;width:2rem;height:2rem;border:1px solid color-mix(in srgb,var(--booking-on-accent) 18%,transparent);border-radius:50%;color:var(--booking-on-accent);background:var(--booking-accent);font-weight:700}label{display:grid;gap:.45rem;margin:.8rem 0;font-weight:600}label span{font-weight:400;color:#667068}input,select{width:100%;min-width:0;max-width:100%;min-height:3rem;padding:.75rem;border:1px solid var(--booking-field-border);border-radius:.65rem;color:#25302a;background:var(--booking-field)}.booking-app--embedded select{overflow:hidden;text-overflow:ellipsis}textarea{width:100%;min-width:0;max-width:100%;padding:.75rem;border:1px solid var(--booking-field-border);border-radius:.65rem;color:#25302a;background:var(--booking-field);font:inherit;resize:vertical}input:focus,select:focus,button:focus-visible,a:focus-visible{outline:3px solid var(--booking-focus);outline-offset:2px}.field-grid{display:grid;gap:0 1rem}.consent{grid-template-columns:1.3rem 1fr;align-items:start;font-weight:400;margin:1.5rem 0}.consent input{min-height:1.15rem;margin-top:.2rem}.consent span{min-width:0;overflow-wrap:anywhere}.supporting,.fine-print{color:#68716a;font-size:.88rem}.selected-service-summary{align-items:center;background:color-mix(in srgb,var(--primary) 7%,#fff);border:1px solid color-mix(in srgb,var(--primary) 24%,#dfe5dc);border-radius:.75rem;display:flex;flex-wrap:wrap;gap:.35rem .75rem;justify-content:space-between;padding:.8rem .9rem}.selected-service-summary span{color:#68716a;font-size:.82rem;font-weight:700}.selected-service-summary strong{color:var(--primary);overflow-wrap:anywhere}.method-options{display:grid;gap:.55rem;margin:1.25rem 0 0;padding:1rem;border:1px solid var(--booking-card-border);border-radius:.75rem;background:var(--booking-accent-tint)}.method-options legend{padding:0 .35rem;font-weight:700}.method-options label{display:grid;grid-template-columns:1.25rem minmax(0,1fr);align-items:center;gap:.65rem;margin:0;padding:.7rem;border:1px solid var(--booking-field-border);border-radius:.65rem;background:var(--booking-card)}.method-options input{width:1.1rem;min-height:1.1rem;margin:0}.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(7rem,1fr));gap:.55rem}.slot-button{min-height:2.8rem;border:1px solid var(--booking-primary-readable);border-radius:.6rem;background:#fff;color:var(--booking-primary-readable);cursor:pointer;transition:background-color .16s ease,color .16s ease,transform .16s ease,box-shadow .16s ease}.slot-button[aria-pressed=true]{color:var(--booking-on-primary);background:var(--booking-primary)}.slot-picker{display:grid;gap:1.25rem}.availability-calendar{width:min(100%,28rem);margin-inline:auto;padding:1rem;border:1px solid var(--booking-card-border);border-radius:.9rem;background:var(--booking-primary-tint)}.calendar-navigation{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.75rem}.calendar-navigation h3{margin:0;text-align:center;font-family:var(--booking-font-display);font-size:1.15rem}.calendar-navigation button{width:2.75rem;padding-inline:.4rem;font-size:1.35rem}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.3rem}.calendar-weekdays{margin-top:1rem;color:#68716a;font-size:.72rem;font-weight:700;text-align:center;text-transform:uppercase}.calendar-grid{margin-top:.45rem}.calendar-day{position:relative;display:grid;place-items:center;aspect-ratio:1;min-width:0;min-height:2.4rem;padding:.2rem;border:1px solid transparent;border-radius:.55rem;color:#25302a;background:transparent;cursor:pointer}.booking-app--embedded .calendar-day{width:100%;white-space:nowrap;overflow-wrap:normal}.calendar-day:not(.calendar-day--blank):not(:disabled):not([aria-pressed=true]){border-color:var(--booking-field-border);background:var(--booking-card);font-weight:700}.calendar-day[aria-pressed=true]{color:var(--booking-on-primary);border-color:var(--booking-primary);background:var(--booking-primary)}.calendar-day:disabled{color:#929892;cursor:default;opacity:1}.calendar-day i{position:absolute;bottom:.28rem;width:.28rem;height:.28rem;border-radius:50%;background:currentColor}.calendar-help{margin:.85rem 0 0;color:#68716a;font-size:.8rem;text-align:center}.calendar-month-error{display:grid;gap:.45rem;margin-top:.85rem;padding:.85rem;border:1px solid #cf999b;border-radius:.7rem;color:#79262b;background:#f9e4e5}.calendar-month-error .button-row{margin-top:.35rem}.calendar-times{min-height:7rem}.calendar-times h3{margin-top:0}.selected-slot{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.selected-slot{padding:1rem;border:1px solid var(--booking-card-border);border-radius:.8rem;background:var(--booking-primary-tint)}.selected-slot>span{display:grid;gap:.2rem}.selected-slot small{color:#68716a;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.selected-slot:focus{outline:3px solid var(--booking-primary-readable);outline-offset:2px}.empty-slots{display:grid;gap:.3rem;padding:1.2rem;border:1px solid var(--booking-card-border);border-radius:.75rem;background:var(--booking-accent-tint)}.primary-button,.secondary-button,.danger-button{display:inline-flex;justify-content:center;align-items:center;min-height:3rem;padding:.75rem 1.2rem;border-radius:.7rem;border:1px solid transparent;text-decoration:none;font-weight:700;cursor:pointer}.primary-button{color:var(--booking-on-primary);background:var(--booking-primary)}.secondary-button{color:var(--booking-primary-readable);border-color:var(--booking-primary-readable);background:var(--booking-card)}.danger-button{color:#8b2d32;border-color:#cf999b;background:#fff}.compact-button{min-height:2.5rem;padding:.55rem .8rem}button:disabled{cursor:not-allowed;opacity:.5}.button-row{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}.error-panel,.notice-panel{padding:.8rem 1rem;border-radius:.65rem}.error-panel{color:#79262b;background:#f9e4e5}.notice-panel{color:#275633;background:#e2f2e5}.centered{text-align:center;margin-inline:auto;max-width:44rem}.confirmation{max-width:40rem;margin-inline:auto;text-align:center}.confirmation h1{font-size:clamp(1.8rem,5vw,3rem)}.success-mark{display:grid;place-items:center;width:4rem;height:4rem;margin:0 auto 1rem;border-radius:50%;color:var(--booking-on-primary);background:var(--booking-primary);font-size:2rem}.appointment-time{font-weight:700;font-size:1.15rem}.booking-summary{margin:0}.booking-summary div{display:grid;gap:.3rem;padding:1rem 0;border-bottom:1px solid #ebe7df}.booking-summary dt{color:#68716a;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.booking-summary dd{margin:0;font-weight:600;overflow-wrap:anywhere;white-space:pre-line}.status{display:inline-block;padding:.25rem .55rem;border-radius:99px;text-transform:capitalize;background:#e7eee5}.status-cancelled{color:#762c30;background:#f7e3e4}.manage-card,.enquiry-card{max-width:44rem;margin-inline:auto}.reschedule-panel{margin-top:2rem;padding-top:2rem;border-top:1px solid #e5e0d7}.challenge-widget,.challenge-local{margin:1.25rem 0}.booking-questions,.booking-answers{display:grid;gap:.8rem;margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid #e5e0d7;min-width:0}.booking-questions h3,.booking-answers h2,.booking-questions p{margin:0}.booking-question{display:grid;gap:.45rem;min-width:0;margin:0;padding:.85rem;border:1px solid var(--booking-card-border);border-radius:.7rem;background:var(--booking-accent-tint)}.booking-question>label,.booking-question>legend{font-weight:700}fieldset.booking-question{margin:0}.booking-question__choice{display:grid;grid-template-columns:1.2rem minmax(0,1fr);align-items:center;gap:.65rem;margin:0;padding:.45rem 0;font-weight:400}.booking-question__choice input{width:1.1rem;min-height:1.1rem;margin:0}.booking-answers dl{display:grid;gap:.85rem;margin:0}.booking-answers dl div{border-top:1px solid #ebe7df;padding-top:.75rem}.booking-answers dt{color:#68716a;font-size:.78rem;font-weight:700}.booking-answers dd{margin:.3rem 0 0;overflow-wrap:anywhere;white-space:pre-wrap}footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;padding:1.5rem clamp(1rem,4vw,3rem);border-top:2px solid var(--booking-card-border);color:var(--booking-primary-readable);background:linear-gradient(115deg,var(--booking-header-start),var(--booking-header-end));font-size:.8rem}@media(min-width:700px){.field-grid{grid-template-columns:1fr 1fr}.booking-summary div{grid-template-columns:10rem 1fr;align-items:baseline}}@media(min-width:820px){.slot-picker{grid-template-columns:minmax(20rem,28rem) minmax(14rem,1fr);align-items:start}.availability-calendar{margin-inline:0}}@media(max-width:560px){.selected-slot{align-items:stretch;flex-direction:column}.selected-slot .compact-button{width:100%}}@media(max-width:380px){.availability-calendar{padding:.75rem .55rem}.calendar-weekdays,.calendar-grid{gap:.15rem}.calendar-day{min-height:2.1rem;border-radius:.4rem}}@media(max-width:380px){footer{align-items:flex-start;flex-direction:column}}@media(max-width:360px){.booking-app--embedded main{width:calc(100% - 1rem)}.booking-app--embedded .card{padding:.75rem}.booking-app--embedded .calendar-navigation{gap:.35rem}.booking-app--embedded .calendar-navigation h3{font-size:1rem;overflow-wrap:normal}.booking-app--embedded .calendar-weekdays{font-size:.65rem}.booking-app--embedded .calendar-day{padding-inline:0;font-size:.85rem}}@media(hover:hover){.slot-button:hover:not(:disabled):not([aria-pressed=true]){color:var(--booking-on-primary);background:var(--booking-primary-hover);box-shadow:0 5px 12px color-mix(in srgb,var(--booking-primary-readable) 24%,transparent);transform:translateY(-1px)}.calendar-day:not(.calendar-day--blank):hover:not(:disabled):not([aria-pressed=true]){color:var(--booking-on-primary);background:var(--booking-primary-hover)}.primary-button:hover:not(:disabled){color:var(--booking-on-primary);background:var(--booking-primary-hover)}.secondary-button:hover:not(:disabled){background:color-mix(in srgb,var(--booking-primary) 9%,white)}.danger-button:hover:not(:disabled){color:#fff;background:#8b2d32;border-color:#8b2d32}}@media(prefers-reduced-motion:no-preference){.card{animation:rise .35s ease both}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}}@media(prefers-reduced-motion:reduce){.slot-button{transition:none}}
