:root{font-family:DM Sans,system-ui,sans-serif;color:#25302a;background:#f6f4ef;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select{font:inherit}a{color:var(--booking-primary-readable, #53634d)}.booking-app{min-height:100vh;background:radial-gradient(circle at top right,color-mix(in srgb,var(--booking-accent) 20%,transparent),transparent 36rem),#f6f4ef}.brand-header{padding:1rem clamp(1rem,4vw,3rem);border-bottom:1px solid #ddd8cd;background:#ffffffbf;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.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 small{color:#677068;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(11rem,42vw);height:3rem;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}h1,h2{font-family:Fraunces,Georgia,serif;color:#27342d}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 #e0dbd1;border-radius:1.25rem;background:#ffffffeb;box-shadow:0 14px 40px #3f3c320f}.step-number{float:right;display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:color-mix(in srgb,var(--booking-accent) 35%,white);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 #bbb9b0;border-radius:.65rem;color:#25302a;background:#fff}textarea{width:100%;min-width:0;max-width:100%;padding:.75rem;border:1px solid #bbb9b0;border-radius:.65rem;color:#25302a;background:#fff;font:inherit;resize:vertical}input:focus,select:focus,button:focus-visible,a:focus-visible{outline:3px solid var(--booking-primary-readable);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}.method-options{display:grid;gap:.55rem;margin:1.25rem 0 0;padding:1rem;border:1px solid #ddd8cd;border-radius:.75rem}.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 #e4e0d8;border-radius:.65rem;background:#faf9f6}.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{padding:1rem;border:1px solid #e0dbd1;border-radius:.9rem;background:#faf9f6}.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:Fraunces,Georgia,serif;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}.calendar-day:not(:disabled){border-color:color-mix(in srgb,var(--booking-primary-readable) 35%,#d8d5cd);background:#fff;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-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 color-mix(in srgb,var(--booking-primary) 35%,#dfe5dc);border-radius:.8rem;background:color-mix(in srgb,var(--booking-primary) 8%,white)}.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-radius:.75rem;background:#f3f1ec}.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:#fff}.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{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 #e4e0d8;border-radius:.7rem;background:#faf9f6}.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:1px solid #ddd8cd;color:#677068;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 (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 (hover: hover){.slot-button:hover:not(:disabled):not([aria-pressed=true]){color:#fff;background:var(--booking-primary-readable);box-shadow:0 5px 12px color-mix(in srgb,var(--booking-primary-readable) 24%,transparent);transform:translateY(-1px)}.calendar-day:hover:not(:disabled):not([aria-pressed=true]){color:#fff;background:var(--booking-primary-readable)}.primary-button:hover:not(:disabled){color:#fff;background:var(--booking-primary-readable)}.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}}
