/* LS Upstate - dedicated booking page. Mobile first. */
:root{
  --ink:#16121f; --plum:#2a1e42; --iris:#7c4dff; --iris-d:#6538e6; --mint:#2fd6a6;
  --mist:#f4f2f8; --line:#e4dff0; --muted:#6a6280; --white:#fff;
  --lav:#c9b6ff; --amber:#f59e0b; --ok:#22c08f; --green:#22c08f;
  --r1:10px; --r2:18px; --r3:28px;
  --display:"Bricolage Grotesque",system-ui,sans-serif;
  --body:"Inter Tight",system-ui,-apple-system,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body.bk{margin:0;font-family:var(--body);color:var(--ink);background:
  radial-gradient(900px 420px at 85% -80px,rgba(124,77,255,.16),transparent 70%),
  radial-gradient(700px 360px at -10% 120px,rgba(47,214,166,.14),transparent 70%),var(--mist);
  line-height:1.45;padding-bottom:calc(92px + env(safe-area-inset-bottom))}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
h1,h2,h3{font-family:var(--display);margin:0;letter-spacing:-.02em}

/* top bar */
.bk-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;max-width:1120px;margin:0 auto}
.bk-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-family:var(--display);font-size:1.25rem}
.bk-brand img{height:38px;width:auto;border-radius:8px}
.bk-brand b{font-weight:800}
.bk-call{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--white);background:var(--ink);padding:9px 14px;border-radius:999px;font-weight:650;font-size:.9rem}
.bk-call span{display:none}
@media(min-width:520px){.bk-call span{display:inline}}

.bk-main{max-width:1120px;margin:0 auto;padding:8px 16px 32px}

