/* ============================================================
   FRAMElogic.media, Booking Builder
   ============================================================ */
:root{
  --green:#627C58; --green-deep:#42553B; --green-ink:#26301F;
  --sage:#E9EDE4; --sage-2:#DDE4D5; --paper:#FAFAF6; --white:#fff;
  --text:#232921; --mute:#6C7367; --line:rgba(38,48,31,0.12);
  --amber:#C99A5B; --amber-deep:#A87735; --amber-ink:#8A6224;
  --amber-soft:#F5E6CE; --amber-wash:#FFFBF3; --clay:#B4674A;
  --radius:3px;
  --shadow:0 24px 60px -24px rgba(38,48,31,.22);
  --shadow-gold:0 22px 55px -22px rgba(168,119,53,.42);
  --bar-h:78px;
}
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;background:var(--paper);color:var(--text);
  font-family:'Inter',system-ui,sans-serif;-webkit-font-smoothing:antialiased;
  padding-bottom:calc(var(--bar-h) + 20px);
}
h1,h2,h3,h4{font-family:'Montserrat',sans-serif;margin:0;letter-spacing:-.02em;color:var(--green-ink);}
button,input,select,textarea{font:inherit;color:inherit;}
::selection{background:var(--amber);color:#fff;}
.bk-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden;opacity:0;}

/* ---------- header ---------- */
.bk-hdr{
  position:sticky;top:0;z-index:60;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:18px clamp(18px,4vw,48px);
  background:rgba(250,250,246,.92);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.bk-logo{
  font-family:'Montserrat',sans-serif;font-weight:800;font-size:25px;
  letter-spacing:-.022em;color:var(--green-ink);text-decoration:none;position:relative;
}
.bk-logo span{color:var(--green);}
.bk-logo small{
  display:block;position:absolute;right:0;top:100%;margin-top:-3px;
  font-family:'JetBrains Mono',monospace;font-size:8.5px;font-weight:500;
  letter-spacing:.22em;color:var(--amber-deep);
}
.bk-hdr-right{display:flex;align-items:center;gap:18px;}
.bk-secure{
  font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--amber-deep);display:inline-flex;align-items:center;gap:8px;
}
.bk-secure::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--amber);animation:blip 2.4s ease-in-out infinite;}
@keyframes blip{0%,100%{opacity:.3;transform:scale(.8);}50%{opacity:1;transform:scale(1);}}
/* This was 13px grey on cream, which is a link you have to lean in to
   read. It is one of only two things in the bar, so it gets to look like
   something you can click. */
.bk-back{
  font-size:15px;font-weight:600;color:var(--green-deep);
  text-decoration:none;white-space:nowrap;
  display:inline-flex;align-items:center;gap:5px;
  transition:color .2s ease;
}
.bk-back:hover{color:var(--amber-deep);}
.bk-back:hover{color:var(--green-deep);}
@media(max-width:640px){.bk-secure{display:none;}}

/* ---------- progress film strip ---------- */
.bk-progress{
  position:sticky;top:57px;z-index:55;
  background:var(--white);border-bottom:1px solid var(--line);
}
.bk-strip{
  display:flex;gap:0;max-width:1180px;margin:0 auto;
  padding:0 clamp(10px,3vw,28px);overflow-x:auto;scrollbar-width:none;
}
.bk-strip::-webkit-scrollbar{display:none;}
.bk-frame{
  flex:1 0 auto;min-width:92px;
  display:flex;flex-direction:column;align-items:center;gap:3px;
  padding:11px 8px 10px;background:none;border:0;cursor:pointer;
  border-bottom:2px solid transparent;transition:.25s;position:relative;
}
.bk-frame::before,.bk-frame::after{
  content:"";position:absolute;left:50%;transform:translateX(-50%);
  width:16px;height:3px;border-radius:1px;background:var(--line);opacity:.55;
}
.bk-frame::before{top:3px;} .bk-frame::after{bottom:5px;}
.bk-num{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.14em;color:var(--mute);}
.bk-lbl{font-family:'Montserrat',sans-serif;font-weight:700;font-size:12px;color:var(--mute);white-space:nowrap;}
.bk-frame.done .bk-num,.bk-frame.done .bk-lbl{color:var(--green);}
.bk-frame.on{border-bottom-color:var(--amber);}
.bk-frame.on .bk-num{color:var(--amber-deep);}
.bk-frame.on .bk-lbl{color:var(--green-ink);}
.bk-progress-bar{height:2px;background:var(--sage-2);}
.bk-progress-bar i{
  display:block;height:100%;width:0;
  background:linear-gradient(90deg,var(--green),var(--amber));
  transition:width .5s cubic-bezier(.2,.8,.25,1);
}

/* ---------- layout ---------- */
.bk-main{max-width:1060px;margin:0 auto;padding:clamp(28px,5vw,54px) clamp(16px,4vw,36px) 40px;}
.bk-step{display:none;animation:stepIn .5s cubic-bezier(.2,.8,.28,1) both;}
.bk-step.on{display:block;}
@keyframes stepIn{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}
@media(prefers-reduced-motion:reduce){
  .bk-step{animation:none;}
  *{transition-duration:.01ms!important;animation-duration:.01ms!important;}
}

.bk-head{margin-bottom:34px;}
.bk-exif{
  display:inline-flex;align-items:center;gap:11px;margin-bottom:14px;
  font-family:'JetBrains Mono',monospace;font-size:11.5px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--amber-deep);
}
.bk-exif::before{content:"";width:26px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--amber),var(--green));}
.bk-head h1,.bk-head h2{font-size:clamp(28px,4.6vw,46px);font-weight:800;line-height:1.06;}
.bk-sub{margin:14px 0 0;font-size:clamp(14.5px,1.4vw,17px);line-height:1.65;color:var(--mute);max-width:62ch;}
.bk-sub b{color:var(--green-deep);font-weight:600;}
.bk-gw{
  background-image:linear-gradient(100deg,var(--green-ink) 0%,var(--green-ink) 38%,
    var(--amber-deep) 45%,var(--amber) 48%,#F6E3BB 50%,var(--amber) 52%,var(--amber-deep) 55%,
    var(--green-ink) 62%,var(--green-ink) 100%);
  background-size:260% 100%;background-repeat:no-repeat;
  -webkit-background-clip:text;background-clip:text;color:transparent;
  animation:sweep 5s linear infinite;
}
@keyframes sweep{from{background-position:100% 0;}to{background-position:0% 0;}}

/* ---------- fieldsets ---------- */
.bk-fs{border:0;padding:0;margin:0 0 34px;}
.bk-legend{
  display:block;font-family:'Montserrat',sans-serif;font-weight:800;font-size:14px;
  color:var(--green-ink);margin-bottom:14px;
}
.bk-legend b{color:var(--clay);}
.bk-note{margin:-6px 0 14px;font-size:13.5px;color:var(--mute);}
.bk-mini{display:block;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--mute);margin-bottom:9px;}
.bk-err{color:var(--clay);font-size:13.5px;margin:10px 0 0;font-weight:600;}
.bk-mt{margin-top:14px;}

/* ---------- square footage picker ---------- */
.bk-sqft{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}
@media(max-width:900px){.bk-sqft{grid-template-columns:repeat(2,1fr);}}
@media(max-width:420px){.bk-sqft{grid-template-columns:1fr;}}
.bk-sq{
  position:relative;text-align:left;cursor:pointer;
  padding:18px 16px;border:1px solid var(--line);border-radius:var(--radius);
  background:var(--white);transition:.22s cubic-bezier(.2,.8,.25,1);
}
.bk-sq-main{display:block;font-family:'Montserrat',sans-serif;font-weight:700;font-size:15px;color:var(--green-ink);}
.bk-sq-tick{
  position:absolute;top:14px;right:14px;width:16px;height:16px;border-radius:50%;
  border:1.5px solid var(--line);transition:.22s;
}
.bk-sq:hover{border-color:var(--green);transform:translateY(-2px);box-shadow:0 10px 26px -14px rgba(38,48,31,.35);}
.bk-sq.on{border-color:var(--amber);background:var(--amber-wash);box-shadow:var(--shadow-gold);}
.bk-sq.on .bk-sq-tick{border-color:var(--amber);background:var(--amber);}
.bk-sq.on .bk-sq-tick::after{
  content:"";position:absolute;inset:0;margin:auto;width:5px;height:9px;
  border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) translate(-1px,-1px);
}
.bk-sqft.bad .bk-sq{border-color:var(--clay);}

