/* REDOX stav: v4 design, unchanged. Photo variables point at the same-origin WebP files. */
/* The wall is the signature: a live masonry drawing, warm mineral paper, graphite and a restrained
   brick-orange accent. Existing routes, copy and demo interactions remain the source of truth. */
:root{
  --ink:#171411; --graphite:#151514; --graphite-2:#201F1C;
  --concrete:#D8D1C7; --paper:#EBE5DB; --plaster:#F5F1E9;
  --hivis:#E85B34;
  --muted-l:#5A554D; --muted-d:rgba(245,241,233,.7);
  --line-l:rgba(23,20,17,.18); --line-d:rgba(245,241,233,.18);
  --f-display:'Archivo','Helvetica Neue',Arial,sans-serif;
  --f-mono:'IBM Plex Mono',ui-monospace,'SF Mono',Menlo,Consolas,monospace;
  --ease:cubic-bezier(.16,1,.3,1); --ease-io:cubic-bezier(.7,0,.2,1);
  --gl:max(clamp(16px,4vw,56px),env(safe-area-inset-left,0px));
  --gr:max(clamp(16px,4vw,56px),env(safe-area-inset-right,0px));
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
html,body{overflow-x:clip}
html.menu-open{overflow:hidden}
body{margin:0;background:var(--concrete);color:var(--ink);font:400 1rem/1.6 var(--f-display);font-stretch:100%;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
::selection{background:var(--hivis);color:var(--ink)}
a{color:inherit}
h1,h2,h3,p{margin:0}
h1:focus,h2:focus{outline:none}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--focus,var(--ink));outline-offset:3px}

.on-dark{--bg:var(--graphite);--fg:var(--plaster);--fg2:var(--muted-d);--line:var(--line-d);--focus:var(--hivis);
  background:var(--bg);color:var(--fg);color-scheme:dark}
.on-light{--bg:var(--concrete);--fg:var(--ink);--fg2:var(--muted-l);--line:var(--line-l);--focus:var(--ink);
  background:var(--bg);color:var(--fg)}
.wrap{width:100%;max-width:1440px;margin-inline:auto;padding-left:var(--gl);padding-right:var(--gr)}
.sec{padding-block:clamp(72px,10vw,144px)}
.skip{position:fixed;z-index:120;top:calc(12px + env(safe-area-inset-top,0px));left:12px;padding:12px 16px;background:var(--plaster);color:var(--ink);
  font-weight:700;text-decoration:none;transform:translateY(-160%);transition:transform .2s var(--ease)}
.skip:focus{transform:translateY(0)}

/* type */
.mono{font:500 .6875rem/1.4 var(--f-mono);letter-spacing:.14em;text-transform:uppercase}
.fg2{color:var(--fg2)}
.t-mega{font-weight:800;font-stretch:112%;font-size:clamp(2.1rem,8.2vw,8.4rem);line-height:.96;letter-spacing:-.022em;text-transform:uppercase}
.t-xl{font-weight:800;font-stretch:108%;font-size:clamp(2rem,5.4vw,4.8rem);line-height:.98;letter-spacing:-.018em;text-transform:uppercase;text-wrap:balance}
.t-l{font-weight:700;font-stretch:104%;font-size:clamp(1.3rem,2.3vw,1.95rem);line-height:1.12;letter-spacing:-.01em;text-wrap:balance}
.lead{font-size:clamp(1.05rem,1.55vw,1.3rem);line-height:1.5;max-width:36rem;color:var(--fg2)}
.eyebrow{display:flex;align-items:center;gap:14px}
.eyebrow::before{content:"";width:32px;height:1px;background:currentColor;opacity:.55}

/* glass + header */
.glass{position:relative;background:rgba(17,19,21,.78);-webkit-backdrop-filter:blur(14px) saturate(1.3);backdrop-filter:blur(14px) saturate(1.3);
  box-shadow:inset 0 1px 1px rgba(255,255,255,.08),0 6px 24px rgba(0,0,0,.22)}
.glass::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1.2px;pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.32) 0%,rgba(255,255,255,.1) 20%,rgba(255,255,255,0) 40%,rgba(255,255,255,0) 60%,rgba(255,255,255,.1) 80%,rgba(255,255,255,.32) 100%);
  -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;
  mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude}
.topbar{position:fixed;z-index:60;top:calc(14px + env(safe-area-inset-top,0px));left:0;right:0;display:grid;grid-template-columns:1fr auto 1fr;
  align-items:center;gap:12px;padding-left:var(--gl);padding-right:var(--gr);pointer-events:none;color:var(--plaster);--focus:var(--hivis)}
