: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, #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:#fff;background:var(--booking-primary);font-weight:700}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);font-size:.78rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.booking-flow{display:grid;gap:1rem}.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-height:3rem;padding:.75rem;border:1px solid #bbb9b0;border-radius:.65rem;color:#25302a;background:#fff}input:focus,select:focus,button:focus-visible,a:focus-visible{outline:3px solid color-mix(in srgb,var(--booking-accent) 65%,#fff);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}.supporting,.fine-print{color:#68716a;font-size:.88rem}.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);border-radius:.6rem;background:#fff;color:var(--booking-primary);cursor:pointer;transition:background-color .16s ease,color .16s ease,transform .16s ease,box-shadow .16s ease}.slot-button[aria-pressed=true]{color:#fff;background:var(--booking-primary)}.slot-pagination,.selected-slot{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.slot-pagination{padding-bottom:.5rem;border-bottom:1px solid #ebe7df}.slot-pagination p{margin:0;color:#4f5b53;font-size:.88rem;font-weight:600}.slot-pagination>div{display:flex;gap:.5rem}.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 color-mix(in srgb,var(--booking-accent) 65%,#fff);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:#fff;background:var(--booking-primary)}.secondary-button{color:var(--booking-primary);border-color:var(--booking-primary);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:#fff;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;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}footer{display:flex;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){.slot-pagination,.selected-slot{align-items:stretch;flex-direction:column}.slot-pagination>div{display:grid;grid-template-columns:1fr 1fr}.selected-slot .compact-button{width:100%}}@media (hover: hover){.slot-button:hover:not(:disabled):not([aria-pressed=true]){color:#fff;background:color-mix(in srgb,var(--booking-primary) 88%,#17231b);box-shadow:0 5px 12px color-mix(in srgb,var(--booking-primary) 24%,transparent);transform:translateY(-1px)}.primary-button:hover:not(:disabled){background:color-mix(in srgb,var(--booking-primary) 84%,#17231b)}.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}}
