/* Scope all additions to the public plan; the approved single-service screen stays intact. */
.plan-form { --plan-border:var(--profile-line,#e3e7e9); color:var(--profile-ink,#263449); }
.plan-form [hidden] { display:none!important; }
.plan-form label { display:grid; gap:8px; font-size:.75rem; }
.plan-form :is(input:not([type=checkbox]):not([type=hidden]),select,textarea) { width:100%; min-width:0; min-height:44px; padding:11px 12px; background:#fff; color:var(--profile-ink,#263449); border:1px solid var(--plan-border); border-radius:9px; font:inherit; }
.plan-form :is(button,select,input):focus-visible { outline:2px solid var(--profile-deep,#263449); outline-offset:3px; }
.plan-feedback:empty { display:none; }
.plan-feedback { padding:10px 14px; margin:0 0 20px; border-radius:9px; background:var(--request-soft,#f5f5f5); font-size:.78rem; line-height:1.6; }
.plan-feedback { scroll-margin-top:100px; }
.plan-selection { display:grid; gap:10px; margin:18px 0 12px; }
.plan-picked { padding:14px; border:1px solid var(--plan-border); border-radius:12px; background:#fff; background:color-mix(in srgb,var(--request-primary) 5%,#fff); }
.plan-picked>header { display:flex; flex-wrap:wrap; align-items:baseline; gap:8px; margin-bottom:12px; }
.plan-picked header strong { flex:1; font-size:.88rem; overflow-wrap:anywhere; }
.plan-picked header small { font-size:.65rem; white-space:nowrap; }
.plan-position { font-size:.65rem; font-weight:600; }
.plan-picked-actions { display:flex; gap:6px; justify-content:flex-end; margin-top:10px; }
.plan-form .plan-picked-actions button { width:auto; min-width:36px; min-height:36px; padding:6px 10px; background:#fff; color:var(--profile-ink); border:1px solid var(--plan-border); border-radius:7px; font-size:.7rem; }
.plan-form button:disabled { opacity:.45; cursor:not-allowed; }
.plan-catalog-toggle { width:100%; min-height:44px; border:1px solid var(--plan-border); border-radius:9px; background:#fff; color:var(--profile-ink); font-size:.75rem; margin-bottom:16px; }
.plan-catalog { display:grid; gap:12px; }
.plan-options { display:grid; gap:8px; border:0; padding:0; margin:0; min-width:0; }
.plan-form .booking-service-option { display:grid; grid-template-columns:16px minmax(0,1fr) auto; gap:9px; }
.plan-form .booking-service-option input { width:16px; height:16px; padding:0; accent-color:var(--profile-deep); }
.plan-form .booking-service-amount { max-width:110px; font-size:.78rem!important; }
.plan-form .booking-service-copy>strong { font-size:.86rem!important; }
.plan-note { display:block; font-size:.67rem; line-height:1.7; color:var(--profile-muted,#627080); margin:10px 0; overflow-wrap:anywhere; }
.plan-form .booking-schedule { display:grid; gap:12px; }
.plan-hours { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; }
.plan-form .plan-hours button,.plan-form .plan-date-shortcuts button { min-height:40px; padding:8px 4px; border:1px solid var(--plan-border); border-radius:8px; background:#fff; color:var(--profile-ink); font-size:.73rem; }
.plan-form .plan-hours button[aria-pressed=true] { background:var(--profile-deep); color:var(--profile-deep-ink,#fff); border-color:var(--profile-deep); }
.plan-date-shortcuts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; }
.plan-enhanced .plan-fallback { display:none!important; }
.plan-form :is(#plan-schedule,#plan-contact,[data-plan-continue]) { scroll-margin-top:100px; }
.plan-extra { margin-top:12px; font-size:.75rem; }
.plan-extra[open]>label { margin:14px 0; }
.plan-review .commerce-btn { width:100%; min-height:48px; margin:12px 0; }
.plan-summary { font-size:.8rem; }
.plan-visit { display:grid; gap:6px; padding-bottom:16px; border-bottom:1px solid var(--profile-line,#ddd); }
.plan-visit span { font-size:.7rem; }
.plan-summary-lines { list-style:none; padding:0; margin:0; }
.plan-summary-lines>li { display:grid; gap:6px; padding:14px 0; border-bottom:1px solid var(--profile-line,#ddd); }
.plan-summary-lines>li>div { display:flex; justify-content:space-between; align-items:baseline; gap:10px; }
.plan-summary-lines strong { font-size:.82rem; overflow-wrap:anywhere; }
.plan-summary-lines b { white-space:nowrap; font-weight:500; font-size:.75rem; }
.plan-summary-lines small { font-size:.68rem; line-height:1.6; }
.plan-promotion { margin:2px 0; font-size:.7rem; font-weight:600; color:var(--profile-deep,#263449); }
.plan-total { display:flex; justify-content:space-between; gap:10px; margin:18px 0 10px; }
.plan-deposit-total { font-size:.75rem; }
.plan-terms { font-size:.68rem; line-height:1.7; margin-top:14px; }
.plan-terms summary { cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.plan-receipt { max-width:760px; margin:auto; width:100%; }
.plan-receipt h2 { margin:12px 0; }.plan-receipt>p { line-height:1.7; }
.plan-branches { display:flex; flex-wrap:wrap; gap:8px; padding:16px; background:#fff; border:1px solid var(--profile-line,#ddd); border-radius:12px; }
.plan-branches a { padding:10px 14px; font-size:.78rem; color:var(--profile-ink); text-decoration:none; border-radius:8px; }
.plan-branches a[aria-current=page] { background:var(--profile-deep); color:var(--profile-deep-ink,#fff); }
.plan-sr-only,.plan-honeypot { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
@media(max-width:1100px) and (min-width:761px) { .plan-form .request-booking-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important; } .plan-form .booking-review { grid-column:1/-1; position:static; width:100%; } }
@media(max-width:760px) { .plan-form .request-booking-grid { grid-template-columns:minmax(0,1fr)!important; } .plan-form .booking-review { position:static; } .plan-form .plan-picked-actions button { min-height:40px; } .plan-form .booking-services { padding-bottom:20px; } .plan-form .plan-date-shortcuts { grid-template-columns:repeat(4,minmax(0,1fr)); } .plan-total { flex-wrap:wrap; } }
@media(prefers-reduced-motion:reduce) { .plan-form * { scroll-behavior:auto!important; transition:none!important; } }