/* ---------- inputs ---------- */
.bk-grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.bk-span2{grid-column:1/-1;}
@media(max-width:640px){.bk-grid2{grid-template-columns:1fr;}}
.bk-fld{display:block;}
.bk-fld>span{
  display:block;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--mute);margin-bottom:7px;
}
.bk-fld>span b{color:var(--clay);}
.bk-fld input,.bk-fld select,.bk-fld textarea{
  width:100%;padding:13px 14px;background:var(--white);
  border:1px solid var(--line);border-radius:var(--radius);
  font-size:15px;transition:.2s;
}
.bk-fld textarea{min-height:104px;resize:vertical;}
.bk-fld input:focus,.bk-fld select:focus,.bk-fld textarea:focus{
  outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(98,124,88,.14);
}
.bad{animation:shake .42s;border-color:var(--clay)!important;box-shadow:0 0 0 3px rgba(180,103,74,.13);}
.bk-stepwarn{
  margin:18px 0 0;padding:13px 16px;border-radius:var(--radius);
  background:#F9EBE5;border-left:3px solid var(--clay);color:#7E4530;
  font-size:14px;line-height:1.55;
}
.bk-stepwarn b{color:#5F3122;}
@keyframes shake{10%,90%{transform:translateX(-2px);}30%,70%{transform:translateX(4px);}50%{transform:translateX(-4px);}}

/* ---------- chips (radio pills) ---------- */
.bk-chips{display:flex;flex-wrap:wrap;gap:9px;}
.bk-chips.bad{outline:1px solid var(--clay);outline-offset:6px;border-radius:var(--radius);}
.bk-chip{position:relative;cursor:pointer;}
.bk-chip input{position:absolute;opacity:0;width:0;height:0;}
.bk-chip span{
  display:inline-block;padding:10px 16px;border:1px solid var(--line);border-radius:100px;
  background:var(--white);font-size:14px;font-weight:500;transition:.2s;
}
.bk-chip:hover span{border-color:var(--green);color:var(--green-deep);}
.bk-chip input:checked+span{
  background:var(--green);border-color:var(--green);color:#fff;font-weight:600;
  box-shadow:0 8px 20px -10px rgba(66,85,59,.6);
}
.bk-chip input:focus-visible+span{outline:2px solid var(--amber);outline-offset:2px;}
.bk-sub-fs+.bk-sub-fs{margin-top:0;}

/* ---------- checkboxes ---------- */
.bk-check{display:flex;align-items:flex-start;gap:12px;cursor:pointer;padding:4px 0;}
.bk-check input{position:absolute;opacity:0;width:0;height:0;}
.bk-box{
  flex:0 0 auto;width:20px;height:20px;margin-top:1px;border:1.5px solid var(--line);
  border-radius:var(--radius);background:var(--white);position:relative;transition:.2s;
}
.bk-check input:checked+.bk-box{background:var(--green);border-color:var(--green);}
.bk-check input:checked+.bk-box::after{
  content:"";position:absolute;inset:0;margin:auto;width:5px;height:9px;
  border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) translate(-1px,-1px);
}
.bk-check input:focus-visible+.bk-box{outline:2px solid var(--amber);outline-offset:2px;}
.bk-check-txt b{display:block;font-size:14.5px;font-weight:600;color:var(--text);}
.bk-check-txt small{display:block;margin-top:3px;font-size:13px;color:var(--mute);line-height:1.5;}
.bk-big{padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--white);}
.bk-big:hover{border-color:var(--green);}
.bk-inline{margin-top:12px;}
.bk-reveal{
  margin-top:16px;padding-left:16px;border-left:2px solid var(--amber);
  animation:reveal .38s cubic-bezier(.2,.8,.28,1) both;
}
.bk-inlinewrap{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;}
.bk-tuck{min-width:160px;animation:reveal .3s cubic-bezier(.2,.8,.28,1) both;}
.bk-tuck>span{margin-bottom:7px;}
@keyframes reveal{from{opacity:0;transform:translateY(-8px);}to{opacity:1;transform:none;}}