.topbar>*{pointer-events:auto}
.brand{justify-self:start;display:inline-flex;align-items:baseline;gap:.6em;padding:12px 17px 11px;border-radius:999px;text-decoration:none;white-space:nowrap}
.brand-main{font-weight:800;font-stretch:125%;font-size:.94rem;letter-spacing:.03em;line-height:1}
.brand-sub{font:500 .65rem/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted-d)}
.navpill{display:flex;gap:2px;padding:5px;border-radius:999px}
.navpill a{padding:9px 14px;border-radius:999px;font-size:.84rem;font-weight:500;color:rgba(238,238,233,.74);text-decoration:none;white-space:nowrap;
  transition:color .2s,background .25s var(--ease)}
.navpill a:hover{color:var(--plaster);background:rgba(238,238,233,.09)}
.navpill a[aria-current=page]{color:var(--plaster);background:rgba(238,238,233,.17)}
.navpill a[aria-current=page]::after{content:"";display:inline-block;width:5px;height:5px;margin:0 0 2px 7px;border-radius:50%;background:var(--hivis)}
.top-right{justify-self:end;display:flex;align-items:center;gap:8px}
.burger{display:none;place-items:center;width:46px;height:46px;padding:0;border:0;border-radius:50%;cursor:pointer;color:var(--plaster)}
.burger span{display:block;width:18px;height:2px;background:currentColor;border-radius:2px;position:relative;transition:transform .4s var(--ease),background .2s}
.burger span::before,.burger span::after{content:"";position:absolute;left:0;width:18px;height:2px;background:currentColor;border-radius:2px;transition:transform .4s var(--ease)}
.burger span::before{top:-6px}.burger span::after{top:6px}
.burger[aria-expanded=true] span{background:transparent}
.burger[aria-expanded=true] span::before{transform:translateY(6px) rotate(45deg)}
.burger[aria-expanded=true] span::after{transform:translateY(-6px) rotate(-45deg)}
@media (max-width:959px){.navpill{display:none}.burger{display:grid}.topbar{grid-template-columns:1fr auto}}
@media (max-width:559px){.top-right .btn{display:none}}

/* mobile menu */
.menu{position:fixed;inset:0;z-index:55;background:var(--graphite);color:var(--plaster);display:flex;flex-direction:column;justify-content:center;gap:6px;
  padding:96px var(--gr) max(40px,env(safe-area-inset-bottom,0px)) var(--gl);visibility:hidden;opacity:0;transition:opacity .35s var(--ease),visibility 0s .35s;--focus:var(--hivis)}
.menu.open{visibility:visible;opacity:1;transition:opacity .35s var(--ease)}
.menu a.m{font-weight:800;font-stretch:112%;font-size:clamp(1.9rem,9vw,3.4rem);line-height:1.08;text-transform:uppercase;letter-spacing:-.015em;text-decoration:none;
  padding:.12em 0;border-bottom:1px solid var(--line-d);opacity:0;transform:translateY(18px);transition:opacity .5s var(--ease),transform .5s var(--ease);
  transition-delay:calc(var(--i)*55ms)}
.menu.open a.m{opacity:1;transform:none}
.menu a.m[aria-current=page]{color:var(--hivis)}
.menu .btn{align-self:flex-start;margin-top:22px}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:.75em;padding:1.05em 1.5em;border:0;border-radius:2px;font:700 .8125rem/1 var(--f-display);font-stretch:112%;
  min-height:46px;letter-spacing:.07em;text-transform:uppercase;text-decoration:none;cursor:pointer;white-space:nowrap;
  transition:transform .35s var(--ease),background .25s,box-shadow .25s}
