.booking__content{padding:var(--space-lg) 0 24px;background:var(--color-off-white);min-height:60vh}.booking__stepper-bar{position:sticky;top:0;z-index:20;background:#fff;border-bottom:1px solid var(--color-gray-100);box-shadow:0 1px #00000005}.booking__nav-bar{position:sticky;bottom:0;z-index:20;background:#fff;border-top:1px solid var(--color-gray-100);box-shadow:0 -4px 16px #1b21410d;padding:14px 0 calc(14px + env(safe-area-inset-bottom,0px))}.booking__nav-bar .booking__nav{margin-top:0}.booking__card{max-width:720px;margin:0 auto;background:#fff;border-radius:20px;box-shadow:0 20px 60px #1b214114,0 1px 3px #0000000a;overflow:hidden}.booking__stepper{display:flex;align-items:flex-start;justify-content:center;gap:0;padding:20px 16px;position:relative;max-width:720px;margin:0 auto}.booking__stepper-item{display:flex;flex-direction:column;align-items:center;position:relative;flex:1}.booking__stepper-line{position:absolute;top:18px;right:50%;width:100%;height:3px;background:var(--color-gray-200);border-radius:2px;z-index:0;transition:background .5s ease}.booking__stepper-line--filled{background:var(--color-teal)}.booking__stepper-circle{width:36px;height:36px;border-radius:50%;border:2.5px solid var(--color-gray-200);background:#fff;color:var(--color-gray-400);font-size:.8rem;font-weight:700;display:flex;align-items:center;justify-content:center;position:relative;z-index:1;cursor:default;transition:all .4s cubic-bezier(.34,1.56,.64,1);font-family:var(--font-primary)}.booking__stepper-circle:disabled{cursor:default}.booking__stepper-circle--active{border-color:var(--color-teal);color:var(--color-teal);background:#fff;box-shadow:0 0 0 4px #e84b2a1f;animation:pulse-ring 2s ease-out infinite}.booking__stepper-circle--done{border-color:var(--color-teal);background:var(--color-teal);color:#fff;cursor:pointer;transform:scale(1)}.booking__stepper-circle--done:hover{transform:scale(1.1);box-shadow:0 0 0 4px #e84b2a26}@keyframes pulse-ring{0%{box-shadow:0 0 0 4px #e84b2a1f}50%{box-shadow:0 0 0 8px #e84b2a0f}to{box-shadow:0 0 0 4px #e84b2a1f}}@media(max-width:480px){.booking__stepper{padding:20px 16px 16px}.booking__stepper-circle{width:32px;height:32px;font-size:.75rem}}.booking__body{padding:36px 40px 40px}@media(max-width:600px){.booking__body{padding:24px 20px 28px}}.booking__panel{opacity:0;transform:translateY(16px);transition:opacity .3s ease,transform .3s ease}.booking__panel--visible{opacity:1;transform:translateY(0)}.booking__step-header{margin-bottom:28px}.booking__step-title{font-size:1.5rem;font-weight:800;color:var(--color-navy);margin-bottom:6px}.booking__step-desc{font-size:.95rem;color:var(--color-gray-500)}.booking__field{margin-bottom:20px}.booking__input-wrap{display:flex;flex-direction:column-reverse;gap:6px}.booking__input-wrap input,.booking__input-wrap textarea,.booking__input-wrap select{width:100%;min-height:58px;padding:14px 16px;border:2px solid var(--color-gray-300);border-radius:12px;font-family:var(--font-primary);font-size:18px;color:var(--color-gray-800);background:#fff;outline:none;transition:border-color .25s ease,box-shadow .25s ease}.booking__input-wrap input::placeholder,.booking__input-wrap textarea::placeholder{color:var(--color-gray-400)}.booking__input-wrap input:focus-visible,.booking__input-wrap textarea:focus-visible,.booking__input-wrap select:focus-visible{outline:3px solid rgba(232,75,42,.35);outline-offset:2px}.booking__input-wrap textarea{resize:vertical;min-height:90px}.booking__input-wrap label{display:block;font-size:1rem;font-weight:600;color:var(--color-navy)}.booking__input-wrap input:focus+label,.booking__input-wrap textarea:focus+label{color:var(--color-teal-dark)}.booking__label--always{display:block;font-size:1rem;font-weight:600;color:var(--color-navy);margin-bottom:8px}.booking__optional{font-weight:500;color:var(--color-gray-500)}.booking__field-hint{margin:8px 0 0;font-size:.9rem;line-height:1.5;color:var(--color-gray-600)}.booking__input-wrap input:focus,.booking__input-wrap textarea:focus{border-color:var(--color-teal);box-shadow:0 0 0 3px #e84b2a1f}.booking__field-row{display:flex;flex-direction:column;gap:0}@media(min-width:480px){.booking__field-row{flex-direction:row;gap:16px}.booking__field-row .booking__field{flex:1}}.booking__input-wrap input[type=date]{-webkit-appearance:none;appearance:none;min-height:58px;color:var(--color-navy);cursor:pointer}.booking__input-wrap input[type=date]::-webkit-date-and-time-value{text-align:left}.booking__input-wrap input[type=date]::-webkit-calendar-picker-indicator{opacity:.7;cursor:pointer;width:22px;height:22px}.booking__error{display:block;font-size:.9rem;color:#dc2626;margin-top:6px;animation:shake .4s ease}.booking__error--center{text-align:center;margin-top:12px}.booking__field--error .booking__input-wrap input,.booking__field--error .booking__input-wrap textarea{border-color:#dc2626}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.booking__category-cards{display:grid;grid-template-columns:1fr;gap:16px;margin-bottom:24px}@media(min-width:480px){.booking__category-cards{grid-template-columns:1fr 1fr}}.booking__category-card{position:relative;padding:28px 24px;border:2px solid var(--color-gray-200);border-radius:16px;background:#fff;cursor:pointer;text-align:left;transition:all .3s cubic-bezier(.34,1.56,.64,1);font-family:var(--font-primary)}.booking__category-card:hover{border-color:var(--color-gray-300);box-shadow:0 8px 24px #1b21410f;transform:translateY(-2px)}.booking__category-card--selected{border-color:var(--color-teal);background:#e84b2a08;box-shadow:0 0 0 3px #e84b2a1a}.booking__category-card--selected:hover{border-color:var(--color-teal)}.booking__category-icon{width:52px;height:52px;border-radius:14px;background:#e84b2a14;color:var(--color-teal);display:flex;align-items:center;justify-content:center;margin-bottom:14px;transition:background .3s}.booking__category-card--selected .booking__category-icon{background:#e84b2a26}.booking__category-card h3{font-size:1.05rem;font-weight:700;color:var(--color-navy);margin-bottom:4px}.booking__category-card p{font-size:.8rem;color:var(--color-gray-500);line-height:1.4;margin:0}.booking__category-check{position:absolute;top:14px;right:14px;width:28px;height:28px;border-radius:50%;background:var(--color-teal);color:#fff;display:flex;align-items:center;justify-content:center;animation:pop-in .35s cubic-bezier(.34,1.56,.64,1)}@keyframes pop-in{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.booking__services-grid{animation:slide-up .4s ease forwards}.booking__services-label{font-size:.8rem;font-weight:600;color:var(--color-gray-500);text-transform:uppercase;letter-spacing:.04em;margin-bottom:12px}.booking__chips{display:flex;flex-wrap:wrap;gap:10px}.booking__chip{padding:10px 18px;border:2px solid var(--color-gray-200);border-radius:50px;background:#fff;font-family:var(--font-primary);font-size:.85rem;font-weight:500;color:var(--color-gray-700);cursor:pointer;transition:all .25s cubic-bezier(.34,1.56,.64,1);animation:fade-in-up .4s ease forwards;opacity:0}.booking__chip:hover{border-color:var(--color-teal);color:var(--color-teal)}.booking__chip--selected{background:var(--color-teal);border-color:var(--color-teal);color:#fff;transform:scale(1.05);box-shadow:0 4px 12px #e84b2a40}.booking__chip--selected:hover{color:#fff}@keyframes fade-in-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.booking__providers{display:flex;flex-direction:column;gap:14px}.booking__provider-card{display:flex;align-items:center;gap:16px;padding:18px 20px;border:2px solid var(--color-gray-200);border-radius:16px;background:#fff;cursor:pointer;text-align:left;font-family:var(--font-primary);transition:all .3s cubic-bezier(.34,1.56,.64,1);position:relative;animation:fade-in-up .4s ease forwards;opacity:0}.booking__provider-card:nth-child(1){animation-delay:0ms}.booking__provider-card:nth-child(2){animation-delay:.1s}.booking__provider-card:hover{border-color:var(--color-gray-300);box-shadow:0 6px 20px #1b21410f;transform:translateY(-1px)}.booking__provider-card--selected{border-color:var(--color-teal);background:#e84b2a05;box-shadow:0 0 0 3px #e84b2a1a}.booking__provider-img{width:56px;height:56px;border-radius:50%;object-fit:cover;flex-shrink:0}.booking__provider-avatar{width:56px;height:56px;border-radius:50%;background:var(--color-off-white);color:var(--color-gray-400);display:flex;align-items:center;justify-content:center;flex-shrink:0}.booking__provider-info{flex:1;min-width:0}.booking__provider-info h3{font-size:.95rem;font-weight:700;color:var(--color-navy);margin:0 0 2px}.booking__provider-specialty{display:block;font-size:.8rem;color:var(--color-gray-500)}.booking__provider-langs{display:block;font-size:.75rem;color:var(--color-gray-400);margin-top:2px}.booking__provider-check{width:28px;height:28px;border-radius:50%;background:var(--color-teal);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;animation:pop-in .35s cubic-bezier(.34,1.56,.64,1)}.booking__time-section{margin-bottom:20px}.booking__time-pills{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}@media(max-width:480px){.booking__time-pills{grid-template-columns:1fr}}.booking__time-pill{padding:14px 12px;border:2px solid var(--color-gray-200);border-radius:14px;background:#fff;cursor:pointer;text-align:center;font-family:var(--font-primary);transition:all .25s cubic-bezier(.34,1.56,.64,1)}.booking__time-pill strong{display:block;font-size:.9rem;color:var(--color-navy);margin-bottom:2px}.booking__time-pill span{font-size:.75rem;color:var(--color-gray-400)}.booking__time-pill:hover{border-color:var(--color-teal);transform:translateY(-1px)}.booking__time-pill--selected{border-color:var(--color-teal);background:var(--color-teal)}.booking__time-pill--selected strong{color:#fff}.booking__time-pill--selected span{color:#fffc}.booking__radio-group{margin-bottom:20px}.booking__radio-row{display:flex;gap:10px}.booking__radio-btn{padding:10px 28px;border:2px solid var(--color-gray-200);border-radius:50px;background:#fff;font-family:var(--font-primary);font-size:.9rem;font-weight:500;color:var(--color-gray-600);cursor:pointer;transition:all .25s ease}.booking__radio-btn:hover{border-color:var(--color-teal)}.booking__radio-btn--selected{border-color:var(--color-teal);background:var(--color-teal);color:#fff}.booking__summary{border:1px solid var(--color-gray-100);border-radius:16px;overflow:hidden}.booking__summary-section{padding:20px 24px;border-bottom:1px solid var(--color-gray-100)}.booking__summary-section:last-child{border-bottom:none}.booking__summary-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.booking__summary-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-gray-400)}.booking__summary-edit{background:none;border:none;font-family:var(--font-primary);font-size:.8rem;font-weight:600;color:var(--color-teal);cursor:pointer;padding:4px 8px;border-radius:6px;transition:background .2s}.booking__summary-edit:hover{background:#e84b2a0f}.booking__summary-row{display:flex;align-items:center;gap:8px;font-size:.9rem;color:var(--color-gray-700);padding:3px 0}.booking__summary-tag{font-size:.7rem;font-weight:600;padding:2px 10px;border-radius:20px;background:#e84b2a14;color:var(--color-teal)}.booking__privacy{font-size:.8rem;color:var(--color-gray-400);text-align:center;margin-top:20px;line-height:1.5}.booking__submit-error{margin-top:16px;padding:12px 16px;border-radius:8px;background:#fdecea;border:1px solid #f5b5b5;color:#a2322e;font-size:.9rem;text-align:center}.booking__emergency{margin-top:16px}.contact-page__emergency{margin-bottom:12px}.booking__emergency-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px;padding:28px 24px;margin:0 0 20px;border-radius:14px;background:#fdecea;border:1px solid #f5b5b5;color:#8a1f1b}.booking__emergency-icon{width:64px;height:64px;border-radius:50%;background:#fff;color:#c03d39;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px #c03d3926}.booking__emergency-text{margin:0;font-size:1rem;line-height:1.5;max-width:520px}.booking__emergency-text+.booking__emergency-text{margin-top:6px}.booking__emergency-text strong{color:#7c1915;font-weight:700}.booking__emergency-text a{color:#8a1f1b;text-decoration:underline;font-weight:700;white-space:nowrap}.booking__emergency-next{margin:8px 0 0;font-size:.9rem;color:var(--color-gray-500);text-align:center}.booking__consent{display:flex;flex-direction:column;gap:12px;margin-top:16px;padding:16px;border-radius:10px;background:var(--color-off-white)}.booking__consent-row{display:flex;gap:10px;align-items:flex-start;font-size:.85rem;color:var(--color-gray-700);line-height:1.5;cursor:pointer}.booking__consent-row input[type=checkbox]{flex-shrink:0;margin-top:2px;width:18px;height:18px;accent-color:var(--color-teal);cursor:pointer}.booking__consent-row a{color:var(--color-teal);text-decoration:underline}.booking__consent-row--error{color:#a2322e}.booking__consent-row--error input[type=checkbox]{outline:2px solid #e74c3c;outline-offset:2px}.booking__privacy a{color:var(--color-teal);text-decoration:underline}.booking__phi-notice{display:flex;align-items:flex-start;gap:10px;padding:14px 16px;margin:20px 0 16px;border-radius:8px;background:#fff4e5;border:1px solid #f5c99e;color:#7a4a15;font-size:.85rem;line-height:1.5}.booking__phi-notice svg{flex-shrink:0;margin-top:2px;color:#c7701a}.booking__phi-notice strong{color:#6b3a0f}.booking__nav{display:flex;justify-content:space-between;align-items:center;margin-top:32px;gap:12px}.booking__btn{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;border-radius:12px;font-family:var(--font-primary);font-size:.95rem;font-weight:600;cursor:pointer;transition:all .25s cubic-bezier(.34,1.56,.64,1);border:none}.booking__btn--back{background:transparent;color:var(--color-gray-500);border:2px solid var(--color-gray-200)}.booking__btn--back:hover{border-color:var(--color-gray-300);color:var(--color-gray-700);transform:translate(-2px)}.booking__btn--next{background:var(--color-teal);color:#fff;margin-left:auto;box-shadow:0 4px 14px #e84b2a40}.booking__btn--next:hover{background:var(--color-teal-dark);transform:translateY(-1px);box-shadow:0 6px 20px #e84b2a4d}.booking__btn--submit{background:linear-gradient(135deg,var(--color-teal) 0%,var(--color-teal-dark) 100%);color:#fff;margin-left:auto;box-shadow:0 4px 14px #e84b2a40;position:relative;overflow:hidden}.booking__btn--submit:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent);transition:left .5s ease}.booking__btn--submit:hover:after{left:100%}.booking__btn--submit:hover{transform:translateY(-1px);box-shadow:0 6px 20px #e84b2a59}.booking__success{max-width:520px;margin:0 auto;text-align:center;padding:var(--space-3xl) var(--space-xl);animation:fade-in-up .6s ease forwards}.booking__success-icon{margin-bottom:24px}.booking__checkmark{width:80px;height:80px}.booking__checkmark-circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:var(--color-teal);animation:stroke-draw .6s cubic-bezier(.65,0,.45,1) forwards}.booking__checkmark-check{stroke-dasharray:48;stroke-dashoffset:48;stroke:var(--color-teal);stroke-width:3;stroke-linecap:round;animation:stroke-draw .3s cubic-bezier(.65,0,.45,1) .4s forwards}@keyframes stroke-draw{to{stroke-dashoffset:0}}.booking__success-title{font-size:1.75rem;font-weight:800;color:var(--color-navy);margin-bottom:12px}.booking__success-text{font-size:1rem;color:var(--color-gray-600);line-height:1.6;margin-bottom:24px}.booking__success-details{display:inline-flex;flex-direction:column;gap:8px;text-align:left;padding:20px 28px;background:var(--color-off-white);border-radius:14px;font-size:.9rem;color:var(--color-gray-600)}.booking__success-details strong{color:var(--color-navy)}.booking__service-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px;margin-top:8px}.booking__service-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:22px 12px;border:2px solid var(--color-gray-200);border-radius:14px;background:#fff;color:var(--color-navy);font-family:var(--font-primary);font-size:.95rem;font-weight:600;text-align:center;cursor:pointer;min-height:120px;transition:all .2s cubic-bezier(.34,1.56,.64,1);opacity:0;animation:fadeInUp .35s ease forwards}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.booking__service-card:hover{border-color:var(--color-teal);transform:translateY(-2px);box-shadow:0 8px 20px #e84b2a14}.booking__service-card--selected{border-color:var(--color-teal);background:#e84b2a0f;color:var(--color-teal)}.booking__service-icon{display:flex;align-items:center;justify-content:center;color:var(--color-teal);width:48px;height:48px;border-radius:12px;background:#e84b2a1a}.booking__service-card--selected .booking__service-icon{background:var(--color-teal);color:#fff}.booking__service-title{line-height:1.2}@media(max-width:600px){.booking__card{border-radius:16px;margin:0 -4px}.booking__step-title{font-size:1.25rem}.booking__btn{padding:12px 18px;font-size:.9rem}.booking__category-card{padding:20px 18px}.booking__provider-card{padding:14px 16px}.booking__stepper{padding:14px 12px}.booking__service-grid{grid-template-columns:repeat(2,1fr);gap:10px}.booking__service-card{min-height:100px;padding:16px 8px;font-size:.85rem}.booking__service-icon{width:40px;height:40px}.booking__service-icon svg{width:26px;height:26px}.booking__content{padding:var(--space-md) 0 16px}.booking__nav-bar{padding:12px 0 calc(12px + env(safe-area-inset-bottom,0px))}.booking__nav-bar .booking__nav{gap:8px}.booking__nav-bar .booking__btn--next,.booking__nav-bar .booking__btn--submit{flex:1;justify-content:center}.booking__nav-bar .booking__btn--back{flex:0 0 auto}}.booking__main{min-width:0}.booking__aside-mobile{max-width:720px;margin:16px auto 0;background:#fff;border:1px solid var(--color-gray-200);border-radius:14px}.booking__aside-mobile>summary{list-style:none;cursor:pointer;padding:14px 18px;font-weight:700;color:var(--color-navy);position:relative}.booking__aside-mobile>summary::-webkit-details-marker{display:none}.booking__aside-mobile>summary:after{content:"+";position:absolute;right:18px;top:50%;transform:translateY(-50%);color:var(--color-teal-dark);font-size:1.25rem;font-weight:700}.booking__aside-mobile[open]>summary:after{content:"−"}.booking__aside-mobile .booking__visit{padding:0 18px 18px}.booking__aside-mobile .booking__visit-heading{display:none}@media(min-width:720px){.booking__aside-mobile .booking__visit{display:grid;grid-template-columns:1fr 1fr;gap:0 32px}.booking__aside-mobile .booking__visit-sub{grid-column:2;grid-row:1;margin-top:0}.booking__aside-mobile .booking__visit-steps{grid-column:2;grid-row:2 / 5}.booking__aside-mobile .booking__visit-address,.booking__aside-mobile .booking__visit-link,.booking__aside-mobile .booking__visit-hours,.booking__aside-mobile .booking__visit-note{grid-column:1}}.booking__visit-heading{display:none}.booking__visit-heading{font-size:1.15rem;color:var(--color-navy);margin:0 0 10px}.booking__visit-address{font-style:normal;color:var(--color-gray-700);line-height:1.6;margin:0 0 8px}.booking__visit-link{display:inline-block;color:var(--color-teal-dark);font-weight:600;text-decoration:none;margin-bottom:14px}.booking__visit-link:hover{text-decoration:underline}.booking__visit-hours{list-style:none;padding:0;margin:0 0 12px;font-size:.9rem;color:var(--color-gray-700)}.booking__visit-hours li{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px dashed var(--color-gray-200)}.booking__visit-hours li:last-child{border-bottom:none}.booking__visit-hours li span:last-child{white-space:nowrap}.booking__visit-note{margin:0 0 18px;font-size:.9rem;color:var(--color-gray-700)}.booking__visit-note a{color:var(--color-teal-dark);font-weight:600}.booking__visit-sub{font-size:.95rem;color:var(--color-navy);margin:0 0 8px}.booking__visit-steps{margin:0;padding-left:20px;color:var(--color-gray-700);font-size:.9rem;line-height:1.6}.booking__visit-steps li+li{margin-top:4px}.booking__success-visit{margin:20px 0 0;font-size:.9rem;color:var(--color-gray-600)}.booking__success-visit a{color:var(--color-teal-dark);font-weight:600}.booking__legal{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 18px;padding:14px 16px;background:#fff;border-top:1px solid var(--color-gray-100);color:var(--color-gray-500);font-size:.78rem;text-align:center}.booking__legal a{color:var(--color-gray-600);text-decoration:none}.booking__legal a:hover{text-decoration:underline}
