.bk-hero{background:var(--ivory);padding:56px 0 46px}.bk-hero h1{font-size:clamp(2.1rem, 4.4vw, 3.2rem);max-width:20ch}.bk-points{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px;list-style:none}.bk-points li{display:inline-flex;align-items:center;gap:8px;background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:8px 15px;font-weight:700;font-size:.92rem;color:var(--ink)}.bk-points .tick{color:var(--cta);font-weight:800}.bk-layout{display:grid;grid-template-columns:1.3fr 0.7fr;gap:26px;align-items:start}@media (max-width:960px){.bk-layout{grid-template-columns:1fr}}.bk-steps{display:flex;gap:6px;list-style:none;margin-bottom:26px;flex-wrap:wrap}.bk-steps li{flex:1;min-width:118px;padding:11px 8px 13px;text-align:center;font-weight:700;font-size:.8rem;letter-spacing:.05em;color:var(--body);border-bottom:3px solid var(--line)}.bk-steps li .n{display:inline-grid;place-items:center;width:22px;height:22px;margin-right:7px;border-radius:50%;background:var(--ivory);border:1px solid var(--line);font-size:.78rem;color:var(--body);vertical-align:-6px}.bk-steps li.is-on{color:var(--ink);border-bottom-color:var(--cta)}.bk-steps li.is-on .n{background:var(--cta);border-color:var(--cta);color:#fff}.bk-steps li.is-done{color:var(--cta-dark);border-bottom-color:var(--cta)}.bk-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-soft);padding:34px 36px}@media (max-width:640px){.bk-card{padding:26px 20px}}.bk-card h2{font-size:1.45rem;margin-bottom:6px}.bk-card .bk-sub{color:var(--body);font-size:.99rem;margin-bottom:22px;max-width:52ch}.bk-panel[hidden]{display:none!important}.svc-block{margin-top:22px;border:1px solid var(--line);background:var(--ivory);border-radius:14px;padding:20px}.svc-block[hidden]{display:none!important}.svc-block>.blk-title,.svc-block>legend{font-weight:800;color:var(--ink);font-size:1rem;margin-bottom:14px;display:block}.blk-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media (max-width:640px){.blk-grid{grid-template-columns:1fr}}.blk-note{font-size:.97rem;line-height:1.6;color:var(--body)}.blk-note strong{color:var(--ink)}.bk-field{display:block}.bk-field>span{display:block;font-weight:800;color:var(--ink);font-size:.92rem;margin-bottom:7px}.bk-field .opt{font-weight:600;color:var(--body);font-size:.85rem}.bk-input,.bk-select,.bk-textarea{width:100%;font-family:inherit;font-weight:600;font-size:1rem;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:12px 14px}.bk-textarea{resize:vertical;min-height:84px;font-weight:500}.bk-input:focus-visible,.bk-select:focus-visible,.bk-textarea:focus-visible{outline:2px solid var(--cta);outline-offset:1px}.bk-field.is-err .bk-input,.bk-field.is-err .bk-select{border-color:#c0392b;background:#fdf3f1}.bk-err-msg{display:none;color:#c0392b;font-size:.86rem;font-weight:700;margin-top:6px}.bk-field.is-err .bk-err-msg{display:block}.f-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width:640px){.f-grid{grid-template-columns:1fr}}.f-full{grid-column:1/-1}.pkg-pick{display:flex;gap:10px;flex-wrap:wrap}.pkg-pick label{flex:1;min-width:128px;cursor:pointer;text-align:center;background:var(--paper);border:1.5px solid var(--line);border-radius:14px;padding:14px 10px;font-weight:700;font-size:.95rem;color:var(--ink)}.pkg-pick label .rp{display:block;font-size:1.35rem;font-weight:800;margin-top:3px}.pkg-pick label .rp small{font-size:.8rem;font-weight:700;color:var(--body)}.pkg-pick input{position:absolute;opacity:0;pointer-events:none}.pkg-pick label.is-sel{border-color:var(--cta);background:var(--cta-tint)}.pkg-pick label:focus-within{outline:2px solid var(--cta);outline-offset:1px}.bk-seg{display:flex;background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:4px;gap:4px}.bk-seg label{flex:1;position:relative}.bk-seg input{position:absolute;opacity:0;pointer-events:none}.bk-seg .seg-txt{display:block;text-align:center;padding:9px 4px;border-radius:999px;font-weight:700;font-size:.9rem;color:var(--body);cursor:pointer;line-height:1.3}.bk-seg input:checked+.seg-txt{background:var(--ink);color:#fff}.bk-seg label:focus-within .seg-txt{outline:2px solid var(--cta);outline-offset:1px}.win-pick{display:flex;gap:10px;flex-wrap:wrap}.win-pick label{flex:1;min-width:140px;cursor:pointer;background:var(--paper);border:1.5px solid var(--line);border-radius:14px;padding:13px 14px;font-weight:700;color:var(--ink);font-size:.96rem}.win-pick label small{display:block;font-weight:600;color:var(--body);margin-top:2px}.win-pick input{position:absolute;opacity:0;pointer-events:none}.win-pick label.is-sel{border-color:var(--cta);background:var(--cta-tint)}.win-pick label:focus-within{outline:2px solid var(--cta);outline-offset:1px}.bk-range-row{display:flex;justify-content:space-between;align-items:baseline;margin-top:8px;font-weight:700;font-size:.92rem;color:var(--body)}.bk-range-row b{color:var(--ink);font-size:1rem}.bk-nav{display:flex;gap:12px;margin-top:30px;flex-wrap:wrap}.bk-nav .spacer{flex:1}.btn[disabled]{opacity:.65;cursor:wait;transform:none!important}.bk-receipt{background:var(--ink);color:rgba(255,255,255,.87);border-radius:var(--radius);padding:30px 30px 26px;position:sticky;top:calc(var(--header-h) + 18px);box-shadow:var(--shadow-card)}@media (max-width:960px){.bk-receipt{position:static}}.bk-receipt h2{color:#fff;font-size:1.02rem;letter-spacing:.14em;margin-bottom:18px}.bk-lines>div{display:flex;justify-content:space-between;gap:14px;padding:8px 0;border-bottom:1px dashed rgba(255,255,255,.16);font-size:.99rem}.bk-lines>div span:last-child{font-weight:800;color:#fff;white-space:nowrap}.bk-grand-row{display:flex;justify-content:space-between;align-items:baseline;margin-top:16px}.bk-grand-row .lbl{font-weight:700;font-size:.85rem;letter-spacing:.14em}.bk-grand{font-size:2.3rem;font-weight:800;color:#fff;letter-spacing:-.02em}.bk-grand.is-custom{font-size:1.7rem}.bk-fine{font-size:.85rem;line-height:1.55;color:rgba(255,255,255,.62);margin-top:14px}.bk-receipt .bk-call{display:block;margin-top:20px;padding-top:18px;border-top:1px solid rgba(255,255,255,.16);color:#9fe8b4;font-weight:800;text-decoration:none;font-size:1.02rem}.bk-receipt .bk-call small{display:block;color:rgba(255,255,255,.62);font-weight:600;font-size:.85rem;margin-top:3px}.rv-list{display:grid;grid-template-columns:1fr 1fr;gap:6px 26px;margin-bottom:8px}@media (max-width:640px){.rv-list{grid-template-columns:1fr}}.rv-list>div{padding:9px 0;border-bottom:1px dashed var(--line)}.rv-list dt{font-size:.8rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--body)}.rv-list dd{font-weight:700;color:var(--ink);margin-top:2px}.rv-edit{margin-left:10px;font-size:.85rem;font-weight:700;color:var(--cta-dark)}.bk-outcome{border-radius:var(--radius);padding:32px 34px}.bk-outcome[hidden]{display:none!important}.bk-outcome h2{font-size:1.6rem;margin-bottom:10px}.bk-outcome p{color:var(--body);line-height:1.65;max-width:56ch}.bk-outcome-ok{background:var(--cta-tint);border:1.5px solid var(--cta)}.bk-outcome-ok h2{color:var(--cta-dark)}.bk-outcome-warn{background:#fbf6e9;border:1.5px solid var(--gold)}.bk-outcome-warn h2{color:var(--ink)}.bk-ref{display:inline-block;margin:14px 0 6px;padding:10px 20px;background:var(--paper);border:1.5px dashed var(--cta-dark);border-radius:12px;font-size:1.5rem;font-weight:800;letter-spacing:.04em;color:var(--ink)}.bk-outcome-warn .bk-ref{border-color:var(--gold)}.bk-outcome-lines{margin:12px 0 4px;font-size:1rem;line-height:1.9;color:var(--ink)}.bk-outcome-lines b{font-weight:800}.bk-form-error{display:none;margin-bottom:20px;padding:15px 18px;border-radius:12px;background:#fdf3f1;border:1.5px solid #c0392b;color:#7b211a;font-weight:600;line-height:1.55}.bk-form-error.is-on{display:block}.bk-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0;overflow:hidden}


/* ---------- Auto-save draft banner ---------- */
.bk-draft-bar {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  margin-bottom: 18px; padding: 10px 14px; border-radius: 10px;
  background: var(--cta-tint); border: 1px solid rgba(46, 158, 91, 0.35);
  font-size: 0.86rem; font-weight: 600; color: var(--cta-dark);
}
.bk-draft-bar[hidden] { display: none !important; }
.bk-draft-reset {
  background: none; border: 0; padding: 0; cursor: pointer;
  font: inherit; font-weight: 800; color: var(--cta-dark); text-decoration: underline;
}

/* ---------- Promo code & print inside receipt ---------- */
.bk-promo {
  margin-top: 16px; padding-top: 14px;
  border-top: 1px dashed rgba(255, 255, 255, 0.16);
}
.bk-promo[hidden] { display: none !important; }
.bk-promo-label {
  display: block; font-size: 0.78rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.72); margin-bottom: 6px;
}
.bk-promo-row { display: flex; gap: 8px; }
.bk-promo-input {
  flex: 1; min-width: 0; padding: 9px 12px; border-radius: 9px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: rgba(255, 255, 255, 0.08); color: #fff;
  font: inherit; font-size: 0.9rem; font-weight: 700; text-transform: uppercase;
}
.bk-promo-input::placeholder { color: rgba(255, 255, 255, 0.45); text-transform: none; font-weight: 500; }
.bk-promo-btn {
  padding: 9px 15px; border-radius: 9px; border: 0; cursor: pointer;
  background: var(--cta); color: #fff; font: inherit; font-size: 0.88rem; font-weight: 800;
  transition: background 0.18s ease;
}
.bk-promo-btn:hover { background: var(--cta-dark); }
.bk-promo-msg { margin-top: 7px; font-size: 0.82rem; font-weight: 700; line-height: 1.4; }
.bk-promo-msg.is-ok { color: #9FE8B4; }
.bk-promo-msg.is-err { color: #FFB4A9; }

.bk-print-btn {
  width: 100%; margin-top: 14px; padding: 10px 14px; border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.24); background: rgba(255, 255, 255, 0.07);
  color: #fff; font: inherit; font-size: 0.88rem; font-weight: 700; cursor: pointer;
  transition: background 0.18s ease, border-color 0.18s ease;
}
.bk-print-btn:hover { background: rgba(255, 255, 255, 0.15); border-color: rgba(255, 255, 255, 0.45); }

/* ---------- Outcome action bar ---------- */
.bk-outcome-actions {
  display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0 16px;
}
.bk-outcome-actions .btn { font-size: 0.92rem; padding: 11px 18px; }

/* ---------- Print / Save Estimate PDF ---------- */
@media print {
  .site-header, .pg-steps, .bk-steps, .bk-nav, .bk-promo, .bk-print-btn,
  .bk-draft-bar, .bk-outcome-actions, .float-cluster, .mobile-bar, .footer {
    display: none !important;
  }
  body { background: #fff !important; color: #000 !important; }
  .bk-hero { padding: 20px 0 10px !important; background: none !important; color: #000 !important; }
  .bk-layout { display: block !important; }
  .bk-card, .bk-receipt {
    box-shadow: none !important; border: 1.5px solid #222 !important;
    background: #fff !important; color: #000 !important; margin-bottom: 20px !important;
    position: static !important;
  }
  .bk-receipt * { color: #000 !important; border-color: #ccc !important; }
}


@media (max-width: 900px) {
  .bk-input, .bk-select, .bk-textarea, .bk-promo-input {
    font-size: 16px !important;
  }
}