.btn svg{width:1.05em;height:1.05em;flex:none;transition:transform .35s var(--ease)}
.btn:hover svg{transform:translate(2px,-2px)}
.btn:active{transform:scale(.97)}
.btn-primary{background:var(--hivis);color:var(--ink);box-shadow:3px 3px 0 rgba(23,20,17,.18)}
.btn-primary:hover{background:#ff7442;box-shadow:0 12px 30px -12px rgba(255,91,31,.75)}
.btn-ghost{background:transparent;color:inherit;box-shadow:inset 0 0 0 1px color-mix(in srgb,currentColor 42%,transparent)}
.btn-ghost:hover{box-shadow:inset 0 0 0 1px currentColor}
.btn-sm{padding:.95em 1.25em;font-size:.72rem}
.btn-row{display:flex;flex-wrap:wrap;gap:12px}

/* page transition: courses wipe */
.wipe{position:fixed;inset:0;z-index:90;display:grid;grid-template-rows:repeat(10,1fr);pointer-events:none}
.wipe.busy{pointer-events:auto}
.wipe i{display:block;margin-bottom:-1px;background:var(--graphite);box-shadow:inset 0 -1px 0 rgba(238,238,233,.06);
  transform:translateX(var(--from));transition:transform 340ms var(--ease-io) calc(var(--i)*26ms)}
.wipe i:nth-child(odd){--from:-101%}.wipe i:nth-child(even){--from:101%}
.wipe.cover i{transform:translateX(0)}
.wipe.leave i{transform:translateX(calc(var(--from)*-1))}
.wipe.reset i{transition:none}

/* entrance vocabulary (resting state is always visible) */
.view.go .rv{animation:rv .9s var(--ease) backwards;animation-delay:calc(var(--i,0)*70ms + 80ms)}
.view.go .rv-b{animation:rvb 1.1s var(--ease) backwards;animation-delay:calc(var(--i,0)*70ms + 160ms)}
@keyframes rv{from{opacity:0;transform:translateY(22px)}}
@keyframes rvb{from{opacity:0;transform:translateY(26px);filter:blur(10px)}}

/* hero */
.hero{position:relative;isolation:isolate;min-height:clamp(560px,84dvh,880px);display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden}
.hero canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;display:block}
.hero-shade{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(ellipse at 78% 48%,rgba(232,91,52,.12),transparent 44%),
    linear-gradient(90deg,rgba(11,10,9,.94) 0%,rgba(11,10,9,.66) 36%,rgba(11,10,9,.06) 76%),
    linear-gradient(0deg,rgba(11,10,9,.8) 0%,rgba(11,10,9,0) 48%)}
.hero-inner{position:relative;z-index:2;padding-top:112px;padding-bottom:clamp(36px,6vw,72px);pointer-events:none}
.hero-inner a{pointer-events:auto}
.hero h1{margin-top:22px;text-shadow:0 12px 40px rgba(0,0,0,.4)}
.hero h1 span{display:block}
.hero h1 span+span{color:var(--hivis)}
.hero .lead{margin-top:26px;color:rgba(238,238,233,.8);max-width:31rem}
.hero .btn-row{margin-top:32px}
.spec{position:absolute;z-index:2;top:112px;right:var(--gr);text-align:right;display:none;color:var(--muted-d);pointer-events:none}
.spec{padding-right:16px;border-right:2px solid var(--hivis)}
.spec b{display:block;color:var(--plaster);font-weight:600;margin-bottom:6px}
.spec em{display:block;font-style:normal}
.hero-tag{position:absolute;z-index:2;right:var(--gr);bottom:clamp(36px,6vw,72px);display:none;align-items:center;gap:10px;color:var(--muted-d)}
.hero-tag::before{content:"";width:7px;height:7px;background:var(--hivis);border-radius:50%}
@media (min-width:960px){.spec,.hero-tag{display:block}.hero-tag{display:flex}}

