/* ── client.css — client portal styles (requires shared.css) ── */

#client-sidebar{width:var(--sb-width);min-width:var(--sb-width);min-height:100vh;height:100vh;position:sticky;top:0;display:flex;flex-direction:column;background:#0f0e0c;border-right:1px solid rgba(255,255,255,.07);overflow:hidden;flex-shrink:0;z-index:100}

@media(max-width:768px){
  html,body{height:auto !important;overflow-x:hidden !important;overflow-y:visible !important}
  #client-sidebar{position:fixed;left:0;top:56px;height:calc(100% - 56px);min-height:0;transform:translateX(-100%);transition:transform .25s ease;z-index:150}
  #client-sidebar.sb-open{transform:translateX(0)}
  #client-sidebar .sb-logo{display:none}
  .main,.portal-main{margin-top:56px !important;overflow-x:hidden;padding:1rem;height:auto !important}
}

/* ── Client Card — unified card component ── */
/* Replaces per-page .booking-card, .invoice-card, .tile, .gallery-card, .pkg-card */
.c-card{border:1px solid var(--border);background:var(--surface);transition:border-color .15s,background .15s,box-shadow .15s;margin-bottom:.75rem;border-radius:var(--r-sm)}
.c-card:hover{border-color:rgba(10,11,13,.18);background:var(--surface);box-shadow:0 4px 16px rgba(10,11,13,.06)}
.c-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.8rem 1.25rem;border-bottom:1px solid var(--border-lt)}
.c-card-primary{font-weight:600;font-size:.92rem;color:var(--ink)}
.c-card-secondary{font-size:.77rem;color:var(--text-3);margin-top:.15rem}
.c-card-badge{flex-shrink:0;padding-top:.1rem}
.c-card-body{padding:.75rem 1.25rem}
.c-card-meta{display:flex;flex-wrap:wrap;gap:.25rem .9rem;margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--border-lt)}
.c-card-meta-item{display:flex;align-items:baseline;gap:.3rem}
.c-card-meta-label{font-size:.6rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text-3)}
.c-card-meta-val{font-size:.78rem;color:var(--text-2)}
.c-card-actions{display:flex;flex-wrap:wrap;gap:.4rem;padding:.6rem 1.25rem;border-top:1px solid var(--border-lt)}
/* State modifier */
.c-card--featured{border-color:rgba(23,89,255,.25);background:rgba(23,89,255,.03)}
.c-card--featured .c-card-top{border-bottom-color:rgba(23,89,255,.15)}

/* ── Layout helpers ── */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:560px){.two-col{grid-template-columns:1fr}}

/* ── Page heading ── */
.portal-heading{font-family:var(--serif);font-size:1.4rem;font-weight:700;margin-bottom:1.5rem;color:var(--ink)}
/* Tighten gap when subtitle follows */
.portal-heading:has(+ .portal-sub){margin-bottom:.4rem}
.portal-sub{font-size:.85rem;color:var(--text-3);margin-bottom:2rem}

/* ── Flash / banner messages ── */
.flash{padding:.7rem 1rem;font-size:.84rem;margin-bottom:1rem;border-left:3px solid}
.flash-success{background:rgba(45,158,110,.1);border-color:var(--status-success);color:var(--status-success)}
.flash-info{background:rgba(23,89,255,.06);border-color:rgba(23,89,255,.25);color:var(--blue)}
.flash-error{background:rgba(232,112,112,.08);border-color:var(--status-error);color:var(--status-error)}

/* ── Skeleton loader ── */
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
.skeleton{background:linear-gradient(90deg,var(--border-lt) 25%,rgba(0,0,0,.06) 50%,var(--border-lt) 75%);background-size:200% 100%;animation:shimmer 1.4s ease infinite;border-radius:2px}

/* ── Pagination ── */
.pagination{display:flex;align-items:center;gap:.35rem;margin-top:1.5rem;flex-wrap:wrap}
.page-btn{font-size:.68rem;font-weight:700;letter-spacing:.06em;padding:.35rem .75rem;border:1px solid var(--border);background:transparent;color:var(--text-2);cursor:pointer;font-family:var(--sans);transition:color .15s,border-color .15s}
.page-btn:hover{border-color:var(--text-3);color:var(--ink)}
.page-btn.active{background:var(--blue);color:var(--ink);border-color:var(--blue)}
.page-btn:disabled{opacity:.35;cursor:not-allowed}

