/* Triple Seven — "Book a 15-min call" 3D multi-step modal */
:root{--bkm-ink:#123b2f;--bkm-green:#005b40;--bkm-green-2:#20775b;--bkm-beige:#faf7ef;--bkm-line:#e6e1d5;--bkm-text:#14141c;--bkm-dim:#5d6862;--bkm-mint:#edf5f1;--bkm-radius:24px;--bkm-field:14px;--bkm-ease:cubic-bezier(.22,.8,.24,1);--bkm-sans:-apple-system,"SF Pro Display","Segoe UI",Inter,system-ui,sans-serif;--bkm-mono:ui-monospace,"SF Mono","JetBrains Mono",Menlo,monospace}
.bkm-lock{overflow:hidden!important}
.bkm-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(1200px 600px at 50% 20%,rgba(0,91,64,.28),transparent 60%),rgba(9,22,17,.58);backdrop-filter:blur(10px) saturate(130%);-webkit-backdrop-filter:blur(10px) saturate(130%);perspective:1800px;opacity:0;transition:opacity .35s var(--bkm-ease);font-family:var(--bkm-sans);color:var(--bkm-text)}
.bkm-overlay.is-open{opacity:1}
.bkm-overlay[hidden]{display:none}
.bkm-dialog{--tx:0deg;--ty:0deg;position:relative;width:min(880px,100%);max-height:min(860px,calc(100vh - 48px));display:flex;flex-direction:column;background:#fff;border-radius:var(--bkm-radius);border:1px solid rgba(255,255,255,.6);
  box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 2px 4px rgba(18,59,47,.06),0 12px 24px -8px rgba(18,59,47,.18),0 40px 80px -24px rgba(9,22,17,.45),0 80px 140px -60px rgba(0,91,64,.5);
  transform-style:preserve-3d;transform:rotateX(var(--ty)) rotateY(var(--tx));transition:transform .5s var(--bkm-ease),opacity .45s var(--bkm-ease);overflow:hidden}