/* home: services catalogue */
.sec-head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:20px 48px;margin-bottom:clamp(32px,5vw,64px)}
.sec-head .lead{max-width:28rem}
.tiles{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px}
.tile:nth-child(1),.tile:nth-child(4){grid-column:span 7}
.tile:nth-child(2),.tile:nth-child(3){grid-column:span 5}
@media (max-width:1099px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.tile:nth-child(n){grid-column:span 1}}
@media (max-width:559px){.tiles{grid-template-columns:1fr}.tile .art{aspect-ratio:16/7}}
.tile{position:relative;display:flex;flex-direction:column;min-width:0;background:var(--paper);color:var(--ink);text-decoration:none;
  border:0;padding:0;text-align:left;cursor:pointer;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.tile:hover{transform:translateY(-4px);box-shadow:0 22px 40px -22px rgba(18,20,22,.45)}
.tile .art{aspect-ratio:4/3;color:var(--ink);overflow:hidden;border-bottom:1px solid var(--line-l)}
.tile:nth-child(1) .art,.tile:nth-child(4) .art{aspect-ratio:16/9}
.tile .art{background-color:var(--paper);background-image:linear-gradient(rgba(23,20,17,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(23,20,17,.045) 1px,transparent 1px);background-size:24px 24px}
.tile .body{padding:20px 20px 22px;display:flex;flex-direction:column;gap:10px;flex:1}
.tile h3{font-weight:800;font-stretch:108%;font-size:1.12rem;line-height:1.1;text-transform:uppercase;letter-spacing:-.005em}
.tile p{font-size:.94rem;color:var(--muted-l);max-width:26ch}
.tile .go-arrow{margin-top:auto;display:inline-flex;align-items:center;gap:8px;padding-top:10px;color:var(--ink)}
.tile .go-arrow svg{width:16px;height:16px;color:var(--hivis);transition:transform .35s var(--ease)}
.tile:hover .go-arrow svg{transform:translate(3px,-3px)}

/* bond art */
.bond{display:block;width:100%;height:100%}
.bond rect{fill:currentColor;fill-opacity:var(--o,.2);transition:fill .3s,fill-opacity .35s var(--ease)}
.bond g.row{transition:transform .8s var(--ease)}
.on-dark .bond rect{fill-opacity:calc(var(--o)*.5)}
@media (hover:hover){
  .tile:hover .bond rect.hl,.frame:hover .bond rect.hl{fill:var(--hivis);fill-opacity:.95}
  .tile:hover .bond g.row:nth-child(odd),.frame:hover .bond g.row:nth-child(odd){transform:translateX(-14px)}
  .tile:hover .bond g.row:nth-child(even),.frame:hover .bond g.row:nth-child(even){transform:translateX(14px)}
}

/* manifesto */
.manifesto{font-weight:700;font-stretch:104%;font-size:clamp(1.55rem,4.1vw,3.5rem);line-height:1.12;letter-spacing:-.02em;max-width:24em;text-wrap:balance}
.manifesto .lo{color:var(--muted-l)}
.manifesto-line{display:block}

/* split entry panels */
.split{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:759px){.split{grid-template-columns:1fr}}
.panel{position:relative;min-width:0;display:flex;flex-direction:column;justify-content:space-between;gap:48px;min-height:clamp(280px,32vw,420px);padding:clamp(24px,3vw,40px);overflow:hidden}
.panel.l{background:var(--paper);color:var(--ink);--focus:var(--ink);--fg2:var(--muted-l)}
.panel.d{background:var(--graphite);color:var(--plaster);--focus:var(--hivis);--fg2:var(--muted-d)}
.panel .art{position:absolute;right:0;top:0;width:54%;height:100%;opacity:.9;pointer-events:none;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 65%);mask-image:linear-gradient(90deg,transparent,#000 65%)}
@media (max-width:759px){.panel .art{width:100%;opacity:.5;-webkit-mask-image:linear-gradient(180deg,transparent 20%,#000 90%);mask-image:linear-gradient(180deg,transparent 20%,#000 90%)}}
.panel.l .art{color:var(--ink)}.panel.d .art{color:var(--plaster)}
.panel>*:not(.art){position:relative}
.panel .lead{margin-top:14px;max-width:24rem}

/* contact band */
.cta-band{position:relative;overflow:hidden}
.cta-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:40px 64px;align-items:end}
@media (max-width:859px){.cta-grid{grid-template-columns:1fr}}
.contact-lines{display:grid;gap:0;border-top:1px solid var(--line)}
.cl{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}
.cl dt{margin:0}.cl dd{margin:0;min-width:0}
.cl .val{font-weight:600;font-stretch:104%;font-size:clamp(1.05rem,1.8vw,1.4rem);letter-spacing:-.01em;overflow-wrap:break-word;user-select:all}
@media (max-width:479px){.cl{flex-wrap:wrap;align-items:flex-start;gap:12px}.cl>div{flex:1 1 100%}}
.cl .lab{display:block;margin-bottom:3px;color:var(--fg2)}
.copy{flex:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 12px;border:0;border-radius:2px;background:transparent;cursor:pointer;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,currentColor 32%,transparent);transition:box-shadow .2s,background .2s,color .2s}
.copy:hover{box-shadow:inset 0 0 0 1px currentColor}
.copy svg{width:15px;height:15px}
.copy.ok{background:var(--hivis);color:var(--ink);box-shadow:none}

/* page heads */
.pagehead{position:relative;overflow:hidden;min-height:clamp(300px,38vw,450px);display:flex;align-items:flex-end;padding-top:clamp(124px,16vw,208px);padding-bottom:clamp(48px,7vw,96px)}
.pagehead::after{content:"";position:absolute;right:var(--gr);bottom:0;width:min(28vw,360px);height:2px;background:linear-gradient(90deg,transparent,var(--hivis))}
.pagehead .art{position:absolute;right:0;top:0;width:min(62%,780px);height:100%;color:var(--plaster);pointer-events:none;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 70%);mask-image:linear-gradient(90deg,transparent,#000 70%)}
.pagehead .wrap{position:relative}
.pagehead h1{margin-top:20px}
.pagehead .lead{margin-top:22px;color:rgba(238,238,233,.78)}

/* realizace */
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{position:relative;display:inline-flex}
.chip input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.chip span{display:inline-flex;align-items:center;padding:.8em 1.1em;border-radius:2px;font:600 .8rem/1 var(--f-display);letter-spacing:.04em;
  box-shadow:inset 0 0 0 1px var(--line);transition:background .2s,color .2s,box-shadow .2s}
.chip:hover span{box-shadow:inset 0 0 0 1px var(--fg)}
.chip input:checked+span{background:var(--fg);color:var(--bg);box-shadow:none}
.chip input:focus-visible+span{outline:2px solid var(--focus);outline-offset:3px}
.grid-frames{display:grid;grid-template-columns:repeat(12,1fr);gap:14px;margin-top:28px}
.frame{position:relative;min-width:0;grid-column:span 4;background:var(--paper);display:flex;flex-direction:column;border:1px solid rgba(23,20,17,.09);
  transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.frame:hover{transform:translateY(-4px);box-shadow:0 22px 40px -26px rgba(18,20,22,.5)}
.frame.w7{grid-column:span 7}.frame.w5{grid-column:span 5}.frame.w12{grid-column:span 12}
.frame .art{position:relative;aspect-ratio:4/3;color:var(--ink);overflow:hidden;border-bottom:1px solid var(--line-l);
  background-color:var(--paper);background-image:linear-gradient(rgba(23,20,17,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(23,20,17,.045) 1px,transparent 1px);background-size:24px 24px}
.frame.w7 .art{aspect-ratio:16/10}.frame.w12 .art{aspect-ratio:3/1}
.frame .cap{padding:18px 20px 22px;display:grid;gap:10px;flex:1}
.frame .cap-meta{display:flex;justify-content:space-between;gap:12px;color:var(--muted-l);font-size:.62rem;letter-spacing:.11em}
.frame .cap-title{font-weight:800;font-stretch:108%;font-size:clamp(1.15rem,2vw,1.65rem);line-height:1.05;text-transform:uppercase;letter-spacing:-.01em}
.frame .cap-text{color:var(--muted-l);font-size:.96rem;max-width:34ch}
.frame .art::after{content:attr(data-index);position:absolute;top:14px;left:14px;z-index:2;padding:7px 9px;background:var(--plaster);color:var(--ink);font:500 .65rem/1.2 var(--f-mono);letter-spacing:.1em}
.frame .art::before{content:"SCHEMATICKÁ UKÁZKA";position:absolute;top:14px;right:14px;z-index:2;padding:7px 9px;background:rgba(21,21,20,.82);color:var(--plaster);font:500 .6rem/1.2 var(--f-mono);letter-spacing:.09em}
@media (max-width:899px){.frame,.frame.w7,.frame.w5{grid-column:span 6}.frame.w12{grid-column:span 12}}
@media (max-width:559px){.frame,.frame.w7,.frame.w5,.frame.w12{grid-column:span 12}.frame.w12 .art{aspect-ratio:16/10}}
.needs{margin-top:clamp(40px,6vw,72px);display:grid;grid-template-columns:1fr 1.4fr;gap:24px 64px;padding:clamp(24px,3.5vw,42px);border:1px solid var(--line-l);border-left:3px solid var(--hivis);background:var(--paper)}
@media (max-width:859px){.needs{grid-template-columns:1fr}}
.checks{list-style:none;margin:0;padding:0;display:grid;gap:0}
.checks li{display:flex;gap:14px;align-items:flex-start;padding:14px 0;border-bottom:1px solid var(--line-l);font-size:1.02rem}
.checks svg{flex:none;width:18px;height:18px;margin-top:.25em;color:var(--ink)}
.on-dark .checks li{border-color:var(--line-d)}

/* sluzby */
.svc{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr);gap:clamp(24px,5vw,72px)}
@media (max-width:859px){.svc{grid-template-columns:1fr}}
.tablist{display:grid;align-content:start;border-top:1px solid var(--line-l)}
.tab{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;padding:22px 4px;background:transparent;border:0;border-bottom:1px solid var(--line-l);
  text-align:left;cursor:pointer;color:var(--muted-l);transition:color .25s,padding .4s var(--ease)}
.tab .tn{font-weight:800;font-stretch:108%;font-size:clamp(1.15rem,2.1vw,1.7rem);line-height:1.1;text-transform:uppercase;letter-spacing:-.01em}
.tab .mono{opacity:.8}
.tab:hover{color:var(--ink)}
.tab[aria-selected=true]{color:var(--ink);padding-left:16px;box-shadow:inset 3px 0 0 var(--hivis)}
.tabpanel{background:var(--paper);display:flex;flex-direction:column;min-width:0}
.tabpanel .art{aspect-ratio:16/8;color:var(--ink);overflow:hidden;border-bottom:1px solid var(--line-l)}
.tabpanel .pbody{padding:clamp(22px,3vw,36px);display:grid;gap:22px}
.tabpanel .lead{color:var(--ink)}
.worklist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 28px}
@media (max-width:599px){.worklist{grid-template-columns:1fr}}
.worklist li{padding:12px 0;border-top:1px solid var(--line-l);font-size:.98rem}
.confirm-tag{display:inline-flex;align-items:center;gap:8px;color:var(--muted-l)}
.confirm-tag::before{content:"";width:7px;height:7px;border:1.5px solid var(--hivis);border-radius:50%}

/* partneri */
.duo{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:759px){.duo{grid-template-columns:1fr}}
.card{background:var(--paper);padding:clamp(22px,3vw,36px);display:grid;gap:16px;align-content:start;min-width:0}
.card p{color:var(--muted-l);max-width:30rem}

/* spolecnost: title block */
.titleblock{display:grid;grid-template-columns:repeat(6,1fr);border:1px solid var(--ink);background:var(--paper)}
.titleblock>div{padding:16px 18px 18px;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);min-width:0}
.titleblock .k{display:block;margin-bottom:6px;color:var(--muted-l)}
.titleblock .v{font-weight:600;font-stretch:104%;font-size:1.08rem;line-height:1.3;overflow-wrap:anywhere}
.titleblock .c2{grid-column:span 2}.titleblock .c3{grid-column:span 3}.titleblock .c6{grid-column:span 6}
@media (max-width:859px){.titleblock{grid-template-columns:repeat(2,1fr)}.titleblock .c2,.titleblock .c3{grid-column:span 1}.titleblock .c6{grid-column:span 2}}
@media (max-width:559px){.titleblock{grid-template-columns:1fr}.titleblock>div,.titleblock .c2,.titleblock .c3,.titleblock .c6{grid-column:span 1}}
.titleblock>div:nth-child(6n){border-right:0}
.src-note{margin-top:16px;color:var(--muted-l)}

/* poptavka */
.enq{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(32px,6vw,88px);align-items:start}
@media (max-width:899px){.enq{grid-template-columns:1fr}}
.form{display:grid;gap:26px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:26px}
@media (max-width:599px){.row2{grid-template-columns:1fr}}
.fld{display:grid;gap:8px;min-width:0}
.fld label,.fld legend{padding:0;color:var(--muted-l)}
.fld legend{display:block;margin-bottom:12px;float:none}
.fld input[type=text],.fld input[type=tel],.fld input[type=email],.fld textarea{width:100%;font:500 1.08rem/1.4 var(--f-display);color:var(--ink);background:transparent;
  border:0;border-bottom:1px solid var(--ink);border-radius:0;padding:.5em 0;outline:none;transition:box-shadow .2s}
.fld textarea{min-height:140px;resize:vertical;border:1px solid var(--ink);padding:.8em .9em}
.fld input:focus,.fld textarea:focus{box-shadow:0 2px 0 0 var(--ink)}
.fld textarea:focus{box-shadow:0 0 0 2px var(--ink)}
.fld fieldset{border:0;padding:0;margin:0;display:grid;gap:10px}
.fld .err{min-height:1.2em;font-size:.86rem;color:#B3320A;font-weight:600}
.fld [aria-invalid=true]{border-color:#B3320A}
.consent{display:flex;gap:12px;align-items:flex-start;font-size:.92rem;color:var(--muted-l)}
.consent input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--ink);flex:none}
.sent{background:var(--paper);padding:clamp(24px,3.4vw,44px);display:grid;gap:20px}
.sent dl{margin:0;display:grid;gap:0;border-top:1px solid var(--line-l)}
.sent dl div{display:grid;grid-template-columns:9rem 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--line-l)}
.sent dt{color:var(--muted-l)}.sent dd{margin:0;overflow-wrap:anywhere}
.notice{display:inline-flex;gap:10px;align-items:center;padding:10px 14px;background:var(--ink);color:var(--plaster)}
.notice::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--hivis)}
.side-card{background:var(--paper);padding:clamp(22px,3vw,32px)}
.side-card .contact-lines{margin-top:18px}
.maplink{display:inline-flex;align-items:center;gap:8px;margin-top:20px;font-weight:600;text-underline-offset:4px}

/* footer */
.foot{position:relative;overflow:hidden;padding-top:clamp(56px,8vw,96px);border-top:1px solid rgba(232,91,52,.42)}
.foot-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:36px 48px;position:relative}
@media (max-width:859px){.foot-grid{grid-template-columns:1fr 1fr}.foot-grid>:first-child{grid-column:span 2}}
@media (max-width:559px){.foot-grid{grid-template-columns:1fr}.foot-grid>:first-child{grid-column:span 1}}
.foot h2{font-size:.68rem;margin-bottom:14px}
.foot nav{display:grid;gap:8px}
.foot nav a,.foot a.plain{text-decoration:none;opacity:.8;transition:opacity .2s}
.foot nav a:hover,.foot a.plain:hover{opacity:1;text-decoration:underline;text-underline-offset:4px}
.foot address{font-style:normal;color:var(--muted-d);display:grid;gap:4px}
.foot-note{position:relative;margin-top:clamp(36px,5vw,64px);padding-top:20px;border-top:1px solid var(--line-d);color:var(--muted-d);max-width:60rem}
.foot-ghost{position:relative;margin-top:clamp(8px,2vw,24px);font-weight:800;font-stretch:125%;font-size:clamp(5rem,24vw,22rem);line-height:.74;letter-spacing:-.04em;
  color:rgba(238,238,233,.055);text-align:center;user-select:none;pointer-events:none;white-space:nowrap;overflow:hidden;height:.62em}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* photography: AI-generated illustrative images, always labelled "Ilustrační foto" */
