/* PSChlazení — modrá vede chlad, červená teplo */

@font-face{
  font-family:"Archivo";
  src:url("../fonts/archivo-latin-ext.woff2") format("woff2");
  font-weight:100 900; font-stretch:62% 125%; font-style:normal; font-display:swap;
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:"Archivo";
  src:url("../fonts/archivo-latin.woff2") format("woff2");
  font-weight:100 900; font-stretch:62% 125%; font-style:normal; font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

@font-face{
  font-family:"Figtree";
  src:url("../fonts/figtree-latin-ext.woff2") format("woff2");
  font-weight:300 900; font-style:normal; font-display:swap;
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:"Figtree";
  src:url("../fonts/figtree-latin.woff2") format("woff2");
  font-weight:300 900; font-style:normal; font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

@property --accent{ syntax:"<color>"; inherits:true; initial-value:#1f63d1; }

:root{
  --display:"Archivo",system-ui,sans-serif;
  --body:"Figtree",system-ui,-apple-system,"Segoe UI",sans-serif;
  --canvas:#f1f4f8;
  --paper:#ffffff;
  --ink:#0b1b2e;
  --ink-soft:#46586c;
  --line:#d3dce8;
  --navy:#0b3d78;
  --navy-deep:#07244a;
  --on-navy:#bccde6;
  --cold:#1f63d1;
  --heat:#cc3622;
  --heat-ink:#b3301d;
  --accent:#1f63d1;
  --tint:1;
  --fs-body:18px;

  --gutter:clamp(16px,4vw,40px);
  --section:200px;
  --r-lg:28px;
  --r-md:18px;
  --ease:cubic-bezier(.16,1,.3,1);
  --shadow:0 22px 44px -22px rgba(7,36,74,.5);
  color-scheme:light;
  transition:--accent .7s var(--ease);
}
:root[data-mode="heat"]{ --accent:#1f63d1; }   /* venku pod 15 °C: modrá */
:root[data-mode="vent"],:root[data-mode="cold"]{ --accent:#e8701a; }   /* od 15 °C: oranžová */

*,*::before,*::after{ box-sizing:border-box; }
html{ overflow-x:clip; scroll-behavior:smooth; scroll-padding-top:88px; -webkit-tap-highlight-color:rgba(31,99,209,.16); scrollbar-color:var(--navy) var(--canvas); -webkit-text-size-adjust:100%; }
body{
  margin:0; background:var(--canvas); color:var(--ink);
  font-family:var(--body);
  font-size:var(--fs-body); line-height:1.4; font-weight:400;
  caret-color:var(--accent); overflow-x:clip;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,p,ul,ol,dl,dd,figure{ margin:0; }
ul,ol{ padding:0; list-style:none; }
img,svg,picture{ display:block; max-width:100%; }
img{ height:auto; }
a{ color:inherit; text-decoration:none; text-underline-offset:.22em; }
button,input,select,textarea{ font:inherit; color:inherit; }
a,button,select,label{ touch-action:manipulation; }
h1,h2,h3{ font-family:var(--display); text-wrap:balance; }
::selection{ background:var(--accent); color:#fff; }
:focus-visible{ outline:2.5px solid var(--accent); outline-offset:3px; border-radius:6px; }

.wrap{ width:min(100% - 2*var(--gutter),1360px); margin-inline:auto; }
.sr-only{ position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.skip{ position:fixed; left:12px; top:-60px; z-index:100; background:var(--ink); color:#fff; padding:12px 18px; border-radius:999px; transition:top .2s; }
.skip:focus{ top:12px; }

.ic{ width:1.15em; height:1.15em; flex:none; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }

/* dvojlinka z loga */
.twin{ display:block; height:11px; border-top:4px solid var(--cold); border-bottom:4px solid var(--heat); }

/* řádky nadpisů (lamely) */
.ln{ display:block; perspective:900px; }
.ln__in{ display:inline-block; transform-origin:50% 0; backface-visibility:hidden; }
.t-cold{ color:var(--cold); }
.t-heat{ color:var(--heat); }

/* ---------- tlačítka ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.6em;
  padding:.82em 1.4em; border-radius:999px; border:1.5px solid transparent;
  font-weight:600; font-family:var(--display); font-stretch:106%; line-height:1; white-space:nowrap; cursor:pointer;
  font-variant-numeric:tabular-nums;
  transition:background-color .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease), transform .35s var(--ease);
}
.btn .ic{ transition:transform .5s var(--ease); }
.btn:hover .ic{ transform:rotate(-14deg) scale(1.08); }
.btn:active{ transform:scale(.97); }
.btn--sm{ padding:.72em 1.15em; font-size:.95rem; }
.btn--lg{ padding:1.02em 1.6em; font-size:1.0625rem; }
.btn--full{ width:100%; }
.btn--accent{ background:var(--accent); color:#fff; }
.btn--accent:hover{ background:color-mix(in oklab,var(--accent),#000 18%); }
.btn--line{ border-color:var(--ink); }
.btn--line:hover{ background:var(--ink); color:#fff; }
.btn--paper{ background:#fff; color:var(--ink); }
.btn--paper:hover{ background:var(--ink); color:#fff; }
.btn--ghost{ border-color:rgba(255,255,255,.6); color:#fff; }
.btn--ghost:hover{ background:#fff; color:var(--ink); border-color:#fff; }

.round{
  width:52px; height:52px; border-radius:50%; display:grid; place-items:center; cursor:pointer;
  background:transparent; color:#fff; border:1.5px solid rgba(255,255,255,.45);
  transition:background-color .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease), transform .3s var(--ease);
}
.round:hover{ background:#fff; color:var(--ink); border-color:#fff; }
.round:active{ transform:scale(.94); }
.round:disabled{ opacity:.35; cursor:default; }
.round:focus-visible{ outline-color:#fff; border-radius:50%; }

/* ---------- navigace ---------- */
.nav{ position:sticky; top:0; z-index:50; background:var(--canvas); transition:box-shadow .3s, transform .5s var(--ease), background-color .45s var(--ease); }
.nav__in{ transition:transform .5s var(--ease); }
.logo img{ transition:filter .45s var(--ease); }
.nav.is-hidden{ transform:translateY(-100%); box-shadow:none; }
.nav.is-scrolled{ box-shadow:0 14px 30px -24px rgba(7,36,74,.45); }
.nav__in{ display:flex; align-items:center; justify-content:space-between; gap:24px; padding-block:14px; }
.logo{ display:flex; align-items:center; gap:10px; flex:none; }
.logo__fan{ width:42px; height:42px; }
.logo__word{ display:block; width:132px; }
.logo__word .twin{ height:7px; border-width:2.5px; margin-top:4px; }
.nav__links{ display:flex; gap:clamp(18px,2.6vw,38px); }
.nav__links > a{ position:relative; font-weight:560; font-size:.98rem; padding-block:8px; }
.nav__links > a::after{
  content:""; position:absolute; left:0; right:0; bottom:2px; height:1.5px; border-radius:2px; background:currentColor;
  transform:scaleX(0); transform-origin:0 50%; transition:transform .5s var(--ease);
}
.nav__links > a:hover::after,.nav__links > a:focus-visible::after{ transform:scaleX(1); }
.nav__mob{ display:none; }
/* tlačítko poptávky: jen na bílé liště, nad fotkou v heru schované */
@media (min-width:961px){ .nav__links{ margin-left:auto; } }
.nav__cta{ flex:none; overflow:hidden; max-width:16em; margin-left:clamp(4px,1.2vw,16px); transition:background-color .35s var(--ease), opacity .4s var(--ease) .15s, transform .5s var(--ease) .15s, max-width .5s var(--ease), padding .5s var(--ease), margin .5s var(--ease), visibility 0s; }
.nav__cta-fan{ width:1.25em; height:1.25em; transition:transform .9s var(--ease); }
.nav__cta:hover .nav__cta-fan{ transform:rotate(360deg); }
/* nahoře nezabírá místo, aby odkazy zůstaly zarovnané vpravo */
.nav.is-top .nav__cta{ opacity:0; visibility:hidden; max-width:0; padding-inline:0; margin-left:-24px; border-width:0; transform:translateY(-6px); pointer-events:none; transition:opacity .2s var(--ease), transform .3s var(--ease), max-width .4s var(--ease), padding .4s var(--ease), margin .4s var(--ease), visibility 0s .4s; }
@media (max-width:960px){ .nav__cta{ display:none; } }
@media (prefers-reduced-motion:reduce){ .nav__cta:hover .nav__cta-fan{ transform:none; } }
.burger{ display:none; width:46px; height:46px; border-radius:50%; border:1.5px solid var(--ink); background:none; position:relative; cursor:pointer; flex:none; transition:border-color .45s var(--ease); }
.burger span{ position:absolute; left:13px; right:13px; height:2px; background:var(--ink); border-radius:2px; transition:transform .4s var(--ease), top .4s var(--ease), background-color .45s var(--ease); }
.burger span:nth-child(1){ top:18px; } .burger span:nth-child(2){ top:26px; }
.burger[aria-expanded="true"] span:nth-child(1){ top:22px; transform:rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2){ top:22px; transform:rotate(-45deg); }

/* ---------- hero: fotka přes celou plochu, navigace leží na ní ---------- */
.nav.is-top{ background:transparent; box-shadow:none; }
@media (min-width:961px){
  .nav.is-top .nav__in{ transform:translateY(clamp(10px,1.6vw,22px)); }
}
/* mobil: posun přes top, ne transform (transform by rozbil fixed menu uvnitř) */
@media (max-width:960px){
  .logo{ position:relative; z-index:51; top:0; transition:top .5s var(--ease); }
  .burger{ z-index:51; top:0; transition:border-color .45s var(--ease), top .5s var(--ease); }
  .nav.is-top .logo,.nav.is-top .burger{ top:14px; }
}
.nav.is-top .logo img{ filter:brightness(0) invert(1); }
.nav.is-top .burger[aria-expanded="false"]{ border-color:rgba(255,255,255,.7); }
.nav.is-top .burger[aria-expanded="false"] span{ background:#fff; }
@media (min-width:961px){ .nav.is-top .nav__links > a{ color:#fff; } }

.hero{
  position:relative; isolation:isolate; overflow:hidden; display:flex; color:#fff;
  margin:calc(10px - var(--nav-h,74px)) 10px 0; min-height:calc(100vh - 20px); min-height:calc(100svh - 20px);
  border-radius:var(--r-lg); background:var(--navy-deep);
}
.hero__bg{ position:absolute; inset:0; z-index:-1; }
.hero__bg img{ width:100%; height:100%; object-fit:cover; object-position:50% 46%; }
.hero__bg::after{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(60% 55% at 50% 50%,rgba(5,22,46,.35),rgba(5,22,46,0) 100%),
    linear-gradient(180deg,rgba(5,22,46,.62) 0%,rgba(5,22,46,.5) 40%,rgba(5,22,46,.58) 70%,rgba(5,22,46,.9) 100%);
}
.hero__in{ display:flex; flex-direction:column; justify-content:center; padding:calc(var(--nav-h,74px) + 48px) 0 clamp(18px,2.4vw,30px); }
.hero__title{
  font-size:clamp(2.3rem,min(4.4vw,7.8vh),4.7rem); font-family:var(--display); font-stretch:122%; font-weight:650;
  letter-spacing:-.035em; line-height:1.02;
}
.hero__lead{
  display:grid; grid-template-columns:minmax(0,1fr); justify-items:center; margin-block:auto; padding-top:clamp(24px,6vh,72px);
}
.hero__copy > p{ max-width:44rem; font-size:var(--fs-body); color:rgba(255,255,255,.86); line-height:1.4; text-wrap:balance; }
.hero__copy{ display:grid; gap:clamp(18px,2.2vw,28px); justify-items:center; text-align:center; }
.hero__ctas{ display:flex; flex-wrap:wrap; justify-content:center; gap:12px; }
.hero__cards{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; padding-top:clamp(40px,8vh,96px); }
.hero__cards li{
  display:flex; align-items:center; justify-content:center; gap:12px; line-height:1.3;
}
.hero__cards strong{ font-weight:400; color:rgba(255,255,255,.86); }
.hero__ic{ display:grid; place-items:center; flex:none; }
.hero__ic .ic{ width:22px; height:22px; }
.hero__cards li:first-child{ justify-content:flex-start; }
.hero__cards li:last-child{ justify-content:flex-end; }

/* ---------- čísla ---------- */
.stats{ padding-top:clamp(40px,5vw,72px); }
.stats__grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
.stats__grid > div{ display:flex; flex-direction:column-reverse; justify-content:flex-end; align-items:center; gap:8px; padding:6px clamp(8px,1.4vw,20px); text-align:center; }
.stats dd{ font-family:var(--display); font-stretch:122%; font-weight:650; font-size:clamp(2.4rem,4.6vw,4.4rem); letter-spacing:-.04em; line-height:1; font-variant-numeric:tabular-nums; white-space:nowrap; color:transparent; -webkit-text-stroke:1px var(--ink); paint-order:stroke; }
.stats dt{ color:var(--ink-soft); font-size:1rem; }

/* ---------- termostat napojený na počasí ---------- */
/* termostat */
.thermo{
  position:relative; display:grid; grid-template-columns:minmax(0,1fr); gap:14px;
  padding:clamp(18px,2vw,24px) clamp(20px,2.2vw,28px);
  color:var(--ink); background:var(--paper); border-radius:var(--r-md);
}
.thermo__state{ display:flex; align-items:center; justify-content:space-between; gap:16px; }
.thermo__mode{ display:inline-flex; align-items:center; gap:8px; padding:7px 14px 7px 12px; border-radius:999px; background:color-mix(in oklab,var(--accent) 12%,var(--paper)); color:var(--accent); font-size:.92rem; font-weight:600; line-height:1.2; transition:background-color .4s, color .4s; }
.thermo__mode::before{ content:""; width:8px; height:8px; border-radius:50%; background:currentColor; box-shadow:0 0 0 3px color-mix(in oklab,currentColor 25%,transparent); }
.thermo__temps{ display:flex; gap:24px; }
.thermo__temps dt{ font-size:.82rem; color:var(--ink-soft); line-height:1.2; }
.thermo__temps dd{ font-size:1.4rem; font-weight:620; font-variant-numeric:tabular-nums; line-height:1.25; }
.thermo__range{ appearance:none; -webkit-appearance:none; display:block; width:100%; height:30px; margin:2px 0 0; background:transparent; cursor:grab; touch-action:pan-y; }
.thermo__range:active{ cursor:grabbing; }
.thermo__range::-webkit-slider-runnable-track{ height:8px; border-radius:99px; background:linear-gradient(90deg,#1f63d1 0 55.6%,#e8701a 55.6%); }
.thermo__range::-moz-range-track{ height:8px; border-radius:99px; background:linear-gradient(90deg,#1f63d1 0 55.6%,#e8701a 55.6%); }
.thermo__range::-webkit-slider-thumb{ -webkit-appearance:none; width:30px; height:30px; margin-top:-11px; border-radius:50%; background:#fff; border:4px solid var(--accent); box-shadow:0 5px 12px -3px rgba(7,36,74,.45); transition:transform .3s var(--ease); }
.thermo__range::-moz-range-thumb{ width:22px; height:22px; border-radius:50%; background:#fff; border:4px solid var(--accent); box-shadow:0 5px 12px -3px rgba(7,36,74,.45); }
.thermo__range:hover::-webkit-slider-thumb{ transform:scale(1.1); }
.thermo__range:focus-visible{ outline:none; }
.thermo__range:focus-visible::-webkit-slider-thumb{ outline:2.5px solid var(--accent); outline-offset:3px; }
.thermo__scale{ display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:10px; font-size:.76rem; color:var(--ink-soft); font-variant-numeric:tabular-nums; }
.thermo__hint{ text-align:center; opacity:.8; }

/* ---------- hlavičky sekcí ---------- */
.services,.process,.work,.why,.cta,.contact{ padding-top:var(--section); }
.head h2,.work__intro h2,.contact__info h2,.cta__text h2{
  font-size:clamp(2rem,4.2vw,3.7rem); font-family:var(--display); font-stretch:118%; font-weight:640; letter-spacing:-.032em; line-height:1.05; text-wrap:balance;
}
.head h2{ max-width:17ch; }

/* ---------- služby ---------- */
.svc-layout{ display:grid; grid-template-columns:minmax(0,1fr); }
.svc-top{ display:grid; grid-template-columns:minmax(0,1fr); gap:28px; margin-bottom:clamp(30px,4vw,56px); }
.svc-col{ min-width:0; }
.svc-list{ --svc-pad:clamp(14px,1.6vw,22px); display:grid; gap:4px; }
.svc{ border-radius:var(--r-md); scroll-margin-top:110px; transition:background-color .5s var(--ease); }
.svc.is-active{ background:var(--paper); }
.svc__head{
  width:100%; display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:clamp(14px,2vw,24px);
  padding:clamp(16px,1.8vw,22px) var(--svc-pad); background:none; border:0; text-align:left; cursor:pointer;
}
.svc__glyph{ width:30px; height:30px; fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; color:var(--ink); transition:color .4s; }
.svc__glyph .b{ stroke:currentColor; } .svc__glyph .c{ stroke:var(--cold); } .svc__glyph .h{ stroke:var(--heat); }
.svc__name{ font-size:clamp(1.3rem,2.5vw,2.2rem); font-family:var(--display); font-stretch:113%; font-weight:600; letter-spacing:-.022em; line-height:1.15; transition:transform .6s var(--ease), color .4s; }
.svc__arrow{ width:46px; height:46px; padding:12px; border-radius:50%; background:var(--paper); transition:transform .6s var(--ease), background-color .4s, color .4s; }
.svc__head:hover .svc__name{ transform:translateX(8px); }
.js .svc:not(.is-active) .svc__name,.js .svc:not(.is-active) .svc__glyph{ color:var(--ink-soft); }
.svc.is-active .svc__name{ transform:translateX(8px); }
.svc.is-active .svc__arrow{ background:var(--ink); color:#fff; transform:rotate(45deg); }
.svc__body{ display:grid; grid-template-rows:1fr; }
.svc__body > div{ overflow:hidden; padding-inline:var(--svc-pad); }
.svc__body p{ padding:0 0 22px 0; max-width:54ch; color:var(--ink-soft); }
.svc__inline{ width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:var(--r-md); margin-bottom:24px; }
.js .svc__body{ grid-template-rows:0fr; transition:grid-template-rows .7s var(--ease); }
.js .svc.is-active .svc__body{ grid-template-rows:1fr; }

.svc-stage{ display:none; }
.svc-stage__frame{ position:relative; aspect-ratio:4/4.5; border-radius:var(--r-lg); overflow:hidden; background:var(--navy-deep); }
.svc-media{ position:absolute; inset:0; z-index:1; clip-path:inset(0 0 100% 0); }
.svc-media.is-prev{ clip-path:inset(0); z-index:1; }
.svc-media.is-active{ clip-path:inset(0); z-index:2; transition:clip-path 1s var(--ease); }
.svc-media > img{ width:100%; height:100%; object-fit:cover; transform:scale(1.14); transition:transform 1.6s var(--ease); }
.svc-media.is-active > img{ transform:scale(1); }
.svc-stage__text{ margin-top:22px; min-height:5.4em; font-size:var(--fs-body); color:var(--ink-soft); max-width:46ch; }


/* ---------- postup ---------- */
.process__in{ background:var(--paper); border-radius:var(--r-lg); padding:clamp(28px,5vw,76px); }
.steps{ --p:1; position:relative; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0 clamp(20px,3vw,44px); margin-top:clamp(44px,5vw,76px); padding-top:74px; }
.steps{ --track:var(--line); --flow:linear-gradient(90deg,var(--cold),color-mix(in oklab,var(--cold) 50%,var(--heat)) 55%,var(--heat)); }
.steps::before,.steps::after{ content:""; position:absolute; z-index:0; left:24px; right:0; top:23px; height:2px; border-radius:2px; }
.steps::before{ background:var(--track); -webkit-mask:linear-gradient(90deg,#000 85%,transparent); mask:linear-gradient(90deg,#000 85%,transparent); }
.steps::after{ top:22.5px; height:3px; background:var(--flow); -webkit-mask:linear-gradient(90deg,#000 85%,transparent); mask:linear-gradient(90deg,#000 85%,transparent); clip-path:inset(0 calc((1 - var(--p))*100%) 0 0 round 2px); }
.step{ position:relative; z-index:1; }
.step__node{
  position:absolute; z-index:1; left:0; top:-74px; width:48px; height:48px; border-radius:50%;
  display:grid; place-items:center; background:var(--ink); color:#fff; border:2px solid var(--ink);
  font-family:var(--display); font-stretch:118%; font-weight:650; font-variant-numeric:tabular-nums;
  transition:background-color .5s var(--ease), color .5s var(--ease), border-color .5s var(--ease), transform .5s var(--ease);
}
.step h3{ font-size:clamp(1.35rem,2vw,1.75rem); font-family:var(--display); font-stretch:114%; font-weight:640; letter-spacing:-.025em; line-height:1.15; }
.step p{ margin-top:8px; color:var(--ink-soft); max-width:26ch; }
.motion .step h3,.motion .step p{ transition:opacity .6s var(--ease); }
.motion .step:not(.is-on) :is(h3,p){ opacity:.42; }
.motion .step:not(.is-on) .step__node{ background:var(--paper); color:var(--ink-soft); border-color:var(--line); transform:scale(.86); }

/* ---------- realizace ---------- */
.work{ padding-inline:clamp(8px,1.2vw,16px); }
.work__panel{
  position:relative; overflow:hidden; background:var(--navy-deep); color:#fff; border-radius:32px;
  display:grid; grid-template-columns:max-content minmax(0,1fr); gap:clamp(24px,4vw,64px); align-items:end;
  padding-block:clamp(40px,6vw,92px);
}
.work__intro{ padding-left:max(calc(var(--gutter) - 8px),calc((100vw - 1360px)/2 - 16px)); align-self:stretch; display:flex; flex-direction:column; }
.work__intro h2{ white-space:nowrap; }
.work__intro p{ margin-top:18px; color:var(--on-navy); width:0; min-width:100%; font-size:var(--fs-body); }
.work__nav{ display:flex; gap:10px; margin-top:auto; padding-top:32px; }
.work__track{
  display:flex; gap:clamp(12px,1.6vw,22px); overflow-x:auto; overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory; scrollbar-width:none; padding-right:var(--gutter); cursor:grab;
}
.work__track::-webkit-scrollbar{ display:none; }
.work__track.is-dragging{ cursor:grabbing; scroll-snap-type:none; }
.work__track.is-intro{ scroll-snap-type:none; }
.work__track.is-dragging .job{ pointer-events:none; }
.work__track:focus-visible{ outline-color:#fff; outline-offset:-3px; }
.job{
  position:relative; flex:0 0 clamp(250px,27vw,390px); aspect-ratio:4/5.3; border-radius:22px; overflow:hidden;
  scroll-snap-align:start; isolation:isolate; color:#fff; user-select:none; -webkit-user-drag:none;
}
.job__img{ position:absolute; inset:0; }
.job__img img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 1.4s var(--ease), opacity .7s var(--ease); -webkit-user-drag:none; }
.job__img img.is-swap{ opacity:0; }
.job:hover .job__img img{ transform:scale(1.06); }
.job::after{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(to top,rgba(4,20,44,.92),rgba(4,20,44,0) 58%); }
.job__tag,.job__count{ position:absolute; z-index:2; top:16px; border-radius:999px; padding:7px 13px; font-size:.82rem; font-weight:600; line-height:1.2; }
.job__tag{ left:16px; background:rgba(255,255,255,.94); color:var(--ink); }
.job__count{ right:16px; background:rgba(4,20,44,.72); font-variant-numeric:tabular-nums; }
.job__meta{ position:absolute; z-index:2; left:20px; right:20px; bottom:20px; display:grid; gap:14px; }
.job__meta strong{ font-size:clamp(1.15rem,1.6vw,1.4rem); font-family:var(--display); font-stretch:112%; font-weight:620; letter-spacing:-.02em; line-height:1.18; text-wrap:balance; }
.job__more{ display:flex; align-items:center; justify-content:space-between; font-size:.92rem; font-weight:560; color:var(--on-navy); transition:color .3s; }
.job:hover .job__more{ color:#fff; }
.job__more .ic{ transition:transform .5s var(--ease); }
.job:hover .job__more .ic{ transform:translateX(6px); }
.job:focus-visible{ outline-color:#fff; outline-offset:-4px; border-radius:22px; }
.drag-cursor{
  position:fixed; left:0; top:0; z-index:60; width:96px; height:96px; margin:-48px 0 0 -48px; border-radius:50%;
  display:grid; place-items:center; background:#fff; color:var(--ink); font-size:.88rem; font-weight:620; font-family:var(--display); font-stretch:106%;
  pointer-events:none; scale:0; transition:scale .45s var(--ease); box-shadow:var(--shadow);
}
.drag-cursor.is-on{ scale:1; }
.drag-cursor.is-down{ scale:.78; }

/* ---------- proč my: karty jako lopatky ventilátoru, scrollem se otáčí ---------- */
.why__head{ display:grid; justify-items:center; text-align:center; gap:14px; }
.why__stage{ position:relative; margin-top:clamp(30px,4vw,56px); }
.why__meter{ display:none; }
.why__rotor{ display:flex; gap:14px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; margin-inline:calc(-1*var(--gutter)); padding:4px var(--gutter) 10px; scroll-padding-inline:var(--gutter); }
.why__rotor::-webkit-scrollbar{ display:none; }
.why-card{ position:relative; flex:none; width:min(76vw,320px); aspect-ratio:3/4; border-radius:var(--r-lg); overflow:hidden; scroll-snap-align:start; display:flex; flex-direction:column; justify-content:flex-end; color:#fff; background:var(--navy-deep); box-shadow:var(--shadow); }
.why-card--photo > img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.why-card--photo::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(7,36,74,0) 38%,rgba(7,36,74,.55) 62%,rgba(5,22,46,.94)); }
.why-card__txt{ position:relative; z-index:1; padding:clamp(22px,2vw,30px); }
.why-card__no{ display:inline-block; padding:4px 10px; border-radius:999px; background:rgba(255,255,255,.16); backdrop-filter:blur(6px); font-family:var(--display); font-stretch:118%; font-weight:620; font-size:.8rem; letter-spacing:.04em; font-variant-numeric:tabular-nums; }
.why-card h3{ margin-top:12px; font-size:clamp(1.3rem,1.7vw,1.55rem); font-stretch:114%; font-weight:640; letter-spacing:-.025em; line-height:1.15; }
.why-card p{ margin-top:8px; color:rgba(255,255,255,.78); line-height:1.4; }

/* kolo (desktop + pohyb): JS přidá .is-wheel a nastavuje --rot */
/* .why drží mezeru nad sebou, pinuje se až samotné kolo */
/* pinování řeší prohlížeč (sticky), ne JS: žádné poskočení na začátku */
.why.is-wheel{ height:calc(var(--section) + 100vh + 140vh); }
.is-wheel .why__pin{ position:sticky; top:0; height:100vh; overflow:hidden; display:flex; padding-top:clamp(36px,7vh,80px); }
.is-wheel .why__pin::after{ content:""; position:absolute; left:0; right:0; bottom:0; z-index:2; height:clamp(140px,26vh,280px); background:linear-gradient(180deg,color-mix(in oklab,var(--canvas) 0%,transparent),var(--canvas) 78%); pointer-events:none; }
.is-wheel .why__in{ display:flex; flex-direction:column; }
.is-wheel .why__stage{
  --cw:clamp(250px,min(24vw,44vh),390px); --ch:calc(var(--cw)*4/3); --R:calc(var(--cw)*2.2); --step:40deg;
  flex:1; margin-top:calc(clamp(22px,3.4vh,44px) + 64px);
}
.is-wheel .why__rotor{ position:absolute; left:50%; top:calc(var(--ch)/2 + var(--R)); width:0; height:0; margin:0; padding:0; overflow:visible; display:block; transform:rotate(var(--rot,0deg)); will-change:transform; }
.is-wheel .why-card{
  position:absolute; left:calc(var(--cw)/-2); top:calc(-1*var(--R) - var(--ch)/2); width:var(--cw); height:var(--ch);
  transform-origin:50% calc(var(--R) + var(--ch)/2); transform:rotate(calc(var(--i)*var(--step)));
  opacity:.5; filter:saturate(.6); transition:opacity .6s var(--ease), filter .6s var(--ease), box-shadow .6s var(--ease);
}
.is-wheel .why-card.is-on{ opacity:1; filter:none; box-shadow:0 36px 60px -30px rgba(7,36,74,.65); }
.is-wheel .why__meter{
  display:flex; align-items:center; gap:14px; position:absolute; left:50%; bottom:clamp(18px,4vh,40px); translate:-50% 0; z-index:3;
  font-family:var(--display); font-stretch:118%; font-weight:620; font-size:.85rem; font-variant-numeric:tabular-nums; color:var(--ink-soft);
}
.why__meter i{ position:relative; width:120px; height:2px; border-radius:2px; background:var(--line); overflow:hidden; }
.why__meter b{ position:absolute; inset:0; background:linear-gradient(90deg,var(--cold),var(--heat)); transform-origin:0 50%; transform:scaleX(var(--p,0)); }
#whyNo{ color:var(--ink); }

/* ---------- recenze ---------- */
.reviews{ padding-top:var(--section); }
.reviews__head{ display:grid; justify-items:center; text-align:center; gap:14px; }
.reviews__head p{ color:var(--ink-soft); font-size:var(--fs-body); }
.reviews__grid{ display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:clamp(12px,1.4vw,20px); margin-top:clamp(36px,4.4vw,64px); }
.rev{
  --rev-bg:var(--paper); --rev-ink:var(--ink); --rev-soft:var(--ink-soft); --rev-mark:var(--line);
  position:relative; overflow:hidden; isolation:isolate; grid-column:span 5; display:flex; flex-direction:column; gap:clamp(22px,2.4vw,34px);
  padding:clamp(24px,2.8vw,42px); border-radius:var(--r-lg); background:var(--rev-bg); color:var(--rev-ink);
  transition:transform .7s var(--ease), box-shadow .7s var(--ease);
}
.rev:nth-child(1),.rev:nth-child(4){ grid-column:span 7; }
.rev:hover{ transform:translateY(-6px); box-shadow:var(--shadow); }
.rev--navy{ --rev-bg:var(--navy-deep); --rev-ink:#fff; --rev-soft:var(--on-navy); --rev-mark:color-mix(in oklab,var(--cold) 70%,transparent); }
.rev--navy::before{ content:""; position:absolute; z-index:-1; right:-18%; bottom:-40%; width:70%; aspect-ratio:1; border-radius:50%; background:radial-gradient(closest-side,color-mix(in oklab,var(--cold) 55%,transparent),transparent); }
.rev--accent{ --rev-bg:var(--accent); --rev-ink:#fff; --rev-soft:rgba(255,255,255,.82); --rev-mark:rgba(255,255,255,.3); justify-content:space-between; }
.rev__mark{ width:clamp(38px,3.4vw,52px); fill:var(--rev-mark); flex:none; }
.rev blockquote{ margin:0; flex:1; }
.rev blockquote p{ font-size:clamp(1.02rem,1.25vw,1.18rem); line-height:1.55; text-wrap:pretty; }
.rev--navy blockquote p{ font-size:clamp(1.08rem,1.45vw,1.32rem); }
.rev .rev__big{ font-family:var(--display); font-stretch:118%; font-weight:640; font-size:clamp(1.8rem,3.3vw,2.9rem); letter-spacing:-.03em; line-height:1.08; text-wrap:balance; }
.rev__who{ display:flex; align-items:center; gap:14px; }
/* fotka v kroužku s přechodem modrá → červená */
.rev__av{
  flex:none; width:52px; height:52px; padding:2px; border-radius:50%; object-fit:cover;
  border:2.5px solid transparent;
  background:linear-gradient(var(--rev-bg),var(--rev-bg)) padding-box,linear-gradient(135deg,var(--cold),var(--heat)) border-box;
}
.rev--accent .rev__av{ background:linear-gradient(var(--rev-bg),var(--rev-bg)) padding-box,linear-gradient(#fff,#fff) border-box; }
.rev__who strong{ display:block; font-family:var(--display); font-stretch:110%; font-weight:640; font-size:1.05rem; letter-spacing:-.01em; }
.rev__who small{ display:block; margin-top:2px; font-size:.86rem; color:var(--rev-soft); }
@media (max-width:960px){
  .rev,.rev:nth-child(1),.rev:nth-child(4){ grid-column:span 12; }
}


/* ---------- CTA ---------- */
.cta__panel{
  position:relative; overflow:hidden; background:var(--accent); color:#fff; border-radius:32px;
  padding:clamp(28px,4.6vw,64px); display:grid; gap:clamp(22px,2.8vw,36px);
}
.cta__fan{ position:absolute; right:clamp(-60px,-3.5vw,-28px); top:50%; width:clamp(170px,23vw,320px); margin-top:calc(clamp(170px,23vw,320px) / -2); opacity:.16; }
.cta__text{ position:relative; }
.cta__text h2{ max-width:25ch; text-wrap:balance; }
.cta__text p{ margin-top:18px; font-size:var(--fs-body); max-width:44ch; }
.cta__btns{ position:relative; display:flex; flex-wrap:wrap; gap:12px; }
.cta .btn:focus-visible{ outline-color:#fff; }

/* ---------- kontakt ---------- */
.contact__grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:44px clamp(32px,6vw,100px); align-items:start; }
.contact__info h2{ max-width:14ch; }
.contact__lead{ margin-top:18px; font-size:var(--fs-body); color:var(--ink-soft); max-width:44ch; }
.phones{ display:grid; gap:24px; margin-top:clamp(30px,3.6vw,48px); }
.phones__who{ display:block; margin-bottom:8px; font-size:.92rem; color:var(--ink-soft); }
.phones a{
  display:inline-block; font-size:clamp(2.1rem,4.7vw,3.7rem); font-family:var(--display); font-stretch:120%; font-weight:650; letter-spacing:-.03em; line-height:1;
  font-variant-numeric:tabular-nums; transition:color .4s var(--ease), transform .6s var(--ease);
}
.phones a:hover{ color:var(--accent); transform:translateX(8px); }
.facts{ display:grid; gap:14px; margin-top:clamp(30px,3.6vw,48px); }
.facts > div{ display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:12px; }
.facts dt{ display:flex; align-items:center; gap:10px; color:var(--ink-soft); font-size:.95rem; }
.facts dt .ic{ width:20px; height:20px; color:var(--accent); }
.facts dd{ font-weight:600; overflow-wrap:anywhere; }
.facts a{ transition:color .3s; }
.facts a:hover{ color:var(--accent); }

.form-panel{ background:var(--paper); border-radius:var(--r-lg); padding:clamp(22px,3.4vw,44px); }
.form-panel h3{ font-size:clamp(1.4rem,2vw,1.75rem); font-family:var(--display); font-stretch:114%; font-weight:640; letter-spacing:-.025em; margin-bottom:22px; }
.form__row{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.field{ display:grid; gap:7px; margin-bottom:16px; }
.field label{ font-size:.92rem; font-weight:600; }
.field input,.field select,.field textarea{
  width:100%; padding:14px 16px; background:var(--canvas); border:1.5px solid transparent; border-radius:14px;
  transition:border-color .3s, box-shadow .3s, background-color .3s;
}
.field textarea{ resize:vertical; min-height:112px; line-height:1.5; }
.field select{
  appearance:none; -webkit-appearance:none; padding-right:46px; cursor:pointer; color:var(--ink); background-color:var(--canvas);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b1b2e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center; background-size:20px;
}
.field ::placeholder{ color:#56677b; opacity:1; }
.field input:hover,.field select:hover,.field textarea:hover{ border-color:var(--line); }
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{
  outline:none; background:var(--paper); border-color:var(--accent); box-shadow:0 0 0 4px color-mix(in oklab,var(--accent) 18%,transparent);
}
.field input:user-invalid,.field textarea:user-invalid{ border-color:var(--heat); }

/* vlastní dropdown (JS nahrazuje nativní select) */
.dd{ position:relative; }
.dd__btn{
  display:block; width:100%; padding:14px 46px 14px 16px; text-align:left; cursor:pointer; color:var(--ink);
  background:var(--canvas); border:1.5px solid transparent; border-radius:14px;
  transition:border-color .3s, box-shadow .3s, background-color .3s;
}
.dd__btn::after{
  content:""; position:absolute; right:14px; top:50%; width:20px; height:20px; margin-top:-10px; pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b1b2e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center/20px no-repeat;
  transition:transform .35s var(--ease);
}
.dd__btn:hover{ border-color:var(--line); }
.dd__btn:focus-visible,.dd.is-open .dd__btn{
  outline:none; background:var(--paper); border-color:var(--accent); box-shadow:0 0 0 4px color-mix(in oklab,var(--accent) 18%,transparent);
}
.dd.is-open .dd__btn::after{ transform:rotate(180deg); }
.dd__list{
  position:absolute; z-index:20; left:0; right:0; top:calc(100% + 8px); margin:0; padding:6px; list-style:none;
  max-height:min(320px,50vh); overflow-y:auto; overscroll-behavior:contain;
  background:var(--paper); border:1.5px solid var(--line); border-radius:var(--r-md); box-shadow:var(--shadow);
  opacity:0; visibility:hidden; transform:translateY(-6px);
  transition:opacity .2s, transform .3s var(--ease), visibility 0s .3s;
}
.dd.is-open .dd__list{ opacity:1; visibility:visible; transform:none; transition:opacity .2s, transform .3s var(--ease); }
.dd__list:focus{ outline:none; }
.dd__opt{
  position:relative; padding:11px 40px 11px 12px; border-radius:10px; cursor:pointer; color:var(--ink);
  transition:background-color .15s, color .15s;
}
.dd__opt.is-active{ background:var(--canvas); }
.dd__opt[aria-selected="true"]{ color:var(--accent); font-weight:600; }
.dd__opt[aria-selected="true"]::after{
  content:""; position:absolute; right:12px; top:50%; width:16px; height:16px; margin-top:-8px; background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat;
}
@media (prefers-reduced-motion: reduce){ .dd__list,.dd__btn::after{ transition:none; } }
.hp{ position:absolute; left:-9999px; width:1px; height:1px; opacity:0; }

/* ---------- patička ---------- */
.foot{ position:relative; overflow:hidden; isolation:isolate; margin-top:var(--section); background:var(--navy-deep); color:rgba(255,255,255,.82); border-radius:32px 32px 0 0; }
.foot a{ transition:opacity .3s, color .3s, text-decoration-color .3s; }
.foot a:focus-visible{ outline-color:#fff; }

/* dvě poloviny oddělené svislou linkou, okraje lícují s .wrap */
.foot__top{ display:grid; grid-template-columns:minmax(var(--gutter),1fr) minmax(0,680px) minmax(0,680px) minmax(var(--gutter),1fr); }
.foot__left{
  grid-column:2; display:flex; flex-direction:column; align-items:flex-start;
  padding:clamp(48px,5vw,80px) clamp(28px,4.4vw,72px) clamp(40px,4vw,64px) 0; border-right:1px solid rgba(255,255,255,.12);
}
.foot__right{
  grid-column:3; display:grid; grid-template-columns:repeat(3,auto); justify-content:space-between; align-content:start; gap:40px 28px;
  padding:clamp(56px,5.6vw,92px) 0 clamp(40px,4vw,64px) clamp(28px,4.4vw,72px);
}

.foot__logo{ display:inline-flex; align-items:center; gap:10px; }
.foot__logo:hover{ opacity:1; }
.foot__fan{ width:40px; height:40px; transition:transform 1.2s var(--ease); }
.foot__logo:hover .foot__fan{ transform:rotate(360deg); }
.foot__word{ width:128px; height:auto; }
.foot__claim{ margin-top:clamp(40px,5vw,72px); max-width:22ch; color:#fff; font-size:clamp(1.4rem,2.1vw,1.9rem); line-height:1.22; letter-spacing:-.02em; }

.foot__left .ac{ margin-top:clamp(32px,4vw,52px); }

.foot__social{ display:flex; gap:10px; margin-top:auto; padding-top:clamp(28px,3vw,40px); }
.foot__social a{ display:grid; place-items:center; width:44px; height:44px; border-radius:50%; background:#fff; color:var(--navy-deep); transition:transform .4s var(--ease), background-color .3s, color .3s; }
.foot__social a:hover{ transform:translateY(-3px); background:var(--accent); color:#fff; }
.foot__social .ic{ width:19px; height:19px; }

.foot__col{ display:flex; flex-direction:column; align-items:flex-start; gap:9px; font-size:.92rem; }
.foot__col h2{ margin-bottom:8px; color:#fff; font-size:.92rem; font-weight:500; }
.foot__col a{ color:rgba(255,255,255,.55); }
.foot__col a:hover{ color:#fff; }
.foot__tel{ font-variant-numeric:tabular-nums; }
.foot__op{ grid-column:1 / -1; margin-top:clamp(16px,3vw,40px); color:rgba(255,255,255,.38); font-size:.8rem; line-height:1.55; }

.ac{ --k:.43; --air:color-mix(in oklab,#7fb2ff,#ff8f7d calc(var(--k)*100%)); --dur:1.6s; display:grid; grid-template-columns:auto auto; align-items:center; gap:0 28px; }
.ac__unit{
  position:relative; grid-row:1; width:220px; height:58px; border-radius:12px 12px 16px 16px;
  background:linear-gradient(180deg,#fff,#e6ecf3); box-shadow:0 14px 28px -14px rgba(0,0,0,.6), inset 0 -2px 0 rgba(11,27,46,.08);
}
.ac__lcd{ position:absolute; right:16px; top:12px; color:var(--ink); font-family:ui-monospace,"SFMono-Regular",Consolas,monospace; font-size:.82rem; font-weight:600; opacity:.85; font-variant-numeric:tabular-nums; transition:opacity .4s; }
.ac__led{ position:absolute; right:58px; top:18px; width:5px; height:5px; border-radius:50%; background:#2bd46b; box-shadow:0 0 6px #2bd46b; transition:background-color .4s, box-shadow .4s; }
.ac__flap{ position:absolute; left:12px; right:12px; bottom:6px; height:8px; border-radius:0 0 8px 8px; background:#cfd8e3; transform-origin:top; transform:rotateX(-38deg); transition:transform .6s var(--ease); }
.ac__air{ grid-row:2; width:220px; height:64px; margin-top:2px; stroke:var(--air); stroke-width:2.5; stroke-dasharray:14 12; opacity:.9; transition:opacity .5s, stroke .5s; }
.ac__air path{ animation:ac-blow var(--dur) linear infinite; }
.ac__air path:nth-child(2){ animation-delay:-.4s; }
.ac__air path:nth-child(3){ animation-delay:-.9s; }
.ac__air path:nth-child(4){ animation-delay:-1.3s; }
@keyframes ac-blow{ to{ stroke-dashoffset:-52; } }
.ac__ctrl{ grid-row:1; grid-column:2; display:grid; gap:12px; justify-items:start; }
.ac__remote{ display:inline-flex; align-items:center; gap:4px; padding:5px; border-radius:999px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14); }
.ac__btn{ display:grid; place-items:center; width:38px; height:38px; border:0; border-radius:50%; background:transparent; color:#fff; font-size:1.25rem; line-height:1; cursor:pointer; transition:background-color .2s, color .2s, transform .15s; }
.ac__btn:hover{ background:rgba(255,255,255,.12); }
.ac__btn:active{ transform:scale(.9); }
.ac__btn:focus-visible{ outline:2px solid #fff; outline-offset:2px; }
.ac__btn:disabled{ opacity:.35; cursor:default; background:transparent; }
.ac__btn svg{ width:18px; height:18px; }
.ac__power{ margin-left:4px; color:#2bd46b; }
.ac__power[aria-pressed="false"]{ color:rgba(255,255,255,.6); }
.ac__temp{ min-width:4.4em; text-align:center; color:#fff; font-family:ui-monospace,"SFMono-Regular",Consolas,monospace; font-size:.95rem; font-variant-numeric:tabular-nums; }
.ac:not(.is-live) .ac__remote{ display:none; }

.ac.is-off .ac__air{ opacity:0; }
.ac.is-off .ac__flap{ transform:none; }
.ac.is-off .ac__lcd{ opacity:0; }
.ac.is-off .ac__led{ background:#ff6b57; box-shadow:0 0 6px #ff6b57; }
.ac.is-off .ac__temp{ opacity:.4; }
.ac.is-bump .ac__unit{ animation:ac-bump .45s; }
@keyframes ac-bump{ 20%{ transform:translateX(-5px) rotate(-1.5deg); } 45%{ transform:translateX(5px) rotate(1.5deg); } 70%{ transform:translateX(-3px); } }

.foot__barin{ border-top:1px solid rgba(255,255,255,.12); }
.foot__barin{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:12px 32px; padding-block:22px 24px; color:rgba(255,255,255,.55); font-size:.8rem; }
.foot__copy{ display:flex; flex-wrap:wrap; align-items:center; gap:8px 24px; }
.foot__legal{ display:flex; flex-wrap:wrap; gap:8px 24px; }
.foot__legal a,.foot__credit{ color:rgba(255,255,255,.8); }
.foot__legal a:hover,.foot__credit:hover{ color:#fff; text-decoration:underline; text-underline-offset:4px; }
@media (max-width:960px){
  .foot__top{ grid-template-columns:var(--gutter) minmax(0,1fr) var(--gutter); }
  .foot__left{ padding-right:0; border-right:0; border-bottom:1px solid rgba(255,255,255,.12); }
  .foot__right{ grid-column:2; grid-template-columns:repeat(2,minmax(0,1fr)); padding:clamp(36px,6vw,56px) 0 40px; }
}

/* ---------- plovoucí akce ---------- */
.fab{ position:fixed; right:22px; bottom:22px; z-index:40; width:58px; height:58px; border-radius:50%; display:grid; place-items:center; background:var(--accent); box-shadow:var(--shadow); transition:transform .4s var(--ease), background-color .4s; }
.fab svg{ width:28px; height:28px; fill:#fff; }
.fab:hover{ transform:scale(1.08) rotate(-6deg); background:color-mix(in oklab,var(--accent),#000 18%); }
.callbar{ display:none; }

/* ---------- lightbox ---------- */
.lb{ overscroll-behavior:contain; width:100vw; height:100dvh; max-width:none; max-height:none; margin:0; padding:0; border:0; background:rgba(4,16,36,.97); color:#fff; overflow:hidden; }
.lb::backdrop{ background:rgba(4,16,36,.6); }
.lb[open]{ display:grid; grid-template-rows:auto minmax(0,1fr) auto; animation:lb-in .45s var(--ease); }
@keyframes lb-in{ from{ opacity:0; transform:scale(1.03); } }
.lb__bar{ display:flex; align-items:center; gap:18px; padding:16px clamp(16px,3vw,28px); }
.lb__title{ font-weight:620; font-family:var(--display); font-stretch:110%; font-size:1.05rem; line-height:1.25; }
.lb__count{ margin-left:auto; color:var(--on-navy); font-variant-numeric:tabular-nums; white-space:nowrap; }
.lb__stage{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; min-height:0; padding-inline:clamp(12px,7vw,96px); }
.lb__stage img{ max-width:100%; max-height:calc(100dvh - 250px); width:auto; object-fit:contain; border-radius:16px; transition:opacity .35s var(--ease), transform .5s var(--ease); }
.lb__stage img.is-out{ opacity:0; transform:scale(.97); }
.lb__stage figcaption{ color:var(--on-navy); text-align:center; }
.lb__prev,.lb__next{ position:absolute; top:50%; margin-top:-26px; }
.lb__prev{ left:clamp(8px,2vw,24px); } .lb__next{ right:clamp(8px,2vw,24px); }
.lb__thumbs{ display:flex; justify-content:center; gap:8px; padding:14px 12px calc(16px + env(safe-area-inset-bottom)); overflow-x:auto; }
.lb__thumbs button{ flex:none; width:60px; height:60px; padding:0; border:0; border-radius:10px; overflow:hidden; background:none; cursor:pointer; opacity:.45; transition:opacity .3s, transform .3s var(--ease); }
.lb__thumbs button:hover{ opacity:.8; }
.lb__thumbs button[aria-current="true"]{ opacity:1; outline:2px solid #fff; outline-offset:2px; }
.lb__thumbs img{ width:100%; height:100%; object-fit:cover; }
.lb :focus-visible{ outline-color:#fff; }

/* ============ desktop: scéna služeb ============ */
@media (min-width:961px){
  .js .svc-layout{ grid-template-columns:minmax(0,7fr) minmax(0,5fr); gap:clamp(32px,5vw,92px); align-items:stretch; }
  .svc-top{ grid-template-columns:minmax(0,7fr) minmax(0,5fr); gap:clamp(32px,5vw,92px); align-items:end; }
  .js .svc-stage{ display:flex; flex-direction:column; }
  .js .svc-stage__frame{ flex:1; aspect-ratio:auto; min-height:360px; }
  .js .svc-stage__text{ display:flex; flex-direction:column; justify-content:flex-end; }
  .js .svc__body{ display:none; }
}

/* ============ tablet a mobil ============ */

@media (max-width:960px){
  .burger{ display:block; }
  .nav__links{
    position:fixed; inset:0; z-index:49; background:var(--canvas);
    flex-direction:column; gap:0; padding:calc(var(--nav-h,74px) + 8px) var(--gutter) 32px; overflow-y:auto; overscroll-behavior:contain;
    visibility:hidden; opacity:0; transition:opacity .35s var(--ease), visibility 0s .35s;
  }
  .nav__links.is-open{ visibility:visible; opacity:1; transition:opacity .45s var(--ease); }
  .nav__links > *{ opacity:0; transform:translateY(18px); transition:opacity .3s var(--ease), transform .3s var(--ease); }
  .nav__links.is-open > *{ opacity:1; transform:none; transition:opacity .6s var(--ease), transform .8s var(--ease); }
  .nav__links.is-open > :nth-child(1){ transition-delay:.06s; }
  .nav__links.is-open > :nth-child(2){ transition-delay:.11s; }
  .nav__links.is-open > :nth-child(3){ transition-delay:.16s; }
  .nav__links.is-open > :nth-child(4){ transition-delay:.21s; }
  .nav__links.is-open > :nth-child(5){ transition-delay:.27s; }
  .nav__links > a{ padding:16px 0; font-size:1.7rem; font-family:var(--display); font-stretch:116%; font-weight:640; letter-spacing:-.025em; }
  .nav__links > a::after{ display:none; }
  .nav__mob{ display:grid; gap:12px; margin-top:28px; }
  .nav__mob .btn{ padding-block:1.1em; }

  .svc__body p{ padding-left:calc(44px + clamp(14px,2vw,24px)); }
  .svc__inline{ margin-left:calc(44px + clamp(14px,2vw,24px)); width:calc(100% - 44px - clamp(14px,2vw,24px)); }

  .work__panel{ grid-template-columns:minmax(0,1fr); align-items:start; }
  .work__intro{ padding-inline:calc(var(--gutter) - 8px); }
  .work__intro h2{ white-space:normal; }
  .work__nav{ padding-top:24px; }
  .work__track{ padding-inline:calc(var(--gutter) - 8px); scroll-padding-inline:calc(var(--gutter) - 8px); }
  .drag-cursor{ display:none; }

  .contact__grid{ grid-template-columns:minmax(0,1fr); }
}

@media (max-width:760px){
  html{ scroll-padding-bottom:96px; }
  body{ padding-bottom:calc(78px + env(safe-area-inset-bottom)); }
  .logo__fan{ width:38px; height:38px; }
  .logo__word{ width:120px; }

  .hero{ margin-inline:6px; }
  :root{ --section:150px; --fs-body:16px; }
  .hero__title{ font-size:clamp(2rem,10vw,3.4rem); }
  .hero__copy > p{ text-wrap:pretty; max-width:none; width:100%; }
  .hero__cards{ grid-template-columns:minmax(0,1fr); gap:16px; margin-top:24px; }
  .hero__cards li,.hero__cards li:first-child,.hero__cards li:last-child{ justify-content:center; }
  .stats__grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 0; }
  .hero__ctas .btn{ flex:1 1 100%; }


  .svc__glyph{ width:26px; height:26px; }
  .svc__arrow{ width:40px; height:40px; padding:10px; }
  .svc__body p{ padding-left:0; }
  .svc__inline{ margin-left:0; width:100%; }

  .steps{ grid-template-columns:minmax(0,1fr); gap:34px 0; padding-top:0; padding-left:76px; }
  .steps::before,.steps::after{ left:23px; right:auto; top:24px; bottom:0; width:2px; height:auto; -webkit-mask:linear-gradient(180deg,#000 88%,transparent); mask:linear-gradient(180deg,#000 88%,transparent); }
  .steps::after{ left:22.5px; width:3px; background:linear-gradient(180deg,var(--cold),var(--heat)); clip-path:inset(0 0 calc((1 - var(--p))*100%) 0 round 2px); }
  .step__node{ left:-76px; top:-4px; }
  .step p{ max-width:none; }

  .work{ padding-inline:var(--gutter); }
  .work__panel{ border-radius:var(--r-lg); }
  .work__intro{ padding-inline:20px; }
  .work__track{ padding-inline:20px; scroll-padding-inline:20px; }
  .job{ flex-basis:min(74vw,320px); }
  .cta__panel{ padding:28px; border-radius:var(--r-lg); }
  .cta__btns .btn{ flex:1 1 100%; }

  /* proč my: kolo i na mobilu */
  .is-wheel .why__pin{ height:100svh; padding-top:clamp(28px,6svh,56px); }
  .why.is-wheel{ height:calc(var(--section) + 100svh + 140svh); }
  .is-wheel .why__stage{ --cw:min(70vw,46svh,320px); --R:calc(var(--cw)*2.35); --step:36deg; margin-top:clamp(24px,5svh,48px); }
  .is-wheel .why__meter{ bottom:calc(96px + env(safe-area-inset-bottom)); }
  /* karta svisle uprostřed mezi nadpisem a ukazatelem */
  .is-wheel .why__rotor{ top:calc((100% - 200px - env(safe-area-inset-bottom)) / 2 + var(--R)); }
  .is-wheel .why__pin::after{ height:120px; }
  .form__row{ grid-template-columns:minmax(0,1fr); gap:0; }
  .ac{ grid-template-columns:minmax(0,1fr); }
  .ac__ctrl{ grid-row:3; grid-column:1; margin-top:8px; }
  .foot__barin{ flex-direction:column; align-items:flex-start; padding-bottom:calc(24px + 84px); }

  .fab{ display:none; }
  .callbar{
    position:fixed; left:0; right:0; bottom:0; z-index:45; display:flex; gap:10px;
    padding:10px 12px calc(10px + env(safe-area-inset-bottom)); background:var(--canvas); box-shadow:0 -14px 30px -24px rgba(7,36,74,.45);
    transform:translateY(110%); transition:transform .6s var(--ease);
  }
  .callbar.is-on,html:not(.js) .callbar{ transform:none; }
  .callbar .btn{ flex:1; }
  .callbar__wa{ flex:none; width:56px; border-radius:999px; display:grid; place-items:center; background:var(--ink); }
  .callbar__wa svg{ width:26px; height:26px; fill:#fff; }
  .lb__stage{ padding-inline:10px; }
  .lb__prev,.lb__next{ top:auto; bottom:calc(98px + env(safe-area-inset-bottom)); margin-top:0; background:rgba(4,16,36,.7); }
  .lb__stage img{ max-height:calc(100dvh - 300px); }
}


/* ============ méně pohybu ============ */@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
}

/* ---------- časté dotazy + působnost ---------- */
.faq{ padding-top:var(--section); }
.faq__grid{ display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:40px clamp(32px,6vw,96px); align-items:start; }
.faq__intro{ position:sticky; top:110px; }
.faq__intro h2{ font-size:clamp(2rem,4.2vw,3.7rem); font-family:var(--display); font-stretch:118%; font-weight:640; letter-spacing:-.032em; line-height:1.05; }
.faq__intro > p{ margin-top:18px; font-size:var(--fs-body); color:var(--ink-soft); max-width:40ch; }
.area{ margin-top:clamp(32px,4vw,52px); padding:clamp(22px,2.4vw,32px); background:var(--paper); border-radius:var(--r-lg); }
.area h3{ font-size:1.15rem; font-family:var(--display); font-stretch:112%; font-weight:640; letter-spacing:-.02em; }
.area__list{ display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.area__list li{ padding:6px 14px; border-radius:999px; background:var(--canvas); font-size:.94rem; }
.area__list li:first-child{ background:var(--ink); color:#fff; }
.area p{ margin-top:14px; font-size:var(--fs-body); color:var(--ink-soft); }
.area p a{ color:var(--ink); font-weight:600; text-decoration:underline; text-decoration-color:color-mix(in oklab,var(--accent) 45%,transparent); text-decoration-thickness:2px; text-underline-offset:3px; transition:text-decoration-color .3s; }
.area p a:hover{ text-decoration-color:var(--accent); }
.faq__list{ border-top:1px solid var(--line); }
.qa{ border-bottom:1px solid var(--line); }
.qa summary{ position:relative; display:block; list-style:none; cursor:pointer; padding:24px 56px 24px 0; font-family:var(--display); font-stretch:110%; font-weight:620; font-size:clamp(1.1rem,1.5vw,1.3rem); letter-spacing:-.015em; line-height:1.3; }
.qa summary::-webkit-details-marker{ display:none; }
.qa summary::before,.qa summary::after{ content:""; position:absolute; right:12px; top:50%; width:18px; height:2px; border-radius:2px; background:var(--ink); transition:transform .45s var(--ease); }
.qa summary::after{ transform:rotate(90deg); }
.qa[open] summary::after{ transform:rotate(0); }
.qa.is-closing summary::after{ transform:rotate(90deg); }
.qa p{ padding:0 56px 26px 0; color:var(--ink-soft); max-width:62ch; }
@media (max-width:960px){ .faq__grid{ grid-template-columns:minmax(0,1fr); } .faq__intro{ position:static; } .qa p{ padding-right:0; } }

/* ---------- právní stránky ---------- */
.legal-top{ padding:18px 0; }
.legal-top__in{ display:flex; align-items:center; justify-content:space-between; gap:20px; }
.legal{ max-width:820px; padding-top:clamp(40px,7vw,96px); }
.legal__crumbs{ font-size:.92rem; color:var(--ink-soft); }
.legal__crumbs a{ text-decoration:underline; text-decoration-color:var(--line); }
.legal h1{ margin-top:16px; font-size:clamp(2.2rem,5vw,4rem); font-stretch:118%; font-weight:650; letter-spacing:-.034em; line-height:1.02; }
.legal__lead{ margin-top:18px; font-size:1.2rem; color:var(--ink-soft); max-width:46ch; }
.legal__draft{ display:inline-block; margin-top:22px; padding:8px 14px; border-radius:999px; background:color-mix(in oklab,var(--heat) 10%,var(--paper)); color:var(--heat-ink); font-size:.9rem; font-weight:500; }
.legal section{ margin-top:clamp(28px,3.4vw,44px); padding-top:clamp(22px,2.6vw,32px); border-top:1px solid var(--line); }
.legal h2{ font-size:clamp(1.25rem,1.8vw,1.5rem); font-stretch:112%; font-weight:640; letter-spacing:-.02em; }
.legal section p,.legal section ul{ margin-top:12px; color:var(--ink-soft); max-width:68ch; }
.legal section ul{ display:grid; gap:6px; }
.legal section li{ position:relative; padding-left:22px; }
.legal section li::before{ content:""; position:absolute; left:0; top:.72em; width:12px; height:2px; background:var(--cold); }
.legal section a{ color:var(--cold); text-decoration:underline; }
.legal strong{ color:var(--ink); font-weight:600; }
.legal__date{ margin-top:40px; font-size:.92rem; color:var(--ink-soft); }
.form__note{ margin-top:14px; font-size:.86rem; color:var(--ink-soft); text-align:center; }
.form__note a{ text-decoration:underline; white-space:nowrap; }
.form__status{ margin-top:14px; padding:12px 14px; border-radius:12px; font-size:.95rem; text-align:center; background:#e7f6ec; color:#17663a; }
.form__status.is-error{ background:#fdecec; color:#a32020; }
@media (min-width:961px){ .foot__barin{ padding-right:max(0px,calc(92px - (100vw - 100%) / 2)); } }

/* Cookie lišta */
.cc{ position:fixed; z-index:90; left:max(16px,env(safe-area-inset-left)); bottom:max(16px,env(safe-area-inset-bottom)); width:min(420px,calc(100vw - 32px)); padding:22px 22px 20px; border-radius:var(--r-md); background:var(--paper); color:var(--ink); border:1px solid var(--line); box-shadow:var(--shadow); opacity:0; transform:translateY(16px); transition:opacity .4s var(--ease), transform .4s var(--ease); }
.cc.is-open{ opacity:1; transform:none; }
.cc__title{ font-family:var(--display); font-size:1.15rem; font-stretch:112%; font-weight:640; letter-spacing:-.02em; }
.cc__text{ margin-top:8px; font-size:.95rem; line-height:1.5; color:var(--ink-soft); }
.cc__text a{ color:var(--ink); text-decoration:underline; text-underline-offset:3px; }
.cc__btns{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:16px; }
.cc__btns .btn{ width:100%; }
@media (prefers-reduced-motion:reduce){ .cc{ transition:none; } }