/* ── Action buttons — small card action buttons ── */
.action-btn{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-family:var(--sans);padding:.4rem .9rem;cursor:pointer;transition:all .15s;border:1px solid;border-radius:6px;display:inline-flex;align-items:center;line-height:1.2;text-decoration:none}
.action-btn-outline{background:transparent;color:var(--text-2);border-color:var(--text-3)}
.action-btn-outline:hover{border-color:var(--text-2);color:var(--ink)}
.action-btn-danger{background:transparent;color:#e87070;border-color:rgba(232,112,112,.3)}
.action-btn-danger:hover{background:rgba(232,112,112,.08);border-color:rgba(232,112,112,.5)}
.action-btn-blue{background:var(--blue);color:#fff;border-color:var(--blue)}
.action-btn-blue:hover{background:var(--blue-dark);border-color:var(--blue-dark)}
.action-btn-blue-ol{background:transparent;color:var(--blue);border-color:rgba(23,89,255,.5)}
.action-btn-blue-ol:hover{background:rgba(23,89,255,.06);border-color:var(--blue)}

/* ── Payment pages — shared between pay-deposit and pay-invoice ── */
.summary-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:1.25rem;margin-bottom:1.5rem}
.summary-title{font-size:.68rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);margin-bottom:.85rem}
.summary-row{display:flex;justify-content:space-between;align-items:center;padding:.45rem 0;border-bottom:1px solid var(--border-lt);font-size:.85rem}
.summary-row:last-child{border-bottom:none}
.summary-label{color:var(--text-3)}
.summary-value{color:var(--ink);font-weight:500}
.card-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:1.25rem;margin-bottom:1.5rem}
.card-section-header{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-lt)}
.card-section-title{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-2)}
.card-section-lock{font-size:.9rem;color:var(--text-3)}
#card-container{min-height:54px}
.card-powered{font-size:.68rem;color:var(--text-3);margin-top:.75rem;text-align:right}
.ach-toggle-row{text-align:center;margin-bottom:1.5rem}
.ach-toggle-btn{background:none;border:none;color:var(--text-3);font-family:var(--sans);font-size:.78rem;cursor:pointer;text-decoration:underline;padding:0}
.ach-toggle-btn:hover{color:var(--text-2)}
.ach-section{background:var(--surface);border:1px solid var(--border);padding:1.25rem;margin-bottom:1.5rem;display:none}
.ach-section.visible{display:block}
.ach-header{font-size:.68rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);margin-bottom:.85rem}
.ach-name-input{width:100%;background:var(--white);border:1.5px solid var(--gray-mid);border-radius:var(--r-sm);color:var(--black);font-family:var(--ff-body);font-size:.9375rem;padding:.75rem 1rem;outline:none;margin-bottom:.75rem;transition:border-color .18s} .ach-name-input:focus{border-color:var(--blue)}
.ach-name-input:focus{border-color:var(--blue)}
.ach-name-input::placeholder{color:rgba(0,0,0,.2)}
.ach-btn{width:100%;padding:.875rem 1.875rem;background:transparent;border:1.5px solid var(--gray-mid);border-radius:var(--r-pill);color:var(--ink);font-family:var(--ff-body);font-size:.9375rem;font-weight:600;cursor:pointer;transition:border-color .18s,transform .12s} .ach-btn:hover{border-color:var(--ink);transform:translateY(-1px)}
.ach-btn:hover:not(:disabled){background:var(--border)}
.ach-btn:disabled{opacity:.4;cursor:not-allowed}
.ach-note{font-size:.72rem;color:var(--text-3);margin-top:.65rem;line-height:1.55}
.express-section{margin-bottom:1.5rem;display:none}
.express-section.visible{display:block}
.express-label{font-size:.68rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);margin-bottom:.75rem}
.express-buttons{display:flex;flex-direction:column;gap:.6rem}
#google-pay-container,#apple-pay-container{min-height:48px;display:none}
.pay-divider{display:flex;align-items:center;gap:1rem;margin:1.25rem 0;color:rgba(0,0,0,.2);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase}
.pay-divider::before,.pay-divider::after{content:'';flex:1;height:1px;background:var(--border)}
.policy-note{font-size:.78rem;color:var(--text-3);line-height:1.55;margin-bottom:1.5rem;padding:.85rem;border:1px solid var(--border)}
.pay-btn{width:100%;padding:.9rem;background:var(--blue);color:var(--ink);font-family:var(--sans);font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;border:none;cursor:pointer;transition:opacity .15s}
.pay-btn:disabled{opacity:.4;cursor:not-allowed}
.pay-btn:not(:disabled):hover{opacity:.88}

/* ── Stat cards (events pages) ── */
.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:.95rem 1.1rem}
.stat-card-val{font-family:var(--serif);font-size:1.2rem;font-weight:700;color:var(--ink);margin-bottom:.2rem}
.stat-card-label{font-size:.62rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3)}

/* ── Progress bar ── */
.progress-bar{height:6px;background:var(--border);overflow:hidden;margin-top:.4rem}
.progress-fill{height:100%;background:var(--blue);transition:width .3s}
.progress-label{font-size:.72rem;color:var(--text-3);display:flex;justify-content:space-between;margin-top:.3rem}

/* ── Invoice status colors ── */
.inv-paid{color:var(--status-success);font-weight:600}
.inv-sent{color:var(--blue);font-weight:600}
.inv-overdue{color:var(--status-error);font-weight:600}
.inv-draft{color:var(--text-3)}

/* ── Login Gate ── */
.gate-root{display:flex;width:100%;min-height:100vh}

/* Left: dark carousel (55%) */
.gate-hero{flex:0 0 55%;max-width:55%;position:relative;overflow:hidden;display:flex;flex-direction:column;background:var(--black)}
@media(max-width:800px){.gate-hero{display:none}}

.gate-carousel{flex:1;position:relative;overflow:hidden}

.gate-slide{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:3.5rem;opacity:0;transition:opacity .7s ease;pointer-events:none}
.gate-slide--active{opacity:1;pointer-events:auto}

.gate-slide--s1 .gate-slide-bg{background-image:url('/livephotos/studio-dark-horizontal-south-florida-6.webp')}
.gate-slide--s2 .gate-slide-bg{background-image:url('/livephotos/studio-dark-horizontal-south-florida-8.webp')}
.gate-slide--s3 .gate-slide-bg{background-image:url('/livephotos/studio-dark-horizontal-south-florida-10.webp')}

.gate-slide-bg{position:absolute;inset:0;background-size:cover;background-position:center 20%;transition:transform 8s ease}
.gate-slide--active .gate-slide-bg{transform:scale(1.04)}

.gate-slide-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(10,11,13,.95) 0%,rgba(10,11,13,.55) 45%,rgba(10,11,13,.15) 100%)}

.gate-slide::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--blue) 0%,transparent 60%);opacity:0;transition:opacity .8s ease .1s}
.gate-slide--active::before{opacity:1}

.gate-slide-content{position:relative;z-index:1;max-width:520px}

.gate-slide-eyebrow{display:inline-block;font-size:.68rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--blue);margin-bottom:1rem;opacity:0;transform:translateY(10px);transition:opacity .6s ease .2s,transform .6s ease .2s}
.gate-slide--active .gate-slide-eyebrow{opacity:1;transform:translateY(0)}

.gate-slide-heading{font-family:var(--ff-head);font-size:2.6rem;font-weight:700;line-height:1.15;color:#fff;margin-bottom:1rem;opacity:0;transform:translateY(15px);transition:opacity .6s ease .35s,transform .6s ease .35s}
.gate-slide--active .gate-slide-heading{opacity:1;transform:translateY(0)}

.gate-slide-sub{font-size:.9rem;color:rgba(255,255,255,.78);line-height:1.65;max-width:400px;opacity:0;transform:translateY(10px);transition:opacity .6s ease .5s,transform .6s ease .5s}
.gate-slide--active .gate-slide-sub{opacity:1;transform:translateY(0)}

.gate-dots{position:absolute;bottom:2.5rem;left:3.5rem;display:flex;gap:.5rem;z-index:2}
.gate-dot{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.35);border:none;cursor:pointer;padding:0;transition:background .2s,width .2s}
.gate-dot--active{background:var(--blue);width:20px;border-radius:3px}