.ph{position:relative;overflow:hidden;background:var(--graphite-2)}
.ph>i{position:absolute;inset:0;background-image:var(--src);background-size:cover;background-position:var(--pos,50% 50%);
  filter:saturate(.82) contrast(1.04);transition:transform 1.4s var(--ease)}
.ph::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(21,21,20,0) 55%,rgba(21,21,20,.38));mix-blend-mode:multiply}
.ph-tag{position:absolute;left:12px;bottom:12px;z-index:2;display:inline-flex;align-items:center;gap:7px;padding:6px 9px;
  background:rgba(21,21,20,.78);color:var(--plaster);font:500 .6rem/1.2 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:none}
.ph-tag::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--hivis)}
@media (hover:hover){.tile:hover .ph>i,.shot:hover .ph>i{transform:scale(1.045)}}
.tile .art.ph{background:var(--graphite-2);border-bottom:0}

/* hero: the wall itself reveals an illustrative photo under the cursor (drawn per brick in the canvas) */
.hero-ph{position:absolute;z-index:2;right:var(--gr);top:92px;left:auto;bottom:auto;opacity:0;transition:opacity .5s var(--ease)}
@media (min-width:960px){.hero-ph{top:auto;bottom:calc(clamp(36px,6vw,72px) + 34px)}}

