/* ==========================================================
   base.css – shared styles for all KalkulatoryZL calculators
   All selectors scoped under .kl-calc to avoid WP conflicts.
   Fonts are enqueued via wp_enqueue_style() – no @import here.
   ========================================================== */

/* ── Variables & host element ─────────────────────────────── */
.kl-calc {
  --bg:#f4f2ee;
  --card:#ffffff;
  --border:#e4e0d8;
  --border-h:#c8c3b8;
  --t1:#1a1715;
  --t2:#3d3832;
  --t3:#6b6560;
  --t4:#9d968f;
  --t5:#c4bfb7;
  --green:#1e6b30;
  --green-l:#28873e;
  --green-bg:#e8f5eb;
  --green-border:#b8ddc2;
  --gold:#b8872b;
  --gold-l:#d4a03a;
  --gold-bg:#fdf5e6;
  --red:#b33;
  --red-bg:#fde8e8;
  --R:12px;
  --RL:18px;
  --F:'Plus Jakarta Sans',system-ui,sans-serif;
  --M:'JetBrains Mono',monospace;
  --sh:0 1px 3px rgba(0,0,0,.04),0 10px 28px rgba(0,0,0,.07);

  font-family: var(--F);
  background: var(--bg);
  color: var(--t1);
  line-height: 1.55;
}

/* ── Scoped reset ─────────────────────────────────────────── */
.kl-calc *,
.kl-calc *::before,
.kl-calc *::after { box-sizing:border-box; margin:0; padding:0 }

.kl-calc img { max-width:100%; display:block }