/* Right: light form (45%) */
.gate-form-col{flex:0 0 45%;max-width:45%;background:var(--white);border-left:1px solid var(--gray-mid);display:flex;align-items:center;justify-content:center;overflow-y:auto}
@media(max-width:800px){.gate-form-col{flex:none;width:100%;max-width:100%;border-left:none}}

.gate-form-inner{width:100%;max-width:400px;padding:2.5rem 2rem}

.gate-logo{text-align:center;margin-bottom:1.75rem}
.gate-logo-name{font-family:var(--ff-head);font-size:1.05rem;font-weight:700;color:var(--black);display:block;text-decoration:none}
.gate-logo-name span{color:var(--blue)}
.gate-logo-sub{font-size:.65rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gray);margin-top:.25rem;display:block}

.gate-tagline{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gray);text-align:center;margin-bottom:.5rem}

.gate-toggle{display:flex;border:1px solid var(--gray-mid);border-radius:var(--r-sm);overflow:hidden;margin-bottom:1.5rem}
.gate-toggle-btn{flex:1;padding:.6rem;font-family:var(--ff-body);font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;background:none;border:none;cursor:pointer;color:var(--gray);transition:background .15s,color .15s}
.gate-toggle-btn.active{background:var(--blue);color:#fff}

.gate-panel-title{font-family:var(--ff-head);font-size:1.3rem;font-weight:700;color:var(--black);margin-bottom:.3rem;text-align:center}
.gate-panel-sub{font-size:.82rem;color:var(--gray);text-align:center;margin-bottom:1.5rem}

.gate-google-btn{margin-bottom:.75rem}

.gate-divider{display:flex;align-items:center;gap:.75rem;margin-bottom:.85rem}
.gate-divider-line{flex:1;height:1px;background:var(--gray-mid)}
.gate-divider-text{font-size:.65rem;color:var(--gray);letter-spacing:.08em;text-transform:uppercase}

.gate-form-inner .form-field{margin-bottom:.85rem}
.gate-form-inner .form-field label{display:block;font-size:.65rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--gray);margin-bottom:.35rem}
.gate-form-inner .form-field input{width:100%;padding:.72rem .9rem;border:1.5px solid var(--gray-mid);border-radius:var(--r-sm);font-family:var(--ff-body);font-size:.9rem;color:var(--black);background:var(--white);outline:none;transition:border-color .15s}
.gate-form-inner .form-field input:focus{border-color:var(--blue)}
.gate-form-inner .form-field input::placeholder{color:var(--gray);opacity:.5}

.gate-forgot{display:block;text-align:right;font-size:.75rem;color:var(--gray);text-decoration:none;margin-top:-.35rem;margin-bottom:.85rem}
.gate-forgot:hover{color:var(--blue)}