/* home: detail strip (tight crops of the same illustrative photos) */
.band{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:clamp(40px,6vw,80px)}
.shot{margin:0;min-width:0;display:flex;flex-direction:column;gap:12px}
.shot .ph{aspect-ratio:4/5}
.shot .ph>i{background-size:var(--bs,cover)}
.shot figcaption{display:grid;gap:4px;color:var(--muted-l)}
.shot figcaption b{color:var(--ink);font-weight:500}
.band-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;margin-top:clamp(40px,6vw,80px);color:var(--muted-l)}
.band-head+.band{margin-top:16px}
@media (max-width:859px){.band{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:379px){.band{grid-template-columns:1fr}.shot .ph{aspect-ratio:16/11}}

/* realizace: empty case-study slot, laid out as a drawing title block */
.slot{margin-top:28px;border:1px dashed var(--ink);background:transparent;display:grid;grid-template-columns:repeat(6,minmax(0,1fr))}
.slot>div{padding:16px 18px 18px;border-right:1px dashed rgba(23,20,17,.35);border-bottom:1px dashed rgba(23,20,17,.35);min-width:0}
.slot .k{display:block;margin-bottom:6px;color:var(--muted-l)}
.slot .v{display:block;color:var(--muted-l);font-weight:500;font-size:1rem;line-height:1.3}
.slot .v::before{content:"";display:inline-block;width:18px;height:2px;margin-right:10px;vertical-align:middle;background:var(--hivis)}
.slot .c2{grid-column:span 2}.slot .c3{grid-column:span 3}.slot .c6{grid-column:span 6}
.slot-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;margin-top:clamp(40px,6vw,64px);color:var(--muted-l)}
.slot-head+.slot{margin-top:14px}
@media (max-width:859px){.slot{grid-template-columns:repeat(2,minmax(0,1fr))}.slot .c2,.slot .c3{grid-column:span 1}.slot .c6{grid-column:span 2}}
@media (max-width:559px){.slot{grid-template-columns:1fr}.slot>div,.slot .c2,.slot .c3,.slot .c6{grid-column:span 1}}

