/* ============================================================
   konfigurator.css — TATRA RESORT web konfigurátor
   ============================================================ */

:root{
  --smotanova: #e7ded2;
  --pantone-7527: #d1cac1;
  --sivohneda-1: #a49d95;
  --sivohneda-2: #958f88;
  --kavova-1: #524d4a;
  --kavova-2: #605b58;
  --paper: #efe9e0;
  --paper-2: #f5efe6;
  --line: rgba(82,77,74,.18);
  --line-strong: rgba(82,77,74,.34);
  --shadow-1: 0 1px 2px rgba(82,77,74,.06), 0 8px 32px -8px rgba(82,77,74,.18);
  --shadow-2: 0 4px 12px rgba(82,77,74,.1), 0 18px 48px -16px rgba(82,77,74,.3);
}

*,*::before,*::after{box-sizing:border-box;}
html,body{margin:0; padding:0; background:var(--paper); color: var(--kavova-1); font-family:'Onest', system-ui, sans-serif; font-weight:300; min-height:100vh;}
button{font-family: inherit; cursor:pointer; border:none; background:none; padding:0; color:inherit;}
input, textarea{font-family: inherit; color: inherit;}
a{color:inherit;}
em{font-style: italic;}

.kf{
  min-height: 100vh;
  display:flex; flex-direction:column;
  padding-bottom: 100px; /* room for sticky ticker */
}

/* ===== HEADER ===== */
.kf-hdr{
  display:flex; justify-content:space-between; align-items:center;
  padding: 24px 48px; border-bottom:1px solid var(--line);
  background: var(--paper); position:sticky; top:0; z-index:50;
  backdrop-filter: blur(8px); background: rgba(239,233,224,.92);
}
.kf-hdr-l{display:flex; align-items:center; gap:16px;}
.kf-hdr-logo{display:inline-flex; align-items:center; height: 32px; transition: opacity .2s;}
.kf-hdr-logo:hover{opacity: 0.7;}
.kf-hdr-logo img{height: 32px; width: auto; display: block;
  filter: brightness(0) saturate(100%) invert(28%) sepia(8%) saturate(444%) hue-rotate(335deg) brightness(94%) contrast(89%);
}
.kf-hdr-r{display:flex; align-items:center; gap:24px;}
.kf-client{display:flex; align-items:baseline; gap:12px; padding:8px 16px; border:1px solid var(--line); border-radius: 99px;}
.kf-client-lbl{font-size:11px; letter-spacing:.18em; text-transform:uppercase; color: var(--sivohneda-2);}
.kf-client-val{font-size:14px; font-weight:500; font-family: 'JetBrains Mono', monospace; letter-spacing:.05em;}
.kf-lang{display:flex; gap:2px; padding: 4px; background: var(--smotanova); border-radius: 99px;}
.kf-lang-btn{
  font-size:11px; letter-spacing:.16em; padding:6px 12px; border-radius:99px;
  color: var(--sivohneda-2); font-weight:600; transition: all .2s;
}
.kf-lang-btn.on{background: var(--kavova-1); color: var(--smotanova);}
.kf-lang-btn:not(.on):hover{background: rgba(82,77,74,.08);}

/* ===== PROGRESS ===== */
.kf-prog{
  padding: 28px 48px 0;
  border-bottom: 1px solid var(--line);
}
.kf-prog-inner{
  display:grid; grid-template-columns: repeat(6, 1fr); gap: 12px;
  margin-bottom: 16px;
}
.kf-prog-step{
  display:flex; flex-direction:column; gap:4px;
  padding-bottom: 12px;
  color: var(--sivohneda-2);
  position: relative;
}
.kf-prog-step.on{color: var(--kavova-1);}
.kf-prog-step.done{color: var(--sivohneda-1);}
.kf-prog-num{font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: .08em;}
.kf-prog-lbl{font-size: 15px; font-weight: 400; letter-spacing: -.01em;}
.kf-prog-step.on .kf-prog-lbl{font-weight: 500;}
.kf-prog-bar{
  height: 2px; background: var(--line); position: relative;
  margin-bottom: -1px;
}
.kf-prog-fill{
  position: absolute; left:0; top:0; bottom:0;
  background: var(--kavova-1);
  transition: width .5s cubic-bezier(.4,0,.2,1);
}

/* ===== MAIN ===== */
.kf-main{
  flex:1;
  padding: 56px 48px;
  max-width: 1480px;
  width: 100%;
  margin: 0 auto;
}

/* ===== HEADINGS ===== */
.kf-h1{
  font-size: clamp(56px, 8vw, 120px); line-height: 1.02; letter-spacing: -.035em;
  font-weight: 300; margin: 0 0 24px; text-wrap: balance;
}
.kf-h1 em{font-weight:300;}
.kf-h2{
  font-size: clamp(36px, 5vw, 64px); line-height: 1.08; letter-spacing: -.025em;
  font-weight: 300; margin: 0 0 16px;
}
.kf-h2 em{font-weight: 300;}
.kf-eyebrow{font-size:13px; letter-spacing:.32em; text-transform:uppercase; color: var(--sivohneda-2); margin-bottom: 28px; font-weight: 500;}
.kf-lede{font-size: 18px; line-height: 1.6; color: var(--kavova-2); font-weight: 300; max-width: 720px; margin: 0 0 32px; text-wrap: pretty;}
.kf-step-head{margin-bottom: 56px;}