/* hero */
.bk-hero{padding:14px 0 18px}
.bk-eyebrow{display:inline-block;font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--iris);background:rgba(124,77,255,.1);padding:6px 12px;border-radius:999px}
.bk-hero h1{font-size:clamp(2rem,8.5vw,3.6rem);line-height:1.02;font-weight:800;margin:14px 0 10px}
.bk-hero h1 em{font-style:normal;background:linear-gradient(100deg,#6a3df0,#9a6bff 55%,#c04fe0);-webkit-background-clip:text;background-clip:text;color:transparent}
.bk-hero p{margin:0 0 16px;color:var(--muted);font-size:1.02rem;max-width:34em}
.bk-hero__top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.bk-next{display:inline-flex;align-items:center;gap:8px;background:var(--plum);color:var(--white);border:0;border-radius:12px;padding:4px 10px;text-align:left;box-shadow:0 6px 16px rgba(42,30,66,.22)}
.bk-next>span:last-child{display:flex;flex-direction:column;gap:1px;line-height:1}
.bk-next small{display:block;font-size:.55rem;letter-spacing:.08em;text-transform:uppercase;opacity:.7;line-height:1.1}
.bk-next b{display:block;font-weight:650;font-size:.72rem;line-height:1.1;white-space:nowrap}
.bk-next__dot{width:8px;height:8px;border-radius:50%;background:var(--green);--pc:34,192,143;box-shadow:0 0 0 0 rgba(var(--pc),.7);animation:bkpulse 1.8s infinite}
.bk-next[data-s=green] .bk-next__dot{background:var(--green);--pc:34,192,143}
.bk-next[data-s=orange] .bk-next__dot{background:var(--amber);--pc:245,158,11}
@keyframes bkpulse{70%{box-shadow:0 0 0 8px rgba(var(--pc),0)}100%{box-shadow:0 0 0 0 rgba(var(--pc),0)}}
.bk-next[hidden]{display:none}

/* layout */
.bk-grid{display:grid;gap:16px}
.bk-steps{display:grid;gap:16px;min-width:0}
@media(min-width:960px){
  .bk-grid{grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:start}
  .bk-sum{position:sticky;top:20px}
  body.bk{padding-bottom:40px}
  .bk-bar{display:none!important}
}

/* cards */
.bk-card{background:var(--white);border:1px solid var(--line);border-radius:var(--r3);padding:18px;box-shadow:0 1px 0 rgba(22,18,31,.03),0 18px 40px -26px rgba(42,30,66,.35)}
@media(min-width:600px){.bk-card{padding:26px}}
.bk-card__head{display:flex;gap:12px;align-items:flex-start;margin-bottom:16px}
.bk-card__head h2{font-size:1.35rem;font-weight:800;line-height:1.15}
.bk-card__head p{margin:3px 0 0;color:var(--muted);font-size:.92rem}
.bk-num{flex:none;width:34px;height:34px;border-radius:12px;background:linear-gradient(135deg,var(--iris),#a07bff);color:#fff;display:grid;place-items:center;font-family:var(--display);font-weight:800}
.bk-card h3{font-size:1rem;font-weight:700}

/* calendar */
.bk-cal__nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.bk-cal__nav strong{font-family:var(--display);font-size:1.1rem}
.bk-cal__nav button{width:40px;height:40px;border-radius:12px;border:1px solid var(--line);background:var(--white);display:grid;place-items:center}
.bk-cal__nav button:disabled{opacity:.35;cursor:default}
.bk-cal__dow,.bk-cal__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.bk-cal__dow span{text-align:center;font-size:.7rem;font-weight:650;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;padding-bottom:6px}
.bk-day{position:relative;aspect-ratio:1/1.05;border-radius:14px;border:1.5px solid transparent;background:var(--mist);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-weight:650;font-size:1rem;padding:0;transition:transform .12s,border-color .12s,background .12s}
.bk-day i{width:7px;height:7px;border-radius:50%;background:transparent}
.bk-day[data-s=green] i{background:var(--green)}
.bk-day[data-s=orange] i{background:var(--amber)}
.bk-day[data-s=green]{background:rgba(34,192,143,.12)}
.bk-day[data-s=orange]{background:rgba(245,158,11,.14)}
.bk-day:disabled{background:transparent;color:#b9b3c9;cursor:default}
.bk-day:not(:disabled):hover{transform:translateY(-2px);border-color:var(--iris)}
.bk-day.is-today{box-shadow:inset 0 0 0 1.5px var(--line)}
.bk-day.is-picked{background:var(--iris)!important;color:#fff;border-color:var(--iris);box-shadow:0 10px 22px -8px rgba(124,77,255,.7)}
.bk-day.is-picked i{background:#fff;box-shadow:none}
.bk-day.is-blank{visibility:hidden}
.bk-cal__msg{grid-column:1/-1;text-align:center;color:var(--muted);padding:28px 0;margin:0}
.bk-legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:14px;font-size:.78rem;color:var(--muted)}
.bk-legend span{display:inline-flex;align-items:center;gap:6px}
.bk-legend i{width:9px;height:9px;border-radius:50%;background:#d6d1e3}
.bk-legend i[data-s=green]{background:var(--green)}
.bk-legend i[data-s=orange]{background:var(--amber)}

/* times */
.bk-times{margin-top:20px;padding-top:18px;border-top:1px dashed var(--line);animation:bkin .25s ease}
.bk-times[hidden]{display:none}
@keyframes bkin{from{opacity:0;transform:translateY(6px)}}
.bk-times h3{margin-bottom:10px}
.bk-tg{margin-bottom:12px}
.bk-tg small{display:block;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-weight:650}
.bk-tg div{display:flex;flex-wrap:wrap;gap:8px}
.bk-time{border:1.5px solid var(--line);background:var(--white);border-radius:999px;padding:9px 14px;font-weight:600;font-size:.92rem;display:inline-flex;align-items:center;gap:6px;min-height:42px}
.bk-time:hover{border-color:var(--iris)}
.bk-time.is-picked{background:var(--ink);border-color:var(--ink);color:#fff}
.bk-time.is-rain svg{color:#3b82f6}
.bk-time.is-picked.is-rain svg{color:#9cc2ff}
.bk-rain{display:flex;gap:8px;align-items:flex-start;margin:8px 0 0;font-size:.82rem;color:var(--muted)}
.bk-rain svg{flex:none;color:#3b82f6;margin-top:1px}
.bk-rain--warn{background:#fff6e5;color:#8a5a00;border-radius:12px;padding:10px 12px}
.bk-rain[hidden]{display:none}

/* service chips */
.bk-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.bk-chip{display:inline-flex;align-items:center;gap:8px;border:1.5px solid var(--line);background:var(--white);border-radius:999px;padding:10px 16px;font-weight:650;min-height:44px}
.bk-chip__tick{width:18px;height:18px;border-radius:50%;border:1.5px solid #c9c2da;display:grid;place-items:center;transition:.15s}
.bk-chip.is-on{background:rgba(124,77,255,.1);border-color:var(--iris);color:var(--iris-d)}
.bk-chip.is-on .bk-chip__tick{background:var(--iris);border-color:var(--iris)}
.bk-chip.is-on .bk-chip__tick::after{content:"";width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) translate(-1px,-1px)}

.bk-panel{background:var(--mist);border-radius:var(--r2);padding:16px;margin-bottom:12px}
.bk-panel[hidden]{display:none}
.bk-panel h3{margin-bottom:12px}
.bk-fields{display:grid;gap:14px;grid-template-columns:1fr}
@media(min-width:520px){.bk-fields{grid-template-columns:1fr 1fr}.bk-field--wide{grid-column:1/-1}}
.bk-field label{display:block;font-weight:650;font-size:.9rem;margin-bottom:6px}
.bk-field label em{font-style:normal;color:var(--muted);font-weight:500}
.bk-hint{display:block;color:var(--muted);font-size:.78rem;margin-top:5px}
.bk-step{display:flex;align-items:center;background:var(--white);border:1.5px solid var(--line);border-radius:14px;overflow:hidden;width:max-content;max-width:100%}
.bk-step button{width:46px;height:46px;border:0;background:transparent;font-size:1.4rem;font-weight:600;color:var(--iris)}
.bk-step button:active{background:rgba(124,77,255,.12)}
.bk-step input{width:54px;border:0;text-align:center;font-weight:700;font-size:1.05rem;background:transparent;-moz-appearance:textfield;appearance:textfield;padding:0}
.bk-step input::-webkit-outer-spin-button,.bk-step input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.bk-step input:focus{outline:none}
.bk-input{width:100%;border:1.5px solid var(--line);background:var(--white);border-radius:14px;padding:13px 14px;font-size:1rem;min-height:48px;transition:border-color .15s,box-shadow .15s}
textarea.bk-input{resize:vertical;min-height:84px}
.bk-input:focus,.bk-step:focus-within{outline:none;border-color:var(--iris);box-shadow:0 0 0 4px rgba(124,77,255,.15)}
.bk-input.is-bad{border-color:var(--red);box-shadow:0 0 0 4px rgba(239,79,95,.12)}

.bk-addons{display:grid;gap:8px;margin-top:6px}
@media(min-width:520px){.bk-addons{grid-template-columns:1fr 1fr}}
.bk-addon{display:flex;align-items:center;gap:10px;border:1.5px solid var(--line);border-radius:14px;padding:12px 14px;cursor:pointer;background:var(--white);min-height:48px}
.bk-addon input{position:absolute;opacity:0;pointer-events:none}
.bk-addon__box{flex:none;width:20px;height:20px;border-radius:6px;border:1.5px solid #c9c2da;display:grid;place-items:center}
.bk-addon__label{flex:1;font-weight:600;font-size:.94rem}
.bk-addon__price{color:var(--muted);font-size:.84rem;font-weight:600}
.bk-addon:has(input:checked){border-color:var(--iris);background:rgba(124,77,255,.06)}
.bk-addon:has(input:checked) .bk-addon__box{background:var(--iris);border-color:var(--iris)}
.bk-addon:has(input:checked) .bk-addon__box::after{content:"";width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) translate(-1px,-1px)}
.bk-addon:has(input:focus-visible){box-shadow:0 0 0 4px rgba(124,77,255,.2)}

.bk-fields--form{margin-bottom:16px}
.bk-honey{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}

/* technician */
.bk-tech{display:flex;align-items:center;gap:14px;background:var(--mist);border-radius:var(--r2);padding:14px}
.bk-tech small{display:block;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.bk-tech b{display:block;font-family:var(--display);font-size:1.1rem}
.bk-tech__av{position:relative;flex:none;width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--iris),var(--mint));color:#fff;display:grid;place-items:center;font-weight:800;overflow:hidden}
.bk-tech__av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.bk-tech__meta{display:block;font-size:.82rem;color:var(--muted);margin-top:2px}
.bk-tech__cert{display:block;color:#0d8a68;font-weight:650}
.bk-tech__stars{color:#f5a524;margin-right:4px;letter-spacing:1px}

/* status */
.bk-status{margin:0;min-height:0}
.bk-status:not(:empty){padding:12px 14px;border-radius:14px;font-weight:600;font-size:.92rem;background:#fdecee;color:#a3202f}
.bk-status.is-ok{background:#e6f8f1;color:#0d6b4f}

/* summary */
.bk-sum{background:linear-gradient(160deg,var(--plum),#1b1330);color:#fff;border-radius:var(--r3);padding:22px;box-shadow:0 24px 50px -24px rgba(42,30,66,.7)}
@media(max-width:959px){.bk-sum{display:none}}
.bk-sum__label{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;opacity:.65}
.bk-sum__fig{font-family:var(--display);font-weight:800;font-size:2.4rem;line-height:1.1;margin:4px 0}
.bk-sum__svc{opacity:.75;font-size:.92rem}
.bk-sum__lines{list-style:none;margin:14px 0;padding:14px 0;border-top:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.12);display:grid;gap:6px;font-size:.9rem;max-height:220px;overflow:auto}
.bk-sum__lines:empty{display:none}
.bk-sum__lines li{display:flex;justify-content:space-between;gap:10px}
.bk-sum__lines .g{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;opacity:.6;margin-top:4px}
.bk-sum__when{display:flex;align-items:center;gap:10px;margin:14px 0;padding:12px;border-radius:14px;background:rgba(255,255,255,.08);font-weight:600;font-size:.94rem}
.bk-sum__note{font-size:.78rem;opacity:.65;margin:12px 0}
.bk-trust{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:.82rem;opacity:.85}
.bk-trust li::before{content:"\2713";color:var(--mint);font-weight:800;margin-right:8px}

.bk-go{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;border:0;border-radius:16px;background:linear-gradient(100deg,var(--iris),#9a6bff);color:#fff;font-weight:700;font-size:1.02rem;padding:15px 20px;min-height:52px;text-decoration:none;box-shadow:0 12px 26px -10px rgba(124,77,255,.8);transition:transform .12s}
.bk-go:hover{transform:translateY(-1px)}
.bk-go:disabled{opacity:.7;cursor:wait}

/* phone bottom bar */
.bk-bar{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;align-items:center;gap:12px;justify-content:space-between;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line);box-shadow:0 -10px 30px rgba(42,30,66,.1)}
.bk-bar small{display:block;color:var(--muted);font-size:.74rem;font-weight:600}
.bk-bar b{font-family:var(--display);font-size:1.15rem;font-weight:800}
.bk-bar b{line-height:1}
.bk-est{display:block;font-style:normal;font-size:.58rem;line-height:1;font-weight:500;color:var(--muted);opacity:.8;margin-top:0}
.bk-go--bar{width:auto;flex:none;padding:13px 22px;min-height:48px}

/* done */
.bk-done{position:fixed;inset:0;z-index:50;background:rgba(22,18,31,.6);backdrop-filter:blur(6px);display:grid;place-items:center;padding:20px;overflow:auto}
.bk-done[hidden]{display:none}
.bk-done__card{background:#fff;border-radius:var(--r3);padding:28px 22px;max-width:420px;width:100%;text-align:center;display:grid;gap:12px;animation:bkin .3s ease}
.bk-done__card h2{font-size:1.7rem;font-weight:800}
.bk-done__card p{margin:0;color:var(--muted)}
.bk-done__when{color:var(--ink)!important;font-weight:700;font-size:1.05rem}
.bk-done__check{width:68px;height:68px;border-radius:50%;background:var(--mint);color:#fff;display:grid;place-items:center;margin:0 auto}
.bk-link{color:var(--iris-d);font-weight:650;text-decoration:none;padding:8px}
.bk-done__help{margin:.9rem 0 0;font-size:.85rem;color:var(--muted,#6b6b80)}
.bk-done__help a{color:inherit;font-weight:600;text-decoration:underline}

@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* other technicians: display only, Guillermo stays the assigned tech */
.bk-others{margin-top:10px;padding:0 4px;pointer-events:none;user-select:none}
.bk-others small{display:block;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.bk-others ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.bk-others li{display:flex;align-items:center;gap:8px;background:var(--mist);border-radius:999px;padding:5px 12px 5px 5px;font-size:.82rem;color:var(--muted)}
.bk-others__av{position:relative;flex:none;width:28px;height:28px;border-radius:50%;background:var(--iris-wash);color:var(--iris-deep);display:grid;place-items:center;font-size:.68rem;font-weight:800;overflow:hidden}
.bk-others__av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.bk-others__name{font-weight:600}
.bk-others__rev span{color:#f5a524}