/* ---------- monthly plans, shown first ---------- */
.bk-monthly{
  padding:26px;margin-bottom:26px;border-radius:var(--radius);
  background:var(--green-ink);
}
.bk-monthly-hd{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:20px;}
.bk-monthly-k{
  font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--amber);
}
.bk-monthly-hd h2{margin:8px 0 6px;font-size:clamp(20px,2.4vw,27px);font-weight:800;color:#fff;}
.bk-monthly-hd p{margin:0;font-size:14px;line-height:1.6;color:rgba(255,255,255,.75);max-width:56ch;}
.bk-monthly-hd em{color:var(--amber);font-style:normal;font-weight:600;}
.bk-monthly-more{
  color:var(--amber);text-decoration:none;font-size:13px;font-weight:600;white-space:nowrap;
}
.bk-monthly-more:hover{text-decoration:underline;}
.bk-mplans{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
@media(max-width:820px){.bk-mplans{grid-template-columns:1fr;}}
.bk-mplan{
  position:relative;padding:20px 18px;border-radius:var(--radius);
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.15);
  display:flex;flex-direction:column;
}
.bk-mplan.on-top{border-color:var(--amber);background:rgba(201,154,91,.14);padding-top:28px;}
.bk-mflag{
  position:absolute;top:0;left:0;right:0;padding:4px;text-align:center;
  border-radius:var(--radius) var(--radius) 0 0;
  background:linear-gradient(100deg,var(--amber-deep),var(--amber));
  font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.16em;
  text-transform:uppercase;color:#fff;
}
.bk-mplan h3{font-size:16px;font-weight:800;color:#fff;}
.bk-mprice{
  display:block;margin:8px 0 12px;font-family:'Montserrat',sans-serif;font-weight:800;
  font-size:27px;color:#fff;letter-spacing:-.03em;
}
.bk-mplan.on-top .bk-mprice{color:var(--amber);}
.bk-mprice small{font-size:13px;font-weight:500;color:rgba(255,255,255,.55);}
.bk-mplan ul{list-style:none;margin:0 0 16px;padding:0;flex:1;}
.bk-mplan li{
  position:relative;padding-left:16px;margin-bottom:7px;
  font-size:12.5px;line-height:1.5;color:rgba(255,255,255,.8);
}
.bk-mplan li::before{
  content:"";position:absolute;left:0;top:6px;width:8px;height:4px;
  border:solid var(--amber);border-width:0 0 1.5px 1.5px;transform:rotate(-45deg);
}
.bk-mplan li b{color:#fff;}
.bk-mbtn{
  display:block;text-align:center;padding:9px;border-radius:var(--radius);
  border:1px solid rgba(255,255,255,.3);color:#fff;text-decoration:none;
  font-family:'Montserrat',sans-serif;font-weight:600;font-size:12.5px;transition:.2s;
}
.bk-mbtn:hover{background:#fff;color:var(--green-ink);}
.bk-mplan.on-top .bk-mbtn{border-color:var(--amber);background:var(--amber);color:#2A2013;}
.bk-mplan.on-top .bk-mbtn:hover{filter:brightness(1.08);}

.bk-oneoff{
  display:flex;align-items:center;gap:14px;margin-bottom:18px;
  font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--mute);
}
.bk-oneoff::after{content:"";flex:1;height:1px;background:var(--line);}

/* ---------- package tiers ---------- */
.bk-tiers{
  display:grid;grid-template-columns:repeat(5,1fr);gap:12px;align-items:stretch;
}
@media(max-width:1000px){
  .bk-tiers{
    grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(258px,1fr);
    overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:12px;
    margin-inline:calc(clamp(16px,4vw,36px) * -1);padding-inline:clamp(16px,4vw,36px);
  }
  .bk-tier{scroll-snap-align:center;}
}
.bk-tier{
  position:relative;display:flex;flex-direction:column;text-align:left;cursor:pointer;
  /* same top padding on every card, the flag overlays, it doesn't push content down */
  padding:38px 18px 18px;background:var(--white);
  border:1px solid var(--line);border-radius:var(--radius);
  transition:.26s cubic-bezier(.2,.8,.25,1);
}
.bk-tier:hover{transform:translateY(-4px);border-color:var(--green);box-shadow:var(--shadow);}
.bk-tier.on{border-color:var(--green);box-shadow:0 0 0 2px var(--green),var(--shadow);}
.bk-tier h3{font-size:17px;font-weight:800;margin-bottom:6px;}
.bk-tier-sub{font-size:12.5px;color:var(--mute);line-height:1.5;min-height:56px;}
.bk-tier-price{
  display:block;margin:14px 0 4px;font-family:'Montserrat',sans-serif;
  font-weight:800;font-size:30px;color:var(--green-ink);letter-spacing:-.03em;
}
.bk-tier-save{
  display:inline-block;font-family:'JetBrains Mono',monospace;font-size:9.5px;
  letter-spacing:.02em;color:var(--amber-ink);background:var(--amber-soft);
  padding:4px 9px;border-radius:100px;margin-bottom:12px;white-space:nowrap;
}
.bk-tier-list{list-style:none;margin:8px 0 16px;padding:0;flex:1;}
.bk-tier-list li{
  position:relative;padding-left:18px;margin-bottom:7px;font-size:13px;line-height:1.45;color:var(--text);
}
.bk-tier-list li::before{
  content:"";position:absolute;left:0;top:6px;width:9px;height:5px;
  border:solid var(--green);border-width:0 0 1.5px 1.5px;transform:rotate(-45deg);
}
.bk-tier-pick{
  display:block;text-align:center;padding:11px;border-radius:var(--radius);
  border:1px solid var(--green);color:var(--green-deep);
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:13px;transition:.2s;
}
.bk-tier:hover .bk-tier-pick{background:var(--green);color:#fff;}
.bk-tier.on .bk-tier-pick{background:var(--green);color:#fff;}
.bk-tier-check{
  position:absolute;top:12px;right:12px;width:20px;height:20px;border-radius:50%;
  border:1.5px solid var(--line);background:var(--white);transition:.22s;
}
.bk-tier.on .bk-tier-check{background:var(--green);border-color:var(--green);}
.bk-tier.on .bk-tier-check::after{
  content:"";position:absolute;inset:0;margin:auto;width:5px;height:9px;
  border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) translate(-1px,-1px);
}

/* flagship */
.bk-tier.flagship{
  border-color:var(--amber);background:linear-gradient(178deg,var(--amber-wash),var(--white) 42%);
  box-shadow:var(--shadow-gold);
}
/* Glimmer travels around the BORDER only, never across the text. */
.bk-tier.flagship::before{
  content:"";position:absolute;inset:-2px;border-radius:var(--radius);pointer-events:none;z-index:-1;
  padding:2px;
  background:linear-gradient(115deg,
    var(--amber-deep) 0%, var(--amber) 18%, #FBEFD6 28%, var(--amber) 38%,
    var(--amber-deep) 52%, var(--amber-deep) 100%);
  background-size:300% 100%;
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude;
  animation:borderGlimmer 4.5s linear infinite;
}
@keyframes borderGlimmer{from{background-position:200% 0;}to{background-position:-100% 0;}}
@media(prefers-reduced-motion:reduce){.bk-tier.flagship::before{animation:none;}}
/* no positioning override on children, it used to knock the badge and the
   check-circle into the flow and shove every card's price out of line */
.bk-tier.flagship h3{color:var(--amber-ink);}
.bk-tier.flagship .bk-tier-price{color:var(--amber-ink);}
.bk-tier.flagship .bk-tier-pick{border-color:var(--amber-deep);color:var(--amber-ink);}
.bk-tier.flagship:hover .bk-tier-pick,.bk-tier.flagship.on .bk-tier-pick{
  background:linear-gradient(100deg,var(--amber-deep),var(--amber));border-color:var(--amber-deep);color:#fff;
}
.bk-tier.flagship.on{box-shadow:0 0 0 2px var(--amber-deep),var(--shadow-gold);}
.bk-tier.flagship.on .bk-tier-check{background:var(--amber-deep);border-color:var(--amber-deep);}
.bk-tier-flag{
  position:absolute;top:-1px;left:-1px;right:-1px;
  padding:5px;text-align:center;border-radius:var(--radius) var(--radius) 0 0;
  background:linear-gradient(100deg,var(--amber-deep),var(--amber));
  font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.16em;
  text-transform:uppercase;color:#fff;
}

.bk-tier.flagship .bk-tier-check{top:30px;}
.bk-tier.pop{animation:pop .42s cubic-bezier(.2,.9,.3,1);}
@keyframes pop{40%{transform:translateY(-6px) scale(1.02);}}

.bk-skip{
  display:block;width:100%;margin-top:20px;padding:16px;cursor:pointer;text-align:center;
  background:none;border:1px dashed var(--line);border-radius:var(--radius);transition:.2s;
}
.bk-skip:hover{border-color:var(--green);background:var(--white);}
.bk-skip span{display:block;font-family:'Montserrat',sans-serif;font-weight:700;font-size:14px;color:var(--green-deep);}
.bk-skip small{display:block;margin-top:3px;font-size:12.5px;color:var(--mute);}

/* ---------- service groups ---------- */
.bk-groups{display:flex;flex-direction:column;gap:12px;}
.bk-group{border:1px solid var(--line);border-radius:var(--radius);background:var(--white);overflow:hidden;}
.bk-group-hd{
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px;
  width:100%;padding:17px 18px;background:none;border:0;cursor:pointer;text-align:left;transition:.2s;
}
.bk-group-hd:hover{background:var(--sage);}
.bk-group-name{font-family:'Montserrat',sans-serif;font-weight:800;font-size:16px;color:var(--green-ink);}
.bk-group-meta{display:flex;align-items:center;gap:12px;margin-left:auto;}
.bk-group-count{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.08em;color:var(--mute);}
.bk-group-count.has{color:var(--amber-ink);background:var(--amber-soft);padding:3px 9px;border-radius:100px;}
.bk-group-tog{
  position:relative;width:16px;height:16px;flex:0 0 auto;transition:transform .3s cubic-bezier(.2,.8,.25,1);
}
.bk-group-tog::before,.bk-group-tog::after{
  content:"";position:absolute;inset:0;margin:auto;background:var(--green);border-radius:2px;
}
.bk-group-tog::before{width:14px;height:2px;}
.bk-group-tog::after{width:2px;height:14px;transition:opacity .25s;}
.bk-group:not(.shut) .bk-group-tog{transform:rotate(180deg);}
.bk-group:not(.shut) .bk-group-tog::after{opacity:0;}
.bk-group-teaser{
  flex-basis:100%;font-size:12.5px;color:var(--mute);line-height:1.5;
}
.bk-group:not(.shut) .bk-group-teaser{display:none;}
.bk-group-body{
  display:grid;grid-template-rows:1fr;
  transition:grid-template-rows .34s cubic-bezier(.2,.8,.25,1);
}
.bk-group-inner{overflow:hidden;min-height:0;}
.bk-group.shut .bk-group-body{grid-template-rows:0fr;}

/* ---------- items ---------- */
/* two columns so the add-on list stops being an endless scroll */
.bk-group-inner{display:grid;grid-template-columns:1fr 1fr;}
@media(max-width:880px){.bk-group-inner{grid-template-columns:1fr;}}
.bk-group-inner>.bk-item:nth-child(odd){border-right:1px solid var(--line);}
@media(max-width:880px){.bk-group-inner>.bk-item:nth-child(odd){border-right:0;}}

.bk-item{border-top:1px solid var(--line);transition:.2s;display:flex;flex-direction:column;}
.bk-item-hd{
  display:flex;align-items:flex-start;gap:13px;padding:15px 18px;cursor:pointer;transition:.2s;
}
.bk-item-hd:hover{background:var(--sage);}
.bk-item.covered .bk-item-hd,.bk-item.freebie .bk-item-hd{cursor:default;opacity:.72;}
.bk-item.covered .bk-item-hd:hover,.bk-item.freebie .bk-item-hd:hover{background:none;}
.bk-item-mark{
  flex:0 0 auto;width:20px;height:20px;margin-top:2px;border-radius:var(--radius);
  border:1.5px solid var(--line);background:var(--white);position:relative;transition:.2s;
}
.bk-item.on .bk-item-mark{background:var(--green);border-color:var(--green);}
.bk-item.on .bk-item-mark::after{
  content:"";position:absolute;inset:0;margin:auto;width:5px;height:9px;
  border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) translate(-1px,-1px);
}
.bk-item.covered .bk-item-mark{background:var(--sage-2);border-color:var(--sage-2);}
.bk-item.freebie .bk-item-mark{border-style:dashed;}
.bk-item-txt{flex:1;min-width:0;}
.bk-item-name{
  display:block;font-family:'Montserrat',sans-serif;font-weight:700;font-size:14.5px;color:var(--green-ink);
}
.bk-item-name small{
  font-family:'JetBrains Mono',monospace;font-weight:400;font-size:10.5px;
  letter-spacing:.08em;text-transform:uppercase;color:var(--mute);margin-left:8px;
}
.bk-badge{
  display:inline-block;margin-left:8px;padding:2px 7px;border-radius:100px;
  background:var(--amber-soft);color:var(--amber-ink);
  font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;
}
.bk-item-note{display:block;margin-top:4px;font-size:13px;line-height:1.5;color:var(--mute);}
.bk-inc-note{
  display:inline-block;margin-top:6px;font-family:'JetBrains Mono',monospace;
  font-size:11px;color:var(--amber-ink);
}
.bk-item-price{
  flex:0 0 auto;font-family:'Montserrat',sans-serif;font-weight:800;font-size:15px;color:var(--green-ink);
}
.bk-inc{
  font-family:'JetBrains Mono',monospace;font-size:10.5px;font-weight:400;letter-spacing:.1em;
  text-transform:uppercase;color:var(--green);background:var(--sage);padding:4px 9px;border-radius:100px;
}
.bk-item.on{background:linear-gradient(90deg,rgba(233,237,228,.6),transparent 60%);}
.bk-item-body{padding:0 18px 17px 51px;animation:reveal .3s cubic-bezier(.2,.8,.28,1) both;}

.bk-opts{display:flex;flex-direction:column;gap:7px;}
.bk-opt{
  display:flex;align-items:center;gap:11px;padding:11px 13px;cursor:pointer;
  border:1px solid var(--line);border-radius:var(--radius);background:var(--white);transition:.2s;
}
.bk-opt:hover{border-color:var(--green);}
.bk-opt input{position:absolute;opacity:0;width:0;height:0;}
.bk-opt.on{border-color:var(--green);background:var(--sage);}
.bk-opt-l{flex:1;font-size:14px;font-weight:600;}
.bk-opt-l small{display:block;font-weight:400;font-size:12px;color:var(--mute);margin-top:2px;}
.bk-opt-p{font-family:'Montserrat',sans-serif;font-weight:800;font-size:14px;color:var(--green-ink);}

.bk-extras{display:flex;flex-direction:column;gap:8px;margin-top:10px;}
.bk-extra{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:13.5px;}
.bk-extra input{position:absolute;opacity:0;width:0;height:0;}
.bk-extra .bk-box{width:18px;height:18px;margin:0;}
.bk-extra-p{margin-left:auto;font-family:'JetBrains Mono',monospace;font-size:12.5px;color:var(--amber-ink);}

.bk-qty{display:flex;align-items:center;gap:10px;margin-top:12px;font-size:13.5px;color:var(--mute);}
.bk-qty-b{
  width:32px;height:32px;border:1px solid var(--line);border-radius:var(--radius);
  background:var(--white);cursor:pointer;font-size:17px;line-height:1;color:var(--green-deep);transition:.18s;
}
.bk-qty-b:hover{border-color:var(--green);background:var(--green);color:#fff;}
.bk-qty-n{
  min-width:34px;text-align:center;font-family:'Montserrat',sans-serif;font-weight:800;
  font-size:15px;color:var(--green-ink);
}

/* ---------- review ---------- */
.bk-review{display:grid;grid-template-columns:1.15fr .85fr;gap:16px;}
@media(max-width:820px){.bk-review{grid-template-columns:1fr;}}
.bk-rcard{padding:24px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);}
.bk-rcard h3{font-size:15px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line);}
.bk-rrow{display:flex;justify-content:space-between;gap:16px;padding:9px 0;font-size:14px;border-bottom:1px dashed var(--line);}
.bk-rrow:last-child{border-bottom:0;}
.bk-rrow span{color:var(--mute);}
.bk-rrow b{font-family:'Montserrat',sans-serif;font-weight:700;color:var(--green-ink);text-align:right;}
.bk-rrow.pkg{background:var(--amber-wash);margin:0 -12px;padding:11px 12px;border-radius:var(--radius);}
.bk-rrow.pkg span{color:var(--amber-ink);font-weight:600;}
.bk-rempty{padding:18px 0;color:var(--mute);font-size:14px;}
.bk-rsave{
  margin-top:14px;padding:10px 12px;border-radius:var(--radius);
  background:var(--amber-soft);color:var(--amber-ink);
  font-family:'JetBrains Mono',monospace;font-size:12px;text-align:center;
}
.bk-rtotal{
  display:flex;justify-content:space-between;align-items:baseline;
  margin-top:16px;padding-top:16px;border-top:2px solid var(--green-ink);
}
.bk-rtotal span{font-family:'Montserrat',sans-serif;font-weight:800;font-size:15px;color:var(--green-ink);}
.bk-rtotal b{font-family:'Montserrat',sans-serif;font-weight:800;font-size:30px;color:var(--green-ink);letter-spacing:-.03em;}

.bk-paynote{
  display:flex;gap:14px;margin-top:20px;padding:20px;
  border:1px solid var(--line);border-left:3px solid var(--amber);
  border-radius:var(--radius);background:var(--amber-wash);
}
.bk-paynote-ic{color:var(--amber);font-size:11px;line-height:1.9;}
.bk-paynote b{display:block;font-family:'Montserrat',sans-serif;font-size:14px;color:var(--green-ink);margin-bottom:5px;}
.bk-paynote p{margin:0;font-size:13.5px;line-height:1.6;color:var(--mute);}

.bk-status{margin-top:16px;font-size:14px;}
.bk-status.err{color:var(--clay);font-weight:600;}
.bk-status.err a{color:inherit;}

/* ---------- done ---------- */
.bk-done{text-align:center;padding:40px 0;}
.bk-done-mark{width:78px;height:78px;margin:0 auto 24px;}
.bk-done-mark svg{width:100%;height:100%;fill:none;stroke:var(--green);stroke-width:2.5;
  stroke-linecap:round;stroke-linejoin:round;}
.bk-done-mark circle{stroke-dasharray:151;stroke-dashoffset:151;animation:draw .7s cubic-bezier(.2,.8,.25,1) forwards;}
.bk-done-mark path{stroke:var(--amber);stroke-dasharray:36;stroke-dashoffset:36;animation:draw .45s cubic-bezier(.2,.8,.25,1) .55s forwards;}
@keyframes draw{to{stroke-dashoffset:0;}}
.bk-done h1,.bk-done h2{font-size:clamp(30px,5vw,46px);}
.bk-done .bk-sub{margin:16px auto 0;}
.bk-done-sum{max-width:440px;margin:26px auto 30px;padding:20px;text-align:left;
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius);}

/* ---------- sticky total bar ---------- */
.bk-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:70;
  background:rgba(38,48,31,.97);backdrop-filter:blur(14px);
  border-top:2px solid var(--amber);
}
.bk-bar[hidden]{display:none;}
.bk-bar-in{
  max-width:1060px;margin:0 auto;padding:14px clamp(16px,4vw,36px);
  display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:var(--bar-h);
}
/* reassurance that what they picked on the home page made it here */
.bk-carried{
  margin:0 0 8px;padding:7px 13px;border-radius:100px;
  background:rgba(201,154,91,.16);border:1px solid rgba(201,154,91,.45);
  color:#F3D9AF;font-size:12.5px;line-height:1.4;display:inline-flex;align-items:center;gap:8px;
}
.bk-carried::before{content:"✓";color:var(--amber);font-weight:700;}
.bk-carried b{color:#fff;}
@media (max-width:560px){.bk-carried{font-size:11.5px;padding:5px 10px;}}
.bk-bar-lbl{
  display:block;font-family:'JetBrains Mono',monospace;font-size:10.5px;
  letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.55);
}
.bk-bar-num{
  display:block;font-family:'Montserrat',sans-serif;font-weight:800;font-size:clamp(24px,3.4vw,32px);
  color:#fff;letter-spacing:-.03em;line-height:1.1;
}
.bk-bar-num.bump{animation:bump .42s cubic-bezier(.2,.9,.3,1);}
@keyframes bump{40%{transform:scale(1.08);color:var(--amber);}}
.bk-bar-save{
  display:inline-block;margin-top:3px;font-family:'JetBrains Mono',monospace;font-size:10.5px;
  color:var(--amber);letter-spacing:.06em;
}
.bk-bar-btns{display:flex;gap:9px;align-items:center;}
[hidden]{display:none!important;}
.bk-btn{
  display:inline-block;padding:14px 26px;border:1px solid transparent;border-radius:var(--radius);
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:14px;
  cursor:pointer;text-decoration:none;text-align:center;transition:.22s cubic-bezier(.2,.8,.25,1);
}
.bk-btn-green{background:var(--green);color:#fff;box-shadow:0 10px 26px -12px rgba(98,124,88,.9);}
.bk-btn-green:hover{background:#6E8A63;transform:translateY(-2px);}
.bk-btn-gold{
  background:linear-gradient(100deg,var(--amber-deep),var(--amber));color:#fff;
  box-shadow:0 10px 30px -12px rgba(168,119,53,.95);
}
.bk-btn-gold:hover{transform:translateY(-2px);filter:brightness(1.06);}
.bk-btn-gold:disabled{opacity:.6;cursor:wait;transform:none;}
.bk-btn-line{background:transparent;border-color:rgba(255,255,255,.3);color:#fff;}
.bk-btn-line:hover{border-color:#fff;background:rgba(255,255,255,.08);}
.bk-done .bk-btn-line{border-color:var(--green);color:var(--green-deep);}
.bk-done .bk-btn-line:hover{background:var(--green);color:#fff;}
@media(max-width:560px){
  .bk-bar-in{padding:11px 16px;}
  .bk-btn{padding:12px 17px;font-size:13px;}
  .bk-bar-num{font-size:22px;}
}

/* ============================================================
   STEP 2, build your own, inside checkout
   ============================================================ */
.bk-byo{
  margin-top:26px;padding:24px 22px 26px;background:var(--white);
  border:2px solid var(--amber);border-radius:var(--radius);
  box-shadow:0 20px 50px -30px rgba(201,154,91,.55);
}
.bk-byo-hd{text-align:center;max-width:56ch;margin:0 auto 18px;}
.bk-byo-k{
  display:block;font-family:'JetBrains Mono',monospace;font-size:11px;
  letter-spacing:.18em;text-transform:uppercase;color:var(--amber-deep);margin-bottom:8px;
}
.bk-byo-hd h3{font-size:clamp(19px,2.2vw,25px);font-weight:800;margin-bottom:7px;}
.bk-byo-hd p{margin:0;font-size:14px;color:var(--mute);}
.bk-byo-stage{display:grid;grid-template-columns:1fr 290px;gap:18px;align-items:start;}
@media(max-width:820px){.bk-byo-stage{grid-template-columns:1fr;}}
.bk-byo-picks{display:flex;flex-direction:column;gap:9px;}
.bk-bucket{padding:11px 12px;background:var(--paper);border:1px solid var(--line);border-radius:5px;}
.bk-bucket-h{
  display:flex;align-items:center;gap:7px;margin-bottom:8px;
  font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--green-deep);
}
.bk-bucket-h em{
  font-style:normal;min-width:17px;height:17px;padding:0 5px;border-radius:20px;
  background:var(--green);color:#fff;font-size:10px;display:inline-flex;align-items:center;justify-content:center;
}
.bk-bucket-b{display:flex;flex-wrap:wrap;gap:6px;}
.bk-bucket-photo{border-left:3px solid var(--green);}
.bk-bucket-video{border-left:3px solid var(--amber);}
.bk-bucket-aerial{border-left:3px solid #5B7A8C;}
.bk-bucket-plans{border-left:3px solid var(--green-deep);}
.bk-bucket-extras{border-left:3px solid var(--clay);}
.bk-bub{
  display:inline-flex;align-items:center;gap:7px;min-height:40px;
  padding:8px 13px;border:1px solid var(--line);border-radius:100px;background:var(--white);
  font-size:13px;cursor:pointer;transition:.18s;
}
.bk-bub i{font-style:normal;font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--mute);}
.bk-bub:hover{border-color:var(--green);}
.bk-bub.on{background:var(--green);border-color:var(--green);color:#fff;font-weight:600;}
.bk-bub.on i{color:rgba(255,255,255,.8);}
.bk-bub.on::before{content:"✓";font-size:11px;}
.bk-byo-card{
  padding:20px 18px;background:var(--paper);border:1px solid var(--line);border-radius:5px;
  display:flex;flex-direction:column;
}
.bk-byo-card h4{font-size:15px;font-weight:800;color:var(--amber-ink);margin-bottom:12px;}
.bk-byo-lines{max-height:200px;overflow-y:auto;margin-bottom:10px;}
.bk-byo-line{
  display:flex;justify-content:space-between;gap:10px;padding:6px 0;
  border-bottom:1px dashed var(--line);font-size:13px;color:var(--mute);
}
.bk-byo-line b{color:var(--green-ink);font-family:'Montserrat',sans-serif;}
.bk-byo-empty{margin:0;font-size:13px;color:var(--mute);}
.bk-byo-total{
  display:flex;justify-content:space-between;align-items:baseline;
  padding-top:11px;border-top:2px solid var(--green-ink);
}
.bk-byo-total span{font-family:'Montserrat',sans-serif;font-weight:700;font-size:13px;color:var(--green-ink);}
.bk-byo-total b{font-family:'Montserrat',sans-serif;font-weight:800;font-size:27px;color:var(--green-ink);letter-spacing:-.03em;}
.bk-byo-save{display:block;margin:14px 0 12px;}
.bk-byo-save span{
  display:block;margin-bottom:6px;font-family:'JetBrains Mono',monospace;font-size:10px;
  letter-spacing:.12em;text-transform:uppercase;color:var(--mute);
}
.bk-byo-save input{
  width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:var(--radius);
  background:var(--white);font-size:14px;
}
.bk-byo-save input:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(98,124,88,.14);}
.bk-byo-card .bk-btn{width:100%;}
.bk-byo-clear{
  width:100%;margin-top:8px;padding:9px;cursor:pointer;
  background:none;border:1px solid var(--line);border-radius:var(--radius);
  font-family:'Montserrat',sans-serif;font-weight:600;font-size:12.5px;color:var(--clay);
}
.bk-byo-clear:hover{border-color:var(--clay);background:#F9EBE5;}
@media(max-width:760px){
  .bk-byo{padding:18px 14px 20px;}
  .bk-bucket-b{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:4px;}
  .bk-bucket-b::-webkit-scrollbar{display:none;}
  .bk-bub{flex:0 0 auto;min-height:44px;}
}

/* ---------- phones: select instead of the tile grid ---------- */
.bk-sqsel{display:none;}
@media(max-width:760px){
  .bk-sqft{display:none;}
  .bk-sqsel{display:block;}
  .bk-sqsel>span{
    display:block;margin-bottom:7px;font-family:'JetBrains Mono',monospace;font-size:10.5px;
    letter-spacing:.14em;text-transform:uppercase;color:var(--mute);
  }
  .bk-sqsel select{
    width:100%;min-height:50px;padding:13px 14px;
    border:1.5px solid var(--green);border-radius:var(--radius);background:var(--white);
    font-family:'Montserrat',sans-serif;font-weight:700;font-size:16px;color:var(--green-ink);
  }

  /* step 4: date pickers were spilling past the screen */
  .bk-main{overflow-x:hidden;}
  .bk-fld input,.bk-fld select,.bk-fld textarea{max-width:100%;}
  .bk-fld input[type="date"]{
    width:100%;min-width:0;-webkit-appearance:none;appearance:none;
    padding:13px 12px;min-height:48px;
  }
  .bk-grid2{grid-template-columns:1fr!important;gap:12px!important;}
  .bk-inlinewrap{flex-direction:column;align-items:stretch;gap:10px;}
  .bk-tuck{min-width:0;width:100%;}
  .bk-chips{gap:7px;}
  .bk-chip span{padding:11px 14px;font-size:13.5px;}

  /* step 2: monthly + package rails swipe one card at a time */
  .bk-mplans{
    grid-template-columns:none!important;grid-auto-flow:column;grid-auto-columns:84%;
    overflow-x:auto;scroll-snap-type:x mandatory;gap:10px!important;
    margin-inline:-16px;padding:4px 16px 10px;
  }
  .bk-mplan{scroll-snap-align:center;}
  .bk-tiers{
    grid-template-columns:none!important;grid-auto-flow:column;grid-auto-columns:84%;
    overflow-x:auto;scroll-snap-type:x mandatory;gap:10px!important;
    margin-inline:-16px;padding:10px 16px;
  }
  .bk-tier{scroll-snap-align:center;padding:34px 16px 18px!important;}
  .bk-tier-sub{min-height:0!important;}
  .bk-monthly{padding:16px 14px!important;}
  .bk-monthly-hd{flex-direction:column;align-items:flex-start;gap:8px;}
}

/* ---------- checkout: lock the page, shrink to fit ---------- */
/* clip contains the overflow without turning <html> into a scroll box,
   which is what causes the sticky/scroll oddities on iOS. hidden is the
   fallback for engines that don't know clip yet. */
html{overflow-x:hidden;overflow-x:clip;overscroll-behavior-x:none;}
body{overflow-x:clip;overscroll-behavior:none;}
/* same fix on checkout: don't pin the axis, just stop the sideways chain */
.bk-mplans,.bk-tiers,.bk-bucket-b{overscroll-behavior-x:contain;overscroll-behavior-y:auto;}

@media(max-width:760px){
  .bk-main{padding:20px 16px 30px;}
  .bk-head{margin-bottom:22px;}
  .bk-head h1,.bk-head h2{font-size:clamp(23px,6.2vw,30px);}
  .bk-sub{font-size:14px;margin-top:10px;}
  .bk-exif{font-size:10.5px;margin-bottom:10px;}
  .bk-fs{margin-bottom:24px;}
  .bk-legend{font-size:13px;margin-bottom:10px;}

  /* package rail: shorter cards, one at a time */
  .bk-tiers{grid-auto-columns:80%!important;padding:8px 16px;}
  .bk-tier{padding:30px 14px 16px!important;}
  .bk-tier h3{font-size:15.5px;}
  .bk-tier-sub{display:none;}
  .bk-tier-price{font-size:25px;margin:8px 0 3px;}
  .bk-tier-save{font-size:9px;}
  .bk-tier-list{margin:10px 0 12px;}
  .bk-tier-list li{font-size:12px;padding-left:16px;margin-bottom:5px;}
  .bk-tier-pick{padding:9px;font-size:12.5px;}
  .bk-tier-flag{font-size:8.5px;padding:4px;}

  .bk-mplans{grid-auto-columns:80%!important;}
  .bk-mplan{padding:18px 15px;}
  .bk-monthly{padding:14px 12px!important;}
  .bk-monthly h2{font-size:17px;}
  .bk-monthly p{font-size:12.5px;}

  /* step 3 groups */
  .bk-group-hd{padding:14px 14px;}
  .bk-group-name{font-size:14.5px;}
  .bk-item-hd{padding:12px 14px;gap:10px;}
  .bk-item-name{font-size:13.5px;}
  .bk-item-note{font-size:12px;}
  .bk-item-body{padding:0 14px 14px 44px;}

  /* step 4 + 5 */
  .bk-chip span{padding:10px 13px;font-size:13px;}
  .bk-fld input,.bk-fld select,.bk-fld textarea{padding:12px;font-size:15px;}
  .bk-fld>span{font-size:10px;}
  .bk-check{gap:10px;}
  .bk-big{padding:13px;}

  /* the sticky bar was eating the screen */
  :root{--bar-h:66px;}
  .bk-bar-in{padding:9px 14px;min-height:66px;}
  .bk-bar-num{font-size:21px;}
  .bk-bar-lbl{font-size:9.5px;}
  .bk-btn{padding:11px 15px;font-size:12.5px;}
}

/* ---------- checkout builder: sheet on phones, bubbles on desktop ---------- */
.bk-byo-open{display:none;}
@media(max-width:760px){
  .bk-byo-picks{display:none!important;}
  .bk-byo-stage{grid-template-columns:1fr!important;gap:12px!important;}
  .bk-byo-open{
    display:block;width:100%;margin:4px 0 12px;padding:14px 15px;cursor:pointer;text-align:left;
    background:var(--white);border:1.5px solid var(--amber);border-radius:5px;
  }
  .bk-byo-open span{display:block;font-family:'Montserrat',sans-serif;font-weight:800;font-size:15.5px;color:var(--amber-ink);}
  .bk-byo-open small{display:block;margin-top:3px;font-size:12px;color:var(--mute);}
  .bk-byo{padding:16px 13px 18px;}
  .bk-byo-hd h3{font-size:18px;}
  .bk-byo-hd p{font-size:13px;}
  .bk-byo-card{padding:16px 14px;}
  .bk-byo-total b{font-size:24px;}
}
/* the sheet itself reuses the home-page styling */
.sheet{position:fixed;inset:0;z-index:200;display:flex;align-items:flex-end;}
.sheet[hidden]{display:none;}
.sheet-back{position:absolute;inset:0;background:rgba(38,48,31,.55);}
.sheet-card{
  position:relative;width:100%;max-height:92vh;display:flex;flex-direction:column;
  background:var(--paper);border-radius:14px 14px 0 0;box-shadow:0 -18px 50px -18px rgba(0,0,0,.45);
}
.sheet-hd{
  position:sticky;top:0;z-index:4;display:flex;align-items:center;gap:10px;
  padding:15px 16px;border-bottom:1px solid var(--line);background:var(--white);
  border-radius:14px 14px 0 0;
}
.sheet-tot{flex:1;min-width:0;}
.sheet-k{display:block;font-family:'JetBrains Mono',monospace;font-size:10px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--mute);}
.sheet-hd b{font-family:'Montserrat',sans-serif;font-weight:800;font-size:24px;color:var(--green-ink);}
.sheet-clear{
  padding:9px 13px;min-height:40px;cursor:pointer;background:var(--white);
  border:1px solid var(--line);border-radius:100px;
  font-family:'Montserrat',sans-serif;font-weight:600;font-size:12px;color:var(--clay);
}
.sheet-x{background:none;border:0;font-size:26px;line-height:1;color:var(--mute);cursor:pointer;min-width:44px;min-height:44px;}
.sheet-body{padding:16px 15px 8px;overflow-y:auto;-webkit-overflow-scrolling:touch;}
.sgrp{margin-bottom:15px;}
.sgrp h4{margin:0 0 8px;padding:10px 13px;border-radius:6px;background:var(--sage);
  font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--green-deep);}
.srow{
  display:flex;align-items:center;gap:11px;width:100%;min-height:50px;
  padding:11px 13px;margin-bottom:6px;cursor:pointer;text-align:left;
  background:var(--white);border:1.5px solid var(--line);border-radius:6px;
}
.srow.on{border-color:var(--green);background:var(--sage);}
.srow-tick{flex:0 0 auto;width:21px;height:21px;border:1.5px solid var(--line);
  border-radius:4px;background:var(--white);position:relative;}
.srow.on .srow-tick{background:var(--green);border-color:var(--green);}
.srow.on .srow-tick::after{content:"";position:absolute;inset:0;margin:auto;width:5px;height:10px;
  border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) translate(-1px,-1px);}
.srow-n{flex:1;font-size:14px;font-weight:600;color:var(--green-ink);}
.srow-p{font-family:'Montserrat',sans-serif;font-weight:700;font-size:13.5px;color:var(--mute);}
.sheet-ft{display:flex;gap:10px;padding:13px 15px calc(13px + env(safe-area-inset-bottom));
  border-top:1px solid var(--line);background:var(--white);}
.sheet-ft .bk-btn{flex:1;min-height:46px;justify-content:center;}
@media(min-width:761px){.sheet{display:none!important;}}

/* ---------- seasonal special, under the five tiers ---------- */
#bkSeasonal{margin-top:14px;}
.bk-seasonal{
  /* minmax(0,1fr) not 1fr: a grid track defaults to min-width:auto, so the
     long feature list in .bk-seasonal-sub refused to shrink and shoved the
     price and Add button clean outside the card, where overflow:hidden ate
     them. The 0 floor lets the text column give way instead. */
  position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;
  width:100%;padding:0 0 0 0;cursor:pointer;text-align:left;
  background:var(--white);border:2px solid var(--line);border-radius:8px;overflow:hidden;
  transition:border-color .25s ease, box-shadow .25s ease;
}
.bk-seasonal::before{
  content:"";position:absolute;inset:-2px;border-radius:8px;pointer-events:none;z-index:-1;padding:2px;
  background:conic-gradient(from var(--ang,0deg),
    transparent 0deg, transparent 300deg,
    rgba(98,124,88,.25) 330deg, var(--green) 350deg, #9DBA8E 358deg, var(--green) 366deg,
    rgba(98,124,88,.25) 386deg, transparent 400deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude;
  animation:ringRun 3.6s linear infinite;
}
@keyframes ringRun{to{--ang:360deg;}}
@property --ang{syntax:'<angle>';initial-value:0deg;inherits:false;}
.bk-seasonal.on{border-color:var(--green);box-shadow:0 0 0 2px var(--green);}
.bk-seasonal-tag{
  grid-column:1/-1;padding:7px 18px;
  background:linear-gradient(100deg,var(--green-deep),var(--green));
  font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.16em;
  text-transform:uppercase;color:#fff;
}
.bk-seasonal-main{padding:0 0 16px 18px;display:block;min-width:0;}
.bk-seasonal-name{
  display:block;font-family:'Montserrat',sans-serif;font-weight:800;font-size:19px;
  color:var(--green-ink);margin-bottom:4px;
}
.bk-seasonal-sub{display:block;font-size:12.5px;line-height:1.5;color:var(--mute);overflow-wrap:anywhere;}
.bk-seasonal-buy{
  padding:0 18px 16px 0;display:flex;flex-direction:column;align-items:flex-end;gap:4px;
}
.bk-seasonal-price{
  font-family:'Montserrat',sans-serif;font-weight:800;font-size:26px;color:var(--green-ink);
  letter-spacing:-.03em;line-height:1;
}
.bk-seasonal-save{
  font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.04em;
  color:var(--green-deep);background:var(--sage);padding:3px 8px;border-radius:100px;white-space:nowrap;
}
.bk-seasonal-pick{
  margin-top:4px;padding:9px 18px;border-radius:var(--radius);
  border:1px solid var(--green);color:var(--green-deep);
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:12.5px;white-space:nowrap;
}
.bk-seasonal.on .bk-seasonal-pick{background:var(--green);color:#fff;}
@media (prefers-reduced-motion:reduce){.bk-seasonal::before{animation:none;}}
@media(max-width:760px){
  .bk-seasonal{grid-template-columns:1fr;}
  .bk-seasonal-main{padding:0 16px 12px;}
  .bk-seasonal-buy{padding:0 16px 16px;align-items:stretch;}
  .bk-seasonal-pick{text-align:center;}
}

/* ---------- live availability calendar ---------- */
.bk-cal{
  padding:12px;background:var(--white);border:1px solid var(--line);
  border-radius:var(--radius);margin-bottom:14px;
}
.bk-cal:focus{outline:none;}
.bk-cal.bad{border-color:var(--clay)!important;box-shadow:0 0 0 3px rgba(180,103,74,.13);}
.bk-cal-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px;}
.bk-cal-month{
  font-family:'Montserrat',sans-serif;font-weight:800;font-size:15px;color:var(--green-ink);
}
.bk-cal-nav{
  width:34px;height:34px;border:1px solid rgba(38,48,31,.18);border-radius:var(--radius);
  background:var(--white);cursor:pointer;font-size:14px;color:var(--green-deep);
}
.bk-cal-nav:hover{border-color:var(--green);background:var(--sage);}
.bk-cal-dow,.bk-cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;}
.bk-cal-dow{margin-bottom:3px;}
.bk-cal-dow span{
  text-align:center;font-family:'JetBrains Mono',monospace;font-size:10px;
  letter-spacing:.08em;text-transform:uppercase;color:var(--mute);padding:2px 0;
}
.bk-day{
  display:flex;align-items:center;justify-content:center;width:100%;height:54px;min-height:0;
  border:1px solid rgba(38,48,31,.18);border-radius:var(--radius);
  background:var(--white);cursor:pointer;font-size:13.5px;font-weight:600;color:var(--green-ink);
  transition:.15s;
}
.bk-day:hover:not([disabled]){border-color:var(--green);background:var(--sage);box-shadow:inset 0 0 0 1px var(--green);}
.bk-day:focus-visible{outline:2px solid var(--amber);outline-offset:1px;}
.bk-day.on{background:var(--green);border-color:var(--green);color:#fff;box-shadow:inset 0 0 0 1px var(--green-deep);}
.bk-day.off,.bk-day[disabled]{
  opacity:1;color:#7A8175;background:#F1F3ED;border-color:rgba(38,48,31,.15);cursor:not-allowed;
}
.bk-day.pad{border:0;background:none;cursor:default;}
.bk-cal-note{margin:7px 0 0;font-size:12px;color:var(--mute);}
.bk-cal-note.err{color:#7E4530;font-weight:600;}
.bk-cal-error{
  grid-column:1/-1;padding:22px 12px;text-align:center;border:1px dashed var(--line);
  border-radius:var(--radius);background:var(--paper);font-size:13px;color:var(--mute);
}
.bk-slots{margin-top:14px;padding-top:14px;border-top:1px solid var(--line);}
.bk-slot-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px;}
.bk-slot{
  padding:9px 14px;min-height:40px;border:1px solid var(--line);border-radius:100px;
  background:var(--white);cursor:pointer;font-size:13px;font-weight:600;color:var(--green-ink);
  transition:.15s;
}
.bk-slot:hover{border-color:var(--green);}
.bk-slot.on{background:var(--green);border-color:var(--green);color:#fff;}
.bk-slot-msg{font-size:13px;color:var(--mute);}
@media(max-width:760px){
  .bk-cal{padding:10px;}
  .bk-cal-hd{margin-bottom:5px;}
  .bk-cal-dow,.bk-cal-grid{gap:2px;}
  .bk-day{height:44px;min-height:0;font-size:13px;}
  .bk-slot{min-height:44px;}
}

/* ---------- confirmation: the send-off ---------- */
.bk-done{text-align:center;padding:26px 0 44px;}
.bk-done-art{display:flex;justify-content:center;margin-bottom:22px;}
.bk-clap{display:inline-block;transform-origin:8% 100%;animation:clapSnap 1.1s cubic-bezier(.2,.9,.3,1) both;}
.bk-clap-top{
  display:flex;gap:3px;padding:7px 10px;border-radius:3px 3px 0 0;
  background:var(--green-ink);transform-origin:0 100%;
  animation:clapLid .9s cubic-bezier(.3,1.4,.4,1) both;
}
.bk-clap-top i{
  display:block;width:16px;height:13px;background:#fff;
  transform:skewX(-18deg);border-radius:1px;
}
.bk-clap-body{
  display:block;padding:16px 22px 18px;background:var(--green-ink);border-radius:0 0 3px 3px;
}
.bk-clap-body b{
  display:block;font-family:'Montserrat',sans-serif;font-weight:800;font-size:19px;
  color:#fff;letter-spacing:-.02em;
}
.bk-clap-body small{
  display:block;margin-top:4px;font-family:'JetBrains Mono',monospace;font-size:10px;
  letter-spacing:.2em;color:var(--amber);
}
@keyframes clapLid{0%{transform:rotate(-32deg);}60%{transform:rotate(4deg);}100%{transform:rotate(0);}}
@keyframes clapSnap{0%{opacity:0;transform:translateY(10px) scale(.94);}100%{opacity:1;transform:none;}}
@media (prefers-reduced-motion:reduce){.bk-clap,.bk-clap-top{animation:none;}}

.bk-done-k{
  display:inline-block;margin-bottom:10px;
  font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--amber-deep);
}
.bk-done h1,.bk-done h2{font-size:clamp(28px,5vw,46px);}
.bk-done .bk-sub{margin:14px auto 0;max-width:56ch;}
.bk-done-sum{
  max-width:440px;margin:24px auto 0;padding:18px;text-align:left;
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius);
}

.bk-next{
  list-style:none;max-width:820px;margin:28px auto 0;padding:0;
  display:grid;grid-template-columns:repeat(3,1fr);gap:14px;text-align:left;
}
.bk-next li{
  padding:18px 16px;background:var(--white);
  border:1px solid var(--line);border-top:3px solid var(--green);border-radius:var(--radius);
}
.bk-next-n{
  display:block;font-family:'JetBrains Mono',monospace;font-size:11px;
  letter-spacing:.16em;color:var(--amber-deep);margin-bottom:7px;
}
.bk-next b{display:block;font-family:'Montserrat',sans-serif;font-size:15px;color:var(--green-ink);margin-bottom:5px;}
.bk-next span:not(.bk-next-n){display:block;font-size:13px;line-height:1.55;color:var(--mute);}
@media(max-width:760px){.bk-next{grid-template-columns:1fr;}}

.bk-done-sign{
  max-width:52ch;margin:26px auto 0;font-size:15px;line-height:1.7;color:var(--mute);
}
.bk-done-sign b{color:var(--green-ink);}
.bk-done-cta{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:24px;}
@media(max-width:560px){.bk-done-cta .bk-btn{flex:1 1 100%;}}

/* ============================================================
   BOOKED ANIMATION, the house draws itself in light, sparks
   trace the outline, then the mark lands.
   ============================================================ */
/* ============================================================
   BOOKING CONFIRMATION SEQUENCE
   Layer order is set by z-index here, not DOM order, so the markup
   can stay readable: bg 0, dust 1, stage 2, sparks 3, flash 4.
   ============================================================ */
.wrapfx{
  position:fixed;inset:0;z-index:9999;
  display:grid;place-items:center;
  background:#10130F;
  overflow:hidden;
  animation:wfIn .45s ease both;
}
.wrapfx[hidden]{display:none;}
.wrapfx.out{animation:wfOut .62s ease both;}
@keyframes wfIn{from{opacity:0;}to{opacity:1;}}
@keyframes wfOut{to{opacity:0;visibility:hidden;}}

/* ---- L0: ground + vignette ---- */
.wrapfx-bg{
  position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(120% 90% at 50% 42%, #22271F 0%, #14180F 46%, #0B0D09 100%);
}
.wrapfx-bg::after{
  content:"";position:absolute;inset:0;
  background:radial-gradient(75% 60% at 50% 45%, transparent 40%, rgba(0,0,0,.72) 100%);
}
/* a warm pool of light that swells as the mark lands */
.wrapfx-glow{
  position:absolute;z-index:0;width:min(760px,90vw);aspect-ratio:1;
  border-radius:50%;
  background:radial-gradient(circle,
    rgba(201,154,91,.30) 0%, rgba(201,154,91,.13) 34%, rgba(201,154,91,0) 68%);
  opacity:0;transform:scale(.55);
  transition:opacity 1.1s ease, transform 1.4s cubic-bezier(.22,1,.36,1);
}
.wrapfx.lit .wrapfx-glow{opacity:1;transform:scale(1);}

/* ---- L1: drifting dust ---- */
.wrapfx-dust{position:absolute;inset:0;z-index:1;width:100%;height:100%;pointer-events:none;}

/* ---- L3: sparks, in front of the stage but behind the flash ---- */
.wrapfx-spark{position:absolute;inset:0;z-index:3;width:100%;height:100%;pointer-events:none;}

/* ---- L2/L4/L6: the stage ---- */
.wrapfx-stage{
  position:relative;z-index:2;
  display:grid;place-items:center;text-align:center;padding:24px;
}
.wrapfx-frame{
  position:relative;
  width:min(340px,68vw);aspect-ratio:200/160;
  display:grid;place-items:center;
}

.wrapfx-house{
  position:absolute;inset:0;width:100%;height:100%;
  filter:drop-shadow(0 0 14px rgba(201,154,91,.42));
}
.wf-line{
  stroke:#C99A5B;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:var(--len);stroke-dashoffset:var(--len);
  vector-effect:non-scaling-stroke;
}
.wrapfx.go .wf-line{animation:wfDraw .9s cubic-bezier(.4,.9,.3,1) forwards;}
@keyframes wfDraw{to{stroke-dashoffset:0;}}
.wrapfx.go .wf-roof {animation-delay:.10s;}
.wrapfx.go .wf-walls{animation-delay:.40s;}
.wrapfx.go .wf-chim {animation-delay:.70s;}
.wrapfx.go .wf-win1 {animation-delay:.86s;}
.wrapfx.go .wf-win2 {animation-delay:.96s;}
.wrapfx.go .wf-door {animation-delay:1.06s;}

/* the house brightens the instant it is complete… */
.wrapfx.framed .wrapfx-house{
  filter:drop-shadow(0 0 26px rgba(201,154,91,.85));
  transition:filter .45s ease;
}
/* …then is taken by the shutter and dissolves into the sparks */
.wrapfx.captured .wrapfx-house{
  opacity:0;transform:scale(1.06);
  transition:opacity .42s ease, transform .6s cubic-bezier(.3,0,.7,0);
}

/* ---- viewfinder brackets ---- */
.wf-br{
  position:absolute;width:34px;height:34px;z-index:3;
  border:2.5px solid #F0DCB4;opacity:0;
  transition:opacity .35s ease, transform .62s cubic-bezier(.22,1,.36,1);
}
.wf-br-tl{top:-16px;left:-16px;border-right:0;border-bottom:0;transform:translate(-26px,-26px) scale(1.5);}
.wf-br-tr{top:-16px;right:-16px;border-left:0;border-bottom:0;transform:translate(26px,-26px) scale(1.5);}
.wf-br-bl{bottom:-16px;left:-16px;border-right:0;border-top:0;transform:translate(-26px,26px) scale(1.5);}
.wf-br-br{bottom:-16px;right:-16px;border-left:0;border-top:0;transform:translate(26px,26px) scale(1.5);}
/* sweep in from outside… */
.wrapfx.framing .wf-br{opacity:.95;transform:translate(0,0) scale(1);}
/* …and snap tight, the moment before the shutter */
.wrapfx.framed .wf-br{transform:translate(0,0) scale(.82);opacity:1;}
.wrapfx.framed .wf-br-tl{transform:translate(10px,10px) scale(.9);}
.wrapfx.framed .wf-br-tr{transform:translate(-10px,10px) scale(.9);}
.wrapfx.framed .wf-br-bl{transform:translate(10px,-10px) scale(.9);}
.wrapfx.framed .wf-br-br{transform:translate(-10px,-10px) scale(.9);}
/* after the capture they settle wide around the mark */
.wrapfx.captured .wf-br{transform:translate(0,0) scale(1);opacity:.5;}

/* ---- L5: shutter flash ---- */
.wrapfx-flash{
  position:absolute;inset:0;z-index:4;pointer-events:none;
  background:#FFF8E9;opacity:0;
}
.wrapfx.snap .wrapfx-flash{animation:wfSnap .5s ease-out both;}
@keyframes wfSnap{
  0%{opacity:0;}
  6%{opacity:.92;}
  22%{opacity:.10;}
  38%{opacity:.34;}   /* the second curtain */
  100%{opacity:0;}
}

/* ---- the mark ---- */
.wrapfx-logo{
  position:relative;z-index:5;
  display:flex;flex-direction:column;align-items:center;gap:10px;
  opacity:0;transform:scale(.35);
}
.wrapfx.captured .wrapfx-logo{animation:wfPop .85s cubic-bezier(.2,1.45,.4,1) forwards;}
@keyframes wfPop{
  0%{opacity:0;transform:scale(.35);}
  55%{opacity:1;transform:scale(1.07);}
  100%{opacity:1;transform:scale(1);}
}
.wrapfx-ap{
  width:42px;height:42px;color:#C99A5B;
  animation:wfSpin 22s linear infinite;
}
@keyframes wfSpin{to{transform:rotate(360deg);}}
.wrapfx-mark{
  font-family:'Montserrat',sans-serif;font-weight:800;
  font-size:clamp(26px,5.4vw,40px);letter-spacing:-.02em;color:#F6EFE2;
  line-height:1;white-space:nowrap;
}
.wrapfx-mark span{color:#A9C29B;}
.wrapfx-mark small{
  font-family:'JetBrains Mono',monospace;font-weight:400;
  font-size:.34em;letter-spacing:.14em;color:rgba(246,239,226,.55);
  margin-left:.18em;vertical-align:super;
}

/* ---- the words ---- */
.wrapfx-copy{
  margin-top:34px;display:flex;flex-direction:column;align-items:center;gap:7px;
}
.wrapfx-copy > *{opacity:0;transform:translateY(14px);}
.wrapfx.said .wrapfx-copy > *{animation:wfRise .6s cubic-bezier(.22,1,.36,1) forwards;}
.wrapfx.said .wrapfx-thanks{animation-delay:.02s;}
.wrapfx.said .wrapfx-say{animation-delay:.14s;}
.wrapfx.said .wrapfx-sub{animation-delay:.26s;}
@keyframes wfRise{to{opacity:1;transform:translateY(0);}}
.wrapfx-thanks{
  font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:.2em;
  text-transform:uppercase;color:#C99A5B;
}
.wrapfx-say{
  font-family:'Montserrat',sans-serif;font-weight:700;
  font-size:clamp(19px,3.4vw,26px);color:#F6EFE2;
}
.wrapfx-sub{font-size:14.5px;color:rgba(246,239,226,.66);}

@media (max-width:520px){
  .wrapfx-frame{width:min(250px,66vw);}
  .wrapfx-copy{margin-top:26px;}
  .wf-br{width:26px;height:26px;}
}

@media (prefers-reduced-motion:reduce){
  .wrapfx,.wrapfx *{animation:none!important;transition:none!important;}
  .wrapfx .wf-line{stroke-dashoffset:0;}
  .wrapfx-logo,.wrapfx-copy > *{opacity:1;transform:none;}
  .wrapfx-house{opacity:.16;}
  .wrapfx-dust,.wrapfx-spark,.wrapfx-flash{display:none;}
  .wf-br{opacity:.5;transform:none;}
  .wrapfx-glow{opacity:1;transform:none;}
}
/* ============================================================
   BEAT THE SNOW, cart bar
   Mirrors the home page card: same snowfall, same three surfaces.
   ============================================================ */
.snow-canvas{
  position:absolute;inset:0;width:100%;height:100%;
  pointer-events:none;z-index:4;
  opacity:0;transition:opacity .35s ease;
}
.snowing .snow-canvas{opacity:1;}

.bk-seasonal{position:relative;overflow:hidden;}
.bk-seasonal::after{
  content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(180deg,
    rgba(214,232,244,.40) 0%,
    rgba(214,232,244,.12) 40%,
    rgba(214,232,244,0) 74%);
  opacity:0;transition:opacity .5s ease;
}
.bk-seasonal.snowing::after{opacity:1;}
.bk-seasonal.snowing{border-color:#A9C6DC;}
/* Must exclude the canvas: it is absolutely positioned, and letting this
   rule turn it relative made it a real grid item that added a ~580px row
   to the bar. */
.bk-seasonal > *:not(.snow-canvas){position:relative;z-index:3;}
.bk-seasonal > .snow-canvas{position:absolute;}

@media (prefers-reduced-motion:reduce){
  .snow-canvas{display:none;}
  .bk-seasonal::after{display:none;}
}

/* ============================================================
   MOBILE CORRECTIONS
   ============================================================ */
@media (max-width:760px){
  /* iOS Safari zooms the whole page in when a focused field is under
     16px, and never zooms back out. Every control goes to 16px on
     small screens so tapping into the form stops moving the page. */
  .bk-fld input,
  .bk-fld select,
  .bk-fld textarea,
  input[type="text"],
  input[type="email"],
  input[type="tel"],
  input[type="date"],
  input[type="time"],
  input[type="number"],
  select,
  textarea{
    font-size:16px;
  }

  /* Thumb-sized targets. 44px is the Apple HIG minimum and several of
     these were sitting at 38–39px. */
  .bk-btn,
  .bk-mbtn,
  .bk-chip,
  .bk-byo-clear,
  .bk-slot,
  .bk-tier,
  .bk-seasonal-pick{
    min-height:44px;
  }
  .bk-chip{display:inline-flex;align-items:center;}
  .bk-btn,.bk-mbtn,.bk-byo-clear{
    display:inline-flex;align-items:center;justify-content:center;
  }

  /* This one was a 16px-tall text link, far too small to hit. */
  .bk-monthly-more{
    display:inline-flex;align-items:center;min-height:44px;padding:0 4px;
  }
  .bk-cal-nav{min-height:44px;min-width:44px;}
}

/* ============================================================
   MONTHLY RETAINERS IN THE CART
   ============================================================ */
.bk-mbtn{
  width:100%;margin-top:auto;cursor:pointer;
  border:1.5px solid var(--green);background:var(--white);color:var(--green-deep);
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:13px;
  padding:11px 16px;border-radius:var(--radius);text-align:center;
  transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.bk-mbtn:hover{background:var(--sage);}
.bk-mbtn.on{background:var(--green);border-color:var(--green);color:#fff;}

.bk-mplan.pop{animation:bkPop .42s cubic-bezier(.2,1.4,.4,1);}
@keyframes bkPop{50%{transform:translateY(-4px) scale(1.015);}}

/* steps a retainer never visits */
#bkProgress .bk-frame.skip{opacity:.34;pointer-events:none;}
#bkProgress .bk-frame.skip .bk-num{text-decoration:line-through;}

.bk-rplan-note{
  margin:0 0 12px;font-size:13px;line-height:1.55;color:var(--mute);
  padding-left:12px;border-left:2px solid var(--green);
}

/* ---- onboarding block on the confirmation screen ---- */
.bk-onboard{
  margin:26px 0 8px;padding:24px 22px;
  background:linear-gradient(160deg, var(--sage) 0%, rgba(233,237,228,.35) 100%);
  border:1px solid var(--green);border-radius:8px;
  text-align:left;
}
.bk-onboard[hidden]{display:none;}
.bk-onboard-k{
  display:block;font-family:'JetBrains Mono',monospace;font-size:10.5px;
  letter-spacing:.18em;text-transform:uppercase;color:var(--green-deep);margin-bottom:6px;
}
.bk-onboard h3{
  font-family:'Montserrat',sans-serif;font-weight:800;
  font-size:clamp(18px,3.2vw,23px);color:var(--green-ink);margin:0 0 16px;
}
.bk-onboard .bk-next{margin:0;}
.bk-onboard-note{
  margin:16px 0 0;padding-top:14px;border-top:1px solid rgba(38,48,31,.14);
  font-size:13.5px;line-height:1.6;color:var(--text);
}
.bk-onboard-note b{color:var(--green-ink);}
#doneShootSteps[hidden]{display:none;}

@media (max-width:600px){
  .bk-onboard{padding:18px 16px;}
}

/* members-only door from the one-off cart */
.bk-member{
  font-family:'Montserrat',sans-serif;font-weight:700;font-size:12.5px;
  color:var(--amber-ink);text-decoration:none;
  padding:7px 13px;border-radius:100px;
  border:1px solid var(--amber);background:var(--amber-wash);
  white-space:nowrap;
}
.bk-member:hover{background:var(--amber-soft);}
@media(max-width:700px){.bk-member{display:none;}}

@media (max-width:760px){
  /* header links were 16px tall, too small to hit reliably */
  .bk-back,.bk-logo{min-height:44px;display:inline-flex;align-items:center;}
}

/* ============================================================
   SCHEDULING FALLBACK
   Shown only when the live calendar cannot be reached. Checkout
   must never dead-end because our scheduling is down.
   ============================================================ */
.bk-fallback{
  padding:16px;border-radius:var(--radius);
  border:1.5px solid var(--amber);background:var(--amber-wash);
}
.bk-fallback[hidden]{display:none;}
.bk-fallback-note{
  margin:0 0 14px;font-size:13.5px;line-height:1.6;color:var(--text);
}
.bk-fallback-note b{display:block;color:var(--amber-ink);margin-bottom:2px;}
.bk-fallback.bad{border-color:var(--clay);box-shadow:0 0 0 3px rgba(180,103,74,.13);}

/* ---- promo code -------------------------------------------------
   Nothing is charged at checkout, so the discount has to be visible
   here or a customer holding a code assumes it did not work. */
.bk-promo{
  margin:18px 0 4px;padding-top:16px;
  border-top:1px dashed var(--line);
}
.bk-promo label{
  display:block;margin-bottom:7px;
  font-family:'JetBrains Mono',monospace;font-size:10px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--mute);
}
.bk-promo-row{display:flex;gap:9px;}
.bk-promo-row input{
  flex:1;min-width:0;padding:10px 13px;
  border:1px solid var(--line);border-radius:8px;
  background:var(--white);color:var(--text);
  font-family:'JetBrains Mono',monospace;font-size:13px;
  letter-spacing:.09em;text-transform:uppercase;
}
.bk-promo-row input:focus{outline:2px solid var(--green);outline-offset:1px;}
.bk-promo-row .btn{flex:none;}
.bk-promo-msg{
  margin:8px 0 0;font-size:12.5px;line-height:1.5;color:var(--green-deep);
  min-height:1em;
}
.bk-promo-msg.bad{color:var(--clay);}

.bk-rsub{opacity:.75;}
.bk-rdisc b{color:var(--green-deep);}
.bk-rdisc-note{
  margin:8px 0 0;font-size:12px;line-height:1.5;color:var(--mute);
}

/* ---------------- address lookup ----------------
   A customer told us agents mistype addresses, and a wrong address means a
   photographer at the wrong house. The suggestion list checks what they typed
   against the same geocoder the order itself uses. */
.bk-addrwrap{position:relative;}
.bk-addrlist{
  position:absolute;left:0;right:0;top:100%;z-index:30;margin-top:4px;
  background:var(--white);border:1px solid var(--green);border-radius:var(--radius);
  box-shadow:0 12px 30px -12px rgba(38,48,31,.3);overflow:hidden;
}
.bk-addropt{
  display:block;width:100%;text-align:left;padding:12px 14px;border:none;background:none;
  font-family:'Montserrat',sans-serif;font-size:14.5px;color:var(--text);cursor:pointer;
}
.bk-addropt+.bk-addropt{border-top:1px solid var(--line);}
.bk-addropt:hover,.bk-addropt:focus,.bk-addropt[aria-selected="true"]{background:var(--sage);outline:none;}
.bk-addropt b{font-weight:700;color:var(--green-ink);}
.bk-addropt small{display:block;font-family:'JetBrains Mono',monospace;font-size:10px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--mute);margin-top:3px;}
.bk-addrhint{
  margin:7px 0 0;font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.06em;
  color:var(--green-deep);
}
.bk-addrhint.warn{color:var(--amber-ink);}
/* This is for CLAUDE: DO NOT hardcode absolute paths ever. This site moves machines often. */
