/* =====================================================================
   IZOHOUSE — kalkulačka nákladov na hrubú stavbu
   Jednosúborová verzia. Vloží sa na https://izohouse.sk/calculator/
   Všetky cenové vstupy sú v bloku CONFIG v <script> nižšie.
   ===================================================================== */

:root{
  --ink:#14181C;
  --ink-soft:#4A545E;
  --ink-faint:#8994A0;
  --concrete:#EDEDEA;
  --concrete-dark:#DCDCD6;
  --paper:#FFFFFF;
  --signal:#0F6E63;         /* úspora / IZOEnergy */
  --signal-dark:#0A4F47;
  --passive:#1D4E89;        /* IZOPassive */
  --trad:#96604A;           /* tradičná stavba */
  --line:#CFCFC8;
  --radius:4px;
  --maxw:1180px;
}

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;
  font-family:'Archivo',system-ui,-apple-system,'Segoe UI',sans-serif;
  color:var(--ink);
  background:var(--concrete);
  font-size:16px;
  line-height:1.5;
  font-variant-numeric:tabular-nums;
}
.izh-wrap{max-width:var(--maxw);margin:0 auto;padding:32px 20px 80px;}

/* ---------- Hlavička ---------- */
.izh-head{margin-bottom:28px;}
.izh-head h1{
  font-size:clamp(30px,5vw,52px);
  line-height:1.04;
  font-weight:700;
  letter-spacing:-0.02em;
  margin:0 0 12px;
  max-width:16ch;
}
.izh-head p{margin:0;max-width:56ch;color:var(--ink-soft);font-size:17px;}
.izh-facts{display:flex;flex-wrap:wrap;gap:28px;margin-top:22px;padding-top:20px;border-top:1px solid var(--line);}
.izh-fact strong{display:block;font-size:26px;font-weight:700;line-height:1.1;}
.izh-fact span{font-size:13px;color:var(--ink-faint);}

/* ---------- Layout ---------- */
.izh-grid{display:grid;grid-template-columns:1fr 340px;gap:28px;align-items:start;}
@media(max-width:940px){.izh-grid{grid-template-columns:1fr;}}

.izh-panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);}
.izh-panel-body{padding:28px;}
@media(max-width:520px){.izh-panel-body{padding:20px 16px;}}