/* ── Header ───────────────────────────────────────────────── */
.kl-calc .hdr{background:var(--t1);padding:.65rem 0;position:sticky;top:0;z-index:100;border-bottom:3px solid var(--gold)}
.kl-calc .hdr-in{max-width:1200px;margin:0 auto;padding:0 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.kl-calc .logo{display:flex;align-items:center;gap:.65rem;min-width:0}
.kl-calc .logo img{height:32px;border-radius:4px;flex-shrink:0}
.kl-calc .logo h1{color:#fff;font-size:.95rem;font-weight:700;letter-spacing:-.02em;line-height:1.2}
.kl-calc .logo small{display:block;font-size:.65rem;color:var(--t4);font-weight:400;letter-spacing:.03em}
.kl-calc .hdr-price{text-align:right}
.kl-calc .hdr-price .lbl{font-size:.55rem;text-transform:uppercase;letter-spacing:.08em;color:var(--t4)}
.kl-calc .hdr-price .val{font-family:var(--M);font-size:1.3rem;font-weight:700;color:var(--gold-l);letter-spacing:-.01em}
.kl-calc .hdr-price .sub{font-size:.7rem;color:var(--t4)}

/* ── Hero ─────────────────────────────────────────────────── */
.kl-calc .hero{max-width:1200px;margin:1.6rem auto;padding:0 1.5rem;display:flex;gap:2rem;align-items:center;flex-wrap:wrap}
.kl-calc .hero img{height:210px;object-fit:contain;flex-shrink:0}
.kl-calc .hero-txt{min-width:0}
.kl-calc .hero-txt h2{font-size:1.7rem;font-weight:800;letter-spacing:-.03em;line-height:1.15}
.kl-calc .hero-txt p{margin-top:.65rem;font-size:.92rem;color:var(--t3);max-width:520px;line-height:1.65}

/* ── Steps / Layout ───────────────────────────────────────── */
.kl-calc .steps{max-width:1200px;margin:0 auto;padding:0 1.5rem 3rem}
.kl-calc .layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:1.5rem;align-items:start}
.kl-calc .sidebar{position:sticky;top:68px}

.kl-calc .step{margin-bottom:1.65rem;border-radius:12px;padding:.5rem;transition:box-shadow .3s,border .3s;border:2px solid transparent}
.kl-calc .step.step-missing{border-color:#c9103f;box-shadow:0 0 0 3px rgba(201,16,63,.15)}
.kl-calc .step.step-missing .step-hdr .num{background:#c9103f;animation:klPulse .8s ease 2}
@keyframes klPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.25)}}
.kl-calc .step-hdr{display:flex;align-items:center;gap:.8rem;margin-bottom:.95rem;padding:.35rem 0}
.kl-calc .step-hdr img{width:44px;height:44px;border-radius:50%;flex-shrink:0}
.kl-calc .step-hdr .num{width:28px;height:28px;border-radius:50%;background:var(--green);color:#fff;font-family:var(--M);font-size:.75rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.kl-calc .step-hdr h3{font-size:1rem;font-weight:700;letter-spacing:-.01em;line-height:1.25}
.kl-calc .step-hdr .hint{font-size:.75rem;color:var(--t4);font-weight:400;line-height:1.45}

/* ── Model grid / cards ───────────────────────────────────── */
.kl-calc .mgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.75rem}
.kl-calc .mcard{
  background:var(--card);
  border:2px solid var(--border);
  border-radius:var(--RL);
  padding:1rem;
  padding-top:2.35rem;
  cursor:pointer;
  transition:all .16s ease;
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  min-height:164px;
  text-align:left;
  overflow:hidden;
}
.kl-calc .mcard:hover{border-color:var(--green-l);transform:translateY(-2px);box-shadow:var(--sh)}
.kl-calc .mcard.sel{border-color:var(--green);background:var(--green-bg);box-shadow:0 0 0 3px rgba(30,107,48,.12)}
.kl-calc .mcard .badge{
  position:absolute;
  top:.72rem;
  left:.9rem;
  max-width:calc(100% - 1.8rem);
  font-size:.55rem;
  font-weight:800;
  padding:.2rem .48rem;
  border-radius:999px;
  background:var(--t1);
  color:var(--gold-l);
  letter-spacing:.04em;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.kl-calc .mcard .mn{font-weight:800;font-size:.95rem;line-height:1.28;letter-spacing:-.015em;width:100%;overflow-wrap:anywhere}
.kl-calc .mcard .ms{font-size:.72rem;color:var(--t3);line-height:1.52;margin-top:.4rem;width:100%;overflow-wrap:anywhere}
.kl-calc .mcard .mp{font-family:var(--M);font-size:.8rem;font-weight:700;color:var(--green);margin-top:auto;padding-top:.8rem}

/* ── Option list / items ──────────────────────────────────── */
.kl-calc .olist{display:flex;flex-direction:column;gap:.55rem}
.kl-calc .oitem{
  display:grid;
  grid-template-columns:20px 72px minmax(0,1fr) auto;
  align-items:center;
  gap:.8rem;
  padding:.82rem .95rem;
  background:var(--card);
  border:1.5px solid var(--border);
  border-radius:14px;
  cursor:pointer;
  transition:all .14s ease;
}
.kl-calc .oitem:hover{border-color:var(--green-border);background:var(--green-bg)}
.kl-calc .oitem.sel{border-color:var(--green);background:var(--green-bg);box-shadow:0 0 0 3px rgba(30,107,48,.08)}
.kl-calc .oitem.no-img{grid-template-columns:20px minmax(0,1fr) auto}
.kl-calc .oitem.dis{opacity:.3;pointer-events:none}
.kl-calc .orad,
.kl-calc .ochk{width:18px;height:18px;border:2px solid var(--t5);border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:.12s;margin-top:2px}
.kl-calc .ochk{border-radius:5px}
.kl-calc .oitem.sel .orad{border-color:var(--green);background:var(--green)}
.kl-calc .oitem.sel .orad::after{content:"";width:7px;height:7px;background:#fff;border-radius:50%}
.kl-calc .oitem.sel .ochk{border-color:var(--green);background:var(--green)}
.kl-calc .oitem.sel .ochk::after{content:"\2713";color:#fff;font-size:.62rem;font-weight:800}
.kl-calc .othumb{
  width:72px;
  height:56px;
  object-fit:contain;
  border-radius:8px;
  flex-shrink:0;
  background:#fff;
  border:1px solid var(--border);
  padding:4px;
}
.kl-calc .oinfo{min-width:0;display:flex;flex-direction:column;justify-content:center;gap:.15rem;padding-right:.2rem}
.kl-calc .oname{font-weight:700;font-size:.86rem;line-height:1.35;overflow-wrap:anywhere}
.kl-calc .onote{font-size:.67rem;color:var(--t4);line-height:1.45}
.kl-calc .oprice{
  font-family:var(--M);
  font-size:.8rem;
  font-weight:700;
  color:var(--green);
  white-space:nowrap;
  text-align:right;
  min-width:112px;
  justify-self:end;
  align-self:stretch;
  display:flex;
  align-items:center;
  justify-content:flex-end;
}
.kl-calc .oprice.std{color:var(--t4);font-weight:600;font-style:italic;font-size:.72rem}

/* ── Quantity selector ───────────────────────────────────── */
.kl-calc .oqty-wrap{display:inline-flex;align-items:center;gap:.35rem;margin-top:.3rem}
.kl-calc .oqty-btn{width:24px;height:24px;border-radius:50%;border:1.5px solid var(--border);background:var(--bg);color:var(--t1);font-size:.85rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;line-height:1;transition:all .15s}
.kl-calc .oqty-btn:hover{background:var(--green);color:#fff;border-color:var(--green)}
.kl-calc .oqty-val{font-family:var(--M);font-size:.85rem;font-weight:700;min-width:18px;text-align:center}
.kl-calc .oqty-hint{font-size:.65rem;color:var(--t4);margin-top:.2rem}
.kl-calc .oqty-max{font-size:.6rem;color:var(--t4);margin-left:.25rem}

/* ── Sidebar panel ────────────────────────────────────────── */
.kl-calc .spanel{background:var(--card);border-radius:var(--RL);box-shadow:var(--sh);padding:1.25rem;border:1.5px solid var(--border)}
.kl-calc .spanel h4{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--t4);margin-bottom:.65rem;font-weight:700}
.kl-calc .srow{display:flex;justify-content:space-between;gap:.9rem;padding:.28rem 0;font-size:.8rem;align-items:flex-start}
.kl-calc .srow span:first-child{min-width:0}
.kl-calc .srow.sub{padding-left:.7rem;color:var(--t3);font-size:.75rem}
.kl-calc .srow.tot{font-weight:700;border-top:2px solid var(--border);margin-top:.45rem;padding-top:.55rem;font-size:.9rem}
.kl-calc .srow.big{font-size:1.15rem;font-weight:800;color:var(--green);border-top:2px solid var(--green);margin-top:.2rem;padding-top:.55rem}
.kl-calc .srow.disc-label{background:linear-gradient(90deg,rgba(32,128,60,.12),rgba(32,128,60,.04));border-radius:6px;padding:.45rem .55rem;margin-top:.5rem;font-weight:700;color:#1a7a3a;font-size:.82rem}
.kl-calc .srow.disc-price{padding:.2rem 0;font-size:.82rem;color:#1a7a3a;font-weight:600}
.kl-calc .srow.disc-price.big{font-size:1.2rem;font-weight:800;color:#fff;background:linear-gradient(135deg,#1a7a3a,#22994a);border-radius:8px;padding:.65rem .7rem;margin-top:.15rem}
.kl-calc .sv{font-family:var(--M);font-weight:700;white-space:nowrap}
.kl-calc .spec-tbl{width:100%;border-collapse:collapse;font-size:.78rem;margin-top:.5rem}
.kl-calc .spec-tbl td{padding:.28rem 0;border-bottom:1px solid var(--bg);vertical-align:top}
.kl-calc .spec-tbl td:first-child{color:var(--t3);width:50%}
.kl-calc .spec-tbl td:last-child{font-weight:600}
.kl-calc .spec-ext{margin-top:.25rem;border-top:1.5px solid var(--line);padding-top:.25rem;opacity:.82}
.kl-calc .spec-ext td{font-size:.72rem !important;padding:.2rem 0}

/* ── CTA ──────────────────────────────────────────────────── */
.kl-calc .cta-area{margin-top:1rem}
.kl-calc .cta{
  width:100%;
  padding:.8rem;
  background:var(--green);
  color:#fff;
  border:none;
  border-radius:var(--R);
  font-family:var(--F);
  font-size:.9rem;
  font-weight:700;
  cursor:pointer;
  transition:all .15s ease;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
}
.kl-calc .cta:hover{background:var(--green-l);transform:translateY(-1px);box-shadow:0 4px 16px rgba(30,107,48,.25)}
.kl-calc .cta:disabled{opacity:.55;pointer-events:none;transform:none;box-shadow:none}
.kl-calc .cta.is-busy{background:var(--t2)}
.kl-calc .cta svg{width:18px;height:18px;flex-shrink:0}

/* ── Modal ────────────────────────────────────────────────── */
.kl-calc .modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:200;display:flex;align-items:center;justify-content:center;padding:1rem;opacity:0;pointer-events:none;transition:opacity .2s}
.kl-calc .modal-bg.show{opacity:1;pointer-events:all}
.kl-calc .modal{background:var(--card);border-radius:var(--RL);padding:2rem;max-width:440px;width:100%;max-height:88vh;overflow-y:auto;-webkit-overflow-scrolling:touch;box-shadow:0 24px 64px rgba(0,0,0,.2);transform:translateY(20px);transition:transform .25s;position:relative}
.kl-calc .modal-bg.show .modal{transform:translateY(0)}
.kl-calc .modal h3{font-size:1.1rem;font-weight:800;margin-bottom:.25rem}
.kl-calc .modal p{font-size:.82rem;color:var(--t3);margin-bottom:1.25rem;line-height:1.6}
.kl-calc .fg{margin-bottom:.85rem}
.kl-calc .fl{font-size:.65rem;font-weight:700;text-transform:uppercase;color:var(--t4);letter-spacing:.05em;margin-bottom:.2rem;display:block}
.kl-calc .fi{width:100%;padding:.62rem .75rem;border:1.5px solid var(--border);border-radius:var(--R);font-family:var(--F);font-size:.88rem}
.kl-calc .fi:focus{outline:none;border-color:var(--green)}
.kl-calc .fi.err{border-color:var(--red);background:var(--red-bg)}
.kl-calc .modal-close{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:1.3rem;cursor:pointer;color:var(--t4);line-height:1}
.kl-calc .modal-btns{display:flex;gap:.55rem;margin-top:1.25rem}
.kl-calc .btn-cancel{flex:1;padding:.68rem;background:var(--bg);border:1.5px solid var(--border);border-radius:var(--R);font-family:var(--F);font-size:.85rem;font-weight:600;cursor:pointer;color:var(--t2)}
.kl-calc .btn-cancel:hover{background:var(--border)}

/* ── Consent checkboxes (RODO / Marketing / Regulamin) ───── */
.kl-calc .fg-consent{margin-bottom:.65rem}
.kl-calc .fl-consent{display:flex;align-items:flex-start;gap:.5rem;font-size:.78rem;color:var(--t2);line-height:1.5;cursor:pointer}
.kl-calc .fi-consent{flex-shrink:0;width:16px;height:16px;margin-top:2px;accent-color:var(--green);cursor:pointer}
.kl-calc .fi-consent.err{outline:2px solid var(--red);outline-offset:1px}
.kl-calc .fl-consent a{color:var(--green);text-decoration:underline}
.kl-calc .fl-consent a:hover{color:var(--green-l)}

/* ── Sticky mobile price bar ──────────────────────────────── */
.kl-sticky-price{
  display:none;
  position:fixed;
  bottom:0;left:0;right:0;
  z-index:9999;
  background:#ffffff;
  padding:.7rem 1.2rem;
  border-top:2px solid #1e6b30;
  box-shadow:0 -4px 20px rgba(0,0,0,.12);
  align-items:center;
  justify-content:space-between;
  transform:translateY(100%);
  transition:transform .25s ease;
}
.kl-sticky-price.visible{transform:translateY(0)}
.kl-sticky-price .kl-sticky-label{font-size:.75rem;font-weight:700;color:#6b6560;text-transform:uppercase;letter-spacing:.04em}
.kl-sticky-price .kl-sv{font-family:'JetBrains Mono',monospace;font-size:1.15rem;font-weight:800;color:#1e6b30;white-space:nowrap}

/* ── Model card photo + info button ──────────────────────── */
.kl-calc .mcard-photo{
  width:100%;max-height:90px;object-fit:contain;margin:.3rem 0 .2rem;border-radius:6px;
}
.kl-calc .mcard-info{
  position:absolute;top:.55rem;right:.6rem;z-index:2;
  width:22px;height:22px;border-radius:50%;border:1.5px solid var(--border);
  background:var(--card);color:var(--t3);font-size:.72rem;font-weight:800;
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  transition:all .15s;font-style:italic;font-family:Georgia,serif;padding:0;line-height:1;
}
.kl-calc .mcard-info:hover{background:var(--green);color:#fff;border-color:var(--green)}
.kl-calc .oinfo-btn{
  position:absolute;top:.4rem;right:.45rem;z-index:2;
  width:20px;height:20px;border-radius:50%;border:1.5px solid var(--border);
  background:var(--card);color:var(--t3);font-size:.68rem;font-weight:800;
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  transition:all .15s;font-style:italic;font-family:Georgia,serif;padding:0;line-height:1;
}
.kl-calc .oinfo-btn:hover{background:var(--green);color:#fff;border-color:var(--green)}
.kl-calc .oitem{position:relative}

/* ── Sidebar model image ─────────────────────────────────── */
.kl-calc .sidebar-model-img{
  width:100%;max-height:160px;object-fit:contain;border-radius:8px;margin-bottom:.7rem;
}

/* ── Model info overlay ──────────────────────────────────── */
.kl-calc .minfo-overlay{
  position:fixed;top:0;left:0;right:0;bottom:0;z-index:10000;
  background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;
  animation:klFadeIn .18s ease;
}
@keyframes klFadeIn{from{opacity:0}to{opacity:1}}
.kl-calc .minfo-popup{
  background:#fff;border-radius:14px;padding:1.5rem;max-width:420px;width:92vw;
  max-height:85vh;overflow-y:auto;position:relative;box-shadow:0 20px 60px rgba(0,0,0,.25);
}
.kl-calc .minfo-close{
  position:absolute;top:.6rem;right:.7rem;width:28px;height:28px;border:none;
  background:var(--bg2);border-radius:50%;font-size:1.2rem;cursor:pointer;
  display:flex;align-items:center;justify-content:center;color:var(--t3);
}
.kl-calc .minfo-close:hover{background:var(--t1);color:#fff}
.kl-calc .minfo-img{
  width:100%;max-height:200px;object-fit:contain;border-radius:8px;margin-bottom:.8rem;
}
.kl-calc .minfo-popup h3{font-size:1.1rem;font-weight:800;margin:0 0 .7rem;color:var(--t1)}
.kl-calc .minfo-tbl{width:100%;border-collapse:collapse;font-size:.78rem}
.kl-calc .minfo-tbl td{padding:.35rem .5rem;border-bottom:1px solid var(--border)}
.kl-calc .minfo-tbl td:first-child{color:var(--t3);width:55%}

/* ── Dep (wymagania) error modal ──────────────────────────── */
.kl-calc .dep-errors-popup{max-width:540px}
.kl-calc .dep-errors-popup h3{color:#c0392b}
.kl-calc .dep-errors-list{display:flex;flex-direction:column;gap:.7rem;margin-top:.5rem}
.kl-calc .dep-error-item{
  padding:.8rem 1rem;background:#fff8ec;border-left:4px solid #e67e22;
  border-radius:8px;display:flex;flex-direction:column;gap:.6rem;
}
.kl-calc .dep-error-item__msg{font-size:.9rem;line-height:1.5;color:#2c2c2c}
.kl-calc .dep-error-item__btn{align-self:flex-start;font-size:.82rem !important;padding:.35rem .8rem !important}
.kl-calc .minfo-tbl td:last-child{font-weight:700;color:var(--t1);text-align:right}
.kl-calc .minfo-link{
  display:inline-block;margin-top:.8rem;font-size:.8rem;font-weight:700;
  color:var(--green);text-decoration:none;
}
.kl-calc .minfo-link:hover{text-decoration:underline}

/* ── Image zoom ──────────────────────────────────────────── */
/* Desktop: hover zoom (only option thumbnails, not model cards) */
@media(hover:hover){
  .kl-calc .othumb,.kl-calc .opt-img,.kl-calc .zone-thumb,.kl-calc .std-item img{cursor:zoom-in;transition:transform .2s ease}
  .kl-calc .othumb:hover,.kl-calc .opt-img:hover,.kl-calc .zone-thumb:hover,.kl-calc .std-item img:hover{transform:scale(2.2);z-index:50;position:relative;box-shadow:0 8px 30px rgba(0,0,0,.25);border-color:var(--green)}
  /* Allow zoomed images to overflow their containers */
  .kl-calc .oitem,.kl-calc .opt,.kl-calc .zone-head,.kl-calc .std-item,.kl-calc .zone-body,.kl-calc .opts,.kl-calc .std-grid{overflow:visible}
}
/* Mobile: lightbox */
.kl-img-lightbox{
  position:fixed;inset:0;z-index:10001;background:rgba(0,0,0,.75);
  display:flex;align-items:center;justify-content:center;padding:1rem;
  animation:klFadeIn .18s ease;cursor:pointer;
}
.kl-img-lightbox img{
  max-width:92vw;max-height:85vh;object-fit:contain;border-radius:10px;
  background:#fff;padding:6px;box-shadow:0 16px 48px rgba(0,0,0,.35);
}

/* ── Preset tiles (zestaw calculator) ────────────────────── */
.kl-calc .kl-presets{margin-bottom:2rem}
.kl-calc .kl-presets-head{margin-bottom:1.2rem}
.kl-calc .kl-presets-head h3{font-size:1.15rem;font-weight:700;letter-spacing:-.01em}
.kl-calc .kl-presets-head p{font-size:.82rem;color:var(--t4);margin-top:.2rem}
.kl-calc .kl-presets-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.kl-calc .kl-preset-card{background:var(--card);border:2px solid var(--border);border-radius:var(--R);overflow:hidden;transition:.25s;cursor:default}
.kl-calc .kl-preset-card:hover{border-color:var(--green);box-shadow:0 6px 24px rgba(30,77,43,.12);transform:translateY(-3px)}
.kl-calc .kl-preset-thumbs{display:flex;gap:4px;padding:12px 12px 0;justify-content:center;background:#f5f5f3}
.kl-calc .kl-preset-thumbs img{height:72px;max-width:48%;object-fit:contain}
.kl-calc .kl-preset-body{padding:12px 14px 14px}
.kl-calc .kl-preset-name{font-size:.95rem;font-weight:700;margin-bottom:.2rem}
.kl-calc .kl-preset-desc{font-size:.78rem;color:var(--t4);line-height:1.4;margin-bottom:.7rem}
.kl-calc .kl-preset-btns{display:flex;gap:8px;flex-wrap:wrap}
.kl-calc .kl-preset-apply{padding:7px 16px;background:var(--green);color:#fff;border:none;border-radius:8px;font-size:.8rem;font-weight:600;cursor:pointer;transition:.2s}
.kl-calc .kl-preset-apply:hover{background:#2a6b3c}
.kl-calc .kl-preset-gallery{padding:7px 16px;background:transparent;border:1.5px solid var(--border);color:var(--t2);border-radius:8px;font-size:.8rem;font-weight:600;cursor:pointer;transition:.2s}
.kl-calc .kl-preset-gallery:hover{border-color:var(--green);color:var(--green)}

/* ── Responsive ───────────────────────────────────────────── */

@media(max-width:900px){
  .kl-sticky-price{display:flex}
  .kl-calc .desktop-only{display:none !important}
  .kl-calc .layout{grid-template-columns:1fr}
  .kl-calc .sidebar{position:static}
  .kl-calc .mgrid{grid-template-columns:repeat(auto-fill,minmax(165px,1fr))}
  .kl-calc .hero{flex-direction:column;text-align:center}
  .kl-calc .hero img{height:150px}
  .kl-calc .hdr-in{flex-direction:column;text-align:center}
}

@media(max-width:640px){
  .kl-calc .kl-presets-grid{grid-template-columns:1fr}
  .kl-calc .kl-preset-thumbs img{height:56px}
  .kl-calc .steps,
  .kl-calc .hero,
  .kl-calc .hdr-in{padding-left:1rem;padding-right:1rem}
  .kl-calc .mgrid{grid-template-columns:1fr 1fr;gap:.65rem}
  .kl-calc .mcard{min-height:178px;padding-top:2.5rem}
  .kl-calc .oitem{
    grid-template-columns:20px 64px minmax(0,1fr);
    align-items:start;
  }
  .kl-calc .oitem.no-img{grid-template-columns:20px minmax(0,1fr)}
  .kl-calc .othumb{width:64px;height:50px}
  .kl-calc .oinfo{padding-right:0}
  .kl-calc .oprice{
    grid-column:2 / 4;
    justify-self:stretch;
    justify-content:flex-start;
    text-align:left;
    min-width:0;
    width:100%;
    padding-top:.42rem;
    margin-top:.1rem;
    border-top:1px dashed var(--border);
  }
  .kl-calc .modal{padding:1.4rem}
}

@media(max-width:420px){
  .kl-calc .mgrid{grid-template-columns:1fr}
  .kl-calc .hero-txt h2{font-size:1.45rem}
}