/* process */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--ink)}
.steps li{position:relative;padding:22px 22px 26px 0;display:grid;gap:12px;align-content:start;min-width:0}
.steps li+li{padding-left:22px;border-left:1px solid var(--line-l)}
.steps .n{font:500 .72rem/1 var(--f-mono);letter-spacing:.12em;color:var(--muted-l)}
.steps .n b{display:inline-block;width:9px;height:9px;margin-right:9px;background:var(--hivis);vertical-align:-1px}
.steps h3{font-weight:800;font-stretch:108%;font-size:clamp(1.05rem,1.6vw,1.3rem);line-height:1.1;text-transform:uppercase}
.steps p{color:var(--muted-l);font-size:.95rem;max-width:30ch}
@media (max-width:959px){.steps{grid-template-columns:repeat(2,minmax(0,1fr))}.steps li:nth-child(3){padding-left:0;border-left:0}.steps li:nth-child(n+3){border-top:1px solid var(--line-l)}}
@media (max-width:559px){.steps{grid-template-columns:1fr}.steps li,.steps li+li{padding-left:0;border-left:0}.steps li+li{border-top:1px solid var(--line-l)}}
.steps-note{margin-top:16px;color:var(--muted-l)}

/* page heads + service panel photos */
.pagehead .ph-bg{position:absolute;right:0;top:0;bottom:0;width:min(66%,960px);pointer-events:none;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 58%);mask-image:linear-gradient(90deg,transparent,#000 58%)}
.pagehead .ph-bg .ph{position:absolute;inset:0;opacity:.62}
.pagehead .ph-bg .ph>i{filter:saturate(.6) contrast(1.08) brightness(.82)}
.pagehead .ph-bg .ph-tag{left:auto;right:var(--gr);bottom:18px}
@media (max-width:759px){.pagehead .ph-bg{width:100%;-webkit-mask-image:linear-gradient(180deg,#000 10%,transparent 85%);mask-image:linear-gradient(180deg,#000 10%,transparent 85%)}
  .pagehead .ph-bg .ph{opacity:.38}.pagehead .ph-bg .ph-tag{top:96px;bottom:auto}}
.tabpanel .art.ph{aspect-ratio:16/8;border-bottom:0}
.duo .card.photo{padding:0;overflow:hidden}
.duo .card.photo .ph{aspect-ratio:16/9}
.duo .card.photo .inner{padding:clamp(22px,3vw,36px);display:grid;gap:16px}

/* mobile quick CTA */
.mcta{position:fixed;z-index:50;left:0;right:0;bottom:0;display:none;gap:8px;
  padding:10px max(12px,env(safe-area-inset-right,0px)) calc(10px + env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));
  background:rgba(21,21,20,.9);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid rgba(245,241,233,.12)}
.mcta .btn{flex:1;justify-content:center}
@media (max-width:759px){.mcta{display:flex}body{padding-bottom:calc(68px + env(safe-area-inset-bottom,0px))}
  html.menu-open .mcta,html.on-enq .mcta{display:none}}

/* status tags: solid = confirmed in a public record, outline = waiting for the company */
.st{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;padding:6px 9px;font:500 .6rem/1.2 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;box-shadow:inset 0 0 0 1px var(--line-l);color:var(--muted-l)}
.st::before{content:"";width:6px;height:6px;border-radius:50%;border:1.5px solid var(--hivis);flex:none}
.st.ok{background:var(--ink);color:var(--plaster);box-shadow:none}
.st.ok::before{background:var(--hivis)}

/* evidence ledger: where each fact comes from */
.ledger{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.ledger li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 32px;padding:24px 0;border-bottom:1px solid var(--line-l);align-items:start}
.ledger h3{font-weight:800;font-stretch:108%;font-size:clamp(1rem,1.5vw,1.2rem);line-height:1.15;text-transform:uppercase}
.ledger p{margin-top:8px;color:var(--muted-l);max-width:60ch}
.ledger .src{grid-column:1/-1;font:500 .62rem/1.4 var(--f-mono);letter-spacing:.08em;color:var(--muted-l)}
@media (max-width:559px){.ledger li{grid-template-columns:1fr}}

/* pre-launch checklist: drawn like a title block, removed before launch */
.prelaunch{margin-top:clamp(40px,6vw,72px);border:1px dashed var(--ink);padding:clamp(22px,3vw,36px);display:grid;gap:22px}
.prelaunch ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 40px}
@media (max-width:759px){.prelaunch ul{grid-template-columns:1fr}}
.prelaunch li{display:flex;gap:14px;align-items:flex-start;padding:14px 0;border-top:1px solid var(--line-l);font-size:1rem;line-height:1.4}
.prelaunch li::before{content:"";flex:none;width:15px;height:15px;margin-top:.22em;border:1.5px solid var(--ink)}

@media (prefers-reduced-motion:reduce){
  .ph>i{transition:none}
  .view.go .rv,.view.go .rv-b{animation:none}
  .wipe{display:none}
  .tile,.tile:hover{transition:none;transform:none}
  .frame,.frame:hover{transition:none;transform:none}
  .menu,.menu a.m{transition:none}
  .bond rect,.bond g.row,.btn,.btn svg,.copy,.tab,.navpill a,.burger span,.burger span::before,.burger span::after{transition:none}
}
:root{--img-zdeni:url(/assets/redox/zdeni.webp);--img-rekonstrukce:url(/assets/redox/rekonstrukce.webp);--img-fasada:url(/assets/redox/fasada.webp);--img-omitky:url(/assets/redox/omitky.webp)}
.hp{position:absolute;width:1px;height:1px;left:-9999px;opacity:0;pointer-events:none}
.form-err{min-height:1.2em;font-size:.86rem;color:#B3320A;font-weight:600}