.bkm-overlay:not(.is-open) .bkm-dialog{transform:translateY(24px) translateZ(-160px) rotateX(10deg);opacity:0}
.bkm-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 24px;background:linear-gradient(180deg,var(--bkm-beige),#fff);border-bottom:1px solid var(--bkm-line)}
.bkm-logo{display:block;height:52px;width:auto;margin:-10px 0 -10px -14px}
.bkm-close{width:40px;height:40px;border-radius:12px;border:1px solid var(--bkm-line);background:#fff;color:var(--bkm-ink);font-size:20px;line-height:1;cursor:pointer;display:grid;place-items:center;transition:transform .2s var(--bkm-ease),box-shadow .2s}
.bkm-close:hover{transform:translateY(-1px);box-shadow:0 6px 14px -8px rgba(18,59,47,.5)}
.bkm-progress{display:flex;gap:8px;padding:16px 24px 0;list-style:none;margin:0}
.bkm-progress li{flex:1;min-width:0}
.bkm-progress .bar{height:4px;border-radius:4px;background:var(--bkm-line);overflow:hidden}
.bkm-progress .bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--bkm-green),var(--bkm-green-2));border-radius:inherit;transition:width .6s var(--bkm-ease)}
.bkm-progress li.done .bar i,.bkm-progress li.current .bar i{width:100%}
.bkm-progress span{display:block;margin-top:8px;font:600 11px/1.2 var(--bkm-mono);letter-spacing:.12em;text-transform:uppercase;color:#9aa39e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bkm-progress li.current span,.bkm-progress li.done span{color:var(--bkm-ink)}
.bkm-body{position:relative;flex:1;overflow:auto;overscroll-behavior:contain}
.bkm-stage{position:relative;perspective:1600px;transform-style:preserve-3d;transition:height .55s var(--bkm-ease);margin:0 24px}
.bkm-step{position:absolute;top:0;left:0;right:0;padding:24px 0 28px;backface-visibility:hidden;-webkit-backface-visibility:hidden;transform-origin:50% 50% -260px;transition:transform .75s var(--bkm-ease),opacity .5s var(--bkm-ease),filter .5s;will-change:transform,opacity}
.bkm-step.is-before{transform:rotateY(80deg) translateZ(-60px);opacity:0;pointer-events:none;filter:blur(2px)}
.bkm-step.is-after{transform:rotateY(-80deg) translateZ(-60px);opacity:0;pointer-events:none;filter:blur(2px)}
.bkm-step.is-active{transform:none;opacity:1}
.bkm-step[aria-hidden="true"]{visibility:hidden;transition:transform .75s var(--bkm-ease),opacity .5s var(--bkm-ease),filter .5s,visibility 0s .75s}
.bkm-step.is-active[aria-hidden="false"]{visibility:visible;transition-delay:0s}
.bkm-kicker{margin:0 0 8px;font:600 11px/1 var(--bkm-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--bkm-green)}
.bkm-title{margin:0;font-size:clamp(1.6rem,3.2vw,2.25rem);line-height:1.08;letter-spacing:-.035em;font-weight:800;color:var(--bkm-ink)}
.bkm-sub{margin:10px 0 0;color:var(--bkm-dim);font-size:15px;line-height:1.6;max-width:60ch}
/* service cards */
.bkm-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin-top:22px;perspective:900px}
.bkm-card{position:relative;text-align:left;display:flex;flex-direction:column;gap:6px;padding:16px 16px 18px;border-radius:18px;border:1px solid var(--bkm-line);background:linear-gradient(180deg,#fff,#fbfaf6);color:var(--bkm-text);cursor:pointer;font:inherit;transform-style:preserve-3d;
  box-shadow:0 1px 2px rgba(18,59,47,.05),0 8px 18px -12px rgba(18,59,47,.25);transition:transform .35s var(--bkm-ease),box-shadow .35s var(--bkm-ease),border-color .2s}
.bkm-card:hover{transform:translateY(-3px) translateZ(18px) rotateX(4deg);box-shadow:0 2px 4px rgba(18,59,47,.06),0 20px 34px -18px rgba(18,59,47,.45)}
.bkm-card .ic{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--bkm-mint);color:var(--bkm-green);transform:translateZ(14px)}
.bkm-card b{font-size:15px;letter-spacing:-.01em;color:var(--bkm-ink)}
.bkm-card small{font-size:13px;line-height:1.45;color:var(--bkm-dim)}
.bkm-card .tick{position:absolute;top:12px;right:12px;width:22px;height:22px;border-radius:50%;border:1.5px solid var(--bkm-line);display:grid;place-items:center;color:#fff;font-size:12px;transition:all .25s var(--bkm-ease)}
.bkm-card[aria-pressed="true"]{border-color:var(--bkm-green);background:linear-gradient(180deg,#f3faf6,#fff);box-shadow:0 0 0 3px rgba(0,91,64,.12),0 20px 34px -18px rgba(0,91,64,.55)}
.bkm-card[aria-pressed="true"] .tick{background:var(--bkm-green);border-color:var(--bkm-green)}
/* calendar + slots */
.bkm-when{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:20px;margin-top:22px}
.bkm-cal{border:1px solid var(--bkm-line);border-radius:20px;padding:16px;background:#fff;box-shadow:0 10px 30px -22px rgba(18,59,47,.45)}
.bkm-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.bkm-cal-head strong{font-size:15px;color:var(--bkm-ink)}
.bkm-cal-head button{width:34px;height:34px;border-radius:10px;border:1px solid var(--bkm-line);background:#fff;color:var(--bkm-ink);cursor:pointer;font-size:16px}
.bkm-cal-head button:disabled{opacity:.35;cursor:not-allowed}
.bkm-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}
.bkm-grid .dow{font:600 10px/1 var(--bkm-mono);letter-spacing:.1em;color:#9aa39e;padding:6px 0}
.bkm-day{aspect-ratio:1;min-height:36px;border-radius:12px;border:0;background:transparent;color:#b7bdb9;font:600 14px var(--bkm-sans);cursor:default}
.bkm-day.avail{background:var(--bkm-mint);color:var(--bkm-ink);cursor:pointer;transition:transform .2s var(--bkm-ease),background .2s}
.bkm-day.avail:hover{transform:translateY(-2px);background:#dcefe5}
.bkm-day.today{box-shadow:inset 0 0 0 1.5px var(--bkm-green-2)}
.bkm-day[aria-pressed="true"]{background:var(--bkm-ink)!important;color:#fff;box-shadow:0 10px 18px -10px rgba(18,59,47,.8)}
.bkm-slots{border:1px solid var(--bkm-line);border-radius:20px;padding:16px;background:linear-gradient(180deg,#fff,#fcfbf8);min-height:300px;max-height:390px;overflow:auto}
.bkm-slots h4{margin:0 0 4px;font-size:15px;color:var(--bkm-ink)}
.bkm-slots .tz{margin:0 0 12px;font-size:12px;color:var(--bkm-dim)}
.bkm-slots .grp{margin:14px 0 8px;font:600 10px/1 var(--bkm-mono);letter-spacing:.16em;text-transform:uppercase;color:#9aa39e}
.bkm-slot-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}
.bkm-slot{height:42px;border-radius:12px;border:1px solid var(--bkm-line);background:#fff;color:var(--bkm-ink);font:600 13px var(--bkm-sans);cursor:pointer;transition:transform .2s var(--bkm-ease),border-color .2s,box-shadow .2s}
.bkm-slot:hover:not(:disabled){transform:translateY(-2px);border-color:var(--bkm-green);box-shadow:0 10px 18px -12px rgba(0,91,64,.6)}
.bkm-slot:disabled{opacity:.35;text-decoration:line-through;cursor:not-allowed}
.bkm-slot[aria-pressed="true"]{background:var(--bkm-green);border-color:var(--bkm-green);color:#fff}
.bkm-empty{display:grid;place-items:center;height:240px;text-align:center;color:var(--bkm-dim);font-size:14px}
/* fields */
.bkm-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:22px}
.bkm-field{display:flex;flex-direction:column;gap:7px}
.bkm-field.wide{grid-column:1/-1}
.bkm-field span{font-size:13px;font-weight:700;color:var(--bkm-ink)}
.bkm-field input,.bkm-field textarea{font:inherit;font-size:15px;color:var(--bkm-text);background:#f7f7f4;border:1.5px solid transparent;border-radius:var(--bkm-field);padding:14px 16px;min-height:50px;outline:none;transition:border-color .2s,background .2s,box-shadow .2s}
.bkm-field textarea{min-height:110px;resize:vertical;line-height:1.5}
.bkm-field input:focus,.bkm-field textarea:focus{background:#fff;border-color:var(--bkm-green);box-shadow:0 0 0 4px rgba(0,91,64,.12)}
.bkm-field.invalid input,.bkm-field.invalid textarea{border-color:#c2410c;background:#fff7f3}
/* review */
.bkm-review{margin-top:22px;border-radius:20px;border:1px solid var(--bkm-line);overflow:hidden;box-shadow:0 18px 40px -28px rgba(18,59,47,.55)}
.bkm-review .when{padding:20px 22px;background:linear-gradient(135deg,var(--bkm-ink),var(--bkm-green));color:#fff}
.bkm-review .when small{font:600 10px/1 var(--bkm-mono);letter-spacing:.18em;text-transform:uppercase;opacity:.75}
.bkm-review .when strong{display:block;margin-top:8px;font-size:22px;letter-spacing:-.02em}
.bkm-review .when em{display:block;margin-top:4px;font-style:normal;opacity:.85;font-size:14px}
.bkm-review dl{margin:0;display:grid;grid-template-columns:140px 1fr;gap:0}
.bkm-review dt,.bkm-review dd{margin:0;padding:12px 22px;border-top:1px solid var(--bkm-line);font-size:14px}
.bkm-review dt{color:var(--bkm-dim);font-weight:600}
.bkm-review dd{color:var(--bkm-text);word-break:break-word}
.bkm-edit{border:0;background:none;color:var(--bkm-green);font:600 13px var(--bkm-sans);cursor:pointer;text-decoration:underline;padding:0 0 0 8px}
.bkm-pending{margin:16px 0 0;font-size:13px;color:var(--bkm-dim)}
/* success */
.bkm-success{text-align:center;padding:16px 0 8px}
.bkm-orb{width:96px;height:96px;margin:4px auto 20px;border-radius:30px;display:grid;place-items:center;background:linear-gradient(145deg,var(--bkm-green-2),var(--bkm-ink));color:#fff;box-shadow:0 2px 0 rgba(255,255,255,.3) inset,0 24px 40px -16px rgba(0,91,64,.75),0 50px 80px -40px rgba(18,59,47,.8);transform:rotateX(14deg) rotateY(-14deg);animation:bkmOrb 1.1s var(--bkm-ease) both}
@keyframes bkmOrb{from{transform:rotateX(70deg) rotateY(-50deg) scale(.6);opacity:0}to{transform:rotateX(14deg) rotateY(-14deg);opacity:1}}
.bkm-success .bkm-sub{margin-left:auto;margin-right:auto}
.bkm-ticket{display:inline-block;margin-top:18px;padding:14px 20px;border-radius:16px;background:var(--bkm-mint);color:var(--bkm-ink);font-weight:700}
/* footer */
.bkm-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 24px;border-top:1px solid var(--bkm-line);background:#fff}
.bkm-foot .hint{font-size:13px;color:var(--bkm-dim);min-height:1em}
.bkm-foot .hint.err{color:#b4231b;font-weight:600}
.bkm-btns{display:flex;gap:10px;margin-left:auto}
.bkm-btn{height:48px;padding:0 22px;border-radius:14px;font:700 14px var(--bkm-sans);letter-spacing:.01em;cursor:pointer;border:1px solid var(--bkm-line);background:#fff;color:var(--bkm-ink);transition:transform .2s var(--bkm-ease),box-shadow .2s,background .2s}
.bkm-btn:hover{transform:translateY(-2px)}
.bkm-btn.primary{background:var(--bkm-ink);border-color:var(--bkm-ink);color:#fff;box-shadow:0 1px 0 rgba(255,255,255,.18) inset,0 12px 22px -12px rgba(18,59,47,.9)}
.bkm-btn.primary:hover{background:var(--bkm-green)}
.bkm-btn:disabled{opacity:.5;cursor:wait;transform:none}
.bkm-btn[hidden]{display:none}
.bkm-overlay :focus-visible{outline:2.5px solid var(--bkm-green);outline-offset:3px}
.bkm-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
/* /book landing (behind the modal) */
.bkm-landing{text-align:left}
.bkm-landing .bkm-btn{margin-top:18px}
@media (max-width:720px){
  .bkm-overlay{padding:0;align-items:flex-end}
  .bkm-dialog{width:100%;max-height:calc(100dvh - 12px);height:calc(100dvh - 12px);border-radius:22px 22px 0 0}
  .bkm-overlay:not(.is-open) .bkm-dialog{transform:translateY(60px) rotateX(6deg)}
  .bkm-head{padding:14px 18px}.bkm-logo{height:44px;margin:-8px 0 -8px -12px}
  .bkm-progress{padding:12px 18px 0}.bkm-progress span{font-size:9.5px;letter-spacing:.08em}
  .bkm-stage{margin:0 18px}
  .bkm-when{grid-template-columns:1fr}
  .bkm-slots{min-height:0;max-height:none}
  .bkm-fields{grid-template-columns:1fr}
  .bkm-cards{grid-template-columns:1fr 1fr}
  .bkm-card{padding:14px}.bkm-card small{display:none}
  .bkm-review dl{grid-template-columns:96px 1fr}.bkm-review dt,.bkm-review dd{padding:11px 16px}
  .bkm-foot{padding:12px 18px calc(12px + env(safe-area-inset-bottom))}
  .bkm-foot .hint{display:none}.bkm-foot .hint.err{display:block;flex-basis:100%}
  .bkm-foot{flex-wrap:wrap}.bkm-btns{width:100%}.bkm-btn{flex:1}
}
@media (prefers-reduced-motion:reduce){
  .bkm-overlay,.bkm-dialog,.bkm-step,.bkm-stage,.bkm-card,.bkm-slot,.bkm-day,.bkm-btn,.bkm-progress .bar i{transition:opacity .2s linear!important;animation:none!important}
  .bkm-dialog,.bkm-overlay:not(.is-open) .bkm-dialog,.bkm-step.is-before,.bkm-step.is-after,.bkm-card:hover,.bkm-orb{transform:none!important;filter:none!important}
}

.bkm-title:focus{outline:none}