.gate-btn{width:100%;padding:.85rem;background:var(--blue);color:#fff;border:none;font-family:var(--ff-body);font-size:.875rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:background .15s,opacity .15s;border-radius:var(--r-pill);margin-top:.25rem}
.gate-btn:hover{background:var(--blue-dark)}
.gate-btn:disabled{opacity:.55;cursor:not-allowed}

.gate-error{background:rgba(220,53,53,.07);border:1px solid rgba(220,53,53,.2);border-radius:var(--r-sm);color:#b91c1c;font-size:.8rem;padding:.65rem .9rem;margin-bottom:.85rem;display:none}
.gate-error.visible{display:block}
.gate-success{background:rgba(21,128,61,.07);border:1px solid rgba(21,128,61,.2);border-radius:var(--r-sm);color:#15803d;font-size:.8rem;padding:.65rem .9rem;margin-bottom:.85rem;display:none}
.gate-success.visible{display:block}

.gate-footer{text-align:center;margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--gray-mid)}
.gate-footer p{font-size:.7rem;color:var(--gray);line-height:1.7}
.gate-footer a{color:var(--gray);text-decoration:none}
.gate-footer a:hover{color:var(--blue)}

.gate-back{text-align:center;margin-top:.75rem}
.gate-back a{font-size:.75rem;color:var(--gray);text-decoration:none}
.gate-back a:hover{color:var(--blue)}

.gate-back-link-wrap{text-align:center;margin-top:1rem}
.gate-back-link{font-size:.78rem;color:var(--gray);text-decoration:none}
.gate-back-link:hover{color:var(--blue)}

.gate-step--hidden{display:none}

/* ── Spacing utilities ── */
.err-link{color:#e87070;text-decoration:underline}
.mt-md{margin-top:1.5rem}

/* ── Booking flow — shared across all 3 steps ── */

/* Sidebar logo accent */
.sb-logo-accent{color:var(--blue)}

/* Process roadmap (book / schedule / confirm) */
.book-btn-row{display:flex;gap:.75rem;align-items:center;margin-top:1.5rem}
.book-btn-row .continue-btn,.book-btn-row .confirm-btn{flex:1;width:auto;margin-top:0}
.book-back-link{display:inline-flex;align-items:center;gap:.35rem;font-size:.9rem;font-weight:600;color:#5a5652;text-decoration:none;padding:.875rem 1.25rem;border:1.5px solid #c9c5be;border-radius:var(--r-pill);background:#f0eeeb;transition:color .15s,border-color .15s,background .15s;white-space:nowrap}
.book-back-link:hover{color:#141210;border-color:#a09c97;background:#e8e4e0}
.book-roadmap{display:flex;align-items:center;gap:0;margin:1.25rem 0 2rem;overflow-x:auto;padding-bottom:2px;max-width:1080px;margin-left:auto;margin-right:auto}
.book-roadmap-step{display:flex;flex-direction:column;align-items:center;gap:.4rem;min-width:68px;flex:1}
.book-roadmap-icon{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.book-roadmap-icon--active{background:var(--blue);border:1px solid transparent}
.book-roadmap-icon--active svg{stroke:#fff}
.book-roadmap-icon--done{background:rgba(23,89,255,.15);border:1px solid rgba(23,89,255,.3)}
.book-roadmap-icon--idle{background:var(--border-lt);border:1px solid var(--border)}
.book-roadmap-label{font-size:.6rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;text-align:center;line-height:1.3}
.book-roadmap-label--active{color:var(--blue);font-weight:600}
.book-roadmap-label--done{color:var(--text-2)}
.book-roadmap-label--idle{color:var(--text-3)}
.book-roadmap-connector{flex:1;height:2px;margin-bottom:1.55rem;min-width:12px}
.book-roadmap-connector--done{background:rgba(23,89,255,.3)}
.book-roadmap-connector--idle{background:var(--border)}

/* ── Book step 1 — service selection ── */
.book-content-wrap{max-width:1080px;margin-left:auto;margin-right:auto}

/* Login prompt extras */
.lp-google-btn{margin:1rem auto .75rem;display:flex;justify-content:center}
.lp-or-divider{display:flex;align-items:center;gap:.75rem;margin:.5rem auto .85rem;max-width:300px}
.lp-or-line{flex:1;height:1px;background:var(--border)}
.lp-or-text{font-size:.65rem;color:var(--text-3);letter-spacing:.08em;text-transform:uppercase}
.lp-btn-row{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}
.lp-create-btn{border:1.5px solid var(--gray-mid);color:var(--ink);background:transparent}.lp-create-btn:hover{border-color:var(--ink)}
.lp-footer-note{margin-top:1.75rem;padding-top:1.5rem;border-top:1px solid var(--border);color:var(--text-3);font-size:.82rem}
.lp-footer-link{color:var(--blue);text-decoration:none}

/* Quote panel — headcount section */
.hc-service-desc{font-size:.8rem;color:var(--text-3);margin-bottom:1.25rem;line-height:1.5}
.hc-people-wrap{margin-bottom:1.25rem}
.hc-section-label{font-size:.66rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);margin-bottom:.55rem}
.hc-section-label--retouch{margin-bottom:.6rem}
.hc-input{background:var(--white);border:1.5px solid var(--gray-mid);border-radius:var(--r-sm);color:var(--black);font-family:var(--ff-body);font-size:1.1rem;padding:.75rem 1rem;outline:none;width:100%;transition:border-color .18s;color-scheme:light} .hc-input:focus{border-color:var(--blue)}
.hc-no-tier{background:rgba(232,112,112,.1);border:1px solid rgba(232,112,112,.25);padding:.85rem;font-size:.8rem;color:#e87070;margin-bottom:1rem}
.hc-retouch-wrap{margin-bottom:1.25rem}
.hc-pricing-wrap{margin-bottom:1.25rem}
.hc-continue-btn{width:100%;background:var(--blue);color:#fff;border:none;font-family:var(--ff-body);font-size:.9375rem;font-weight:600;padding:.875rem 1.875rem;border-radius:var(--r-pill);cursor:pointer;text-align:center;transition:background .18s,transform .12s;margin-bottom:.65rem}
.hc-continue-btn:disabled{opacity:.4;cursor:not-allowed}
.hc-continue-btn:not(:disabled):hover{background:var(--blue-dark);transform:translateY(-1px)}
.hc-back-btn{width:100%;background:transparent;color:var(--text-3);border:1px solid var(--border);font-family:var(--sans);font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:.6rem;cursor:pointer}

/* Custom quote banner */
.corp-quote-banner{margin-top:1.5rem;padding:1.5rem 1.5rem 1.75rem;border:1px solid rgba(23,89,255,.18);background:rgba(23,89,255,.04);border-radius:var(--r-md)}
.corp-quote-banner-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.corp-quote-banner-eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--blue);margin-bottom:.3rem}
.corp-quote-banner-sub{font-size:.85rem;color:var(--text-2)}
.corp-quote-help-btn{flex-shrink:0;background:transparent;color:var(--blue);font-family:var(--sans);font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;border:1px solid rgba(23,89,255,.5);padding:.6rem 1.1rem;cursor:pointer;border-radius:var(--r-pill);transition:background .15s,color .15s,border-color .15s} .corp-quote-help-btn:hover{background:rgba(23,89,255,.08);border-color:var(--blue)}
.corp-quote-form{flex-direction:column;gap:.75rem;margin-top:1.25rem}
.corp-quote-input{background:var(--white);border:1.5px solid var(--gray-mid);border-radius:var(--r-sm);color:var(--black);font-family:var(--ff-body);font-size:.9375rem;padding:.75rem 1rem;outline:none;width:100%;box-sizing:border-box;transition:border-color .18s} .corp-quote-input:focus{border-color:var(--blue)}
.corp-quote-textarea{background:var(--white);border:1.5px solid var(--gray-mid);border-radius:var(--r-sm);color:var(--black);font-family:var(--ff-body);font-size:.9375rem;padding:.75rem 1rem;outline:none;width:100%;box-sizing:border-box;resize:vertical;transition:border-color .18s} .corp-quote-textarea:focus{border-color:var(--blue)}
.corp-quote-submit{width:100%;background:var(--blue);color:#fff;font-family:var(--ff-body);font-size:.9375rem;font-weight:600;border:none;padding:.875rem 1.875rem;border-radius:var(--r-pill);cursor:pointer;transition:background .18s,transform .12s} .corp-quote-submit:hover{background:var(--blue-dark);transform:translateY(-1px)} .corp-quote-submit:disabled{opacity:.4;cursor:not-allowed}
.corp-quote-footer{margin-top:.75rem;font-size:.75rem;color:var(--text-3)}
.corp-quote-success{text-align:center;padding:1rem 0}
.corp-quote-success-icon{font-size:1.3rem;margin-bottom:.5rem}
.corp-quote-success-title{font-size:.95rem;font-weight:600;color:var(--blue);margin-bottom:.4rem}
.corp-quote-success-body{font-size:.85rem;color:var(--text-2);line-height:1.6}

/* ── Package cards (booking step 1) ── */
.pkg-grid{display:grid;grid-template-columns:1fr;gap:1rem}
@media(min-width:680px){.pkg-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.pkg-grid{grid-template-columns:repeat(3,1fr)}}

.pkg-card{position:relative;background:var(--surface);border:1.5px solid var(--gray-mid);border-radius:var(--r-md);padding:1.5rem;display:flex;flex-direction:column;transition:border-color .18s,box-shadow .18s,transform .12s}
.pkg-card:hover{border-color:rgba(10,11,13,.18);box-shadow:0 1px 2px rgba(10,11,13,.04),0 12px 28px -16px rgba(10,11,13,.12);transform:translateY(-2px)}
.pkg-card.featured{border-color:var(--blue);background:linear-gradient(180deg,#fff 0%,rgba(23,89,255,.025) 100%);box-shadow:0 1px 2px rgba(10,11,13,.04),0 8px 24px -12px rgba(23,89,255,.18)}

.pkg-badge{position:absolute;top:-10px;left:1.5rem;background:var(--blue);color:#fff;font-family:var(--ff-body);font-size:.7rem;font-weight:600;letter-spacing:.04em;padding:.3rem .75rem;border-radius:var(--r-pill)}

.pkg-name{font-family:var(--ff-head);font-size:1.5rem;font-weight:700;color:var(--ink);letter-spacing:-.015em;line-height:1.15;margin:0 0 .35rem}
.pkg-duration{font-family:var(--ff-body);font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);margin-bottom:.85rem}
.pkg-desc{font-family:var(--ff-body);font-size:.92rem;line-height:1.55;color:var(--text-2);margin:0 0 1rem}

.pkg-features{list-style:none;padding:0;margin:0 0 1.25rem;display:flex;flex-direction:column;gap:.5rem}
.pkg-features li{position:relative;padding-left:1.4rem;font-family:var(--ff-body);font-size:.88rem;line-height:1.5;color:var(--ink)}
.pkg-features li::before{content:"";position:absolute;left:0;top:.45rem;width:8px;height:8px;border-radius:50%;background:var(--blue);opacity:.6}

.pkg-price{font-family:var(--ff-head);font-size:2.4rem;font-weight:600;color:var(--ink);line-height:1;letter-spacing:-.025em;margin:auto 0 .25rem;font-variant-numeric:tabular-nums lining-nums}
.pkg-price sup{font-size:1.1rem;font-weight:600;vertical-align:super;margin-right:.1rem}
.pkg-price small{font-family:var(--ff-body);font-size:.78rem;font-weight:500;color:var(--text-2);letter-spacing:0;margin-left:.15rem}
.pkg-price--sm{font-size:1.7rem}
.pkg-price--md{font-size:2rem}
.pkg-price-sub{font-family:var(--ff-body);font-size:.78rem;color:var(--text-3);margin-bottom:.85rem}

.pkg-select-btn{margin-top:1rem;background:var(--blue);color:#fff;border:none;font-family:var(--ff-body);font-size:.9375rem;font-weight:600;padding:.875rem 1.875rem;border-radius:var(--r-pill);cursor:pointer;transition:background .18s,transform .12s;text-align:center}
.pkg-select-btn:hover{background:var(--blue-dark);transform:translateY(-1px)}
.pkg-card.featured .pkg-select-btn{background:var(--blue)}

/* ── Booking flow: centered page content ── */
.main.book-page > *,
.main.book-page > #content > *,
.main.book-page > #login-prompt{max-width:1080px;margin-left:auto;margin-right:auto;width:100%}
.main.book-page > #content{max-width:none;padding:0}

/* "Who is this session for?" section label (different from admin's section-label) */
.section-label{font-family:var(--ff-body);font-size:.78rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);margin:1.5rem 0 .85rem}

/* Type selector pills (Individual / Team / Real Estate) */
.type-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}
.type-btn{flex:0 0 auto;background:var(--surface);border:1.5px solid var(--gray-mid);color:var(--text-2);font-family:var(--ff-body);font-size:.9375rem;font-weight:500;padding:.6rem 1.25rem;border-radius:var(--r-pill);cursor:pointer;transition:background .15s,border-color .15s,color .15s;line-height:1.2}
.type-btn:hover{border-color:var(--ink);color:var(--ink)}
.type-btn.active{background:var(--ink);border-color:var(--ink);color:#fff}
.type-btn.active:hover{background:var(--ink)}

/* ── Booking step 1: layout adapts based on whether quote panel is visible ── */
.corp-layout{display:grid;grid-template-columns:1fr;gap:1.5rem;max-width:1080px;margin:0 auto}
/* Quote panel visible (corporate flow) → 2 columns: packages stack on left, quote sticky on right */
@media(min-width:960px){
  .corp-layout:has(#headcount-section[style*="display: block"]),
  .corp-layout:has(#headcount-section[style*="display:block"]){
    grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);
    gap:2rem;
    align-items:start;
  }
  .corp-layout:has(#headcount-section[style*="display: block"]) .pkg-grid,
  .corp-layout:has(#headcount-section[style*="display:block"]) .pkg-grid{
    grid-template-columns:1fr;
  }
  /* In desktop side-by-side, kill the mt-md spacing so quote panel aligns
     to the top of the package list */
  .corp-layout .quote-panel.mt-md{margin-top:0}
  /* Help banner sits below both columns and spans the full grid width
     so its width is independent of the packages column */
  .corp-layout:has(#headcount-section[style*="display: block"]) > #custom-quote-banner,
  .corp-layout:has(#headcount-section[style*="display:block"]) > #custom-quote-banner{
    grid-column:1 / -1;
  }
}

/* Live Quote panel (sticky right) */
.quote-panel{background:var(--surface);border:1.5px solid var(--gray-mid);border-radius:var(--r-md);padding:1.5rem 1.5rem 1.25rem;box-shadow:0 1px 2px rgba(10,11,13,.04),0 8px 24px -16px rgba(10,11,13,.08)}
@media(min-width:960px){.quote-panel{position:sticky;top:1.5rem}}
.quote-panel-label{font-family:var(--ff-body);font-size:.7rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--blue);margin-bottom:.85rem}
.quote-panel-name{font-family:var(--ff-head);font-size:1.4rem;font-weight:700;color:var(--ink);letter-spacing:-.015em;line-height:1.2;margin:0 0 1rem}

.quote-placeholder{text-align:center;padding:1.5rem 0 .5rem}
.quote-placeholder-icon{font-size:2rem;color:var(--gray-mid);margin-bottom:.6rem;line-height:1}
.quote-placeholder-text{font-family:var(--ff-body);font-size:.88rem;color:var(--text-2);line-height:1.55}

.quote-line{display:flex;align-items:baseline;justify-content:space-between;padding:.55rem 0;border-bottom:1px dashed var(--border-lt)}
.quote-line:last-of-type{border-bottom:none}
.quote-line-label{font-family:var(--ff-body);font-size:.85rem;color:var(--text-2)}
.quote-line-value{font-family:var(--ff-body);font-size:.9rem;font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums lining-nums;text-align:right}

.quote-total-row{display:flex;align-items:baseline;justify-content:space-between;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--gray-mid)}
.quote-total-label{font-family:var(--ff-body);font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.quote-total-value{font-family:var(--ff-head);font-size:1.85rem;font-weight:700;color:var(--ink);letter-spacing:-.02em;line-height:1;font-variant-numeric:tabular-nums lining-nums}

.quote-deposit-row{display:flex;align-items:baseline;justify-content:space-between;margin-top:1rem;padding:.85rem 1rem;background:rgba(23,89,255,.05);border:1px solid rgba(23,89,255,.18);border-radius:var(--r-sm)}
.quote-deposit-label{font-family:var(--ff-body);font-size:.78rem;color:var(--blue);font-weight:500}
.quote-deposit-value{font-family:var(--ff-head);font-size:1.2rem;font-weight:700;color:var(--blue);font-variant-numeric:tabular-nums lining-nums}

.deposit-hint{font-family:var(--ff-body);font-size:.78rem;color:var(--text-3);line-height:1.5;margin-top:.65rem;text-align:center}

/* Deposit note — footer card below packages */
.deposit-note{display:flex;align-items:flex-start;gap:.85rem;max-width:1080px;margin:2rem auto 0;padding:1rem 1.25rem;background:rgba(23,89,255,.04);border:1px solid rgba(23,89,255,.18);border-radius:var(--r-md)}
.deposit-note-icon{flex-shrink:0;width:32px;height:32px;border-radius:50%;background:rgba(23,89,255,.12);color:var(--blue);display:flex;align-items:center;justify-content:center}
.deposit-note-body{flex:1;min-width:0}
.deposit-note-title{margin:0 0 .15rem;font-family:var(--ff-body);font-size:.88rem;font-weight:600;color:var(--ink);letter-spacing:-.005em}
.deposit-note-desc{margin:0;font-family:var(--ff-body);font-size:.82rem;color:var(--text-2);line-height:1.55}

/* Retouch tier selector (cards inside package + corp panel) */
.retouch-label{font-family:var(--ff-body);font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);margin:1.25rem 0 .6rem}
.retouch-options{display:flex;flex-direction:column;gap:.5rem}
.retouch-btn{display:flex;align-items:center;gap:.85rem;width:100%;text-align:left;background:var(--surface);border:1.5px solid var(--gray-mid);border-radius:var(--r-sm);padding:.85rem 1rem;font-family:var(--ff-body);cursor:pointer;transition:border-color .18s,background .18s}
.retouch-btn:hover{border-color:var(--ink)}
.retouch-btn.active,.retouch-btn[data-active="1"]{border-color:var(--blue);background:rgba(23,89,255,.05)}
.retouch-price{font-family:var(--ff-head);font-size:1.05rem;font-weight:700;color:var(--ink);letter-spacing:-.01em;flex-shrink:0;font-variant-numeric:tabular-nums lining-nums}
.retouch-btn.active .retouch-price,.retouch-btn[data-active="1"] .retouch-price{color:var(--blue)}
.retouch-desc{font-family:var(--ff-body);font-size:.82rem;color:var(--text-2);line-height:1.4}

/* Retouch confirm button (generated in JS) */
.retouch-confirm-btn{width:100%;margin-top:1rem;background:var(--blue);color:#fff;border:none;font-family:var(--ff-body);font-size:.9375rem;font-weight:600;padding:.875rem 1.875rem;border-radius:var(--r-pill);cursor:pointer;transition:background .18s,transform .12s}
.retouch-confirm-btn:hover{background:var(--blue-dark);transform:translateY(-1px)}

/* Login prompt banner (shown when not logged in) */
.login-prompt{background:rgba(23,89,255,.05);border:1px solid rgba(23,89,255,.2);border-radius:var(--r-sm);padding:1rem 1.25rem;margin-bottom:1.5rem;font-family:var(--ff-body);font-size:.9rem;line-height:1.55;color:var(--ink)}
.login-prompt a{color:var(--blue);font-weight:500;text-decoration:none}
.login-prompt a:hover{text-decoration:underline}

/* ── Book step 2 — schedule ── */
.sched-slots-et{font-size:.72rem;font-weight:400;color:var(--text-3);letter-spacing:0;text-transform:none}
.sched-avail-err{color:#e87070;font-size:.82rem}

.service-summary{font-size:.85rem;color:var(--text-3);margin-bottom:2rem;max-width:1080px;margin-left:auto;margin-right:auto}
.service-summary strong{color:var(--ink)}
.sched-layout{display:grid;grid-template-columns:1fr 260px;gap:2rem;max-width:1080px;margin-left:auto;margin-right:auto}
@media(max-width:768px){
  .sched-layout{grid-template-columns:1fr;max-width:100%;overflow-x:hidden}
  .calendar-wrap{width:100% !important;max-width:100% !important;overflow:hidden}
  .cal-grid{width:100% !important;grid-template-columns:repeat(7,minmax(0,1fr)) !important}
  .cal-day{aspect-ratio:unset !important;height:36px !important;min-height:unset !important;min-width:0 !important;font-size:.72rem;overflow:hidden}
  .cal-dow{font-size:.5rem;padding:.2rem 0;min-width:0;overflow:hidden}
}
.calendar-wrap{background:var(--surface);border:1px solid var(--border);padding:.85rem}
.cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.85rem}
.cal-month{font-family:var(--serif);font-size:.88rem;font-weight:700}
.cal-nav{background:none;border:1px solid rgba(0,0,0,.15);color:var(--text-2);width:32px;height:32px;min-width:32px;min-height:32px;cursor:pointer;font-size:.95rem;display:flex;align-items:center;justify-content:center}
.cal-nav:hover{border-color:var(--blue);color:var(--blue)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.cal-dow{font-size:.6rem;letter-spacing:.07em;text-transform:uppercase;color:var(--text-3);text-align:center;padding:.2rem 0}
.cal-day{aspect-ratio:1;min-height:36px;display:flex;align-items:center;justify-content:center;font-size:.78rem;cursor:pointer;border:1px solid transparent;transition:all .15s;color:rgba(0,0,0,.2)}
.cal-day:not(.past):not(.empty){color:var(--blue);font-weight:600;background:rgba(23,89,255,.08)}
.cal-day:hover:not(.empty):not(.past){border-color:var(--blue);background:rgba(23,89,255,.05);color:var(--blue)}
.cal-day.today{color:var(--blue)}
.cal-day.selected{border-color:var(--blue);background:rgba(23,89,255,.1);color:var(--blue)}
.cal-day.past{color:rgba(0,0,0,.15);cursor:default}
.slots-section{margin-top:0}
.slots-title{font-size:.68rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);margin-bottom:.75rem}
.slots-grid{display:flex;flex-wrap:wrap;gap:.5rem}
.slot-btn{padding:.625rem .9rem;min-height:44px;border:1px solid rgba(0,0,0,.15);background:transparent;color:var(--text-2);font-family:var(--sans);font-size:.8rem;cursor:pointer;transition:all .15s}
.slot-btn:hover{border-color:var(--blue);background:rgba(23,89,255,.05);color:var(--blue)}
.slot-btn.selected{border-color:var(--blue);background:rgba(23,89,255,.1);color:var(--blue)}
.slots-loading{font-size:.82rem;color:var(--text-3);padding:.5rem 0}
.notes-section{margin-top:1.5rem}
.continue-btn{width:100%;margin-top:1.5rem;padding:.875rem 1.875rem;background:var(--blue);color:#fff;font-family:var(--ff-body);font-size:.9375rem;font-weight:600;border:none;border-radius:var(--r-pill);cursor:pointer;text-align:center;transition:background .18s,transform .12s}
.continue-btn:disabled{opacity:.4;cursor:not-allowed}
.continue-btn:not(:disabled):hover{background:var(--blue-dark);transform:translateY(-1px)}
.rescheduling-banner{background:rgba(23,89,255,.08);border:1px solid rgba(23,89,255,.25);padding:.75rem 1rem;font-size:.82rem;color:var(--text-2);margin-bottom:1.5rem}
.rescheduling-banner strong{color:var(--blue)}
.current-appt{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);padding:.65rem 1rem;font-size:.82rem;color:var(--text-2);margin-bottom:1.5rem;display:none}
.current-appt strong{color:var(--ink)}
.error-banner{background:rgba(232,112,112,.1);border:1px solid rgba(232,112,112,.3);padding:.75rem 1rem;font-size:.82rem;color:#e87070;margin-bottom:1.5rem;display:none}

/* ── Book step 3 — confirm ── */
#form-content{max-width:1080px;margin-left:auto;margin-right:auto}
.deposit-label{font-size:.68rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);margin-bottom:.6rem}
.deposit-amount{font-family:var(--serif);font-size:1.8rem;font-weight:700;color:var(--blue);margin-bottom:.35rem}
.deposit-note{font-size:.78rem;color:var(--text-3);line-height:1.5}
.address-section{margin-bottom:1.5rem}
.address-title{font-size:.68rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);margin-bottom:.85rem}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:.75rem}
.field-row.full{grid-template-columns:1fr}
@media(max-width:600px){.field-row{grid-template-columns:1fr}}
.field-group{display:flex;flex-direction:column;gap:.35rem}
.field-label{font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}
.field-input{background:var(--white);border:1.5px solid var(--gray-mid);border-radius:var(--r-sm);color:var(--black);font-family:var(--ff-body);font-size:.9375rem;padding:.75rem 1rem;outline:none;width:100%;transition:border-color .18s}
.field-input:focus{border-color:var(--blue)}
.field-input::placeholder{color:var(--text-3)}
.confirm-btn{width:100%;padding:.875rem 1.875rem;background:var(--blue);color:#fff;font-family:var(--ff-body);font-size:.9375rem;font-weight:600;border:none;border-radius:var(--r-pill);cursor:pointer;text-align:center;transition:background .18s,transform .12s}
.confirm-btn:disabled{opacity:.4;cursor:not-allowed}
.confirm-btn:not(:disabled):hover{background:var(--blue-dark);transform:translateY(-1px)}
.coupon-toggle{font-size:.78rem;color:var(--blue);background:none;border:none;cursor:pointer;font-family:var(--sans);padding:0;text-decoration:underline;text-underline-offset:2px;margin-top:1.5rem;margin-bottom:1.5rem;display:block}
.coupon-toggle:hover{color:var(--text-2)}
.coupon-toggle--sm{margin-top:0;margin-bottom:0;font-size:.72rem;color:var(--text-3)}
.coupon-row{display:none;align-items:center;gap:.6rem;margin-bottom:1.5rem}
.coupon-row.visible{display:flex}
.coupon-input{flex:1;background:var(--white);border:1.5px solid var(--gray-mid);border-radius:var(--r-sm);color:var(--black);font-family:var(--ff-body);font-size:.9375rem;padding:.75rem 1rem;outline:none;transition:border-color .18s}
.coupon-input:focus{border-color:var(--blue)}
.coupon-input::placeholder{color:rgba(0,0,0,.2)}
.coupon-apply{padding:.6rem 1rem;background:transparent;border:1px solid rgba(0,0,0,.2);color:var(--text-2);font-family:var(--sans);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;white-space:nowrap;transition:border-color .15s,color .15s}
.coupon-apply:hover{border-color:var(--blue);color:var(--blue)}
.coupon-apply:disabled{opacity:.4;cursor:not-allowed}
.coupon-badge{display:none;align-items:center;gap:.6rem;margin-bottom:1.5rem;padding:.6rem .85rem;background:rgba(110,203,150,.1);border:1px solid rgba(110,203,150,.3);font-size:.8rem;color:var(--status-success)}
.coupon-badge.visible{display:flex}
.coupon-badge-remove{background:none;border:none;color:var(--text-3);cursor:pointer;font-size:.9rem;margin-left:auto;line-height:1}
.coupon-badge-remove:hover{color:var(--text-2)}
.coupon-error{display:none;font-size:.78rem;color:#e87070;margin-bottom:1.5rem;padding:.5rem .75rem;background:rgba(232,112,112,.08);border:1px solid rgba(232,112,112,.2)}
.addon-checkbox{accent-color:var(--blue);width:14px;height:14px;cursor:pointer;flex-shrink:0}
.qty-btn{width:24px;height:24px;min-width:24px;min-height:24px;border:1px solid rgba(0,0,0,.15);background:transparent;color:var(--text-2);cursor:pointer;font-size:.85rem;line-height:1;display:flex;align-items:center;justify-content:center;border-radius:3px}
.qty-btn:hover{border-color:var(--blue);color:var(--blue)}
.qty-val{font-size:.85rem;min-width:16px;text-align:center;color:var(--ink)}
body.success-mode{display:flex;flex-direction:column;min-height:100vh}
body.success-mode .main{flex:1;display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 120px)}
body.success-mode .main.book-page > *{max-width:none;margin:0;width:auto}
.auth-gate{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);padding:1.5rem;margin-bottom:1.5rem}
.auth-gate-title{font-size:.68rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);margin-bottom:.6rem}
.auth-gate-sub{font-size:.82rem;color:var(--text-3);margin-bottom:1.1rem;line-height:1.5}
.auth-gate-toggle{font-size:.78rem;color:var(--blue);background:none;border:none;cursor:pointer;font-family:var(--sans);padding:0;text-decoration:underline;text-underline-offset:2px;margin-top:.9rem;display:inline-block}
.auth-gate-toggle:hover{color:var(--text-2)}
.confirm-title{margin-bottom:1.75rem}
.confirm-steps-note{font-size:.72rem;color:var(--text-3);text-align:center;margin:-1rem 0 1.75rem;letter-spacing:.02em}
.confirm-steps-note strong{color:var(--text-2)}

/* Deposit section — replaces amber tints with blue-tinted info box */
.deposit-section{background:rgba(23,89,255,.07);border:1px solid rgba(23,89,255,.2);padding:1.25rem;margin-bottom:1.5rem}

/* Summary row extras */
.sum-deposit-label-wrap{display:flex;flex-direction:column;gap:.2rem}
.sum-deposit-sublabel{font-size:.7rem;color:var(--text-3);font-weight:400;letter-spacing:0;text-transform:none}
.sum-deposit-value{color:var(--blue)}
.sum-deposit-after{font-size:.75rem;color:var(--text-3);font-weight:400}
.sum-addons-header{font-size:.68rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-3)}
.sum-grand-label{font-weight:600;color:var(--text-2)}
.sum-grand-value{color:var(--blue);font-weight:700}
.sum-coupon-wrap{padding-top:.65rem;margin-top:.1rem}
.summary-row--no-border{border-bottom:none;padding-bottom:.1rem}
.summary-row--top-border{border-top:1px solid var(--border-lt);border-bottom:none;margin-top:.1rem}
.summary-row--grand{border-top:1px solid var(--border);margin-top:.1rem}
.summary-label--addon-row{display:flex;align-items:center;gap:.55rem}
.summary-value--accent{color:var(--blue);font-weight:600}
.summary-value--accent-right{color:var(--blue);font-weight:600;min-width:3.5rem;text-align:right}
.addon-qty-flex{display:flex;align-items:center;gap:.45rem}
.addon-card--clickable{cursor:pointer}
.price-strikethrough{text-decoration:line-through;opacity:.45}
.price-strikethrough--sm{text-decoration:line-through;opacity:.45;font-size:1.2rem}
.google-btn-wrap{margin-bottom:.85rem;max-width:100%;overflow:hidden}
.address-section--flush{margin-bottom:0}
.addons-section{margin-top:.1rem}
.auth-divider{height:1px;background:var(--border);margin:1.25rem 0}
.field-row--mb{margin-bottom:.75rem}
.field-row--zip{grid-template-columns:1fr 2fr}

/* Confirm — auth or divider */
.auth-or-divider{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem}
.auth-or-line{flex:1;height:1px;background:var(--border)}
.auth-or-text{font-size:.65rem;color:var(--text-3);letter-spacing:.08em;text-transform:uppercase}

/* Field label required asterisk */
.field-required{color:#e87070}

/* Confirm — policy & success */
.policy-agree-wrap{margin-top:.85rem;display:flex;align-items:flex-start;gap:.5rem}
.policy-agree-tap{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;cursor:pointer;flex-shrink:0;margin-top:-10px}
.policy-agree-chk{width:20px;height:20px;accent-color:var(--blue);cursor:pointer}
.policy-agree-label{font-size:.75rem;color:var(--text-3);line-height:1.55;cursor:pointer;padding-top:.2rem}
.policy-inline-btn{background:none;border:none;color:var(--blue);font-family:var(--sans);font-size:.75rem;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:2px}
.policy-tooltip{margin-top:.6rem;padding:.85rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);font-size:.75rem;color:var(--text-3);line-height:1.6}
.confirm-success{text-align:center;padding:4rem 1rem}
.confirm-success-icon{font-size:3rem;color:var(--blue);margin-bottom:1rem}
.confirm-success-title{font-family:var(--serif);font-size:1.4rem;font-weight:700;margin-bottom:.75rem}
.confirm-success-body{font-size:.9rem;color:var(--text-2);line-height:1.7;margin-bottom:2rem}
.confirm-success-btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;background:var(--blue);color:#fff;font-family:var(--sans);font-size:.9375rem;font-weight:600;border-radius:var(--r-pill);padding:.875rem 1.875rem;text-decoration:none;transition:background .18s,transform .12s;line-height:1.2}
.confirm-success-btn:hover{background:var(--blue-dark);color:#fff;transform:translateY(-1px)}

/* Addon qty display */
.addon-qty-row{display:flex;align-items:center;gap:.45rem}

/* ── Generic success state (pay-deposit, contract) ── */
.success-state,.success-box{text-align:center;width:100%;max-width:480px;margin:0 auto}
.success-icon{width:64px;height:64px;border-radius:50%;background:var(--blue);color:#fff;font-size:1.75rem;display:flex;align-items:center;justify-content:center;margin:0 auto 1.25rem}
.success-title{font-family:var(--serif);font-size:1.4rem;font-weight:700;color:var(--ink);margin-bottom:.75rem}
.success-body{font-size:.9rem;color:var(--text-2);line-height:1.7;margin-bottom:2rem}

/* Field row zip-only (1fr 2fr) */
.field-row--zip{grid-template-columns:1fr 2fr}
