.ribbon-scheduler{display:flex;flex-direction:column;gap:1rem}.ribbon-starter{display:flex;flex-direction:column;gap:.5rem}.ribbon-starter-label{font-weight:600;color:var(--sui-text-muted, #5f5f5f);font-size:.875rem;text-transform:uppercase;letter-spacing:.05em}.ribbon-starter-pills{display:flex;flex-wrap:wrap;gap:.5rem}.ribbon-toggle{align-self:flex-start;background:transparent;border:1px solid var(--sui-border, #d9d9d9);border-radius:999px;padding:.4rem .9rem;font:inherit;color:var(--sui-text, #222);cursor:pointer}.ribbon-toggle:hover{background:#0000000a}.ribbon-prepay-cta{align-self:flex-start;background:var(--sui-accent, #2563eb);border:1px solid var(--sui-accent, #2563eb);border-radius:999px;padding:.55rem 1.1rem;font:inherit;font-weight:600;color:#fff;cursor:pointer;transition:filter .12s ease}.ribbon-prepay-cta:hover{filter:brightness(1.05)}.ribbon-track{display:flex;gap:.75rem;overflow-x:auto;padding-bottom:.5rem;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.ribbon-day{flex:0 0 auto;min-width:9rem;padding:.75rem;border:1px solid var(--sui-border, #d9d9d9);border-radius:var(--sui-radius-lg, 12px);background:var(--sui-surface, #fff);scroll-snap-align:start;display:flex;flex-direction:column;gap:.5rem}.ribbon-day-header{font-weight:600;font-size:.875rem;color:var(--sui-text-muted, #5f5f5f);border-bottom:1px solid var(--sui-border, #ececec);padding-bottom:.25rem}.ribbon-day-slots{display:flex;flex-direction:column;gap:.35rem}.slot-pill{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .85rem;border:1px solid var(--sui-border, #d9d9d9);border-radius:999px;background:var(--sui-surface, #fff);font:inherit;color:var(--sui-text, #222);cursor:pointer;transition:background-color .12s ease,border-color .12s ease}.slot-pill:hover{background:#0000000a}.slot-pill.is-selected{border-color:var(--sui-accent, #2563eb);background:var(--sui-accent-soft, #dbeafe);color:var(--sui-accent-strong, #1d4ed8)}.slot-pill.is-premium{border-color:var(--sui-premium, #b8860b)}.slot-pill.is-gated{background:linear-gradient(135deg,#fffbe6,#fff3b0);border-color:var(--sui-premium, #b8860b);color:#6b4f00}.slot-pill .slot-pill-day{font-size:.75rem;color:var(--sui-text-muted, #5f5f5f);margin-right:.25rem}.slot-pill .slot-pill-lock{font-size:.85em}.ribbon-collapsed-hint{font-size:.875rem;color:var(--sui-text-muted, #5f5f5f)}.appt-tile-grid{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.appt-tile-grid-collapsed{grid-template-columns:minmax(180px,320px)}.appt-tile{border:1px solid var(--sui-border, #d9d9d9);border-radius:var(--sui-radius-lg, 12px);padding:.9rem 1rem;background:var(--sui-surface, #fff);display:flex;flex-direction:column;gap:.5rem;box-shadow:var(--sui-shadow-sm, 0 2px 8px rgba(0, 0, 0, .06));transition:border-color .15s,box-shadow .15s,transform .15s;cursor:pointer;text-align:left}.appt-tile:hover{border-color:var(--sui-accent, #2563eb);transform:translateY(-1px);box-shadow:var(--sui-shadow-md, 0 6px 18px rgba(0, 0, 0, .1))}.appt-tile:focus-visible{outline:3px solid var(--sui-accent-soft, #dbeafe);outline-offset:2px}.appt-tile.selected{border-color:var(--sui-accent, #2563eb);box-shadow:0 0 0 3px var(--sui-accent-soft, #dbeafe),var(--sui-shadow-md, 0 6px 18px rgba(0, 0, 0, .1))}.appt-tile.appt-tile-disabled{cursor:not-allowed;opacity:.7}.appt-tile.appt-tile-disabled:hover{transform:none;border-color:var(--sui-border, #d9d9d9);box-shadow:var(--sui-shadow-sm, 0 2px 8px rgba(0, 0, 0, .06))}.appt-tile-self-paced{background:var(--sui-surface-alt, #f7f7f7)}.appt-tile-head{display:flex;flex-direction:column;gap:.5rem}.appt-tile-title{margin:0;font-size:1.05rem;font-weight:600;color:var(--sui-heading, var(--sui-text, #222));line-height:1.25}.appt-tile-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.8rem;color:var(--sui-text-muted, #5f5f5f)}.appt-tile-price{font-weight:700;color:var(--sui-accent, #2563eb);font-size:.9rem}.appt-tile-badge{display:inline-flex;align-items:center;padding:.2rem .6rem;border-radius:999px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.appt-tile-badge-selfpaced{background:#fde68a;color:#78350f}.appt-tile-badge-class{background:#dbeafe;color:#1e3a8a}.appt-tile-cta{margin-top:auto;align-self:flex-start;display:inline-flex;align-items:center;gap:.35rem;font-size:.8rem;font-weight:600;color:var(--sui-accent, #2563eb);letter-spacing:.01em;user-select:none;padding-top:.4rem}.appt-tile.selected .appt-tile-cta:before{content:"✓ "}.appt-tile-cta-prepay{color:#8a3f37}.appt-tile-cta-locked{color:var(--sui-text-muted, #5f5f5f)}.appt-tile-cta-stepup{color:#9a3412}.appt-tile-short{margin:0;font-size:.95rem;color:var(--sui-text, #222);line-height:1.5}.appt-tile-expand{background:none;border:none;padding:0;align-self:flex-start;font-size:.875rem;color:var(--sui-accent-strong, #1d4ed8);text-decoration:underline;cursor:pointer}.appt-tile-long{border-top:1px solid var(--sui-border, #ececec);padding-top:.75rem;font-size:.9rem;color:var(--sui-text-muted, #5f5f5f)}.appt-tile-long p{margin:0 0 .5rem}[data-membership-locked=true]{background:var(--sui-surface-alt, #f7f7f7);color:var(--sui-text-muted, #5f5f5f);border:1px dashed var(--sui-border, #d9d9d9);cursor:not-allowed}.provider-tiles{display:grid;gap:1rem;margin:0}.provider-tiles-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.provider-tiles-row{grid-auto-flow:column;grid-auto-columns:minmax(240px,1fr);overflow-x:auto;padding-bottom:.5rem}.provider-tile{appearance:none;cursor:pointer;text-align:left;background:var(--sui-surface, #fff);border:1px solid var(--sui-border, #d9d9d9);border-radius:14px;padding:1.25rem;display:flex;align-items:center;gap:1rem;transition:border-color .15s,box-shadow .15s,transform .15s;box-shadow:var(--sui-shadow-sm, 0 2px 8px rgba(0, 0, 0, .06))}.provider-tile:hover{border-color:var(--sui-accent, #2563eb);transform:translateY(-1px);box-shadow:var(--sui-shadow-md, 0 6px 18px rgba(0, 0, 0, .1))}.provider-tile.selected{border-color:var(--sui-accent, #2563eb);box-shadow:0 0 0 3px var(--sui-accent-soft, #dbeafe),var(--sui-shadow-md, 0 6px 18px rgba(0, 0, 0, .1))}.provider-tile-avatar{width:64px;height:64px;border-radius:50%;overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--sui-accent, #2563eb);color:#fff;box-shadow:inset 0 0 0 3px #ffffff59}.provider-tile-avatar img{width:100%;height:100%;object-fit:cover}.provider-tile-initial{font-weight:600;font-size:1.6rem;line-height:1}.provider-tile-body{display:flex;flex-direction:column;gap:.25rem;min-width:0}.provider-tile-name{font-size:1.2rem;font-weight:600;color:var(--sui-heading, var(--sui-text, #222));line-height:1.2}.provider-tile-bio{font-size:.875rem;color:var(--sui-text-muted, #5f5f5f);line-height:1.4}.location-chip-group{display:flex;flex-wrap:wrap;gap:.5rem}.location-chip{display:inline-flex;align-items:center;gap:.45rem;padding:.5rem .9rem;border:1px solid var(--sui-border, #d9d9d9);border-radius:999px;background:var(--sui-surface, #fff);color:var(--sui-text, #222);font-size:.9rem;font-weight:600;cursor:pointer;transition:border-color .15s,background .15s,color .15s,box-shadow .15s}.location-chip:hover{border-color:var(--sui-accent, #2563eb);color:var(--sui-accent, #2563eb)}.location-chip:focus-visible{outline:3px solid var(--sui-accent-soft, #dbeafe);outline-offset:2px}.location-chip.selected{border-color:var(--sui-accent, #2563eb);background:var(--sui-accent-soft, #dbeafe);color:var(--sui-accent-strong, #1d4ed8);box-shadow:0 0 0 2px var(--sui-accent-soft, #dbeafe)}.location-chip-icon{font-size:1rem;line-height:1}.eligibility-banner{display:flex;flex-direction:column;gap:.75rem}.eligibility-blockers{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:1rem 1.25rem;color:#7f1d1d}.eligibility-blockers ul{margin:.5rem 0 0;padding-left:1.25rem}.eligibility-stepup{background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:1rem 1.25rem}.eligibility-warning{background:#fef9c3;border-left:4px solid #facc15;padding:.75rem 1rem;font-size:.9rem;border-radius:0 8px 8px 0;display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;justify-content:space-between}.eligibility-warning-cta{flex-shrink:0}.existing-appts-panel{background:var(--sui-surface, #fff);border:1px solid var(--sui-border, #d9d9d9);border-radius:var(--sui-radius-lg, 12px);padding:1rem 1.25rem;box-shadow:var(--sui-shadow-sm, 0 2px 8px rgba(0, 0, 0, .06))}.existing-appts-panel h3{margin:0 0 .75rem;font-size:1rem;color:var(--sui-heading, var(--sui-text, #222))}.existing-appts-panel ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.existing-appts-panel li{display:flex;justify-content:space-between;gap:.75rem;font-size:.9rem;color:var(--sui-text, #222)}.existing-appt-state{font-size:.7rem;padding:.15rem .6rem;border-radius:999px;text-transform:uppercase;font-weight:700;letter-spacing:.04em}.state-pending{background:#fef3c7;color:#78350f}.state-confirmed{background:#d1fae5;color:#064e3b}.state-cancelled{background:#fee2e2;color:#991b1b}.prepay-dialog-backdrop,.forms-gate-dialog-backdrop{position:fixed;inset:0;background:#1118278c;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:1000}.prepay-dialog,.forms-gate-dialog{background:var(--sui-surface, #fff);border-radius:var(--sui-radius-lg, 12px);padding:1.5rem 1.5rem 1.25rem;max-width:480px;width:100%;box-shadow:0 20px 50px #00000040;display:flex;flex-direction:column;gap:1rem}.forms-gate-dialog{max-width:520px}.prepay-dialog-head,.forms-gate-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.prepay-dialog-head h2,.forms-gate-dialog-head h2{margin:0;font-size:1.25rem;color:var(--sui-heading, var(--sui-text, #222))}.prepay-dialog-close{background:transparent;border:none;font-size:1.5rem;line-height:1;cursor:pointer;color:var(--sui-text-muted, #5f5f5f);padding:.25rem .5rem}.prepay-dialog-lede,.forms-gate-dialog-lede{margin:0;font-size:.95rem;color:var(--sui-text, #222)}.prepay-dialog-form{display:flex;flex-direction:column;gap:1rem}.prepay-dialog-actions,.forms-gate-dialog-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:.5rem}.forms-gate-dialog-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.forms-gate-dialog-list li{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;border:1px solid var(--sui-border, #d9d9d9);border-radius:8px}.forms-gate-dialog-item-label{font-weight:500;color:var(--sui-text, #222)}.forms-gate-dialog-item-cta{white-space:nowrap;padding:.5rem 1rem;font-size:.9rem}.upsell-sheet-backdrop{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.upsell-sheet{background:var(--sui-surface, #fff);border-radius:1rem;padding:1.5rem;max-width:28rem;width:100%;box-shadow:0 20px 60px #00000040;display:flex;flex-direction:column;gap:1rem;max-height:90vh;overflow-y:auto}.upsell-sheet-header{display:flex;justify-content:space-between;align-items:center}.upsell-sheet-header h3{margin:0}.upsell-close{background:transparent;border:0;font-size:1.5rem;cursor:pointer;line-height:1;color:var(--sui-text-muted, #5f5f5f)}.upsell-tier-list{display:flex;flex-direction:column;gap:.75rem}.upsell-tier{border:1px solid var(--sui-border, #d9d9d9);border-radius:var(--sui-radius-lg, 12px);padding:.85rem;display:flex;flex-direction:column;gap:.5rem}.upsell-tier-head{display:flex;justify-content:space-between;align-items:baseline}.upsell-tier-price{font-weight:600;color:var(--sui-accent-strong, #1d4ed8)}.upsell-tier-desc{margin:0;color:var(--sui-text-muted, #5f5f5f);font-size:.9rem}@media(max-width:600px){.appt-tile-grid{grid-template-columns:1fr}.ribbon-day{min-width:130px}}:root{--sui-surface: var(--mp-bg-white);--sui-surface-alt: var(--mp-bg-light);--sui-border: var(--mp-border);--sui-text: var(--mp-text);--sui-text-muted: var(--mp-text-light);--sui-heading: var(--mp-heading);--sui-accent: var(--mp-accent);--sui-accent-soft: #dcecf1;--sui-accent-strong: var(--mp-primary-dark);--sui-premium: #b8860b;--sui-radius: 10px;--sui-radius-lg: 14px;--sui-shadow-sm: var(--mp-shadow-sm);--sui-shadow-md: var(--mp-shadow-md)}.schedule-page-section{padding-block:1.5rem 3rem}.schedule-page-container{width:100%;max-width:960px;margin-inline:auto;padding-inline:20px}.scheduling-flow{display:block}.scheduling-shared-header{display:grid;gap:1rem;margin-bottom:1rem}.scheduling-shared-header:empty{display:none;margin:0}@media(min-width:720px){.scheduling-shared-header{grid-template-columns:1fr 2fr}}.variant{padding:0;display:flex;flex-direction:column;gap:1rem;scroll-margin-top:90px}.variant>h3{font-family:var(--mp-display-font);font-weight:600;font-size:1.5rem;color:var(--mp-heading);margin:0}.appt-tile-grid{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.appt-tile-grid-collapsed{grid-template-columns:minmax(200px,340px)}.appt-tile-section-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.appt-tile-section-head h3{margin:0;font-family:var(--mp-display-font);color:var(--mp-heading)}.appt-tile-change-btn{background:transparent;border:1px solid var(--mp-border);color:var(--mp-text);border-radius:999px;padding:.35rem .85rem;font-size:.85rem;font-weight:600;cursor:pointer;transition:border-color .15s,color .15s,background .15s}.appt-tile-change-btn:hover,.appt-tile-change-btn:focus-visible{border-color:var(--mp-accent);color:var(--mp-accent);outline:none}.provider-filter-hint{font-size:.85rem;font-weight:400;color:var(--mp-text-muted)}.scheduling-empty{color:var(--mp-text-light);background:var(--mp-bg-light);border:1px solid var(--mp-border);border-radius:8px;padding:1rem 1.25rem}.muted{color:var(--mp-text-muted);font-size:.9rem}.credit-banner{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;margin-bottom:1rem;background:linear-gradient(135deg,#fff7ed,#fef3c7);border:1px solid #fde68a;border-radius:8px;color:#78350f;font-size:.95rem}.credit-banner-icon{font-size:1.1rem;color:#d97706}.booking-footer{margin-top:auto;padding-top:1.5rem;border-top:1px solid var(--mp-border);display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between}.booking-footer .btn-lg{font-size:1.05rem;padding:.85rem 1.75rem}.booking-footer:empty{display:none;padding:0;border:0}.booking-footer .form-group{margin:0}.booking-footer .form-group>label{display:block;margin-bottom:.4rem;font-weight:600;color:var(--mp-heading)}.booking-result{background:var(--mp-bg-white);border:1px solid var(--mp-border);border-radius:12px;padding:1.5rem;box-shadow:var(--mp-shadow-sm);width:100%}.booking-result h2{margin-top:0;font-family:var(--mp-display-font);color:var(--mp-heading)}.alert{border-radius:8px;padding:.8rem 1.1rem;font-size:.95rem}.alert-error{background:#fff5f5;border:1px solid #feb2b2;color:#742a2a}.alert-info{background:#ebf8ff;border:1px solid #bee3f8;color:#2a4365}.recovery-setup-gate{background:var(--mp-bg-light);border:1px solid var(--mp-border);border-radius:12px;padding:1.25rem 1.5rem;width:100%}.recovery-setup-gate h3{margin-top:0;color:var(--mp-heading)}.recovery-setup-gate__methods{margin:.5rem 0 1rem 1.25rem}.recovery-setup-gate__footer{font-size:.9rem;color:var(--mp-text-light);margin-bottom:0}.contact-to-book{max-width:560px;margin:2rem auto;text-align:center;background:var(--mp-bg-white);border:1px solid var(--mp-border);border-radius:14px;padding:2.5rem 2rem;box-shadow:var(--mp-shadow-sm)}.contact-to-book h2{margin-top:0;font-family:var(--mp-display-font);color:var(--mp-heading)}.contact-to-book p{color:var(--mp-text);line-height:1.65}.contact-to-book-actions{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center;margin-top:1.25rem}.stripe-checkout{margin-top:1rem}.scheduling-empty-request{margin-top:.75rem;padding:1rem;border:1px dashed var(--mp-border, #d1d5db);border-radius:8px;text-align:center}.scheduling-empty-request p{margin:0 0 .75rem}.request-appointment-toggle{display:inline-block;margin-top:.75rem;background:none;border:none;padding:0;color:var(--mp-accent, #b45309);text-decoration:underline;font-size:.95rem;cursor:pointer}.request-appointment-section{margin-top:1rem;padding:1.25rem;border:1px solid var(--mp-border, #d1d5db);border-radius:10px;background:var(--mp-bg-white, #fff)}.request-appointment-form .request-appointment-window-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:.5rem;margin:.5rem 0 1rem}.request-appointment-window-pill{padding:.4rem .5rem;border:1px solid var(--mp-border, #d1d5db);border-radius:999px;background:var(--mp-bg-white, #fff);cursor:pointer;font-size:.85rem}.request-appointment-window-pill.selected{background:var(--mp-accent, #b45309);border-color:var(--mp-accent, #b45309);color:#fff}.request-appointment-contact-pref .radio-label,.request-appointment-form .radio-label{margin-right:1rem;font-size:.9rem}.request-appointment-actions{display:flex;gap:.75rem;margin-top:1rem}.request-appointment-cancel{background:none;border:1px solid var(--mp-border, #d1d5db);border-radius:6px;padding:.5rem 1rem;cursor:pointer}.request-appointment-success,.request-appointment-pending{text-align:center;padding:1rem}