/* ---------- Kroky ---------- */
.izh-steps{display:flex;border-bottom:1px solid var(--line);background:#FAFAF8;overflow-x:auto;}
.izh-step{
  flex:1 0 auto;min-width:0;padding:14px 16px;font-size:13px;font-weight:500;
  color:var(--ink-faint);border-bottom:3px solid transparent;white-space:nowrap;
  display:flex;gap:8px;align-items:center;
}
.izh-step b{
  width:20px;height:20px;flex:none;border-radius:50%;background:var(--concrete-dark);
  color:var(--ink-soft);font-size:12px;font-weight:600;display:grid;place-items:center;
}
.izh-step.is-active{color:var(--ink);border-bottom-color:var(--signal);}
.izh-step.is-active b{background:var(--signal);color:#fff;}
.izh-step.is-done b{background:var(--ink);color:#fff;}

.izh-progress{font-size:13px;color:var(--ink-faint);margin-bottom:6px;}
.izh-panel h2{font-size:24px;font-weight:600;letter-spacing:-0.01em;margin:0 0 6px;}
.izh-lede{color:var(--ink-soft);margin:0 0 26px;max-width:60ch;font-size:15px;}

.izh-field{margin-bottom:28px;}
.izh-label{display:block;font-weight:600;font-size:15px;margin-bottom:4px;}
.izh-hint{font-size:13px;color:var(--ink-faint);margin:0 0 12px;max-width:58ch;}

/* ---------- Slider plochy ---------- */
.izh-area{display:flex;align-items:baseline;gap:8px;margin-bottom:10px;}
.izh-area input[type=number]{
  width:120px;font:700 34px/1 'Archivo',sans-serif;color:var(--ink);
  border:none;border-bottom:2px solid var(--ink);background:transparent;padding:0 0 4px;
  -moz-appearance:textfield;
}
.izh-area input::-webkit-outer-spin-button,.izh-area input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.izh-area span{font-size:18px;color:var(--ink-soft);font-weight:500;}
input[type=range]{width:100%;accent-color:var(--signal);height:24px;}
.izh-range-marks{display:flex;justify-content:space-between;font-size:12px;color:var(--ink-faint);margin-top:-2px;}

/* ---------- Voľby ---------- */
.izh-opts{display:grid;gap:8px;}
.izh-opts.cols-2{grid-template-columns:1fr 1fr;}
.izh-opts.cols-3{grid-template-columns:repeat(3,1fr);}
@media(max-width:600px){.izh-opts.cols-2,.izh-opts.cols-3{grid-template-columns:1fr;}}
.izh-opt{
  position:relative;display:block;border:1px solid var(--line);border-radius:var(--radius);
  padding:13px 15px;cursor:pointer;background:#fff;transition:border-color .12s,background .12s;
}
.izh-opt:hover{border-color:var(--ink-faint);}
.izh-opt input{position:absolute;opacity:0;pointer-events:none;}
.izh-opt strong{display:block;font-size:15px;font-weight:600;}
.izh-opt em{display:block;font-style:normal;font-size:13px;color:var(--ink-faint);margin-top:1px;}
.izh-opt.is-on{border-color:var(--signal);background:#F2F8F7;box-shadow:inset 0 0 0 1px var(--signal);}
.izh-opt input:focus-visible + .izh-opt-inner,
.izh-opt:focus-within{outline:2px solid var(--signal);outline-offset:2px;}

/* ---------- Karty energetických tried ---------- */
.izh-class{display:grid;gap:10px;}
.izh-class .izh-opt{padding:16px 18px;}
.izh-class .izh-opt strong{font-size:17px;}
.izh-cls-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-top:8px;}
.izh-cls-metric{font-size:13px;color:var(--ink-soft);}
.izh-cls-metric b{font-weight:700;color:var(--ink);}
.izh-bar{height:6px;background:var(--concrete-dark);border-radius:3px;overflow:hidden;margin-top:10px;}
.izh-bar i{display:block;height:100%;border-radius:3px;}

/* ---------- Formulár ---------- */
.izh-input{
  width:100%;padding:11px 13px;font:400 15px 'Archivo',sans-serif;color:var(--ink);
  border:1px solid var(--line);border-radius:var(--radius);background:#fff;
}
.izh-input:focus{outline:2px solid var(--signal);outline-offset:0;border-color:var(--signal);}
.izh-input.is-bad{border-color:#B3261E;background:#FEF6F5;}
.izh-err{color:#B3261E;font-size:13px;margin-top:5px;display:none;}
.izh-err.is-on{display:block;}
.izh-2col{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media(max-width:600px){.izh-2col{grid-template-columns:1fr;}}
.izh-check{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--ink-soft);line-height:1.45;}
.izh-check input{margin-top:2px;flex:none;width:17px;height:17px;accent-color:var(--signal);}

/* ---------- Tlačidlá ---------- */
.izh-nav{display:flex;gap:12px;align-items:center;margin-top:8px;padding-top:22px;border-top:1px solid var(--line);}
.izh-btn{
  font:600 15px 'Archivo',sans-serif;padding:13px 26px;border-radius:var(--radius);
  border:1px solid transparent;cursor:pointer;background:var(--ink);color:#fff;
}
.izh-btn:hover{background:#000;}
.izh-btn:disabled{opacity:.45;cursor:not-allowed;}
.izh-btn.ghost{background:transparent;color:var(--ink-soft);border-color:var(--line);}
.izh-btn.ghost:hover{background:#F5F5F2;color:var(--ink);}
.izh-btn.go{background:var(--signal);}
.izh-btn.go:hover{background:var(--signal-dark);}
.izh-btn:focus-visible{outline:2px solid var(--signal);outline-offset:2px;}

/* ---------- Bočný súhrn ---------- */
.izh-side{position:sticky;top:20px;display:grid;gap:16px;}
@media(max-width:940px){.izh-side{position:static;}}
.izh-side h3{font-size:12px;font-weight:600;color:var(--ink-faint);margin:0 0 14px;}
.izh-sum{display:grid;gap:0;}
.izh-sum div{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--concrete-dark);font-size:14px;}
.izh-sum div:last-child{border-bottom:none;}
.izh-sum dt{color:var(--ink-faint);}
.izh-sum dd{margin:0;font-weight:600;text-align:right;}
.izh-deliver{background:var(--ink);color:#fff;border-radius:var(--radius);padding:22px;}
.izh-deliver h3{color:#8FA6A2;}
.izh-deliver ul{margin:0;padding-left:18px;display:grid;gap:9px;font-size:14px;line-height:1.4;color:#DDE3E1;}
.izh-deliver b{color:#fff;}

/* ---------- Výsledok ---------- */
.izh-result{display:none;}
.izh-result.is-on{display:block;}
.izh-hero-price{
  background:var(--ink);color:#fff;border-radius:var(--radius);padding:34px 30px;margin-bottom:20px;
}
.izh-hero-price .lbl{font-size:13px;color:#93A3A0;margin-bottom:6px;}
.izh-hero-price .val{font-size:clamp(38px,7vw,62px);font-weight:700;line-height:1;letter-spacing:-0.03em;}
.izh-hero-price .sub{margin-top:12px;font-size:14px;color:#C4CFCD;}
.izh-hero-meta{display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:22px;padding-top:18px;border-top:1px solid #2E3840;font-size:13px;color:#A9B6B3;}
.izh-hero-meta b{color:#fff;font-weight:600;}

.izh-block{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:28px;margin-bottom:20px;}
.izh-block h3{font-size:20px;font-weight:600;margin:0 0 6px;}
.izh-block > p{color:var(--ink-soft);font-size:15px;margin:0 0 22px;max-width:62ch;}

.izh-table{width:100%;border-collapse:collapse;font-size:14px;}
.izh-table th,.izh-table td{padding:11px 10px;text-align:right;border-bottom:1px solid var(--concrete-dark);}
.izh-table th:first-child,.izh-table td:first-child{text-align:left;}
.izh-table thead th{font-size:12px;color:var(--ink-faint);font-weight:600;border-bottom:1px solid var(--line);}
.izh-table tbody tr:last-child td{border-bottom:none;}
.izh-table .row-total td{font-weight:700;border-top:2px solid var(--ink);}
.izh-tag{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:7px;vertical-align:baseline;}
.izh-wide{overflow-x:auto;}

.izh-cols{display:grid;grid-template-columns:1fr 1fr;gap:26px;}
@media(max-width:700px){.izh-cols{grid-template-columns:1fr;}}
.izh-list{margin:0;padding:0;list-style:none;font-size:14.5px;display:grid;gap:9px;}
.izh-list li{padding-left:24px;position:relative;color:var(--ink-soft);}
.izh-list li::before{position:absolute;left:0;top:0;font-weight:700;}
.izh-list.yes li::before{content:"+";color:var(--signal);}
.izh-list.no li::before{content:"–";color:var(--ink-faint);}
.izh-sub{font-size:12px;font-weight:600;color:var(--ink-faint);margin:0 0 12px;}

details.izh-acc{border-top:1px solid var(--concrete-dark);padding:16px 0;}
details.izh-acc summary{cursor:pointer;font-weight:600;font-size:15px;list-style:none;display:flex;justify-content:space-between;gap:12px;}
details.izh-acc summary::-webkit-details-marker{display:none;}
details.izh-acc summary::after{content:"+";color:var(--ink-faint);font-weight:400;font-size:20px;line-height:1;}
details.izh-acc[open] summary::after{content:"–";}
details.izh-acc .body{padding-top:14px;font-size:14.5px;color:var(--ink-soft);max-width:70ch;}
details.izh-acc .body p{margin:0 0 12px;}

.izh-note{font-size:12.5px;color:var(--ink-faint);line-height:1.5;margin-top:18px;}
.izh-note b{color:var(--ink-soft);}
.izh-disclaimer{
  background:#FFF8E7;border:1px solid #E8D9A8;border-radius:var(--radius);
  padding:14px 16px;font-size:13.5px;color:#6B5A21;margin-bottom:20px;
}
.izh-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px;}

.izh-loading{display:none;text-align:center;padding:70px 20px;}
.izh-loading.is-on{display:block;}
.izh-spin{width:34px;height:34px;border:3px solid var(--concrete-dark);border-top-color:var(--signal);border-radius:50%;margin:0 auto 16px;animation:izhspin .8s linear infinite;}
@keyframes izhspin{to{transform:rotate(360deg);}}
@media(prefers-reduced-motion:reduce){.izh-spin{animation-duration:2.5s;}*{transition:none!important;}}

.izh-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
