:root{
  --ink:#17372d;
  --ink-2:#24483d;
  --cream:#f7f1e5;
  --paper:#fffdf8;
  --paper-2:#f2eadb;
  --gold:#d8a83f;
  --gold-2:#f0cb6c;
  --muted:#6f736e;
  --line:#dfd5c1;
  --ok:#2c805d;
  --danger:#a14c43;
  --shadow:0 24px 70px rgba(53,42,23,.14);
  --radius:28px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--cream)}
body{margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#1f2d28;background:var(--cream);min-height:100vh}
button,input,select,textarea{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
a{color:inherit;text-decoration:none}
.page-bg{position:fixed;inset:0;z-index:-2;background:
  radial-gradient(circle at 10% 10%,rgba(216,168,63,.18),transparent 32%),
  radial-gradient(circle at 90% 18%,rgba(36,72,61,.10),transparent 34%),
  linear-gradient(180deg,#fbf7ee 0%,#f4eddf 100%)}
.page-bg:after{content:"";position:absolute;inset:0;background-image:url('/book/assets/hero-bg.webp');background-size:cover;background-position:center;opacity:.045;filter:saturate(.6)}
.site-shell{min-height:100vh}
.topbar{height:86px;display:flex;align-items:center;justify-content:space-between;padding:12px clamp(18px,4vw,56px);background:rgba(23,55,45,.97);color:#fff;position:sticky;top:0;z-index:40;box-shadow:0 10px 30px rgba(23,55,45,.14)}
.brand{display:flex;align-items:center;gap:12px}.brand img{width:54px;height:54px;border-radius:14px;object-fit:cover;border:1px solid rgba(240,203,108,.55)}.brand span{display:grid;line-height:1}.brand b{font-family:Georgia,serif;letter-spacing:.08em;font-size:20px;color:var(--gold-2)}.brand small{letter-spacing:.22em;font-size:9px;margin-top:7px;color:#e9e4d8}
.header-actions{display:flex;align-items:center;gap:10px}.gold-btn,.outline-btn,.text-btn,.back-btn,.refresh-btn,.close-btn{border:0;cursor:pointer}.gold-btn{background:linear-gradient(135deg,var(--gold-2),var(--gold));color:#241a08;font-weight:800;border-radius:999px;padding:14px 22px;box-shadow:0 10px 24px rgba(216,168,63,.22)}.gold-btn.compact{padding:11px 17px}.text-btn{background:transparent;color:inherit;font-weight:750;padding:10px 12px}.outline-btn{background:#fff;border:1px solid var(--line);color:var(--ink);font-weight:750;border-radius:16px;padding:13px 16px}.full{width:100%}.primary-action{min-height:56px;font-size:16px}
.booking-main{max-width:980px;margin:0 auto;padding:48px 20px 54px}.intro-copy{text-align:center;max-width:680px;margin:0 auto 24px}.eyebrow{font-size:11px;font-weight:850;letter-spacing:.20em;color:#a77a22;margin:0 0 10px}.intro-copy h1{font-family:Georgia,serif;color:var(--ink);font-size:clamp(42px,7vw,70px);line-height:.95;margin:0 0 14px;font-weight:500}.intro-copy>p:last-child{margin:0 auto;color:#69726d;font-size:17px;line-height:1.6;max-width:600px}
.booking-card{background:rgba(255,253,248,.96);border:1px solid rgba(216,168,63,.28);border-radius:34px;box-shadow:var(--shadow);overflow:hidden;max-width:760px;margin:0 auto}.stepper{display:grid;grid-template-columns:auto 1fr auto 1fr auto;align-items:center;gap:12px;padding:22px 28px;border-bottom:1px solid var(--line);background:#fffaf0}.stepper i{height:1px;background:#d9cfbb}.progress-step{border:0;background:transparent;color:#9a9d99;display:flex;align-items:center;gap:8px;padding:0;cursor:pointer}.progress-step span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;border:1px solid #cac2b2;font-size:12px;font-weight:800}.progress-step b{font-size:12px}.progress-step.active{color:var(--ink)}.progress-step.active span{background:var(--ink);border-color:var(--ink);color:#fff}.progress-step.done span{background:var(--gold);border-color:var(--gold);color:#fff}
.wizard-step{display:none;padding:34px}.wizard-step.active{display:block;animation:stepIn .25s ease}@keyframes stepIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}.step-title{display:flex;gap:15px;align-items:flex-start;margin-bottom:26px}.step-title>span,.step-title.with-back div>span{font-size:11px;letter-spacing:.18em;color:#a77a22;font-weight:850}.step-title h2{font-family:Georgia,serif;color:var(--ink);font-size:31px;font-weight:500;margin:0 0 7px}.step-title p{margin:0;color:var(--muted);line-height:1.5}.with-back{align-items:flex-start}.with-back .back-btn{flex:0 0 auto}.back-btn{width:42px;height:42px;border-radius:13px;background:#f3ecdd;border:1px solid var(--line);color:var(--ink);font-size:20px}.with-back div{flex:1}.with-back div>span{display:block;margin-bottom:4px}
.field-label-block{display:block;font-weight:800;color:var(--ink);font-size:13px;margin:0 0 9px}.select-wrap{position:relative}.select-wrap:after{content:"⌄";position:absolute;right:18px;top:50%;transform:translateY(-56%);font-size:21px;color:#8c7a51;pointer-events:none}.select-wrap select{appearance:none;width:100%;min-height:58px;border:1px solid var(--line);background:#fff;color:#1c2d27;border-radius:16px;padding:0 50px 0 17px;font-weight:700;outline:none}.select-wrap select:focus,input:focus,textarea:focus{border-color:#c49534;box-shadow:0 0 0 4px rgba(216,168,63,.13)}.premium-select select{font-size:17px}.service-preview{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:14px 0 24px;padding:17px 18px;background:#f8f1e2;border:1px solid #e6d6b4;border-radius:17px}.service-preview strong{color:var(--ink)}.service-preview small{color:var(--muted);display:block;margin-top:4px}.service-preview b{font-size:22px;color:#a77a22}
.choice-summary{display:flex;justify-content:space-between;gap:16px;align-items:center;background:linear-gradient(135deg,#18392f,#24483d);color:#fff;border-radius:18px;padding:17px 18px;margin-bottom:22px}.choice-summary div{display:grid}.choice-summary small{color:#cdd7d2;font-size:10px;letter-spacing:.14em;text-transform:uppercase}.choice-summary strong{font-size:17px;margin-top:4px}.choice-summary>b{color:var(--gold-2);font-size:15px;white-space:nowrap}.date-block,.time-block{margin-top:22px}.date-heading,.time-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.date-heading div,.time-heading div{display:grid}.date-heading b,.time-heading b{color:var(--ink);font-size:14px}.date-heading small,.time-heading small{color:var(--muted);margin-top:3px}.calendar-picker{position:relative;display:inline-flex;align-items:center;border:1px solid var(--line);background:#fff;border-radius:12px;padding:9px 12px;font-size:12px;font-weight:750;color:var(--ink);overflow:hidden}.calendar-picker input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}.date-rail{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.date-chip{border:1px solid var(--line);background:#fff;border-radius:14px;padding:10px 5px;color:#46534d;cursor:pointer;min-height:68px;display:grid;place-items:center;gap:3px}.date-chip small{font-size:9px;text-transform:uppercase;color:#93968f;font-weight:750}.date-chip strong{font-size:18px}.date-chip em{font-size:9px;font-style:normal}.date-chip.active{background:var(--ink);color:#fff;border-color:var(--ink);box-shadow:0 8px 20px rgba(23,55,45,.16)}.date-chip.active small,.date-chip.active em{color:#d9e2dd}.refresh-btn{width:38px;height:38px;border-radius:12px;background:#fff;border:1px solid var(--line);color:var(--ink);font-size:20px}.slot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;min-height:72px}.slot-btn{border:1px solid #d8cfbe;background:#fff;border-radius:13px;padding:12px 8px;color:var(--ink);cursor:pointer;display:grid;gap:2px;text-align:center}.slot-btn strong{font-size:14px}.slot-btn small{font-size:9px;color:#8b918d}.slot-btn:hover{border-color:#c99b39}.slot-btn.selected{background:var(--ink);border-color:var(--ink);color:#fff}.slot-btn.selected small{color:#cbd8d3}.slot-loading,.slot-empty{grid-column:1/-1;padding:18px;text-align:center;background:#f8f3e9;border:1px dashed #d8cdb8;border-radius:14px;color:#6f746f}.slot-loading:before{content:"";display:inline-block;width:14px;height:14px;border:2px solid #d1c4aa;border-top-color:var(--gold);border-radius:50%;margin-right:8px;vertical-align:-2px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-slot{color:#8e443d;background:#fff5f2;border-color:#e5bcb7}
#continueToDetailsBtn{margin-top:22px}.details-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.details-grid label{font-size:13px;font-weight:800;color:var(--ink)}.details-grid input,.details-grid textarea{display:block;width:100%;margin-top:8px;border:1px solid var(--line);background:#fff;border-radius:14px;padding:14px 15px;outline:none;color:#1d2b26}.details-grid textarea{resize:vertical}.details-grid small{display:block;font-size:10px;font-weight:500;color:#8b8d88;margin:6px 2px 0;line-height:1.4}.details-grid em{font-style:normal;font-size:10px;color:#989a95;font-weight:600}.summary{margin:20px 0;padding:17px 18px;background:#f7f0e1;border-left:4px solid var(--gold);border-radius:14px;line-height:1.6;color:#53605b;font-size:13px}.summary b{color:var(--ink);font-size:15px}.microcopy{text-align:center;color:#8b8f8b;font-size:11px;line-height:1.5;margin:12px 20px 0}
.success-step{text-align:center;padding:46px 34px}.success-mark{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;margin:0 auto 18px;background:#e2f2e9;color:var(--ok);font-size:35px;font-weight:900}.success-step h2{font-family:Georgia,serif;color:var(--ink);font-size:38px;font-weight:500;margin:0 0 10px}.success-step>p:not(.eyebrow){color:var(--muted)}.success-summary{text-align:left;max-width:470px;margin:22px auto;background:#f8f1e2;border:1px solid #e4d5b5;border-radius:18px;padding:19px;line-height:1.65}.calendar-actions,.success-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:14px}.success-actions{margin-top:24px}.success-actions .text-btn{color:var(--ink)}
.trust-strip{max-width:760px;margin:18px auto 0;display:flex;justify-content:center;gap:22px;flex-wrap:wrap;color:#6c736e;font-size:12px}.trust-strip span:before{color:var(--ok)}
.simple-footer{background:var(--ink);color:#fff;padding:24px clamp(20px,4vw,56px);display:flex;justify-content:space-between;gap:18px;align-items:center}.simple-footer div:first-child{display:grid;gap:4px}.simple-footer small{color:#c7d0cb}.footer-links{display:flex;gap:18px;flex-wrap:wrap}.footer-links a{color:var(--gold-2);font-size:13px;font-weight:750}
.sheet-modal[hidden]{display:none}.sheet-modal{position:fixed;inset:0;z-index:100}.sheet-backdrop{position:absolute;inset:0;background:rgba(23,35,30,.48);backdrop-filter:blur(8px)}.sheet-card{position:absolute;right:0;top:0;bottom:0;width:min(560px,100%);overflow:auto;background:var(--paper);box-shadow:-25px 0 70px rgba(0,0,0,.18);padding:28px}.sheet-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.sheet-head h2{font-family:Georgia,serif;color:var(--ink);font-size:34px;font-weight:500;margin:0}.close-btn{width:42px;height:42px;border-radius:50%;background:#f3ecdd;color:var(--ink);font-size:25px}.sheet-intro{color:var(--muted);line-height:1.5}.lookup-card,.notification-box,.saved-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:17px;margin-top:16px}.lookup-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.lookup-grid label{font-size:12px;font-weight:800;color:var(--ink)}.lookup-grid input{width:100%;margin-top:7px;padding:12px 13px;border:1px solid var(--line);border-radius:12px;outline:none}.lookup-grid .gold-btn{grid-column:1/-1}.notification-box{display:flex;justify-content:space-between;gap:16px;align-items:center}.notification-box div{display:grid;gap:4px}.notification-box small{color:var(--muted);line-height:1.4}.saved-list{display:grid;gap:12px;margin-top:14px}.saved-card{margin:0}.saved-head{display:flex;justify-content:space-between;gap:10px}.saved-head strong{color:var(--ink)}.status-pill{border-radius:999px;padding:5px 9px;font-size:9px;font-weight:850;letter-spacing:.08em;text-transform:uppercase;background:#e6f2eb;color:var(--ok)}.status-pill.cancelled,.status-pill.declined,.status-pill.no_show{background:#f6e7e4;color:var(--danger)}.saved-card small{display:block;color:#747a76;line-height:1.5;margin-top:8px}.customer-message{background:#f8f2e6;padding:12px;border-radius:12px;line-height:1.5;color:#4f5a55}.saved-actions{display:flex;gap:8px;flex-wrap:wrap}.lookup-error{margin-top:10px;color:var(--danger)}
#toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);opacity:0;z-index:130;background:#17372d;color:#fff;padding:13px 18px;border-radius:999px;box-shadow:0 14px 40px rgba(0,0,0,.2);transition:.2s;pointer-events:none;max-width:min(92vw,620px);text-align:center;font-size:13px}#toast.show{opacity:1;transform:translate(-50%,0)}.app-dialog[hidden]{display:none}.app-dialog{position:fixed;inset:0;z-index:140;background:rgba(22,34,29,.55);display:grid;place-items:center;padding:22px;backdrop-filter:blur(8px)}.app-dialog-card{width:min(430px,100%);background:#fffdf8;border:1px solid #ddcda9;border-radius:26px;padding:28px;text-align:center;box-shadow:var(--shadow)}.app-dialog-card img{width:74px;height:74px;border-radius:18px;object-fit:cover}.app-dialog-card h3{font-family:Georgia,serif;color:var(--ink);font-size:28px;margin:8px 0}.app-dialog-card>p:not(.eyebrow){color:var(--muted);line-height:1.55}.legacy-hidden{display:none!important}
@media(max-width:720px){
  .topbar{height:74px;padding:10px 14px}.brand img{width:48px;height:48px}.brand b{font-size:17px}.header-actions{gap:4px}.header-actions .gold-btn{padding:10px 12px;font-size:12px}.header-actions .text-btn{font-size:12px;padding:9px 8px}.booking-main{padding:30px 12px 34px}.intro-copy{margin-bottom:18px}.intro-copy h1{font-size:44px}.intro-copy>p:last-child{font-size:14px;padding:0 8px}.booking-card{border-radius:24px}.stepper{padding:16px 18px;gap:7px}.progress-step b{display:none}.progress-step span{width:26px;height:26px}.wizard-step{padding:24px 18px}.step-title{margin-bottom:20px}.step-title h2{font-size:27px}.date-rail{grid-template-columns:repeat(7,72px);overflow-x:auto;padding-bottom:5px;scrollbar-width:none}.date-rail::-webkit-scrollbar{display:none}.slot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.slot-btn{min-height:54px}.details-grid{grid-template-columns:1fr}.trust-strip{gap:10px;font-size:10px}.simple-footer{display:grid;text-align:center;justify-items:center}.footer-links{justify-content:center}.lookup-grid{grid-template-columns:1fr}.notification-box{display:grid}.sheet-card{padding:22px 16px}.calendar-actions,.success-actions{display:grid}.calendar-actions>* ,.success-actions>*{width:100%}
}
@media(max-width:390px){.brand span{display:none}.header-actions .gold-btn{display:inline-flex!important;padding:9px 10px;font-size:11px;min-width:62px}.header-actions .text-btn{padding:8px 7px;font-size:11px}.topbar{padding:8px 10px}.intro-copy h1{font-size:39px}.slot-grid{grid-template-columns:1fr 1fr}.wizard-step{padding:22px 14px}}


/* ===== v11 international phone + polished confirmation ===== */
.phone-entry{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(0,1.2fr);gap:8px;margin-top:8px}
.phone-entry .country-code,.phone-entry input{margin-top:0!important;min-width:0}
.country-code{border:1px solid var(--line);background:#fff;color:#1d2b26;border-radius:14px;padding:14px 11px;outline:none;width:100%}
.lookup-phone-entry{grid-template-columns:minmax(150px,.85fr) minmax(0,1.15fr)}
.success-summary{display:grid;grid-template-columns:1fr 1fr;gap:0;padding:0!important;overflow:hidden;line-height:1.35!important;background:#fff!important}
.success-detail{padding:15px 18px;border-bottom:1px solid #eadfc9;text-align:left;display:grid;gap:4px}
.success-detail:nth-child(odd){border-right:1px solid #eadfc9}
.success-detail small{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:#8a887f;font-weight:800}
.success-detail strong{font-size:15px;color:var(--ink);font-weight:850;overflow-wrap:anywhere}
.success-detail.ref-detail{grid-column:1/-1;border-right:0;border-bottom:0;background:#fbf5e9}
.success-detail.ref-detail strong{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em;color:#8c6417}
@media(max-width:620px){.phone-entry,.lookup-phone-entry{grid-template-columns:1fr}.success-summary{grid-template-columns:1fr}.success-detail:nth-child(odd){border-right:0}.success-detail.ref-detail{grid-column:auto}}


/* ===== v12 compact international selector + install polish ===== */
.phone-entry{grid-template-columns:minmax(122px,.52fr) minmax(0,1.48fr)}
.lookup-phone-entry{grid-template-columns:minmax(122px,.55fr) minmax(0,1.45fr)}
.country-code{font-weight:800;letter-spacing:.01em}
#installBtn.ready-install{box-shadow:0 12px 34px rgba(194,145,40,.30),0 0 0 3px rgba(194,145,40,.10)}
@media(max-width:620px){.phone-entry,.lookup-phone-entry{grid-template-columns:130px minmax(0,1fr)}}
@media(max-width:410px){.phone-entry,.lookup-phone-entry{grid-template-columns:118px minmax(0,1fr)}.country-code{padding-left:9px;padding-right:7px}}

/* v13: install button must remain visible on compact Galaxy screens */
@media(max-width:430px){
  #installBtn{display:inline-flex!important;align-items:center;justify-content:center;white-space:nowrap;flex:0 0 auto}
  .header-actions{min-width:0;gap:3px}.brand{min-width:48px}.topbar{overflow:visible}
}


/* ===== v15 customer cancellation and rescheduling ===== */
.danger-outline-btn{border:1px solid #c86e65;background:#fff8f6;color:#9c3f37;border-radius:999px;padding:11px 16px;font-weight:850;cursor:pointer}
.danger-outline-btn:hover{background:#9c3f37;color:#fff}
.booking-action-modal[hidden]{display:none}.booking-action-modal{position:fixed;inset:0;z-index:170;display:grid;place-items:center;padding:20px}.booking-action-backdrop{position:absolute;inset:0;background:rgba(13,30,24,.62);backdrop-filter:blur(10px)}.booking-action-card{position:relative;width:min(620px,100%);max-height:min(90vh,820px);overflow:auto;background:#fffdf8;border:1px solid #ddcda9;border-radius:28px;padding:26px;box-shadow:0 34px 100px rgba(7,31,23,.32)}.booking-action-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.booking-action-head .eyebrow{justify-content:flex-start}.booking-action-head h3{margin:5px 0 0;font-family:Georgia,serif;font-size:32px;font-weight:500;color:var(--ink)}.booking-action-summary{display:grid;grid-template-columns:1fr 1fr;margin:20px 0;border:1px solid #e5d9c3;border-radius:17px;overflow:hidden;background:#fbf6ec}.booking-action-summary div{padding:14px 16px;border-bottom:1px solid #e5d9c3}.booking-action-summary div:nth-child(odd){border-right:1px solid #e5d9c3}.booking-action-summary div:nth-last-child(-n+2){border-bottom:0}.booking-action-summary small{display:block;text-transform:uppercase;letter-spacing:.11em;font-size:9px;font-weight:850;color:#8d8a81;margin-bottom:4px}.booking-action-summary strong{display:block;color:var(--ink);font-size:14px;overflow-wrap:anywhere}.action-warning{border:1px solid #e6b8b2;background:#fff4f1;border-radius:17px;padding:18px;color:#7e352f}.action-warning strong{font-size:18px}.action-warning p{margin:7px 0 0;line-height:1.55}.reschedule-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.reschedule-grid label{font-size:12px;font-weight:850;color:var(--ink)}.reschedule-grid select,.reschedule-grid input{display:block;width:100%;margin-top:7px;padding:13px;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--ink)}.reschedule-slot-head{display:flex;justify-content:space-between;gap:12px;align-items:end;margin:20px 0 10px}.reschedule-slot-head strong{color:var(--ink)}.reschedule-slot-head span{font-size:11px;color:var(--muted);text-align:right}.reschedule-slot-grid{max-height:250px;overflow:auto;padding-right:4px}.booking-action-error{min-height:20px;margin-top:12px;color:var(--danger);font-size:13px;font-weight:700}.booking-action-buttons{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}.booking-action-buttons .danger-btn{background:#9f4038;color:#fff;box-shadow:0 12px 28px rgba(159,64,56,.25)}
@media(max-width:620px){.booking-action-modal{padding:10px;align-items:end}.booking-action-card{max-height:94vh;border-radius:26px 26px 18px 18px;padding:21px 15px}.booking-action-summary{grid-template-columns:1fr}.booking-action-summary div,.booking-action-summary div:nth-child(odd),.booking-action-summary div:nth-last-child(-n+2){border-right:0;border-bottom:1px solid #e5d9c3}.booking-action-summary div:last-child{border-bottom:0}.reschedule-grid{grid-template-columns:1fr}.booking-action-buttons{display:grid;grid-template-columns:1fr 1fr}.booking-action-buttons button{width:100%}.saved-actions .outline-btn,.saved-actions .danger-outline-btn,.saved-actions .ghost-btn{flex:1 1 calc(50% - 8px)}}

.privacy-request-link{text-align:center;margin:20px 0 0;font-size:12px;color:#6c746f}.privacy-request-link a{color:#17372d;font-weight:700;text-decoration:underline;text-underline-offset:3px}.modal-open{overflow:hidden!important}