/* ===== CTA BUTTON ===== */
.kf-cta{
  display:inline-flex; align-items:center; gap: 16px;
  padding: 16px 28px;
  background: var(--kavova-1); color: var(--smotanova);
  font-size: 14px; letter-spacing: .18em; text-transform: uppercase; font-weight: 500;
  border-radius: 99px; transition: all .25s;
}
.kf-cta:hover{background: #3f3a37; transform: translateY(-1px); box-shadow: var(--shadow-2);}
.kf-cta-lg{padding: 20px 36px; font-size: 15px;}
.kf-cta-arrow{
  display:inline-block; width: 32px; height:1px; background: currentColor; position: relative;
  transition: width .25s;
}
.kf-cta-arrow::after{
  content:""; position:absolute; right:0; top:-4px; width:8px; height:8px;
  border-right: 1px solid currentColor; border-top: 1px solid currentColor;
  transform: rotate(45deg);
}
.kf-cta:hover .kf-cta-arrow{width: 48px;}

/* ===== NAV ===== */
.kf-nav{
  display:flex; justify-content: space-between; align-items: center;
  margin-top: 64px; padding-top: 32px; border-top: 1px solid var(--line);
}
.kf-nav-r{display:flex; align-items:center; gap: 20px;}
.kf-nav-hint{
  font-size: 13px; color: var(--sivohneda-2); font-weight: 500;
  font-style: italic;
}
.kf-btn{
  display:inline-flex; align-items:center; gap: 14px;
  padding: 14px 24px; border-radius: 99px;
  font-size: 13px; letter-spacing: .18em; text-transform: uppercase; font-weight: 500;
  transition: all .2s;
}
.kf-btn-ghost{color: var(--sivohneda-2); background:transparent;}
.kf-btn-ghost:hover{color: var(--kavova-1); background: var(--smotanova);}
.kf-btn-prim, .kf-btn:not(.kf-btn-ghost):not(.kf-btn-dis){
  background: var(--kavova-1); color: var(--smotanova);
}
.kf-btn:not(.kf-btn-ghost):not(.kf-btn-dis):hover{background: #3f3a37; transform: translateY(-1px); box-shadow: var(--shadow-1);}
.kf-btn-dis{background: rgba(82,77,74,.2); color: rgba(82,77,74,.5); cursor: not-allowed;}

/* ============================================================
   WELCOME (step 0)
   ============================================================ */
.kf-welcome{
  position: relative;
  min-height: 70vh;
  display:flex; align-items: stretch;
  border-radius: 4px; overflow: hidden;
  margin-top: -56px; /* full-bleed inside main padding */
  margin-left: -48px; margin-right: -48px;
}
.kf-welcome-bg{
  position: absolute; inset:0;
  display:grid; grid-template-columns: 1.4fr 1fr 1fr 1.1fr;
  z-index: 1;
}
.kf-welcome-bg img{width:100%; height:100%; object-fit: cover; display: block; filter: brightness(0.6) saturate(0.9);}
.kf-welcome-inner{
  position: relative; z-index: 2;
  padding: 80px 80px;
  display:flex; flex-direction: column; justify-content: flex-end;
  align-self: stretch; width: 100%;
  background: linear-gradient(180deg, rgba(82,77,74,0.05) 0%, rgba(82,77,74,0.75) 65%, rgba(40,38,36,0.92) 100%);
  color: var(--smotanova);
}
.kf-welcome .kf-eyebrow{color: var(--pantone-7527);}
.kf-welcome .kf-h1{color: var(--smotanova); max-width: 1100px;}
.kf-welcome .kf-lede{color: var(--smotanova); opacity: 0.85; max-width: 640px; font-size: 19px;}
.kf-welcome-meta{
  display:grid; grid-template-columns: repeat(3, max-content); gap: 56px;
  margin: 40px 0 48px; padding-top: 32px;
  border-top: 1px solid rgba(231,222,210,.25);
}
.kf-welcome-meta .k{font-size:11px; letter-spacing:.22em; text-transform:uppercase; color: var(--pantone-7527); margin-bottom: 6px;}
.kf-welcome-meta .v{font-size: 19px; font-weight: 400;}
.kf-welcome .kf-cta{
  background: var(--smotanova); color: var(--kavova-1);
  align-self: flex-start;
}
.kf-welcome .kf-cta:hover{background: white;}

/* ============================================================
   STEP 1 — STANDARD
   ============================================================ */
.kf-std-grid{display:grid; grid-template-columns: repeat(3, 1fr); gap: 24px;}
.kf-std{
  position: relative;
  background: var(--smotanova); color: var(--kavova-1);
  border: 1px solid var(--line); border-radius: 4px;
  padding: 36px 32px 32px;
  display: flex; flex-direction: column;
  min-height: 580px;
  overflow: hidden; cursor: pointer;
  transition: all .25s ease;
}
.kf-std:hover{transform: translateY(-3px); box-shadow: var(--shadow-2); background: #ecdfca;}
.kf-std.dark{background: var(--kavova-1); color: var(--smotanova); border-color: rgba(231,222,210,.18);}
.kf-std.dark:hover{background: #463f3c;}
.kf-std.on{outline: 2px solid var(--kavova-1); outline-offset: 4px;}
.kf-std.dark.on{outline-color: var(--smotanova);}
.kf-ssign{
  position:absolute; right:-60px; top:-60px; width:280px; height:280px;
  color: rgba(82,77,74,.07); pointer-events: none; z-index: 0;
}
.kf-std.dark .kf-ssign{color: rgba(231,222,210,.08);}
.kf-ssign svg{width:100%; height:100%; display:block;}
.kf-std > *{position: relative; z-index: 1;}

.kf-std-head{display:flex; justify-content:space-between; align-items:flex-start;}
.kf-std-num{font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: .08em; color: var(--sivohneda-2);}
.kf-std.dark .kf-std-num{color: var(--sivohneda-1);}
.kf-std-lbl{font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: var(--sivohneda-2); font-weight: 500;}
.kf-std.dark .kf-std-lbl{color: var(--sivohneda-1);}
.kf-std-h3{font-size: 56px; line-height: 1.04; letter-spacing: -.03em; font-weight: 300; margin: 56px 0 16px;}
.kf-std-desc{font-size: 15px; line-height: 1.5; color: var(--kavova-2); margin: 0 0 auto;}
.kf-std.dark .kf-std-desc{color: var(--pantone-7527);}
.kf-std-meta{
  display:grid; grid-template-columns: auto 1fr; gap: 8px 18px;
  margin: 28px 0 0; padding-top: 20px;
  border-top: 1px solid var(--line);
  font-size: 13px;
}
.kf-std.dark .kf-std-meta{border-top-color: rgba(231,222,210,.18);}
.kf-std-meta dt{
  font-size:10px; letter-spacing:.18em; text-transform:uppercase;
  color: var(--sivohneda-2); font-weight: 600;
  padding-top: 2px;
}
.kf-std.dark .kf-std-meta dt{color: var(--sivohneda-1);}
.kf-std-meta dd{margin: 0; font-size: 13.5px; font-weight: 400;}
.kf-std-actions{
  display:flex; flex-direction:column; gap:10px; margin-top: 28px; align-items:flex-start;
}
.kf-std-detail{
  font-size: 11px; letter-spacing:.18em; text-transform:uppercase; font-weight:500;
  color: var(--sivohneda-2); padding: 4px 0;
  border-bottom: 1px solid var(--sivohneda-2); transition: all .2s;
}
.kf-std.dark .kf-std-detail{color: var(--pantone-7527); border-bottom-color: var(--pantone-7527);}
.kf-std-detail:hover{color: var(--kavova-1); border-bottom-color: var(--kavova-1);}
.kf-std.dark .kf-std-detail:hover{color: var(--smotanova); border-bottom-color: var(--smotanova);}
.kf-std-cta{
  display:inline-flex; align-items:center; gap: 10px;
  padding: 12px 20px;
  font-size: 12px; letter-spacing: .18em; text-transform: uppercase; font-weight: 500;
  border-radius: 99px;
  border: 1px solid var(--kavova-1); color: var(--kavova-1);
  transition: all .2s;
}
.kf-std.dark .kf-std-cta{border-color: var(--smotanova); color: var(--smotanova);}
.kf-std-cta:hover{background: var(--kavova-1); color: var(--smotanova);}
.kf-std.dark .kf-std-cta:hover{background: var(--smotanova); color: var(--kavova-1);}
.kf-std-cta.on{background: var(--kavova-1); color: var(--smotanova);}
.kf-std.dark .kf-std-cta.on{background: var(--smotanova); color: var(--kavova-1);}

/* ============================================================
   STEP 2 — DEKORY
   ============================================================ */
.kf-dec-stack{display:flex; flex-direction: column; gap: 56px;}
.kf-dec-section{}
.kf-dec-head{
  display:flex; align-items:baseline; gap: 24px;
  margin-bottom: 24px; padding-bottom: 16px; border-bottom: 1px solid var(--line);
}
.kf-dec-h3{font-size: 28px; font-weight: 400; margin: 0; letter-spacing: -.02em;}
.kf-dec-meta{font-size: 13px; color: var(--sivohneda-2); letter-spacing: .12em; text-transform: uppercase; font-weight: 500;}
.kf-dec-grid{display:grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 20px;}
.kf-swatch{
  display:flex; flex-direction: column;
  border: 1px solid var(--line); border-radius: 4px;
  background: var(--smotanova); overflow: hidden;
  cursor: pointer; text-align: left;
  position: relative;
  transition: all .25s;
}
.kf-swatch:hover{transform: translateY(-2px); box-shadow: var(--shadow-1); border-color: var(--line-strong);}
.kf-swatch.on{outline: 2px solid var(--kavova-1); outline-offset: 2px; transform: translateY(-2px);}
.kf-swatch-chip{aspect-ratio: 16/10; width: 100%;}
.kf-swatch-info{padding: 14px 16px 16px;}
.kf-swatch-code{font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--sivohneda-2); letter-spacing: .05em;}
.kf-swatch-name{font-size: 15px; font-weight: 400; margin-top: 4px; line-height: 1.3;}
.kf-swatch-tick{
  position: absolute; top: 12px; right: 12px;
  width: 28px; height: 28px; border-radius: 50%;
  background: var(--kavova-1); color: var(--smotanova);
  display:flex; align-items:center; justify-content:center;
  font-size: 14px; font-weight: 600;
  opacity: 0; transform: scale(0.6);
  transition: all .2s;
}
.kf-swatch.on .kf-swatch-tick{opacity:1; transform: scale(1);}

/* Swatch chip backgrounds */
.w-dub-skyline-biely{background: linear-gradient(120deg, #d8c8af 0%, #ead9bf 50%, #c2b094 100%);}
.w-dub-skyline-perlovo{background: linear-gradient(120deg, #a8a299 0%, #c2bcb1 50%, #918a80 100%);}
.w-dub-montblanc-brus{background: linear-gradient(120deg, #c5b393 0%, #d8c8a8 50%, #ab9776 100%);}
.w-dub-montblanc-pri{background: linear-gradient(120deg, #b9a181 0%, #cdb898 50%, #a08866 100%);}
.w-dub-loft-dymovy{background: linear-gradient(120deg, #b8b1a4 0%, #cfc8b9 50%, #968e80 100%);}
.w-dub-studioline-med{background: linear-gradient(120deg, #c5a072 0%, #d8b886 50%, #ab8956 100%);}
.w-dub-hnedy{background: linear-gradient(120deg, #6b4a32 0%, #856246 40%, #5e3f29 100%);}
.w-orech{background: linear-gradient(120deg, #5a3c2a 0%, #7a5739 50%, #4c3220 100%);}
.w-dub-prirodny-k{background: linear-gradient(120deg, #b08e63 0%, #c5a37a 50%, #9a7853 100%);}
.w-dub-tepy{background: linear-gradient(120deg, #b58b5e 0%, #d0a87f 50%, #a07a52 100%);}
.w-dub-bezovy{background: linear-gradient(120deg, #cbb594 0%, #ddc8a8 50%, #b89e7b 100%);}
.w-dub-lakovany{background: linear-gradient(120deg, #c6a779 0%, #dcc197 50%, #ad8e62 100%);}
.w-bjelin-terra{background: linear-gradient(120deg, #87553a 0%, #a07458 50%, #6b4530 100%);}
.w-bjelin-earth{background: linear-gradient(120deg, #8a847a 0%, #a39d92 50%, #6b6660 100%);}
.w-bjelin-natural{background: linear-gradient(120deg, #c2a382 0%, #d4b89b 50%, #aa8b69 100%);}
.w-bjelin-misty{background: linear-gradient(120deg, #d6cabb 0%, #e5dbcc 50%, #bcaf9d 100%);}
.w-bjelin-powder{background: linear-gradient(120deg, #e0d4c4 0%, #ece2d2 50%, #c5b9a6 100%);}
.t-grey{background: linear-gradient(135deg, #8c8b87 0%, #b2b0a9 50%, #7f7e7a 100%);}
.t-blanco{background: linear-gradient(135deg, #f4f1ea 0%, #fbf8f1 50%, #e5dfd2 100%); box-shadow: inset 0 0 0 1px rgba(82,77,74,.08);}
.t-cityzen-1{background: linear-gradient(135deg, #c9c4ba 0%, #d8d2c5 50%, #b1ac9f 100%);}
.t-cityzen-2{background: linear-gradient(135deg, #a09a8c 0%, #b3ad9e 50%, #847e72 100%);}
.t-cityzen-3{background: linear-gradient(135deg, #74716a 0%, #86847d 50%, #5d5b56 100%);}
.t-cityzen-4{background: linear-gradient(135deg, #4a4946 0%, #585754 50%, #38373a 100%);}
.t-cityzen-5{background: linear-gradient(135deg, #e0d8c8 0%, #ede5d3 50%, #c2b9a4 100%);}
.t-marron{background: linear-gradient(135deg, #6e4f3a 0%, #886a51 50%, #5a3f2a 100%);}
.t-perla{background: linear-gradient(135deg, #c8c2b9 0%, #dad4ca 50%, #b3ada3 100%);}
.t-alga{background: linear-gradient(135deg, #7e8a6b 0%, #9aa685 50%, #69755a 100%);}
.t-cemento{background: linear-gradient(135deg, #9a958d 0%, #b3aea4 50%, #847f76 100%);}
.t-beige{background: linear-gradient(135deg, #c8b89c 0%, #dac9ae 50%, #b09e83 100%);}
.t-ergon-classic{background: linear-gradient(135deg, #c4b69e 0%, #d4c8b1 50%, #a99a82 100%);}
.t-ergon-cool{background: linear-gradient(135deg, #b1aea4 0%, #c5c2b7 50%, #898679 100%);}
.col-volcanic{background: linear-gradient(135deg, #3c3a37 0%, #56524d 50%, #2a2926 100%);}
.col-telegrey{background: linear-gradient(135deg, #6c6d6f 0%, #8a8b8d 50%, #515355 100%);}
.niko-antracit{background: linear-gradient(135deg, #3a3a3c 0%, #4a4a4c 50%, #2e2e30 100%);}
.niko-black{background: linear-gradient(135deg, #1a1818 0%, #2a2826 50%, #100e0c 100%);}

/* ============================================================
   MODAL — STANDARD DETAIL
   ============================================================ */
.kf-modal{
  position: fixed; inset: 0; z-index: 100;
  background: rgba(40, 38, 36, 0.75);
  backdrop-filter: blur(6px);
  display:flex; align-items: flex-start; justify-content: center;
  padding: 48px 24px; overflow-y: auto;
  animation: kfFadeIn .25s ease;
}
@keyframes kfFadeIn{from{opacity:0;} to{opacity:1;}}
.kf-modal-card{
  position: relative;
  background: var(--paper); color: var(--kavova-1);
  width: 100%; max-width: 1100px;
  border-radius: 4px;
  padding: 64px 64px 48px;
  box-shadow: 0 30px 80px -20px rgba(0,0,0,.5);
  overflow: hidden;
  animation: kfSlideUp .35s cubic-bezier(.2,.8,.2,1);
}
@keyframes kfSlideUp{from{transform: translateY(20px); opacity:0;} to{transform: translateY(0); opacity:1;}}
.kf-modal-card.dark{background: var(--kavova-1); color: var(--smotanova);}
.kf-modal-close{
  position: absolute; top: 24px; right: 24px;
  width: 44px; height: 44px; border-radius: 50%;
  background: rgba(82,77,74,.08); color: var(--kavova-1);
  font-size: 24px; font-weight: 300; line-height: 1;
  display:flex; align-items:center; justify-content:center;
  transition: all .2s; z-index: 3;
}
.kf-modal-card.dark .kf-modal-close{background: rgba(231,222,210,.12); color: var(--smotanova);}
.kf-modal-close:hover{background: rgba(82,77,74,.18); transform: rotate(90deg);}
.kf-modal-card.dark .kf-modal-close:hover{background: rgba(231,222,210,.22);}
.kf-modal-ssign{
  position: absolute; right: -120px; top: -120px;
  width: 480px; height: 480px;
  color: rgba(82,77,74, 0.06); pointer-events: none; z-index: 0;
}
.kf-modal-card.dark .kf-modal-ssign{color: rgba(231,222,210, 0.09);}
.kf-modal-ssign svg{width:100%; height:100%; display:block;}
.kf-modal-card > *{position: relative; z-index: 1;}
.kf-modal-head{margin-bottom: 40px; max-width: 720px;}
.kf-modal-eyebrow{font-size: 12px; letter-spacing: .26em; text-transform: uppercase; color: var(--sivohneda-2); font-weight: 500;}
.kf-modal-card.dark .kf-modal-eyebrow{color: var(--pantone-7527);}
.kf-modal-h{font-size: clamp(48px, 6vw, 88px); line-height: 1.04; letter-spacing: -.035em; font-weight: 300; margin: 12px 0 16px;}
.kf-modal-tag{font-size: 18px; line-height: 1.55; color: var(--kavova-2); margin: 0; font-weight: 300;}
.kf-modal-card.dark .kf-modal-tag{color: var(--pantone-7527);}
.kf-modal-grid{
  display:grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
  padding: 28px 0;
  border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
  margin-bottom: 40px;
}
.kf-modal-card.dark .kf-modal-grid{border-top-color: rgba(231,222,210,.18); border-bottom-color: rgba(231,222,210,.18);}
.kf-modal-meta-cell .k{font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: var(--sivohneda-2); margin-bottom: 6px; font-weight: 600;}
.kf-modal-card.dark .kf-modal-meta-cell .k{color: var(--pantone-7527);}
.kf-modal-meta-cell .v{font-size: 17px; font-weight: 400;}

/* Products grid */
.kf-modal-products{
  display:grid; grid-template-columns: repeat(2, 1fr); gap: 16px;
  margin-bottom: 48px;
}
.kf-modal-product{
  display:grid; grid-template-columns: 140px 1fr; gap: 16px;
  padding: 16px; background: var(--smotanova);
  border: 1px solid var(--line); border-radius: 4px;
}
.kf-modal-card.dark .kf-modal-product{background: var(--kavova-2); border-color: rgba(231,222,210,.15);}
.kf-modal-product-img{
  background: var(--paper);
  display:flex; align-items: center; justify-content: center;
  border-radius: 2px; overflow: hidden; min-height: 130px;
}
.kf-modal-card.dark .kf-modal-product-img{background: var(--kavova-1);}
.kf-modal-product-img img{
  max-width: 88%; max-height: 88%; width: auto; height: auto;
  object-fit: contain; mix-blend-mode: multiply;
}
.kf-modal-card.dark .kf-modal-product-img img{mix-blend-mode: normal;}
.kf-modal-product-stub{
  width:100%; height:100%; min-height: 130px;
  background-image:
    linear-gradient(45deg, rgba(82,77,74,.05) 25%, transparent 25%),
    linear-gradient(-45deg, rgba(82,77,74,.05) 25%, transparent 25%);
  background-size: 16px 16px;
}
.kf-modal-card.dark .kf-modal-product-stub{
  background-image:
    linear-gradient(45deg, rgba(231,222,210,.05) 25%, transparent 25%),
    linear-gradient(-45deg, rgba(231,222,210,.05) 25%, transparent 25%);
}
.kf-modal-product-info{display:flex; flex-direction:column; gap: 4px; min-width: 0;}
.kf-modal-product-cat{font-size: 10.5px; letter-spacing:.2em; text-transform:uppercase; color: var(--sivohneda-2); font-weight:600;}
.kf-modal-card.dark .kf-modal-product-cat{color: var(--pantone-7527);}
.kf-modal-product-name{font-size: 15px; font-weight: 500; line-height: 1.25; margin: 2px 0;}
.kf-modal-product-desc{font-size: 12px; color: var(--kavova-2); line-height: 1.45; font-weight: 300;}
.kf-modal-card.dark .kf-modal-product-desc{color: var(--pantone-7527);}
.kf-modal-product-spec{
  display:grid; grid-template-columns: auto 1fr; gap: 3px 12px; margin: 6px 0 0;
  font-size: 11.5px; padding-top: 6px;
  border-top: 1px solid var(--line);
}
.kf-modal-card.dark .kf-modal-product-spec{border-top-color: rgba(231,222,210,.15);}
.kf-modal-product-spec dt{
  font-size: 9.5px; letter-spacing:.14em; text-transform:uppercase;
  color: var(--sivohneda-2); font-weight:600; padding-top: 2px;
}
.kf-modal-card.dark .kf-modal-product-spec dt{color: var(--pantone-7527);}
.kf-modal-product-spec dd{margin: 0;}
.kf-modal-product-spec dd.code{font-family:'JetBrains Mono', monospace; font-size: 11px;}
.kf-modal-sub{font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--sivohneda-2); margin: 0 0 24px;}
.kf-modal-card.dark .kf-modal-sub{color: var(--pantone-7527);}
.kf-modal-decors{display:flex; flex-direction: column; gap: 36px;}
.kf-modal-decor-head{display:flex; justify-content: space-between; align-items: baseline; margin-bottom: 12px; padding-bottom: 10px; border-bottom: 1px solid var(--line);}
.kf-modal-card.dark .kf-modal-decor-head{border-bottom-color: rgba(231,222,210,.18);}
.kf-modal-decor-cat{font-size: 20px; font-weight: 400; letter-spacing: -.01em;}
.kf-modal-decor-label{font-size: 13px; color: var(--sivohneda-2); letter-spacing: .08em; text-transform: uppercase;}
.kf-modal-card.dark .kf-modal-decor-label{color: var(--pantone-7527);}
.kf-modal-decor-swatches{display:grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 14px;}
.kf-modal-swatch{display:flex; flex-direction: column; border: 1px solid var(--line); border-radius: 4px; background: var(--smotanova); overflow: hidden;}
.kf-modal-card.dark .kf-modal-swatch{background: var(--kavova-2); border-color: rgba(231,222,210,.15);}
.kf-modal-swatch-chip{aspect-ratio: 16/10; width: 100%;}
.kf-modal-swatch-info{padding: 10px 14px 12px;}
.kf-modal-swatch-code{font-family: 'JetBrains Mono', monospace; font-size: 10.5px; color: var(--sivohneda-2); letter-spacing: .05em;}
.kf-modal-card.dark .kf-modal-swatch-code{color: var(--pantone-7527);}
.kf-modal-swatch-name{font-size: 13.5px; font-weight: 400; margin-top: 3px; line-height: 1.3;}
.kf-modal-foot{display:flex; justify-content: space-between; align-items: center; margin-top: 56px; padding-top: 32px; border-top: 1px solid var(--line);}
.kf-modal-card.dark .kf-modal-foot{border-top-color: rgba(231,222,210,.18);}
.kf-modal-card.dark .kf-btn-ghost{color: var(--pantone-7527);}
.kf-modal-card.dark .kf-btn-ghost:hover{color: var(--smotanova); background: rgba(231,222,210,.12);}
.kf-modal-card.dark .kf-btn-prim{background: var(--smotanova); color: var(--kavova-1);}
.kf-modal-card.dark .kf-btn-prim:hover{background: white;}

/* ============================================================
   STEP — VSTAVKY
   ============================================================ */
.kf-vst-stack{display:flex; flex-direction: column; gap: 32px;}
.kf-vst-card{
  position: relative;
  background: var(--smotanova); color: var(--kavova-1);
  border: 1px solid var(--line); border-radius: 4px;
  padding: 36px 40px;
  transition: all .25s ease;
}
.kf-vst-card.on{outline: 2px solid var(--kavova-1); outline-offset: 4px; background: #ecdfca;}
.kf-vst-head{display:flex; justify-content:space-between; align-items: baseline; margin-bottom: 16px;}
.kf-vst-lbl{font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: var(--sivohneda-2); font-weight: 600;}
.kf-vst-num{font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--sivohneda-2); letter-spacing: .08em;}
.kf-vst-h3{font-size: 36px; line-height: 1.1; letter-spacing: -.025em; font-weight: 300; margin: 0 0 12px;}
.kf-vst-desc{font-size: 15px; line-height: 1.6; color: var(--kavova-2); margin: 0 0 24px; max-width: 720px;}
.kf-vst-spec{
  display:grid; grid-template-columns: auto 1fr auto 1fr auto 1fr; gap: 12px 16px;
  margin: 0 0 28px; padding: 20px 0;
  border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
}
.kf-vst-spec dt{font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; color: var(--sivohneda-2); font-weight: 600; align-self:center;}
.kf-vst-spec dd{margin:0; font-size: 15px; font-weight: 500; align-self: center; font-feature-settings: "tnum"; white-space: nowrap;}
.kf-vst-spec-price{font-size: 18px !important; color: var(--kavova-1); white-space: nowrap;}
.kf-vst-cta{
  display: inline-flex; align-items: center; gap: 10px;
  padding: 14px 24px;
  border: 1px solid var(--kavova-1); color: var(--kavova-1);
  font-size: 12px; letter-spacing: .18em; text-transform: uppercase; font-weight: 500;
  border-radius: 99px;
  transition: all .2s;
}
.kf-vst-cta:hover{background: var(--kavova-1); color: var(--smotanova);}
.kf-vst-cta.on{background: var(--kavova-1); color: var(--smotanova);}
.kf-vst-vars{
  display: flex; flex-direction: column; gap: 12px;
  margin: 24px 0 20px;
}
.kf-vst-var{
  display:grid; grid-template-columns: 32px 1fr 140px; gap: 20px; align-items: center;
  padding: 18px 22px;
  border: 1px solid var(--line); border-radius: 4px;
  background: white; text-align: left; cursor: pointer;
  transition: all .2s;
}
.kf-vst-var:hover{border-color: var(--line-strong); transform: translateY(-1px); box-shadow: var(--shadow-1);}
.kf-vst-var.on{border-color: var(--kavova-1); background: var(--smotanova); border-width: 2px; padding: 17px 21px;}
.kf-vst-var-radio{
  width: 22px; height: 22px; border-radius: 50%;
  border: 2px solid var(--line-strong); background: white;
  position: relative; transition: all .2s;
}
.kf-vst-var.on .kf-vst-var-radio{border-color: var(--kavova-1);}
.kf-vst-var.on .kf-vst-var-radio::after{
  content:""; position: absolute; inset: 4px;
  background: var(--kavova-1); border-radius: 50%;
}
.kf-vst-var-name{font-size: 15px; font-weight: 500; line-height: 1.3; margin-bottom: 4px;}
.kf-vst-var-desc{font-size: 13px; color: var(--kavova-2); line-height: 1.5; font-weight: 300;}
.kf-vst-var-price{
  text-align: right; font-size: 20px; font-weight: 500;
  font-feature-settings: "tnum"; white-space: nowrap;
}
.kf-vst-note{
  font-size: 13px; line-height: 1.6; color: var(--kavova-2); margin: 0;
  padding-top: 16px; border-top: 1px solid var(--line);
}
.kf-vst-note strong{color: var(--kavova-1); font-weight: 600;}

@media (max-width: 900px){
  .kf-vst-card{padding: 28px 24px;}
  .kf-vst-spec{grid-template-columns: 110px 1fr; gap: 8px 16px;}
  .kf-vst-var{grid-template-columns: 28px 1fr; gap: 14px;}
  .kf-vst-var-price{grid-column: 2; text-align: left; padding-left: 42px; font-size: 17px; margin-top: 4px;}
}

/* ============================================================
   PODMIENKY KZ
   ============================================================ */
.kf-podm-stack{display:flex; flex-direction:column; gap:32px;}
.kf-podm-sec{
  padding: 32px 36px;
  background: var(--smotanova);
  border: 1px solid var(--line); border-radius: 4px;
}
.kf-podm-h{
  font-size: 11px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase;
  color: var(--sivohneda-2); margin: 0 0 16px;
}
.kf-podm-body{
  font-size: 15px; line-height: 1.7; color: var(--kavova-1); margin: 0; font-weight: 300;
  text-wrap: pretty;
}
.kf-podm-body strong{font-weight: 600;}
.kf-podm-cat .kf-podm-cat-grid{
  display:grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 8px;
}
.kf-podm-cat-card{
  background: white; border: 1px solid var(--line); border-radius: 4px;
  padding: 22px 24px;
}
.kf-podm-cat-id{
  display:inline-block; font-family: 'JetBrains Mono', monospace;
  background: var(--kavova-1); color: var(--smotanova);
  font-size: 13px; font-weight: 600; padding: 4px 10px; border-radius: 4px;
  margin-bottom: 12px; letter-spacing: .08em;
}
.kf-podm-cat-label{font-size: 17px; font-weight: 500; margin-bottom: 4px;}
.kf-podm-cat-rozsah{font-size: 13px; color: var(--sivohneda-2); margin-bottom: 14px;}
.kf-podm-cat-card dl{
  display:grid; grid-template-columns: auto 1fr; gap: 6px 16px; margin: 0;
  border-top: 1px solid var(--line); padding-top: 12px;
  font-size: 13px;
}
.kf-podm-cat-card dt{
  font-size: 10px; letter-spacing: .18em; text-transform: uppercase;
  color: var(--sivohneda-2); font-weight: 600; padding-top: 2px;
}
.kf-podm-cat-card dd{margin: 0; font-weight: 400;}
.kf-podm-ack{margin-top: 8px;}
.kf-podm-zaver{background: var(--paper); border-style: dashed;}
.kf-podm-zaver .kf-podm-body{font-style: italic; color: var(--kavova-2);}

@media (max-width: 800px){
  .kf-podm-sec{padding: 24px 20px;}
  .kf-podm-cat .kf-podm-cat-grid{grid-template-columns: 1fr;}
}

/* ============================================================
   ARCH BLOCK (klientske zmeny intro)
   ============================================================ */
.kf-arch-block{
  background: var(--smotanova); border: 1px solid var(--line);
  border-radius: 4px; padding: 28px 32px; margin-bottom: 56px;
}
.kf-arch-head{margin-bottom: 20px;}
.kf-arch-h{font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: var(--sivohneda-2); margin: 0 0 6px; font-weight: 600;}
.kf-arch-sub{font-size: 14px; color: var(--kavova-2); margin: 0; line-height: 1.5; font-weight: 300; max-width: 720px;}
.kf-arch-cats{
  display:grid; grid-template-columns: repeat(4, 1fr); gap: 12px;
}
.kf-arch-cat{
  padding: 16px 18px; background: white; border: 1px solid var(--line);
  border-radius: 4px;
}
.kf-arch-cat-id{
  display:inline-block; font-family: 'JetBrains Mono', monospace;
  background: var(--kavova-1); color: var(--smotanova);
  font-size: 11px; padding: 3px 8px; border-radius: 4px;
  margin-bottom: 10px; letter-spacing: .08em; font-weight: 600;
}
.kf-arch-cat-lbl{font-size: 12.5px; color: var(--sivohneda-2); margin-bottom: 10px; line-height: 1.35;}
.kf-arch-cat dl{display:grid; grid-template-columns: auto 1fr; gap: 4px 12px; margin: 0; font-size: 12px;
  border-top: 1px solid var(--line); padding-top: 10px;
}
.kf-arch-cat dt{font-size: 9.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--sivohneda-2); font-weight: 600; padding-top: 2px;}
.kf-arch-cat dd{margin: 0; font-weight: 400;}

@media (max-width: 900px){
  .kf-arch-cats{grid-template-columns: 1fr 1fr;}
}

/* ============================================================
   VSTAVKY — placeholder photo + arch costs
   ============================================================ */
.kf-vst-grid2{
  display:grid; grid-template-columns: 1.1fr 1.4fr; gap: 28px; align-items: stretch;
}
.kf-vst-photo{
  background: var(--paper); border: 1px solid var(--line); border-radius: 4px;
  min-height: 280px; padding: 24px;
  display:flex; flex-direction: column; align-items: stretch; justify-content: center;
  color: var(--sivohneda-2);
  background-image:
    linear-gradient(45deg, rgba(82,77,74,.04) 25%, transparent 25%),
    linear-gradient(-45deg, rgba(82,77,74,.04) 25%, transparent 25%);
  background-size: 24px 24px;
}
.kf-vst-photo-real{
  padding: 0; background: none; min-height: 0;
  display: flex; flex-direction: column; gap: 10px;
}
.kf-vst-imgs{display: grid; gap: 8px;}
.kf-vst-imgs.two{grid-template-rows: 1fr 1fr;}
.kf-vst-img{
  border: 1px solid var(--line); border-radius: 4px; overflow: hidden;
  background: var(--paper); aspect-ratio: 16/9;
}
.kf-vst-img img{width: 100%; height: 100%; object-fit: cover; display: block;}
.kf-vst-photo-real .kf-vst-ph-lbl{padding-top: 0;}
.kf-vst-ph svg{width: 100%; height: auto; max-height: 240px; opacity: 0.8;}
.kf-vst-ph-lbl{
  font-family: 'JetBrains Mono', monospace; font-size: 10px;
  letter-spacing: .2em; text-transform: uppercase;
  color: var(--sivohneda-2); text-align: center;
  padding-top: 6px;
}
.kf-vst-body{display:flex; flex-direction: column;}

.kf-vst-arch{
  margin-top: 20px; padding: 14px 16px;
  background: var(--paper); border: 1px solid var(--line); border-radius: 4px;
}
.kf-vst-arch-lbl{
  font-size: 10.5px; letter-spacing: .18em; text-transform: uppercase;
  color: var(--sivohneda-2); font-weight: 600; margin-bottom: 10px;
}
.kf-vst-arch-rows{display:flex; flex-direction: column; gap: 6px; font-size: 13px;}
.kf-vst-arch-rows > div{display:flex; justify-content: space-between; gap: 16px;}
.kf-vst-arch-rows > div > span:first-child{color: var(--sivohneda-2);}
.kf-vst-arch-rows > div > span:last-child{font-feature-settings: "tnum"; font-weight: 400;}
.kf-vst-arch-sum{
  border-top: 1px solid var(--line); padding-top: 6px; margin-top: 4px;
  font-weight: 500;
}
.kf-vst-arch-sum span:last-child{color: var(--kavova-1) !important; font-weight: 600 !important;}

.kf-vst-03 .kf-vst-spec-price{color: #2a6e2a;}

@media (max-width: 900px){
  .kf-vst-grid2{grid-template-columns: 1fr;}
  .kf-vst-photo{min-height: 200px;}
}

/* Checkbox marker in std-cta */
.kf-checkbox{
  display:inline-flex; align-items:center; justify-content: center;
  width: 16px; height: 16px; border: 1.5px solid currentColor;
  border-radius: 3px; font-size: 11px; font-weight: 700;
  margin-right: 4px;
  background: transparent;
}
.kf-std-cta.on .kf-checkbox{background: currentColor; color: var(--smotanova);}
.kf-std.dark .kf-std-cta.on .kf-checkbox{color: var(--kavova-1);}

.kf-sum-std-row{
  display:grid; grid-template-columns: 32px 1fr; gap: 16px; align-items: start;
  padding: 16px 0; border-bottom: 1px solid var(--line);
}
.kf-sum-std-row:last-child{border-bottom: none;}
.kf-sum-std-row:first-of-type{padding-top: 8px;}
.kf-sum-std-tick{
  width: 24px; height: 24px; border-radius: 50%;
  background: var(--kavova-1); color: var(--smotanova);
  display:flex; align-items:center; justify-content:center; font-weight: 700; font-size: 13px;
  margin-top: 4px;
}
.kf-sum-std-row .kf-sum-val{font-size: 24px; margin-bottom: 4px;}
.kf-sum-std-row .kf-sum-sub{font-size: 13px;}

/* ============================================================
   STEP 1 — Two-stage selector: katalóg cards + mix matrix
   ============================================================ */
.kf-precat{
  margin-bottom: 56px;
}
.kf-precat-eyebrow{
  display:flex; align-items: center; gap: 14px;
  margin-bottom: 20px;
}
.kf-precat-num{
  display:inline-flex; align-items:center; justify-content:center;
  width: 32px; height: 32px; border-radius: 50%;
  background: var(--kavova-1); color: var(--smotanova);
  font-family: 'JetBrains Mono', monospace; font-size: 12px; font-weight: 700;
  letter-spacing: .04em;
}
.kf-precat-lbl{
  font-size: 13px; letter-spacing: .18em; text-transform: uppercase;
  color: var(--kavova-1); font-weight: 600;
}
.kf-precat-grid{
  display:grid; grid-template-columns: repeat(3, 1fr); gap: 20px;
}
.kf-precat-card{
  position: relative; overflow: hidden;
  display:flex; flex-direction: column;
  padding: 28px 28px 24px;
  background: var(--smotanova); color: var(--kavova-1);
  border: 1px solid var(--line); border-radius: 4px;
  text-align: left; cursor: pointer;
  transition: all .25s ease;
  min-height: 280px;
}
.kf-precat-card:hover{
  transform: translateY(-3px);
  box-shadow: var(--shadow-2);
  background: #ecdfca;
}
.kf-precat-card.dark{background: var(--kavova-1); color: var(--smotanova); border-color: rgba(231,222,210,.18);}
.kf-precat-card.dark:hover{background: #463f3c;}

.kf-precat-ssign{
  position: absolute; right: -50px; top: -50px;
  width: 200px; height: 200px;
  color: rgba(82,77,74, 0.07); pointer-events: none;
}
.kf-precat-card.dark .kf-precat-ssign{color: rgba(231,222,210, 0.09);}
.kf-precat-ssign svg{width:100%; height:100%; display:block;}
.kf-precat-card > *{position: relative; z-index: 1;}

.kf-precat-top{display:flex; justify-content: space-between; align-items: center; margin-bottom: auto;}
.kf-precat-tag{
  display: inline-block; padding: 4px 12px;
  background: rgba(82,77,74,.1); color: var(--kavova-1);
  font-size: 10px; letter-spacing: .22em; text-transform: uppercase; font-weight: 600;
  border-radius: 99px;
}
.kf-precat-card.dark .kf-precat-tag{background: rgba(231,222,210,.15); color: var(--smotanova);}
.kf-precat-idx{font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--sivohneda-2); letter-spacing: .08em;}
.kf-precat-card.dark .kf-precat-idx{color: var(--sivohneda-1);}

.kf-precat-body{margin: 36px 0 28px;}
.kf-precat-h{
  font-size: 36px; line-height: 1.05; letter-spacing: -.025em; font-weight: 300;
  margin-bottom: 10px;
}
.kf-precat-sub{
  font-size: 13.5px; line-height: 1.5; color: var(--kavova-2); font-weight: 300;
}
.kf-precat-card.dark .kf-precat-sub{color: var(--pantone-7527);}

.kf-precat-cta{
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 14px 18px; margin: 0 -8px -4px;
  background: var(--kavova-1); color: var(--smotanova);
  border-radius: 99px;
  font-size: 12px; letter-spacing: .14em; text-transform: uppercase; font-weight: 600;
  transition: all .2s;
}
.kf-precat-card.dark .kf-precat-cta{background: var(--smotanova); color: var(--kavova-1);}
.kf-precat-card:hover .kf-precat-cta{padding-left: 22px;}
.kf-precat-arrow{
  display:inline-block; width: 24px; height: 1px; background: currentColor;
  position: relative;
  transition: width .2s;
}
.kf-precat-arrow::after{
  content:""; position:absolute; right:0; top:-4px; width:8px; height:8px;
  border-right: 1px solid currentColor; border-top: 1px solid currentColor;
  transform: rotate(45deg);
}
.kf-precat-card:hover .kf-precat-arrow{width: 40px;}

.kf-precat-step2{
  display:flex; align-items: center; gap: 14px;
  margin: 0 0 24px;
  padding-top: 24px;
  border-top: 1px solid var(--line);
}

@media (max-width: 900px){
  .kf-precat-grid{grid-template-columns: 1fr;}
  .kf-precat-card{min-height: 0;}
  .kf-precat-h{font-size: 28px;}
}

/* ============================================================
   STEP 1 — MIX & MATCH STANDARDS (per-category selector)
   ============================================================ */
.kf-mix-help{display:none;}

.kf-mix{
  border: 1px solid var(--line); border-radius: 4px; overflow: hidden;
  background: white;
}
.kf-mix-head, .kf-mix-row{
  display:grid;
  grid-template-columns: minmax(180px, 1fr) repeat(3, minmax(180px, 1.2fr));
}
.kf-mix-head{
  background: var(--smotanova);
  border-bottom: 1px solid var(--line-strong);
}
.kf-mix-h{
  padding: 18px 20px;
  border-left: 1px solid var(--line);
}
.kf-mix-h.dark{background: var(--kavova-1); color: var(--smotanova); border-left-color: rgba(231,222,210,.2);}
.kf-mix-h-num{font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--sivohneda-2); letter-spacing: .08em; margin-bottom: 4px;}
.kf-mix-h.dark .kf-mix-h-num{color: var(--sivohneda-1);}
.kf-mix-h-name{font-size: 16px; font-weight: 500; letter-spacing: -.01em;}
.kf-mix-h-tag{font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--sivohneda-2); margin-top: 4px; font-weight: 600;}
.kf-mix-h.dark .kf-mix-h-tag{color: var(--pantone-7527);}

.kf-mix-row{
  border-bottom: 1px solid var(--line);
}
.kf-mix-row:last-child{border-bottom: none;}
.kf-mix-cat{
  padding: 18px 20px;
  background: var(--paper);
  display:flex; flex-direction: column; gap: 4px;
  justify-content: center;
}
.kf-mix-cat-name{font-size: 15px; font-weight: 500;}
.kf-mix-cat-note{font-size: 12px; color: var(--sivohneda-2); font-weight: 300;}

.kf-mix-cell{
  position: relative;
  padding: 18px 20px;
  border-left: 1px solid var(--line);
  text-align: left; cursor: pointer;
  background: white;
  display:flex; gap: 12px; align-items: center;
  transition: background .15s;
  min-height: 76px;
}
.kf-mix-cell:hover{background: var(--smotanova);}
.kf-mix-cell.on{background: var(--smotanova); box-shadow: inset 0 0 0 2px var(--kavova-1);}
.kf-mix-cell.dark{background: rgba(82,77,74,.04);}
.kf-mix-cell.dark.on{background: var(--kavova-1); color: var(--smotanova); box-shadow: inset 0 0 0 2px var(--smotanova);}
.kf-mix-cell.dark:hover{background: rgba(82,77,74,.1);}
.kf-mix-cell.dark.on:hover{background: var(--kavova-1);}
.kf-mix-cell-radio{
  width: 18px; height: 18px; border-radius: 50%;
  border: 1.5px solid var(--line-strong); flex: none;
  position: relative; transition: all .2s;
  background: white;
}
.kf-mix-cell.dark .kf-mix-cell-radio{background: transparent; border-color: rgba(231,222,210,.3);}
.kf-mix-cell.on .kf-mix-cell-radio{border-color: var(--kavova-1); background: white;}
.kf-mix-cell.on .kf-mix-cell-radio::after{
  content: ""; position: absolute; inset: 3px;
  background: var(--kavova-1); border-radius: 50%;
}
.kf-mix-cell.dark.on .kf-mix-cell-radio{border-color: var(--smotanova); background: var(--smotanova);}
.kf-mix-cell.dark.on .kf-mix-cell-radio::after{background: var(--kavova-1);}
.kf-mix-cell-val{font-size: 13.5px; line-height: 1.4; font-weight: 400; flex: 1;}
.kf-mix-cell-tick{
  position: absolute; top: 8px; right: 10px;
  font-size: 13px; font-weight: 700;
  color: var(--kavova-1);
}
.kf-mix-cell.dark.on .kf-mix-cell-tick{color: var(--smotanova);}

.kf-sum-std-tag{
  display:inline-block; padding: 3px 10px; font-size: 11px;
  font-weight: 600; letter-spacing: .08em;
  background: var(--smotanova); border: 1px solid var(--line);
  border-radius: 99px;
  margin-bottom: 4px;
}
.kf-sum-std-tag.std{background: var(--smotanova);}
.kf-sum-std-tag.over{background: var(--kavova-1); color: var(--smotanova); border-color: var(--kavova-1);}
.kf-sum-std-tag-note{font-size: 10.5px; color: var(--sivohneda-2); letter-spacing: .14em; text-transform: uppercase; font-weight: 500;}

@media (max-width: 900px){
  .kf-mix-head, .kf-mix-row{grid-template-columns: 1fr;}
  .kf-mix-h{display:none;}
  .kf-mix-cat{background: var(--kavova-1); color: var(--smotanova); padding: 14px 18px;}
  .kf-mix-cat-name{font-size: 14px;}
  .kf-mix-cat-note{color: var(--pantone-7527);}
  .kf-mix-cell{border-left: none; border-top: 1px solid var(--line); min-height: 0; padding: 14px 18px;}
  .kf-mix-cell::before{
    content: attr(data-lbl);
    font-size: 10px; letter-spacing: .14em; text-transform: uppercase;
    color: var(--sivohneda-2); font-weight: 600;
    display: block;
  }
}

/* ============================================================
   STEP — KLIENTSKE ZMENY (fixný cenník, bez počtov)
   ============================================================ */
.kf-ch-stack{display:flex; flex-direction: column; gap: 80px;}
.kf-ch-h3{
  font-size: 13px; font-weight: 600; letter-spacing: .14em;
  margin: 0 0 16px; padding-bottom: 14px; border-bottom: 1px solid var(--line-strong);
  text-transform: uppercase; color: var(--kavova-1);
}
.kf-ch-list{display: flex; flex-direction: column;}
.kf-ch-row-btn{
  display:grid; grid-template-columns: 32px 36px 1fr 80px 140px;
  align-items: center; gap: 16px;
  padding: 16px 18px;
  border-bottom: 1px solid var(--line);
  background: transparent; text-align: left; width: 100%;
  cursor: pointer; transition: background .2s;
}
.kf-ch-row-btn:hover{background: rgba(255,255,255,.5);}
.kf-ch-row-btn.on{background: var(--smotanova);}
.kf-ch-tick{
  width: 24px; height: 24px; border-radius: 4px;
  border: 1.5px solid var(--line-strong); background: white;
  display:flex; align-items:center; justify-content:center;
  font-size: 14px; font-weight: 700; color: transparent;
  transition: all .2s;
}
.kf-ch-row-btn.on .kf-ch-tick{background: var(--kavova-1); border-color: var(--kavova-1); color: var(--smotanova);}
.kf-ch-num{font-family: 'JetBrains Mono', monospace; font-size: 12px; color: var(--sivohneda-2); letter-spacing: .05em;}
.kf-ch-label{font-size: 15px; font-weight: 400; line-height: 1.35;}
.kf-ch-detail{font-size: 12.5px; color: var(--sivohneda-2); margin-top: 4px; line-height: 1.5; font-weight: 300;}
.kf-ch-unit{font-family: 'JetBrains Mono', monospace; font-size: 12px; color: var(--sivohneda-2); text-transform: uppercase; letter-spacing: .08em;}
.kf-ch-price{text-align: right; font-size: 15px; font-weight: 400; font-feature-settings: "tnum"; white-space: nowrap;}
.kf-ch-price em{font-size: 13px; color: var(--sivohneda-2); font-weight: 300;}

/* ===== PRICE TICKER ===== */
.kf-ticker{
  position: fixed; bottom: 0; left: 0; right: 0;
  background: var(--kavova-1); color: var(--smotanova);
  padding: 16px 48px;
  display:flex; justify-content: space-between; align-items: center;
  z-index: 40;
  box-shadow: 0 -12px 48px -16px rgba(82,77,74,.4);
}
.kf-ticker-l{display:flex; align-items: baseline; gap: 24px;}
.kf-ticker-lbl{font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: var(--pantone-7527); font-weight: 500;}
.kf-ticker-val{font-size: 28px; font-weight: 400; letter-spacing: -.01em; font-feature-settings: "tnum";}
.kf-ticker-r{display:flex; gap: 4px; padding: 4px; background: rgba(231,222,210,.1); border-radius: 99px;}
.kf-vat{
  font-size: 11px; letter-spacing: .14em; text-transform: uppercase; font-weight: 500;
  padding: 8px 14px; border-radius: 99px;
  color: var(--pantone-7527); transition: all .2s;
}
.kf-vat.on{background: var(--smotanova); color: var(--kavova-1);}

/* ============================================================
   STEP 4 — SÚHRN
   ============================================================ */
.kf-sum-grid{
  display:grid; grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin-bottom: 40px;
}
.kf-sum-box{
  padding: 28px 32px;
  background: var(--smotanova);
  border: 1px solid var(--line); border-radius: 4px;
}
.kf-sum-box.wide{grid-column: 1 / -1;}
.kf-sum-lbl{font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: var(--sivohneda-2); margin-bottom: 14px; font-weight: 600;}
.kf-sum-val{font-size: 36px; font-weight: 300; letter-spacing: -.02em; line-height: 1.05; margin-bottom: 8px;}
.kf-sum-sub{font-size: 14px; color: var(--kavova-2); line-height: 1.5; margin: 0;}
.kf-sum-dl{
  display:grid; grid-template-columns: 120px 1fr; gap: 12px 24px; margin: 0;
}
.kf-sum-dl dt{font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--sivohneda-2); font-weight: 600; padding-top: 4px;}
.kf-sum-dl dd{margin: 0; font-size: 15px; display:flex; align-items: center; gap: 10px;}
.kf-sum-chip{width: 24px; height: 24px; border-radius: 4px; border: 1px solid var(--line-strong); flex: none;}

.kf-sum-table{width: 100%; border-collapse: collapse; font-size: 14px;}
.kf-sum-table td, .kf-sum-table th{
  padding: 12px 14px; vertical-align: top;
  border-bottom: 1px solid var(--line); text-align: left;
}
.kf-sum-num{font-family: 'JetBrains Mono', monospace; font-size: 12px; color: var(--sivohneda-2); width: 40px;}
.kf-sum-desc{}
.kf-sum-grp{color: var(--sivohneda-2); font-size: 12px;}
.kf-sum-q{font-family: 'JetBrains Mono', monospace; font-size: 13px; color: var(--sivohneda-2); white-space: nowrap;}
.kf-sum-p{text-align: right; font-feature-settings: "tnum"; white-space: nowrap; font-weight: 400;}
.kf-sum-table tfoot th{
  text-align: right; font-size: 12px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--sivohneda-2); font-weight: 600;
  border-top: 1px solid var(--ink); border-bottom: none;
  padding-top: 20px;
}
.kf-sum-itemname{font-size:15px; font-weight:500; line-height:1.3;}
.kf-sum-itemdet{font-size:12.5px; color: var(--sivohneda-2); margin-top:4px; line-height:1.4; font-weight:300;}
.kf-sum-grp{display:block; font-size:10.5px; color: var(--sivohneda-2); letter-spacing:.18em; text-transform:uppercase; margin-top:6px; font-weight:600;}

/* Disclaimer */
.kf-disclaimer{
  display:flex; align-items: flex-start; gap: 16px;
  margin-top: 28px; padding: 18px 22px;
  background: #f0e6d6; border: 1px solid #d4b888;
  border-radius: 4px;
  font-size: 14px; line-height: 1.55; color: var(--kavova-1); font-weight: 400;
}
.kf-disclaimer-top{margin-top: 28px; margin-bottom: 0;}
.kf-disclaimer-stat{margin-top: 16px; background: #eef0e6; border-color: #b9c08a;}
.kf-floorplan{
  display:flex; align-items:center; gap: 20px; margin-top: 20px;
  padding: 16px; border: 1px solid var(--line); border-radius: 4px;
  background: var(--smotanova); text-decoration: none; color: inherit;
  transition: all .2s;
}
.kf-floorplan:hover{background: #ecdfca; border-color: var(--line-strong);}
.kf-floorplan-img{
  width: 160px; flex: none; aspect-ratio: 4/3;
  border: 1px solid var(--line); border-radius: 3px; overflow: hidden; background: #fff;
}
.kf-floorplan-img img{width: 100%; height: 100%; object-fit: contain; display: block;}
.kf-floorplan-lbl{font-size: 14px; font-weight: 600; letter-spacing: .04em;}
.kf-floorplan-zoom{font-size: 12px; color: var(--sivohneda-2); margin-top: 4px; letter-spacing: .08em; text-transform: uppercase;}
.kf-vst-phasewarn{
  font-size: 13px; line-height: 1.5; color: #7a3a1a;
  background: #f6e3d4; border: 1px solid #d99a6a; border-radius: 4px;
  padding: 12px 14px; margin: 0 0 16px;
}
.kf-vst-phasewarn strong{font-weight: 600;}
.kf-ch-h3-note{font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--sivohneda-2); font-size: 11px;}
.kf-ch-price-mj{color: var(--sivohneda-2); font-size: 11px; font-weight: 300;}
.kf-disclaimer-mark{
  flex: none;
  width: 28px; height: 28px; border-radius: 50%;
  background: var(--kavova-1); color: var(--smotanova);
  font-weight: 700; font-size: 16px;
  display:flex; align-items:center; justify-content:center;
  font-family: 'JetBrains Mono', monospace;
}
.kf-disclaimer strong{font-weight: 600;}
.kf-sum-total{font-size: 22px !important; text-transform: none !important; letter-spacing: -.01em !important; color: var(--kavova-1) !important; font-weight: 500 !important; font-feature-settings: "tnum";}

.kf-textarea{
  width: 100%; min-height: 100px;
  padding: 16px;
  border: 1px solid var(--line-strong); border-radius: 4px;
  background: white;
  font-size: 15px; line-height: 1.5;
  resize: vertical;
  transition: border-color .2s;
}
.kf-textarea:focus{outline: none; border-color: var(--kavova-1);}

.kf-consent{
  display:flex; gap: 16px; align-items: flex-start;
  padding: 24px 28px;
  background: var(--smotanova); border: 1px solid var(--line); border-radius: 4px;
  cursor: pointer;
  margin-bottom: 8px;
}
.kf-consent input{
  width: 22px; height: 22px; flex: none; margin-top: 1px;
  accent-color: var(--kavova-1);
}
.kf-consent span{font-size: 14.5px; line-height: 1.55; color: var(--kavova-2);}

/* ============================================================
   THANKS
   ============================================================ */
.kf-thanks{
  text-align: center;
  padding: 80px 0;
  max-width: 720px; margin: 0 auto;
}
.kf-thanks-mark{
  width: 88px; height: 88px;
  background: var(--kavova-1); color: var(--smotanova);
  border-radius: 50%;
  display:inline-flex; align-items:center; justify-content:center;
  margin-bottom: 40px;
}
.kf-thanks .kf-lede{margin: 0 auto 40px; max-width: 560px;}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1100px){
  .kf-hdr{padding: 16px 24px;}
  .kf-hdr-r{gap: 12px;}
  .kf-prog{padding: 20px 24px 0;}
  .kf-prog-inner{grid-template-columns: repeat(6, 1fr); gap: 6px;}
  .kf-prog-lbl{font-size: 12px;}
  .kf-main{padding: 32px 24px;}
  .kf-welcome{margin-left: -24px; margin-right: -24px; margin-top: -32px;}
  .kf-welcome-inner{padding: 48px 32px;}
  .kf-welcome-meta{gap: 24px; grid-template-columns: 1fr 1fr;}
  .kf-std-grid{grid-template-columns: 1fr; gap: 16px;}
  .kf-sum-grid{grid-template-columns: 1fr;}
  .kf-ch-row-btn{
    grid-template-columns: 32px 30px 1fr;
    grid-template-rows: auto auto; gap: 8px;
  }
  .kf-ch-unit, .kf-ch-price{grid-column: 3; text-align: left;}
  .kf-ticker{padding: 12px 24px;}
  .kf-ticker-val{font-size: 22px;}
}
@media (max-width: 640px){
  .kf-prog-lbl{display: none;}
  .kf-prog-inner{gap: 12px;}
  .kf-client-lbl{display: none;}
  .kf-welcome-meta{grid-template-columns: 1fr;}
  .kf-h1{font-size: clamp(40px, 12vw, 80px);}
}
