/* ═══ WordPress theme reset ═══════════════════════════════════════════════ */
html,body{margin:0!important;padding:0!important;max-width:none!important;font-size:18px!important}
#page,#content,#primary,.site,.site-content,.entry-content,
.wp-site-blocks,.is-layout-constrained,.is-layout-flow,
main,.main-content,.site-main,.hentry,article{
  max-width:none!important;padding:0!important;margin:0!important;
  width:100%!important;float:none!important;display:block!important}
.entry-content>*,.wp-block-group__inner-container{max-width:none!important;padding:0!important}
img{max-width:100%;height:auto;vertical-align:bottom;display:block}
a{text-decoration:none;color:inherit}
ul,ol{list-style:none;margin:0;padding:0}
*,*::before,*::after{box-sizing:border-box}

/* ═══ Nav – header.php class names ════════════════════════════════════════════ */
#nav{position:fixed;top:0;left:0;right:0;z-index:999;
  background:rgba(7,7,10,.88);backdrop-filter:blur(24px) saturate(180%);
  border-bottom:1px solid rgba(255,255,255,.10)}
.nav-in{max-width:1440px;margin:0 auto;padding:0 48px;height:72px;
  display:flex!important;align-items:center;justify-content:space-between;width:100%}
.nav-logo img{height:40px;width:auto;display:block}
.nav-links{display:flex!important;align-items:center;gap:2.2rem;
  list-style:none!important;margin:0!important;padding:0!important}
.nav-links li{list-style:none!important;margin:0!important;padding:0!important}
.nav-links li a{font-size:.88rem;font-weight:500;color:rgba(255,255,255,.55);
  transition:color .2s;text-decoration:none!important}
.nav-links li a:hover,.nav-links li.current-menu-item a,.nav-links li.current_page_item a{color:#fff!important}
.nav-r{display:flex;align-items:center;gap:1rem}
.nav-tel{font-size:.88rem;font-weight:600;color:rgba(255,255,255,.7);
  display:flex;align-items:center;gap:.5rem;text-decoration:none!important;white-space:nowrap}
.nav-tel .nav-tel-num{letter-spacing:.02em}
.nav-tel svg{width:16px;height:16px;fill:currentColor}
.nav-burger{display:none;flex-direction:column;gap:5px;
  background:none!important;border:none!important;padding:4px;cursor:pointer}
.nav-burger span{display:block;width:24px;height:2px;background:#fff;
  border-radius:2px;transition:all .3s}
.nav-mobile{display:none!important;position:fixed;inset:0;
  background:rgba(7,7,10,.97);z-index:9999;
  flex-direction:column;align-items:center;justify-content:center;gap:2rem}
.nav-mobile.open{display:flex!important}
.nav-mobile ul{list-style:none!important;margin:0!important;padding:0!important;
  display:flex;flex-direction:column;align-items:center;gap:2rem}
.nav-mobile ul li a{font-size:1.4rem;font-weight:700;color:#fff;text-decoration:none!important}

/* nl alias */
.nl img{height:40px;width:auto;display:block}

/* Footer links */
.ft-links a{display:block;font-size:.9rem;color:#a0a0b4;margin-bottom:.55rem}
.ft-links a:hover{color:#fff}

@media(max-width:768px){
  .nav-in{padding:0 24px}
  .nav-links{display:none!important}
  .nav-burger{display:flex!important}
  html{font-size:16px!important}
}
@media(max-width:480px){
  .nav-in{padding:0 16px}
  html{font-size:15px!important}
}

:root{
  --bg:#07070a;--bg2:#0e0e14;
  --gl:rgba(255,255,255,.055);--glh:rgba(255,255,255,.09);
  --gb:rgba(255,255,255,.10);
  --ac:#5500ff;--acm:#7c3aed;--acl:#9b6dff;
  --w:#fff;--tx:rgba(255,255,255,.88);--mu:rgba(255,255,255,.55);
  --ff:'Plus Jakarta Sans',sans-serif;
  --r8:8px;--r12:12px;--r16:16px;--r24:24px;
  --sh:0 24px 64px rgba(0,0,0,.5);
  --blur:blur(24px) saturate(180%);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:18px}
body{background:var(--bg);color:var(--tx);font-family:var(--ff);overflow-x:hidden;line-height:1.7}
img{display:block;max-width:100%;vertical-align:bottom}
a{color:inherit;text-decoration:none}
button{cursor:pointer;font-family:var(--ff)}
.con{max-width:1440px;margin:0 auto;padding:0 48px;width:100%}
.sec{padding:7rem 0}
body::after{content:'';position:fixed;inset:0;z-index:9998;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='.04'/%3E%3C/svg%3E");opacity:.45}
.eb{font-size:.72rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--acl);margin-bottom:1rem;display:flex;align-items:center;gap:.6rem}
.eb::before{content:'';width:22px;height:2px;background:var(--acl);border-radius:2px;flex-shrink:0}
.h2{font-size:clamp(1.9rem,3.5vw,2.9rem);font-weight:800;line-height:1.12;letter-spacing:-.03em}
.h2 .d{color:var(--mu);font-weight:300}
.lead{font-size:1.05rem;color:var(--mu);line-height:1.75;font-weight:300}
.btn{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--ff);font-weight:700;font-size:.95rem;padding:.85rem 1.8rem;border-radius:var(--r8);border:none;cursor:pointer;transition:all .22s;text-decoration:none}
.btn-p{background:var(--ac);color:#fff}
.btn-p:hover{background:var(--acm);transform:translateY(-1px)}
.btn-g{background:var(--gl);color:var(--w);border:1px solid var(--gb);backdrop-filter:var(--blur)}
.btn-g:hover{background:var(--glh)}
#nav{position:fixed;top:0;left:0;right:0;z-index:999;background:rgba(7,7,10,.82);backdrop-filter:var(--blur);border-bottom:1px solid var(--gb)}
.ni{max-width:1440px;margin:0 auto;padding:0 48px;height:72px;display:flex;align-items:center;justify-content:space-between}
.nl img{height:40px;width:auto;display:block}
.na{display:flex;align-items:center;gap:2.2rem}
.na a{font-size:.88rem;font-weight:500;color:var(--mu);transition:color .2s}
.na a:hover,.na a.act{color:var(--w)}
.nc{background:var(--ac)!important;color:#fff!important;font-size:.85rem!important;font-weight:700!important;padding:.55rem 1.3rem;border-radius:var(--r8)!important}
.nb{display:none;flex-direction:column;gap:5px;background:none;border:none;padding:4px;cursor:pointer}
.nb span{display:block;width:24px;height:2px;background:var(--w);border-radius:2px}
.nm{display:none;position:fixed;inset:0;background:rgba(7,7,10,.97);z-index:9999;flex-direction:column;align-items:center;justify-content:center;gap:2rem}
.nm.open{display:flex}
.nm a{font-size:1.4rem;font-weight:700}
.gl{background:var(--gl);border:1px solid var(--gb);border-radius:var(--r12)}
.gl:hover{background:var(--glh)}
.sp{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center}
.sp.rev .sp-img{order:-1}
.sp-img{position:relative;border-radius:var(--r16);overflow:hidden;line-height:0}
.sp-img img{width:100%;height:100%;object-fit:cover;display:block}
.hw{position:relative;height:92svh;min-height:700px;display:flex;flex-direction:column;overflow:hidden}
.hb{position:absolute;inset:0;background-size:cover;background-position:center 38%}
.hf{position:absolute;inset:0;background:linear-gradient(105deg,rgba(7,7,10,.93) 0%,rgba(7,7,10,.5) 55%,rgba(7,7,10,.15) 100%)}
.hm{position:absolute;inset:0;background:radial-gradient(ellipse 55% 80% at 0% 65%,rgba(85,0,255,.13),transparent 68%)}
.hc{position:relative;z-index:2;flex:1;display:flex;flex-direction:column;justify-content:center;max-width:1440px;margin:0 auto;width:100%;padding:80px 48px 0}
.hl{width:56px;height:3px;background:linear-gradient(90deg,var(--ac),var(--acl));border-radius:2px;margin-bottom:1.8rem}
.hh{font-size:clamp(3rem,7.5vw,7rem);font-weight:800;line-height:1.06;letter-spacing:-.02em;text-transform:uppercase;margin:0 0 1.5rem}
.hh em{font-style:normal;color:var(--acl)}
.hh small{font-size:.65em;color:rgba(255,255,255,.22);font-weight:300;display:block}
.hs{font-size:1.1rem;color:var(--mu);max-width:500px;font-weight:300;line-height:1.75;margin-bottom:2.5rem}
.hct{display:flex;gap:1rem;flex-wrap:wrap}
.ph{position:relative;padding:12rem 0 5rem;overflow:hidden}
.ph-bg{position:absolute;inset:0;background-size:cover;background-position:center 40%;filter:brightness(.35)}
.ph-ov{position:absolute;inset:0;background:linear-gradient(105deg,rgba(7,7,10,.88),rgba(7,7,10,.4))}
.ph-c{position:relative;z-index:1;max-width:1440px;margin:0 auto;padding:0 48px}
.ph-tag{font-size:.72rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--acl);margin-bottom:1.2rem;display:flex;align-items:center;gap:.6rem}
.ph-tag::before{content:'';width:22px;height:2px;background:var(--acl);border-radius:2px}
.ph-h{font-size:clamp(2.4rem,5vw,4.5rem);font-weight:800;line-height:1.06;letter-spacing:-.035em;margin-bottom:1.2rem}
.ph-h .d{color:var(--mu);font-weight:300}
.ph-p{font-size:1.05rem;color:var(--mu);max-width:560px;line-height:1.75;font-weight:300}
.sb{border-top:1px solid var(--gb);border-bottom:1px solid var(--gb);background:rgba(7,7,10,.88);backdrop-filter:var(--blur)}
.si{max-width:1440px;margin:0 auto;padding:0 48px;display:grid;grid-template-columns:repeat(3,1fr)}
.sc{padding:2.5rem 0;text-align:center}
.sc:not(:last-child){border-right:1px solid var(--gb)}
.sn{font-size:3rem;font-weight:800;line-height:1;margin-bottom:.3rem}
.sl{font-size:.72rem;text-transform:uppercase;letter-spacing:.15em;color:var(--mu)}
.is{background:linear-gradient(135deg,rgba(85,0,255,.09),rgba(85,0,255,.03));padding:5rem 0}
.sg{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;background:var(--gb);border-radius:var(--r16);overflow:hidden;margin-bottom:50px}
.sk{display:block;position:relative;overflow:hidden;aspect-ratio:3/4;cursor:pointer;line-height:0;font-size:0;text-decoration:none;color:inherit}
.sk img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s,filter .45s;filter:brightness(.65)}
.sk:hover img{transform:scale(1.06);filter:brightness(.88)}
.so{position:absolute;inset:0;background:linear-gradient(to top,rgba(7,7,10,.96) 0%,rgba(7,7,10,.32) 55%,rgba(7,7,10,.04) 100%)}
.si2{position:absolute;bottom:0;left:0;right:0;padding:1.8rem 2rem 2rem}
.sn2{font-size:.68rem;font-weight:700;letter-spacing:.22em;color:var(--acl);margin-bottom:.6rem;display:flex;align-items:center;gap:.5rem}
.sn2::before{content:'';width:16px;height:1px;background:var(--acl)}
.st2{font-size:clamp(1.2rem,1.8vw,1.6rem);font-weight:800;text-transform:uppercase;line-height:1.04;letter-spacing:-.025em;margin-bottom:.5rem}
.sd{font-size:.95rem;color:var(--mu);line-height:1.65;max-width:280px;margin-bottom:1.2rem;flex-grow:1}
.wg{display:grid;grid-template-columns:1fr 1fr;gap:0;border-radius:var(--r16);align-items:stretch}
.wi{position:relative;min-height:auto;line-height:0;overflow:hidden}
.wi img{width:100%;height:100%;object-fit:cover;display:block}
.ws{padding:3rem 3.5rem;display:flex;flex-direction:column;justify-content:center;background:var(--bg2)}
.fr{display:flex;gap:1.2rem;padding:1.3rem 0;border-bottom:1px solid var(--gb)}
.fr h3{font-size:1rem;font-weight:700;margin-bottom:.4rem;line-height:1.3}
.fr p{font-size:.95rem;color:var(--mu);line-height:1.7}
.ib{width:48px;height:48px;background:rgba(85,0,255,.12);border:1px solid rgba(85,0,255,.22);border-radius:var(--r8);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ib i{color:var(--acl);font-size:20px;line-height:1}
.st-card{background:var(--gl);border:1px solid var(--gb);border-radius:var(--r12);padding:1.8rem 2rem}
.st-card:hover{background:var(--glh)}
.st-head{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}
.st-card h3{font-size:1rem;font-weight:700}
.st-card p{font-size:.92rem;color:var(--mu);line-height:1.7;margin-bottom:.8rem}
.st-price{font-size:.82rem;font-weight:700;color:var(--acl)}
.step{background:var(--gl);border:1px solid var(--gb);border-radius:var(--r16);padding:2.2rem;display:flex;flex-direction:column;gap:1rem}
.step-n{font-size:2.8rem;font-weight:800;color:#9b6dff;opacity:.6;line-height:1;letter-spacing:-.03em}
.step h3{font-size:1rem;font-weight:700}
.step p{font-size:.92rem;color:var(--mu);line-height:1.7}
.rc{background:var(--gl);border:1px solid var(--gb);border-radius:var(--r16);padding:2rem}
.rc .stars{color:#f59e0b;font-size:1rem;margin-bottom:1rem;letter-spacing:.1em}
.rc .qt{font-size:.95rem;color:var(--mu);line-height:1.72;font-style:italic;margin-bottom:1.2rem}
.rc .au{font-size:.92rem;font-weight:700}
.rc .svc{font-size:.8rem;color:var(--acl);margin-top:.2rem}
.bc{background:var(--gl);border:1px solid var(--gb);border-radius:var(--r16);overflow:hidden}
.bc:hover{background:var(--glh)}
.bc-img{height:220px;overflow:hidden;line-height:0}
.bc-img img{width:100%;height:100%;object-fit:cover;display:block}
.gal-top{display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:470px 510px;gap:4px;border-radius:var(--r16) var(--r16) 0 0;overflow:hidden}
.gal-bot{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-top:4px;height:350px;border-radius:0 0 var(--r16) var(--r16);overflow:hidden}
.gc{overflow:hidden;position:relative;cursor:pointer;font-size:0;line-height:0}
.gc img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.75) brightness(.88);transition:transform .5s,filter .4s}
.gc:hover img{transform:scale(1.06);filter:saturate(1.1) brightness(1)}
.gl2{display:none}
.fq{border-bottom:1px solid var(--gb)}
.fq-q{width:100%;display:flex;justify-content:space-between;align-items:center;padding:1.4rem 0;background:none;border:none;color:var(--w);font-family:var(--ff);font-size:1rem;font-weight:600;text-align:left;cursor:pointer;gap:1rem}
.fq-i{font-size:1.4rem;color:var(--acl);flex-shrink:0;transition:transform .25s}
.fq.open .fq-i{transform:rotate(45deg)}
.fq-a{display:none;padding-bottom:1.4rem}
.fq-a p{margin:0}
.fq.open .fq-a{display:block}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.fi{width:100%;padding:.95rem 1.2rem;min-height:48px;background:rgba(255,255,255,.06);border:1px solid var(--gb);border-radius:var(--r8);color:var(--w);font-family:var(--ff);font-size:.95rem;outline:none;transition:border .2s}
.fi:focus{border-color:var(--acl)}
.fi::placeholder{color:var(--mu)}
select.fi option{background:#1a1a2e}
textarea.fi{resize:vertical;min-height:120px}
.fsb{width:100%;padding:1.1rem;background:var(--ac);color:var(--w);border:none;border-radius:var(--r8);font-family:var(--ff);font-size:1rem;font-weight:700;cursor:pointer;transition:background .22s;margin-top:.4rem}
.fsb:hover{background:var(--acm)}
.br-card{background:var(--gl);border:1px solid var(--gb);border-radius:var(--r16);padding:2rem 2.5rem}
.br-card img{height:36px;width:auto;object-fit:contain;object-position:left;filter:brightness(0) invert(1);display:block;margin-bottom:1.2rem}
.br-cat{font-size:.72rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--acl);margin-bottom:.5rem}
.br-desc{font-size:.92rem;color:var(--mu);line-height:1.7}
.ft{border-top:1px solid #1e1e2e;background:#0e0e14;width:100%}
.ft-in{max-width:1440px;margin:0 auto;padding:3rem 48px 1.5rem}
.ft-grid{display:grid;grid-template-columns:1.6fr .8fr 1fr 1.4fr;gap:3rem;padding-bottom:2.5rem;border-bottom:1px solid #1e1e2e;align-items:start}
.ft-h{font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#9b6dff;margin-bottom:1.2rem}
.ft-cr{padding-top:1.3rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}
.ft-row{display:flex;align-items:flex-start;gap:.8rem;margin-bottom:.65rem;font-size:.9rem;color:#a0a0b4;line-height:1.6}
.ft-row i{color:#9b6dff;font-size:.85rem;margin-top:.22rem;flex-shrink:0;width:16px}
.ft-links a{display:block;font-size:.9rem;color:#a0a0b4;margin-bottom:.55rem}
.ft-links a:hover{color:#fff}
@media(max-width:1100px){.sg{grid-template-columns:1fr;gap:2px}.sk{aspect-ratio:16/9}.wg{grid-template-columns:1fr}.wi{min-height:300px}.sp{grid-template-columns:1fr}.sp-img{height:280px;order:-1}}
@media(max-width:900px){.ft-grid{grid-template-columns:1fr 1fr!important}}
@media(max-width:768px){
  html{font-size:16px}
  .con{padding:0 24px}.ni{padding:0 24px}.si{padding:0 24px}
  .hh{font-size:clamp(2.2rem,10vw,3.5rem)!important}
  .sec{padding:5rem 0}
  .sp{grid-template-columns:1fr}
  .sp-img{height:280px!important;order:-1}
  .wi{min-height:260px}.ws{padding:2.5rem 1.5rem}
  .nb{display:flex}.na{display:none}
  .fgrid{grid-template-columns:1fr}
  .ft-grid{grid-template-columns:1fr!important}
  .gal-top{grid-template-rows:280px 280px}
}
@media(max-width:480px){
  html{font-size:15px}
  .con{padding:0 16px}.ni{padding:0 16px}
  .hh{font-size:clamp(2rem,11vw,3rem)!important}
  .hct{flex-direction:column}.hct .btn{width:100%;justify-content:center}
}



.fq.open .fq-a{display:block}





.sk:hover 
.ws .h2{font-size:clamp(1.8rem,2.8vw,2.5rem);line-height:1.12;margin-bottom:.8rem}

.glass-sec{padding:6rem 0;background:rgba(85,0,255,.06)}

.sec-alt{padding:7rem 0;background:rgba(14,14,20,.5)}

.cta-glass{background:rgba(85,0,255,.06);border-radius:var(--r24);overflow:hidden}

.cta-glass-inner{padding:4rem;background:transparent;display:flex;flex-direction:column;justify-content:center}

.ph + .sec, .ph + section.sec{padding-top:5rem}

.hw + div + .sec, .hw ~ .sb + .is + .sec{padding-top:5rem}


.cta-wrap{background:rgba(85,0,255,.07);border-radius:var(--r24);overflow:hidden}

.sec-gal{padding:160px 0}

.sec-gal .con{margin-bottom:2rem}


.sec-dark{padding:7rem 0;background:rgba(14,14,20,.6)}

.sec-dark .con{}

.fr:last-child{border-bottom:none}

.sk:hover 
.slk{display:inline-flex;align-items:center;gap:.4rem;font-size:.88rem;font-weight:700;color:var(--acl);background:none;border:none;padding:.2rem 0;cursor:pointer;text-decoration:none;transition:color .2s;margin-top:.8rem;letter-spacing:.03em}
.slk:hover,.sk:hover .slk{color:#fff}

.ft-row a{color:inherit;text-decoration:none;transition:color .2s}
.ft-row a:hover{color:#9b6dff}

/* ═══════════════════════════════════════════════════════════════════════════
   PATCH 2026-05-06 — chybějící class definitions + visual polish
   Reason: kolegyně migrovala HTML prototyp do PHP a část tříd se nestylovala.
   ═══════════════════════════════════════════════════════════════════════════ */

/* — SVG feature icons (.ib > svg .st0) — root cause: .st0 fill default = black
   na tmavém pozadí neviditelné. Nutíme currentColor. ─────────────────────── */
.ib svg{color:var(--acl);width:24px;height:24px}
.ib svg path,
.ib svg .st0,
.ib svg .st1{fill:currentColor;stroke:none}
.ib svg polygon{fill:currentColor}

/* — Hero overlay (.ho) — gradient přes background image ───────────────────── */
.ho{
  position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(105deg,rgba(7,7,10,.94) 0%,rgba(7,7,10,.55) 55%,rgba(7,7,10,.18) 100%),
    radial-gradient(ellipse 60% 80% at 0% 65%,rgba(85,0,255,.16),transparent 70%);
}
.hc{position:relative;z-index:2}

/* — Hero eyebrow tagline (.ht) — uppercase malé s pruhem ─────────────────── */
.ht{
  font-size:.78rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;
  color:var(--acl);margin-bottom:1.4rem;
  display:inline-flex;align-items:center;gap:.6rem;
}
.ht::before{
  content:'';width:22px;height:2px;background:var(--acl);border-radius:2px;flex-shrink:0;
}

/* — Hero secondary line (.hd) — italic, lighter, accent color, lowercase ─── */
.hh .hd{
  display:block;
  text-transform:none;font-style:italic;font-weight:300;
  color:var(--acl);letter-spacing:-.015em;
  font-size:.62em;line-height:1.05;margin-top:.18em;
}

/* — Hero paragraph (.hp) — lead text, muted, max-width ───────────────────── */
.hc .hp{
  font-size:1.1rem;color:var(--mu);max-width:520px;
  font-weight:300;line-height:1.7;margin-bottom:2.5rem;
}

/* — Outline button (.btn-o) — sklenný outline secondary CTA ──────────────── */
.btn-o{
  display:inline-flex;align-items:center;gap:.5rem;
  font-family:var(--ff);font-weight:700;font-size:.95rem;
  padding:.85rem 1.8rem;border-radius:var(--r8);
  background:var(--gl);color:var(--w);
  border:1px solid var(--gb);backdrop-filter:var(--blur);
  transition:all .22s;text-decoration:none;cursor:pointer;
}
.btn-o:hover{background:var(--glh);border-color:var(--acl);transform:translateY(-1px)}

/* — Reference / review cards (.rev-card / .rv-text / .rv-name / .rv-stars) ─ */
.rev-card{
  background:var(--gl);border:1px solid var(--gb);border-radius:var(--r16);
  padding:2rem;display:flex;flex-direction:column;gap:.9rem;
  transition:background .22s,border-color .22s,transform .22s;
}
.rev-card:hover{background:var(--glh);border-color:rgba(155,109,255,.32);transform:translateY(-2px)}
.rv-stars{
  color:#f59e0b;font-size:1rem;letter-spacing:.18em;line-height:1;order:-1;
}
.rv-text{
  font-size:1rem;color:var(--tx);line-height:1.65;
  font-style:italic;font-weight:400;margin:0;
}
.rv-name{
  font-size:.85rem;font-weight:700;color:var(--mu);letter-spacing:.04em;
  text-transform:uppercase;margin-top:auto;
}

/* — Blog card body (.bc-bd) — padding + typography ──────────────────────── */
.bc-bd{
  padding:1.6rem 1.8rem 1.9rem;display:flex;flex-direction:column;gap:.55rem;
}
.bc-bd h3{
  font-size:1.1rem;font-weight:700;line-height:1.3;color:var(--w);margin:0;
}
.bc-bd p{
  font-size:.94rem;color:var(--mu);line-height:1.7;margin:0 0 .35rem;
}

/* — Contact form section heading polish (inline-styled v page-home.php) ──── */
/* (drží se inline-style override, jen jistíme čitelnost descenderu) */
section[style*="position:relative"] h2 span:nth-child(2){
  font-style:italic;
}

/* — Sjednocení textových input/select/textarea kvůli accessibility ────────── */
.fi{font-size:1rem!important;min-height:48px}
select.fi{cursor:pointer}

/* — Hero scale tweaks pro lepší vizuální balanc na mid viewportu ────────── */
@media(min-width:1100px) and (max-width:1599px){
  .hh{font-size:clamp(2.6rem,6.2vw,5.4rem)!important}
}

/* — Cleanup gallery: zaoblená rohy uvnitř bez dvojitého border-radius ──── */
.sec-gal>div[style*="grid"]{box-shadow:0 30px 60px rgba(0,0,0,.4)}

/* — Service-card overlay aby text čitelnější ────────────────────────────── */
.so{background:linear-gradient(to top,rgba(7,7,10,.96) 0%,rgba(7,7,10,.46) 60%,rgba(7,7,10,.06) 100%)!important}

/* — Mobil hero úprava — descender zmenšit aby se nelámal ──────────────── */
@media(max-width:768px){
  .hh .hd{font-size:.55em}
  .hc .hp{font-size:1rem}
  .ht{font-size:.7rem;letter-spacing:.18em}
}

/* ═══ Mobile inline-grid override (PHP používá inline grid styly co nereagujou na media query) ═══ */
@media(max-width:900px){
  div[style*="grid-template-columns:repeat(4"]{grid-template-columns:repeat(2,1fr)!important;gap:1rem!important}
  div[style*="grid-template-columns:repeat(3"]{grid-template-columns:repeat(2,1fr)!important;gap:1.2rem!important}
}
@media(max-width:640px){
  div[style*="grid-template-columns:repeat(4"],
  div[style*="grid-template-columns:repeat(3"],
  div[style*="grid-template-columns:repeat(2"]{grid-template-columns:1fr!important;gap:1rem!important}
  /* contact section grid */
  div[style*="grid-template-columns:1fr 1fr"]{grid-template-columns:1fr!important;gap:2rem!important;padding-right:0!important}
  div[style*="padding-right:4rem"]{padding-right:0!important}
  /* gallery on home — collapse complex grid to 2-col scroll */
  div[style*="grid-template-columns:repeat(4,1fr);grid-template-rows"]{
    grid-template-columns:repeat(2,1fr)!important;
    grid-template-rows:auto!important;
  }
  div[style*="grid-column:span 2"]{grid-column:span 2!important}
}

/* ═══ Hero CTA wrap stack na mobilu ═══ */
@media(max-width:640px){
  .hw .hc>div[style*="display:flex;gap:1rem;flex-wrap:wrap"]{flex-direction:column!important;width:100%}
  .hw .hc .btn,.hw .hc .btn-o{width:100%;justify-content:center}
}

/* ═══ Padding section spacing redukce na mobile ═══ */
@media(max-width:640px){
  .sec{padding:4rem 0}
  .sec-gal{padding:4rem 0!important}
  .sp{gap:2.5rem!important}
}

/* ═══ Hero structural fix ═══ */
/* .hb je background image vrstva, .ho overlay, .hc obsah — všechny absolutní sourozenci */
.hw{position:relative;display:flex;flex-direction:column}
.hw>.hb{position:absolute;inset:0;z-index:0}
.hw>.ho{position:absolute;inset:0;z-index:1;pointer-events:none}
.hw>.hc{position:relative;z-index:2;flex:1;display:flex;flex-direction:column;justify-content:center;width:100%;max-width:1440px;margin:0 auto;padding:96px 48px 60px}
.hh strong{color:var(--w);font-weight:700}
.hp strong{color:var(--w);font-weight:600}
@media(max-width:768px){
  .hw>.hc{padding:96px 24px 40px}
}

/* Lift hero copy slightly above absolute center for better optical balance */
.hw>.hc{justify-content:flex-end;padding-bottom:max(8svh,80px)}
@media(min-width:1100px){
  .hw>.hc{padding-bottom:max(11svh,120px)}
}

/* ═══════════════════════════════════════════════════════════════════════════
   HERO v3 — fotografie vpravo, typografie vlevo, editorial atmosphere
   ═══════════════════════════════════════════════════════════════════════════ */
.hw{position:relative;height:min(92svh,1080px);min-height:780px;display:flex;flex-direction:column;overflow:hidden;background:#040408}
.hw>.hb{
  position:absolute;inset:0;z-index:0;
  background-size:cover;background-position:center right;
  filter:saturate(1.05) contrast(1.05);
}
.hw>.ho{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(90deg,
      rgba(4,4,8,1) 0%,
      rgba(4,4,8,.96) 22%,
      rgba(4,4,8,.78) 38%,
      rgba(4,4,8,.30) 60%,
      transparent 78%),
    radial-gradient(ellipse 70% 55% at 14% 50%, rgba(124,58,237,.22), transparent 70%);
}
.hw>.hc{
  position:relative;z-index:2;
  flex:1;display:flex;flex-direction:column;justify-content:center;
  width:100%;max-width:1280px;margin:0 auto;
  padding:128px 48px 96px;
}
.hc-col{
  max-width:580px;
  display:flex;flex-direction:column;
  gap:1.2rem;
}
.hc-col .ht{
  font-size:.78rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;
  color:var(--acl);margin:0;
  display:inline-flex;align-items:center;gap:.7rem;
}
.hc-col .ht::before{content:'';width:28px;height:1px;background:var(--acl)}
.hc-col .hh{
  font-size:clamp(2.6rem,5.4vw,5rem);font-weight:800;line-height:1.04;letter-spacing:-.025em;
  text-transform:uppercase;margin:0;color:var(--w);
}
.hc-col .hh .hd{
  display:block;text-transform:none;font-style:italic;font-weight:300;
  color:var(--acl);letter-spacing:-.01em;
  font-size:.7em;line-height:1.04;margin-top:.05em;
}
.hc-col .hp{
  font-size:1.05rem;color:var(--mu);max-width:520px;
  font-weight:400;line-height:1.65;margin:.4rem 0 1.6rem;
}
.hc-col .hp strong{color:var(--w);font-weight:600;letter-spacing:.01em}
.hct{display:flex;gap:.8rem;flex-wrap:wrap;margin:0}
.hc-meta{
  display:flex;gap:1.6rem;flex-wrap:wrap;
  margin-top:2.6rem;padding-top:1.6rem;
  border-top:1px solid rgba(255,255,255,.08);
}
.hc-meta span{
  font-size:.7rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
  color:rgba(255,255,255,.42);
  display:inline-flex;align-items:center;gap:.5rem;
}
.hc-meta span+span::before{content:'';width:4px;height:4px;border-radius:50%;background:var(--acl);margin-right:.7rem;display:inline-block}

/* Scroll indicator */
.hc-scroll{
  position:absolute;left:48px;bottom:32px;z-index:3;
  display:flex;align-items:center;gap:.7rem;
  font-size:.68rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;
  color:rgba(255,255,255,.42);text-decoration:none;
  transition:color .22s;
}
.hc-scroll:hover{color:var(--acl)}
.hc-scroll>span{
  width:38px;height:1px;background:rgba(255,255,255,.32);position:relative;overflow:hidden;
}
.hc-scroll>span::after{
  content:'';position:absolute;left:-50%;top:0;width:50%;height:100%;background:var(--acl);
  animation:scroll-line 2.4s ease-in-out infinite;
}
.hc-scroll em{font-style:normal}
@keyframes scroll-line{
  0%{left:-50%}
  60%,100%{left:100%}
}

/* Mobile / narrow viewport */
@media(max-width:900px){
  .hw{height:auto;min-height:88svh;background:#040408}
  .hw>.hb{
    background-position:65% center;
    opacity:.55;
  }
  .hw>.ho{
    background:
      linear-gradient(180deg,rgba(4,4,8,.55) 0%,rgba(4,4,8,.85) 60%,rgba(4,4,8,1) 100%),
      radial-gradient(ellipse 80% 50% at 50% 70%, rgba(124,58,237,.22), transparent 70%);
  }
  .hw>.hc{padding:120px 24px 80px}
  .hc-col{max-width:100%;gap:1rem}
  .hc-col .ht{font-size:.7rem;letter-spacing:.2em}
  .hc-col .hh{font-size:clamp(2.2rem,8vw,3.6rem)}
  .hc-col .hp{font-size:1rem}
  .hct{flex-direction:column;width:100%}
  .hct .btn,.hct .btn-o{width:100%;justify-content:center}
  .hc-meta{gap:.9rem;flex-direction:column;margin-top:1.8rem;padding-top:1.2rem}
  .hc-meta span+span::before{display:none}
  .hc-scroll{display:none}
}

/* ═══════════════════════════════════════════════════════════════════════════
   DESIGN SYSTEM v2 — Lock typography, spacing, section rhythm
   ═══════════════════════════════════════════════════════════════════════════ */
:root{
  --ds-container:1440px;
  --ds-gutter-d:48px;
  --ds-gutter-m:24px;
  --ds-section-y:clamp(5rem,9vw,8rem);
  --ds-section-y-tight:clamp(3.5rem,6vw,5.5rem);
  --ds-eyebrow-fs:.74rem;
  --ds-h2-fs:clamp(2rem,3.6vw,3rem);
  --ds-h3-fs:clamp(1.1rem,1.4vw,1.32rem);
  --ds-lead-fs:1.05rem;
  --ds-body-fs:1rem;
  --ds-stack-gap:1.6rem;
  --ds-card-radius:14px;
  --ds-motion:.25s cubic-bezier(.4,0,.2,1);
}

/* Section pattern lock */
.sec,.sec-gal,.sec-dark,.sec-alt{padding:var(--ds-section-y) 0}
.con{max-width:var(--ds-container)!important;padding:0 var(--ds-gutter-d)!important}
@media(max-width:768px){.con{padding:0 var(--ds-gutter-m)!important}}

/* Eyebrow */
.eb{
  font-size:var(--ds-eyebrow-fs)!important;font-weight:700!important;
  letter-spacing:.24em!important;text-transform:uppercase!important;
  color:var(--acl)!important;
  display:inline-flex!important;align-items:center;gap:.7rem!important;
  margin-bottom:1.1rem!important;
  line-height:1!important;
}
.eb::before{content:'';width:28px;height:1px;background:var(--acl);border-radius:1px;flex-shrink:0}

/* H2 with descender */
.h2{
  font-size:var(--ds-h2-fs)!important;font-weight:800!important;
  line-height:1.06!important;letter-spacing:-.025em!important;color:var(--w)!important;
  margin:0!important;
}
.h2 .d{
  display:block;color:var(--mu);font-weight:300;font-style:italic;
  letter-spacing:-.015em;margin-top:.08em;
}

/* Lead */
.lead{
  font-size:var(--ds-lead-fs)!important;color:var(--mu)!important;
  line-height:1.65!important;font-weight:400!important;
  max-width:640px;
}

/* Section head spacing */
.sec>.con>div[style*="margin-bottom:2.5rem"],
.sec>.con>div[style*="margin-bottom:2rem"],
.sec-gal>.con>div[style*="margin-bottom:2rem"]{
  margin-bottom:3rem!important;
}

/* ═══ SERVICE CARDS v2 — fixed baseline alignment ═══ */
.sk{
  position:relative!important;
  aspect-ratio:4/5!important;
  border-radius:var(--ds-card-radius);
  overflow:hidden;
  cursor:pointer!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:flex-end!important;
  isolation:isolate;
  font-size:initial!important;
  line-height:initial!important;
  background:var(--bg2);
  transition:transform var(--ds-motion);
}
.sk:hover{transform:translateY(-4px)}
.sk>img{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  z-index:0!important;
  transition:transform .8s cubic-bezier(.2,.8,.2,1),filter .35s!important;
  filter:brightness(.62) saturate(.95)!important;
}
.sk:hover>img{transform:scale(1.06)!important;filter:brightness(.78) saturate(1.05)!important}
.sk>.so{
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  pointer-events:none;
  background:linear-gradient(to top,
    rgba(7,7,10,.97) 0%,
    rgba(7,7,10,.86) 32%,
    rgba(7,7,10,.42) 60%,
    transparent 100%)!important;
}
.sk>.si2{
  position:relative!important;
  z-index:2!important;
  padding:1.6rem 1.7rem 1.7rem!important;
  display:flex!important;
  flex-direction:column!important;
  gap:.55rem!important;
}
.sn2{
  font-size:.7rem!important;font-weight:700!important;
  letter-spacing:.2em!important;color:var(--acl)!important;
  text-transform:uppercase!important;
  display:inline-flex!important;align-items:center;gap:.55rem!important;
  line-height:1!important;
  margin:0!important;
}
.sn2::before{content:''!important;width:18px!important;height:1px!important;background:var(--acl)!important}
.st2{
  font-size:clamp(1.2rem,1.45vw,1.55rem)!important;
  font-weight:800!important;
  text-transform:uppercase!important;
  line-height:1.04!important;letter-spacing:-.02em!important;
  color:var(--w)!important;
  margin:0 0 .15rem!important;
  min-height:2.2em;
}
.sd{
  font-size:.92rem!important;
  color:var(--mu)!important;
  line-height:1.55!important;
  margin:0 0 .6rem!important;
  max-width:none!important;
  display:-webkit-box!important;
  -webkit-line-clamp:3!important;
  -webkit-box-orient:vertical!important;
  overflow:hidden!important;
  min-height:4.6em;
}
.slk{
  margin-top:.2rem!important;
  font-size:.78rem!important;
  font-weight:700!important;
  letter-spacing:.06em!important;
  color:var(--acl)!important;
  text-transform:uppercase!important;
  display:inline-flex!important;
  align-items:center!important;
  gap:.5rem!important;
  padding:.2rem 0!important;
  text-decoration:none!important;
  transition:gap var(--ds-motion),color var(--ds-motion);
  opacity:1!important;
}
.sk:hover .slk{gap:.85rem!important;color:var(--w)!important}

/* ═══ BLOG / DETAIL CARDS v2 (.bc) ═══ */
.bc{
  background:var(--gl)!important;
  border:1px solid var(--gb)!important;
  border-radius:var(--ds-card-radius)!important;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  transition:background var(--ds-motion),border-color var(--ds-motion),transform var(--ds-motion);
}
.bc:hover{
  background:var(--glh)!important;
  border-color:rgba(155,109,255,.30)!important;
  transform:translateY(-3px);
}
.bc-img{height:240px!important;overflow:hidden;line-height:0;flex-shrink:0}
.bc-img img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .8s cubic-bezier(.2,.8,.2,1);
  filter:saturate(.95);
}
.bc:hover .bc-img img{transform:scale(1.05);filter:saturate(1.05)}
.bc-bd{
  padding:1.5rem 1.7rem 1.6rem!important;
  display:flex!important;
  flex-direction:column!important;
  gap:.55rem!important;
  flex:1;
}
.bc-bd h3{
  font-size:1.1rem!important;font-weight:800!important;line-height:1.22!important;
  letter-spacing:-.01em!important;
  color:var(--w)!important;margin:0!important;
}
.bc-bd p{
  font-size:.94rem!important;color:var(--mu)!important;
  line-height:1.6!important;margin:0!important;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
  min-height:4.6em;
  flex-grow:1;
}
.bc-bd .slk{margin-top:auto!important;padding-top:.2rem!important}

/* ═══ REFERENCE CARDS v2 (.rev-card) ═══ */
.rev-card{
  background:var(--gl)!important;
  border:1px solid var(--gb)!important;
  border-radius:var(--ds-card-radius)!important;
  padding:2rem 1.9rem!important;
  display:flex!important;
  flex-direction:column!important;
  gap:1rem!important;
  transition:background var(--ds-motion),border-color var(--ds-motion),transform var(--ds-motion);
  min-height:240px;
}
.rev-card:hover{
  background:var(--glh)!important;
  border-color:rgba(155,109,255,.30)!important;
  transform:translateY(-3px);
}
.rev-card .rv-stars{
  color:#fbbf24!important;font-size:1rem!important;
  letter-spacing:.18em!important;line-height:1!important;
  margin:0!important;order:-2;
}
.rev-card .rv-text{
  font-size:1rem!important;color:var(--tx)!important;
  line-height:1.6!important;
  font-style:italic!important;font-weight:400!important;
  margin:0!important;
  flex-grow:1;
}
.rev-card .rv-name{
  font-size:.78rem!important;font-weight:700!important;
  color:var(--mu)!important;letter-spacing:.16em!important;
  text-transform:uppercase!important;
  margin:0!important;padding-top:.6rem;
  border-top:1px solid rgba(255,255,255,.08);
  margin-top:auto!important;
}

/* ═══ FEATURE ROW (.fr) v2 ═══ */
.fr{
  display:flex!important;align-items:flex-start!important;gap:1.2rem!important;
  padding:1.4rem 0!important;
  border-bottom:1px solid var(--gb)!important;
}
.fr:last-child{border-bottom:none!important}
.fr h3{
  font-size:1.02rem!important;font-weight:700!important;
  letter-spacing:-.005em!important;
  margin:0 0 .35rem!important;line-height:1.3!important;
  color:var(--w)!important;
}
.fr p{font-size:.94rem!important;color:var(--mu)!important;line-height:1.6!important;margin:0!important}
.ib{
  width:50px!important;height:50px!important;
  background:rgba(124,58,237,.14)!important;
  border:1px solid rgba(124,58,237,.32)!important;
  border-radius:10px!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  flex-shrink:0!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.04);
}
.ib svg{width:24px;height:24px;color:var(--acl)}
.ib svg path,.ib svg .st0,.ib svg .st1,.ib svg polygon{fill:currentColor!important;stroke:none!important}

/* ═══ Section head wrapper ═══ */
.sec-head{
  margin-bottom:3.4rem;
  display:flex;flex-direction:column;
  gap:1rem;
  max-width:760px;
}
.sec-head-center{align-items:center;text-align:center;margin-left:auto;margin-right:auto}
.sec-head-center .eb{justify-content:center}
.sec-head .lead{margin:0!important}
@media(max-width:768px){
  .sec-head{margin-bottom:2.4rem;gap:.85rem}
}

/* ═══ Contact CTA section v2 ═══ */
.contact-cta{
  position:relative;
  padding:var(--ds-section-y) 0;
  background:linear-gradient(180deg,#0b0b12 0%,#06060a 100%);
  overflow:hidden;
}
.contact-glow{
  position:absolute;top:0;left:-10%;width:60%;height:100%;
  background:radial-gradient(ellipse at 20% 50%,rgba(124,58,237,.42) 0%,rgba(85,0,255,.16) 35%,transparent 68%);
  pointer-events:none;filter:blur(8px);
}
.contact-grid{
  position:relative;z-index:1;
  display:grid!important;grid-template-columns:1fr 1.05fr;
  gap:5rem!important;align-items:center;
}
.contact-col{
  display:flex;flex-direction:column;gap:1.2rem;
}
.contact-col .h2{margin-bottom:.4rem!important}
.contact-col .lead{margin:0!important;max-width:480px}
@media(max-width:900px){
  .contact-grid{grid-template-columns:1fr!important;gap:2.5rem!important}
}

/* ═══ FULLWIDTH GALLERY MOSAIC ═══ */
.sec-gal-full{
  padding:var(--ds-section-y) 0;
  overflow:hidden;
}
.sec-gal-full>.con{margin-bottom:3rem}
.gal-mosaic{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  grid-auto-rows:280px;
  gap:6px;
  width:100%;
  padding:0 6px;
}
.gal-tile{
  position:relative;
  overflow:hidden;
  display:block;
  cursor:pointer;
  font-size:0;line-height:0;
  background:#0a0a0e;
  grid-column:span 3;
}
.gal-tile img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .8s cubic-bezier(.2,.8,.2,1),filter .4s;
  filter:saturate(.85) brightness(.92);
}
.gal-tile:hover img{transform:scale(1.06);filter:saturate(1.05) brightness(1.02)}
.gal-tile-xl{grid-column:span 6;grid-row:span 2}
.gal-tile-wide{grid-column:span 6}
.gal-tile::before{
  content:'';position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(to top,rgba(7,7,10,.92) 0%,rgba(7,7,10,.4) 30%,transparent 65%);
  opacity:0;transition:opacity .4s;
}
.gal-tile:hover::before{opacity:1}
.gal-cap{
  position:absolute;left:1.6rem;bottom:1.4rem;right:1.6rem;z-index:2;
  display:flex;flex-direction:column;gap:.3rem;
  font-size:initial;line-height:initial;
  opacity:0;transform:translateY(10px);transition:all .4s cubic-bezier(.2,.8,.2,1);
  pointer-events:none;
}
.gal-tile:hover .gal-cap{opacity:1;transform:translateY(0)}
.gal-cap em{
  font-size:.7rem;font-weight:700;letter-spacing:.22em;
  text-transform:uppercase;color:var(--acl);font-style:normal;
  display:flex;align-items:center;gap:.5rem;
}
.gal-cap em::before{content:'';width:14px;height:1px;background:var(--acl)}
.gal-cap strong{
  font-size:1.15rem;font-weight:800;color:var(--w);letter-spacing:-.015em;
  line-height:1.2;
}

@media(max-width:1100px){
  .gal-mosaic{grid-template-columns:repeat(6,1fr);grid-auto-rows:240px}
  .gal-tile-xl{grid-column:span 6;grid-row:span 2}
  .gal-tile{grid-column:span 3}
  .gal-tile-wide{grid-column:span 6}
}
@media(max-width:640px){
  .gal-mosaic{grid-template-columns:repeat(2,1fr)!important;grid-auto-rows:200px;gap:4px;padding:0 4px}
  .gal-tile,.gal-tile-wide{grid-column:span 1!important;grid-row:span 1!important}
  .gal-tile-xl{grid-column:span 2!important;grid-row:span 1!important}
  .gal-cap{opacity:1;transform:none;left:1rem;bottom:1rem;right:1rem}
  .gal-cap em{font-size:.62rem}
  .gal-cap strong{font-size:.95rem}
  .gal-tile::before{opacity:.7}
}

/* ═══ Section alignment variations for editorial rhythm ═══ */
/* 03 / Detailing — right-anchored section head */
.sec-head-right{margin-left:auto!important;text-align:right;align-items:flex-end!important;max-width:680px}
.sec-head-right .eb{flex-direction:row-reverse}
.sec-head-right .eb::before{margin-left:.7rem}

/* 05 / Reference — staggered with offset */
.sec-head-offset{margin-left:8%}


/* ═══════════════════════════════════════════════════════════════════════════
   TYPOGRAPHY SCALE v3 — locked tokens, single source of truth
   Po této sekci NIKDO nedefinuje font-size jinak než přes --t-*.
   ═══════════════════════════════════════════════════════════════════════════ */
:root{
  /* Type scale */
  --t-h1: clamp(2.6rem, 5.4vw, 5rem);
  --t-h2: clamp(2rem, 3.6vw, 3rem);
  --t-h3: clamp(1.2rem, 1.6vw, 1.5rem);
  --t-h4: 1.1rem;
  --t-h5: .95rem;
  --t-lead: 1.1rem;
  --t-body: 1rem;
  --t-small: .875rem;
  --t-eyebrow: .74rem;
  --t-micro: .72rem;

  /* Line heights */
  --lh-tight: 1.04;
  --lh-snug: 1.2;
  --lh-base: 1.55;
  --lh-loose: 1.7;

  /* Letter spacing */
  --ls-display: -.025em;
  --ls-tight: -.015em;
  --ls-base: 0;
  --ls-wide: .22em;
  --ls-medium: .12em;

  /* Weights */
  --fw-light: 300;
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semi: 600;
  --fw-bold: 700;
  --fw-black: 800;
}

/* Body baseline (accessibility minimum 16px) */
html{font-size:16px!important}
body{font-size:var(--t-body)!important;line-height:var(--lh-base)!important;color:var(--tx)!important}
@media(min-width:768px){html{font-size:17px!important}}
@media(min-width:1280px){html{font-size:18px!important}}

/* ─── Display H1 (hero) ─── */
h1, .h1, .hh, .ph-h, .hc-col .hh{
  font-size: var(--t-h1)!important;
  font-weight: var(--fw-black)!important;
  line-height: var(--lh-tight)!important;
  letter-spacing: var(--ls-display)!important;
  text-transform: uppercase;
  color: var(--w)!important;
  margin: 0!important;
}

/* ─── Section H2 ─── */
h2:not([class]), .h2{
  font-size: var(--t-h2)!important;
  font-weight: var(--fw-black)!important;
  line-height: 1.06!important;
  letter-spacing: var(--ls-display)!important;
  color: var(--w)!important;
  margin: 0!important;
}
.h2 .d{
  display: block;
  font-weight: var(--fw-light);
  font-style: italic;
  color: var(--mu);
  letter-spacing: var(--ls-tight);
  margin-top: .08em;
  text-transform: none;
}

/* ─── Card / sub-section H3 ─── */
h3:not([class]), .h3, .st2, .bc-bd h3, .st-card h3, .step h3{
  font-size: var(--t-h3)!important;
  font-weight: var(--fw-bold)!important;
  line-height: var(--lh-snug)!important;
  letter-spacing: var(--ls-tight)!important;
  color: var(--w)!important;
  margin: 0!important;
}
.st2{
  text-transform: uppercase;
  letter-spacing: -.015em!important;
  font-weight: var(--fw-black)!important;
}

/* ─── List item / feature H4 ─── */
h4:not([class]), .h4, .fr h3{
  font-size: var(--t-h4)!important;
  font-weight: var(--fw-bold)!important;
  line-height: var(--lh-snug)!important;
  letter-spacing: var(--ls-base)!important;
  color: var(--w)!important;
  margin: 0!important;
}

/* ─── Lead (section subtitle / hero paragraph) ─── */
.lead, .hp, .hc-col .hp, .hs, .ph-p{
  font-size: var(--t-lead)!important;
  font-weight: var(--fw-regular)!important;
  line-height: var(--lh-loose)!important;
  letter-spacing: var(--ls-base)!important;
  color: var(--mu)!important;
}
.lead strong, .hp strong{color: var(--w)!important; font-weight: var(--fw-semi)!important}

/* ─── Body paragraphs ─── */
.fr p, .bc-bd p, .st-card p, .step p, .br-desc{
  font-size: var(--t-body)!important;
  font-weight: var(--fw-regular)!important;
  line-height: var(--lh-base)!important;
  color: var(--mu)!important;
  letter-spacing: var(--ls-base)!important;
}

/* ─── Eyebrow / category tags ─── */
.eb, .sn2, .ph-tag, .br-cat, .ht{
  font-size: var(--t-eyebrow)!important;
  font-weight: var(--fw-bold)!important;
  letter-spacing: var(--ls-wide)!important;
  text-transform: uppercase!important;
  color: var(--acl)!important;
  line-height: 1!important;
}

/* ─── Micro / footer headers / caps tags ─── */
.ft-h{
  font-size: var(--t-eyebrow)!important;
  font-weight: var(--fw-bold)!important;
  letter-spacing: .18em!important;
  text-transform: uppercase!important;
}
.rv-name{
  font-size: var(--t-micro)!important;
  font-weight: var(--fw-bold)!important;
  letter-spacing: .14em!important;
  text-transform: uppercase!important;
}
.hc-meta span, .gal-cap em, .br-cat{
  font-size: var(--t-micro)!important;
  font-weight: var(--fw-bold)!important;
  letter-spacing: var(--ls-wide)!important;
  text-transform: uppercase!important;
}

/* ─── Buttons ─── */
.btn, .btn-p, .btn-o, .btn-g, .fsb, .nc{
  font-size: var(--t-small)!important;
  font-weight: var(--fw-bold)!important;
  letter-spacing: .04em!important;
  line-height: 1.2!important;
}

/* ─── Navigation ─── */
.nav-links li a, .nav-tel, .na a{
  font-size: var(--t-small)!important;
  font-weight: var(--fw-medium)!important;
  letter-spacing: .01em!important;
}
.nav-mobile ul li a{font-size: var(--t-h3)!important; font-weight: var(--fw-bold)!important}

/* ─── Form controls ─── */
.fi, select.fi{
  font-size: var(--t-body)!important;
  line-height: 1.4!important;
}

/* ─── Footer ─── */
.ft-row{font-size: var(--t-small)!important; line-height: var(--lh-base)!important}
.ft-links a{font-size: var(--t-small)!important}

/* ─── Quotes / reference text ─── */
.rv-text, .rc .qt{
  font-size: var(--t-body)!important;
  font-style: italic!important;
  line-height: var(--lh-base)!important;
  color: var(--tx)!important;
  font-weight: var(--fw-regular)!important;
}

/* ─── Service card description ─── */
.sd{
  font-size: var(--t-body)!important;
  line-height: var(--lh-base)!important;
  font-weight: var(--fw-regular)!important;
  color: var(--mu)!important;
  max-width: none!important;
}

/* ─── Gallery caption strong (title) ─── */
.gal-cap strong{
  font-size: var(--t-h4)!important;
  font-weight: var(--fw-black)!important;
  line-height: var(--lh-snug)!important;
  letter-spacing: var(--ls-tight)!important;
  color: var(--w);
}

/* ─── Service number / counter ─── */
.sn{
  font-size: clamp(2.4rem, 4vw, 3rem)!important;
  font-weight: var(--fw-black)!important;
  line-height: 1!important;
}
.sl{font-size: var(--t-eyebrow)!important; letter-spacing: var(--ls-wide)!important; text-transform: uppercase!important}

/* ─── Step number ─── */
.step-n{
  font-size: clamp(2.4rem, 3.5vw, 2.8rem)!important;
  font-weight: var(--fw-black)!important;
  line-height: 1!important;
  letter-spacing: var(--ls-display)!important;
}

/* ─── FAQ ─── */
.fq-q{font-size: var(--t-h4)!important; font-weight: var(--fw-semi)!important}
.fq-a p{font-size: var(--t-body)!important; line-height: var(--lh-base)!important; color: var(--mu)!important}

/* ─── Stars / accents ─── */
.rv-stars, .rc .stars{
  font-size: var(--t-body)!important;
  letter-spacing: .14em!important;
  line-height: 1!important;
}

/* ═══ Icon box v2 — bigger, FA-optimized, breathing room ═══ */
.ib{
  width:60px!important;height:60px!important;
  background:linear-gradient(135deg,rgba(124,58,237,.18) 0%,rgba(85,0,255,.08) 100%)!important;
  border:1px solid rgba(124,58,237,.34)!important;
  border-radius:14px!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  flex-shrink:0!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.04),0 8px 24px rgba(85,0,255,.08);
  transition:all .25s cubic-bezier(.4,0,.2,1);
}
.fr:hover .ib{
  background:linear-gradient(135deg,rgba(124,58,237,.32) 0%,rgba(85,0,255,.16) 100%)!important;
  border-color:rgba(124,58,237,.55)!important;
}
.ib i{
  font-size:24px!important;
  color:var(--acl)!important;
  line-height:1!important;
}
.ib svg{width:26px;height:26px;color:var(--acl)}
.ib svg path,.ib svg .st0,.ib svg .st1,.ib svg polygon{fill:currentColor!important;stroke:none!important}

/* ═══ HEADER v2 — menu hover, phone pill, CTA shimmer ═══ */

/* Menu items — underline grows on hover, slides out from opposite side */
.nav-links{gap:1.7rem!important}
.nav-links li a{
  position:relative!important;
  padding:.5rem 0!important;
  letter-spacing:.02em!important;
  transition:color .25s;
}
.nav-links li a::after{
  content:'';position:absolute;left:0;right:0;bottom:.18rem;
  height:1px;background:var(--acl);
  transform-origin:right center;
  transform:scaleX(0);
  transition:transform .35s cubic-bezier(.6,.05,.05,1);
}
.nav-links li a:hover::after,
.nav-links li.current-menu-item a::after,
.nav-links li.current_page_item a::after,
.nav-links li.current-menu-ancestor a::after{
  transform:scaleX(1);
  transform-origin:left center;
}
.nav-links li.current-menu-item a,
.nav-links li.current_page_item a{color:var(--w)!important}

/* Phone — pill with animated ring on hover */
.nav-r{gap:1rem!important}
.nav-tel{
  position:relative!important;
  padding:.55rem 1.05rem .55rem 2.4rem!important;
  border:1px solid rgba(255,255,255,.1);
  border-radius:999px;
  background:rgba(255,255,255,.035);
  letter-spacing:.02em;
  transition:border-color .3s,background-color .3s,color .3s;
  overflow:visible;
  isolation:isolate;
}
.nav-tel svg{
  position:absolute!important;
  left:.95rem;top:50%;
  transform:translateY(-50%);
  width:14px!important;height:14px!important;
  fill:var(--acl)!important;
  z-index:2;
}
.nav-tel::before{
  content:'';
  position:absolute;
  /* Origin matches the SVG icon: left .95rem + 7px = center of 14px-wide icon. */
  left:.95rem;top:50%;
  width:14px;height:14px;
  transform-origin:center;
  transform:translateY(-50%) scale(1);
  border-radius:50%;
  background:rgba(124,58,237,.5);
  opacity:0;z-index:1;
  pointer-events:none;
}
.nav-tel:hover{
  border-color:rgba(124,58,237,.55);
  background:rgba(124,58,237,.12);
  color:var(--w)!important;
}
.nav-tel:hover::before{
  animation:phoneRing 1.6s cubic-bezier(.4,0,.2,1) infinite;
}
@keyframes phoneRing{
  0%{transform:translateY(-50%) scale(1);opacity:.7}
  100%{transform:translateY(-50%) scale(2.6);opacity:0}
}

/* CTA "Rezervovat" — gradient shimmer + arrow on hover */
.nav-r .btn-p,
.nav-r .btn{
  position:relative;
  padding:.72rem 1.4rem!important;
  background:linear-gradient(120deg,#5500ff 0%,#7c3aed 45%,#9b6dff 70%,#5500ff 100%)!important;
  background-size:240% 100%!important;
  background-position:0% 50%!important;
  border:1px solid rgba(155,109,255,.35)!important;
  border-radius:999px!important;
  letter-spacing:.04em!important;
  font-weight:var(--fw-bold)!important;
  font-size:var(--t-small)!important;
  color:#fff!important;
  transition:background-position .8s cubic-bezier(.4,0,.2,1),transform .25s,box-shadow .35s,border-color .3s;
  overflow:hidden;
  display:inline-flex!important;align-items:center;gap:.5rem!important;
}
.nav-r .btn-p::after{
  content:'→';
  display:inline-block;
  margin-left:.1rem;
  transition:transform .3s cubic-bezier(.4,0,.2,1);
  font-weight:var(--fw-regular);
}
.nav-r .btn-p:hover{
  background-position:100% 50%!important;
  transform:translateY(-1px);
  box-shadow:0 10px 28px rgba(85,0,255,.42),0 0 0 1px rgba(155,109,255,.5);
  border-color:rgba(155,109,255,.7)!important;
}
.nav-r .btn-p:hover::after{transform:translateX(4px)}

/* Header subtle bottom border accent on scroll */
#nav{
  border-bottom:1px solid rgba(255,255,255,.06)!important;
  background:rgba(7,7,10,.78)!important;
  backdrop-filter:blur(28px) saturate(180%)!important;
}

/* Mobile — collapse phone label, keep icon-only */
@media(max-width:900px){
  .nav-tel{font-size:0!important;padding:.55rem!important;width:40px;height:40px;border-radius:50%;justify-content:center}
  .nav-tel svg{position:relative!important;left:auto;top:auto;transform:none}
}

/* ═══════════════════════════════════════════════════════════════════════════
   v9.6 — hero 100vh, font scale revize, card gap, rev-rotator
   ═══════════════════════════════════════════════════════════════════════════ */

/* Body baseline downsized to 16px universal */
html{font-size:16px!important}
@media(min-width:768px){html{font-size:16px!important}}
@media(min-width:1280px){html{font-size:16px!important}}

/* Eyebrow bumped above 12px minimum */
:root{--t-eyebrow:.78rem;--t-micro:.74rem}

/* Hero 100vh */
.hw{height:100svh!important;min-height:680px!important;max-height:1080px!important}
@media(max-width:900px){.hw{height:100svh!important;min-height:560px!important}}

/* Service cards spacing */
.sec[id="sluzby"]>.con>div[style*="grid-template-columns:repeat(4"]{
  grid-template-columns:repeat(4,1fr)!important;
  gap:1.8rem!important;
}
@media(max-width:1100px){
  .sec[id="sluzby"]>.con>div[style*="grid-template-columns:repeat(4"]{
    grid-template-columns:repeat(2,1fr)!important;gap:1.4rem!important;
  }
}
@media(max-width:600px){
  .sec[id="sluzby"]>.con>div[style*="grid-template-columns:repeat(4"]{
    grid-template-columns:1fr!important;gap:1.2rem!important;
  }
}

/* Reference rotator — fade in/out */
.rev-rotator{
  position:relative;
  max-width:820px;
  margin:0 auto;
  padding:0 1rem;
}
.rev-track{
  position:relative;
  min-height:280px;
}
.rev-track .rev-card{
  position:absolute!important;
  inset:0;
  opacity:0;
  visibility:hidden;
  transform:translateY(8px);
  transition:opacity 1.1s cubic-bezier(.4,0,.2,1),transform 1.1s cubic-bezier(.4,0,.2,1),visibility 1.1s;
  background:transparent!important;
  border:none!important;
  padding:1rem 0!important;
  text-align:center;
  align-items:center!important;
  display:flex!important;
  flex-direction:column!important;
  gap:1.2rem!important;
}
.rev-track .rev-card.is-active{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
.rev-track .rv-stars{
  font-size:1.05rem!important;
  color:#fbbf24!important;
  letter-spacing:.22em!important;
  line-height:1!important;
  margin:0!important;
}
.rev-track .rv-text{
  font-size:1.18rem!important;
  font-style:italic!important;
  font-weight:300!important;
  color:rgba(255,255,255,.92)!important;
  line-height:1.55!important;
  max-width:680px;
  margin:0 auto!important;
}
.rev-track .rv-name{
  font-size:.78rem!important;
  font-weight:var(--fw-bold)!important;
  letter-spacing:.18em!important;
  text-transform:uppercase!important;
  color:var(--mu)!important;
  border:none!important;
  margin-top:.4rem!important;
  padding-top:0!important;
}

/* Dot navigation */
.rev-dots{
  display:flex;
  justify-content:center;
  gap:.7rem;
  margin-top:2.4rem;
}
.rev-dot{
  width:36px;
  height:2px;
  background:rgba(255,255,255,.15);
  border:none;
  cursor:pointer;
  padding:0;
  transition:background .35s,width .35s;
  border-radius:1px;
}
.rev-dot:hover{background:rgba(255,255,255,.4)}
.rev-dot.is-active{
  background:var(--acl);
  width:48px;
}

/* Quotation accent on rotator */
.rev-rotator::before{
  content:'\201C';
  position:absolute;top:-1.5rem;left:50%;
  transform:translateX(-50%);
  font-family:Georgia,serif;
  font-size:6rem;
  color:var(--acl);
  opacity:.18;
  line-height:1;
  pointer-events:none;
}

/* ═══════════════════════════════════════════════════════════════════════════
   v9.7 — hero full 100vh + container 1440 + button family harmonization + marquee
   ═══════════════════════════════════════════════════════════════════════════ */

/* HERO — opravdu na celé 100vh, žádný cap */
.hw{height:100svh!important;min-height:640px!important;max-height:none!important}
.hw>.hc{max-width:var(--ds-container)!important}
@media(max-width:900px){.hw{min-height:88svh!important}}

/* BUTTONS — sjednoceno do menu pill stylu (rounded + gradient shimmer + lift) */
.btn,.btn-p,.btn-o,.fsb{
  display:inline-flex!important;align-items:center!important;gap:.5rem!important;
  font-family:var(--ff)!important;
  font-size:var(--t-small)!important;
  font-weight:var(--fw-bold)!important;
  letter-spacing:.04em!important;
  line-height:1.2!important;
  padding:.9rem 1.6rem!important;
  border-radius:999px!important;
  border:1px solid transparent!important;
  cursor:pointer;
  text-decoration:none!important;
  transition:transform .25s,box-shadow .35s,border-color .3s,background-color .3s,background-position .8s cubic-bezier(.4,0,.2,1)!important;
  position:relative;
}
.btn-p{
  background:linear-gradient(120deg,#5500ff 0%,#7c3aed 45%,#9b6dff 70%,#5500ff 100%)!important;
  background-size:240% 100%!important;
  background-position:0% 50%!important;
  color:#fff!important;
  border-color:rgba(155,109,255,.38)!important;
  box-shadow:0 4px 14px rgba(85,0,255,.18);
}
.btn-p:hover{
  background-position:100% 50%!important;
  transform:translateY(-1px);
  box-shadow:0 12px 32px rgba(85,0,255,.46),0 0 0 1px rgba(155,109,255,.5);
  border-color:rgba(155,109,255,.7)!important;
}
.btn-p:active{transform:translateY(0)}

.btn-o{
  background:rgba(255,255,255,.05)!important;
  border:1px solid rgba(255,255,255,.14)!important;
  color:var(--w)!important;
  backdrop-filter:blur(12px) saturate(180%);
}
.btn-o:hover{
  background:rgba(124,58,237,.16)!important;
  border-color:rgba(124,58,237,.55)!important;
  transform:translateY(-1px);
  box-shadow:0 8px 22px rgba(85,0,255,.2);
}

.fsb{
  background:linear-gradient(120deg,#5500ff 0%,#7c3aed 45%,#9b6dff 70%,#5500ff 100%)!important;
  background-size:240% 100%!important;
  background-position:0% 50%!important;
  color:#fff!important;
  border-color:rgba(155,109,255,.38)!important;
  width:100%;
  justify-content:center!important;
  padding:1.05rem 1.6rem!important;
  font-size:var(--t-body)!important;
}
.fsb:hover{
  background-position:100% 50%!important;
  transform:translateY(-1px);
  box-shadow:0 12px 32px rgba(85,0,255,.46);
}

/* Service card link (.slk) — text-style, gap grow on hover */
.slk{
  border-radius:0!important;
  background:transparent!important;
  border:none!important;
  padding:0!important;
  letter-spacing:.06em!important;
  font-size:.78rem!important;
}

/* ═══ REFERENCE MARQUEE — right→left infinite slide with edge fade ═══ */
.rev-marquee{
  position:relative;
  overflow:hidden;
  padding:1rem 0;
  margin:0 calc(50% - 50vw);
  width:100vw;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,black 6%,black 94%,transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0%,black 6%,black 94%,transparent 100%);
}
.rev-marquee-track{
  display:flex;
  gap:1.6rem;
  width:max-content;
  animation:rev-marquee 70s linear infinite;
}
.rev-marquee:hover .rev-marquee-track{animation-play-state:paused}
@keyframes rev-marquee{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}
.rv-h{
  flex:0 0 auto;
  width:460px;
  background:var(--gl);
  border:1px solid var(--gb);
  border-radius:14px;
  padding:1.7rem 1.9rem;
  display:flex;
  flex-direction:column;
  gap:.85rem;
  transition:background .25s,border-color .25s,transform .25s;
}
.rv-h:hover{
  background:var(--glh);
  border-color:rgba(155,109,255,.3);
  transform:translateY(-2px);
}
.rv-h .rv-stars{
  color:#fbbf24!important;
  font-size:1rem!important;
  letter-spacing:.18em!important;
  line-height:1!important;
  margin:0!important;
}
.rv-h .rv-text{
  font-size:.98rem!important;
  font-style:italic!important;
  font-weight:var(--fw-regular)!important;
  color:var(--tx)!important;
  line-height:1.6!important;
  margin:0!important;
  flex-grow:1;
}
.rv-h .rv-name{
  font-size:.74rem!important;
  font-weight:var(--fw-bold)!important;
  letter-spacing:.16em!important;
  text-transform:uppercase!important;
  color:var(--mu)!important;
  border:none!important;
  border-top:1px solid rgba(255,255,255,.08)!important;
  margin:.4rem 0 0!important;
  padding-top:.85rem!important;
}

@media(max-width:640px){
  .rv-h{width:300px;padding:1.4rem 1.6rem}
  .rev-marquee-track{gap:1rem;animation-duration:50s}
}

/* Hide old rotator if present */
.rev-rotator,.rev-track,.rev-dots{display:none!important}

/* ═══ Marquee fix — override WP article reset ═══ */
article.rv-h{
  display:flex!important;
  width:460px!important;
  flex-direction:column!important;
  flex:0 0 auto!important;
  padding:1.7rem 1.9rem!important;
  margin:0!important;
}
@media(max-width:640px){
  article.rv-h{width:300px!important}
}

/* ═══ SECONDARY ACCENT — CYAN preview ═══ */
:root{
  --ac2:#d4a574;
  --ac2-soft:rgba(212,165,116,.18);
  --ac2-line:rgba(212,165,116,.42);
  --ac2-glow:rgba(212,165,116,.28);
}
/* Alternating section eyebrows */
.eb-alt{color:var(--ac2)!important}
.eb-alt::before{background:var(--ac2)!important}

/* Bold inline brand callouts in lead */
.lead strong,.hp strong,.hc-col .hp strong{
  color:var(--ac2)!important;
  font-weight:var(--fw-semi)!important;
}

/* Form focus state */
.fi:focus,.fi:focus-visible{
  border-color:var(--ac2)!important;
  box-shadow:0 0 0 3px var(--ac2-soft)!important;
  outline:none!important;
}

/* Marquee card hover border */
.rv-h:hover{
  border-color:var(--ac2-line)!important;
  box-shadow:0 8px 28px var(--ac2-glow)!important;
}

/* Hero hd accent variation — keep violet, but lead callouts cyan */
/* (.hh .hd stays violet for brand identity) */

/* Service number eyebrows (.sn2) — keep violet, dělíme jen sekce eyebrows */

/* Decorative accent line at gallery section bottom (subtle) */
.sec-gal-full::after{
  content:'';display:block;width:100vw;
  height:1px;
  margin:0 calc(50% - 50vw);
  background:linear-gradient(90deg,transparent,var(--ac2-line) 50%,transparent);
  opacity:.6;
}

/* Contact glow uses ac2 secondary */
.contact-glow{
  background:radial-gradient(ellipse at 18% 50%,rgba(212,165,116,.18) 0%,rgba(124,58,237,.28) 35%,transparent 70%)!important;
}

/* ═══ Cyan — stronger implementation ═══ */
:root{
  --ac2:#00d4ff;
  --ac2-soft:rgba(0,212,255,.18);
  --ac2-line:rgba(0,212,255,.42);
  --ac2-glow:rgba(0,212,255,.28);
}

/* Service card numbers — cyan accent (was violet) */
.sk .sn2{color:var(--ac2)!important}
.sk .sn2::before{background:var(--ac2)!important}

/* Hero secondary cyan rim glow (right-side edge) */
.hw>.ho{
  background:
    linear-gradient(90deg,
      rgba(4,4,8,1) 0%,
      rgba(4,4,8,.96) 22%,
      rgba(4,4,8,.78) 38%,
      rgba(4,4,8,.30) 60%,
      transparent 78%),
    radial-gradient(ellipse 70% 55% at 14% 50%, rgba(124,58,237,.22), transparent 70%),
    radial-gradient(ellipse 30% 70% at 100% 50%, var(--ac2-glow), transparent 70%)!important;
}

/* ═══ STATS BAND — full-width strip after hero ═══ */
.stats-band{
  position:relative;
  padding:3.5rem 0;
  background:linear-gradient(180deg,#040408 0%,rgba(7,7,10,.6) 100%);
  border-top:1px solid rgba(0,212,255,.14);
  border-bottom:1px solid rgba(255,255,255,.06);
  overflow:hidden;
}
.stats-band::before{
  content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent 0%,var(--ac2-line) 30%,var(--ac2-line) 70%,transparent 100%);
}
.stats-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:2rem;
}
.stat{
  position:relative;
  padding:0 .5rem 0 1.4rem;
  border-left:1px solid rgba(0,212,255,.22);
}
.stat::before{
  content:'';
  position:absolute;left:-1px;top:0;
  width:1px;height:50%;
  background:var(--ac2);
}
.stat-num{
  font-size:clamp(2rem,3vw,2.6rem);
  font-weight:var(--fw-black);
  color:var(--ac2);
  line-height:1;
  letter-spacing:-.02em;
  font-feature-settings:"tnum";
  margin-bottom:.55rem;
}
.stat-lbl{
  font-size:.78rem;
  font-weight:var(--fw-bold);
  letter-spacing:.18em;
  text-transform:uppercase;
  color:rgba(255,255,255,.55);
  line-height:1.35;
}

@media(max-width:900px){
  .stats-band{padding:2.5rem 0}
  .stats-grid{grid-template-columns:repeat(2,1fr);gap:1.6rem 1.4rem}
  .stat{padding-left:1.1rem}
  .stat-num{font-size:1.7rem}
  .stat-lbl{font-size:.7rem;letter-spacing:.14em}
}

/* ═══ Revert secondary color — single violet brand ═══ */
:root{
  --ac2:var(--acl);
  --ac2-soft:rgba(155,109,255,.18);
  --ac2-line:rgba(155,109,255,.42);
  --ac2-glow:rgba(155,109,255,.28);
}
.eb-alt{color:var(--acl)!important}
.eb-alt::before{background:var(--acl)!important}
.lead strong,.hp strong,.hc-col .hp strong{color:var(--w)!important}
.fi:focus,.fi:focus-visible{
  border-color:var(--acl)!important;
  box-shadow:0 0 0 3px rgba(155,109,255,.18)!important;
}
.rv-h:hover{
  border-color:rgba(155,109,255,.3)!important;
  box-shadow:0 8px 28px rgba(85,0,255,.12)!important;
}
.sec-gal-full::after{display:none}
.contact-glow{
  background:radial-gradient(ellipse at 18% 50%,rgba(124,58,237,.42) 0%,rgba(85,0,255,.16) 35%,transparent 68%)!important;
}
.hw>.ho{
  background:
    linear-gradient(90deg,
      rgba(4,4,8,1) 0%,
      rgba(4,4,8,.96) 22%,
      rgba(4,4,8,.78) 38%,
      rgba(4,4,8,.30) 60%,
      transparent 78%),
    radial-gradient(ellipse 70% 55% at 14% 50%, rgba(124,58,237,.22), transparent 70%)!important;
}
.sk .sn2{color:var(--acl)!important}
.sk .sn2::before{background:var(--acl)!important}
.stats-band{display:none!important}

/* ═══ Footer logo size constraint ═══ */
footer .custom-logo-link{display:inline-block;margin-bottom:1.4rem;line-height:0}
footer .custom-logo,footer .custom-logo-link img{
  height:48px!important;width:auto!important;
  max-width:none!important;
  display:block!important;
}

/* Header logo — držet výšku konzistentní 40px */
.nav-logo .custom-logo,.nav-logo img{
  height:40px!important;width:auto!important;
  max-width:none!important;
  display:block!important;
}
.nav-logo,.nav-logo a.custom-logo-link{
  display:inline-flex!important;align-items:center;
  line-height:0;
}

/* ═══ Gallery tile button reset ═══ */
button.gal-tile{
  background:#0a0a0e!important;
  border:none!important;
  padding:0!important;
  margin:0!important;
  font-family:inherit;
  text-align:left;
  cursor:zoom-in;
  width:100%;
}
button.gal-tile:hover{cursor:zoom-in}

/* ═══ Lightbox overlay ═══ */
.lb{
  position:fixed;inset:0;z-index:9999;
  background:rgba(4,4,8,.96);
  backdrop-filter:blur(28px) saturate(140%);
  -webkit-backdrop-filter:blur(28px) saturate(140%);
  display:flex;align-items:center;justify-content:center;
  padding:6vh 7vw;
  opacity:0;
  pointer-events:none;
  transition:opacity .35s cubic-bezier(.4,0,.2,1);
}
.lb.is-open{opacity:1;pointer-events:auto}
.lb-figure{
  margin:0;
  max-width:100%;max-height:88vh;
  display:flex;flex-direction:column;align-items:center;gap:1.4rem;
  position:relative;
}
.lb-img{
  max-width:100%;max-height:80vh;
  object-fit:contain;display:block;
  border-radius:8px;
  box-shadow:0 30px 80px rgba(0,0,0,.7),0 0 0 1px rgba(255,255,255,.06);
  user-select:none;
  -webkit-user-select:none;
}
.lb-cap{
  display:flex;flex-direction:column;align-items:center;gap:.4rem;
  text-align:center;
}
.lb-cap em{
  font-size:.7rem;font-weight:700;
  letter-spacing:.22em;text-transform:uppercase;
  color:var(--acl);font-style:normal;
}
.lb-cap strong{
  font-size:1.2rem;font-weight:800;color:#fff;
  letter-spacing:-.015em;
}
.lb-close,.lb-prev,.lb-next{
  position:absolute;
  background:rgba(255,255,255,.05)!important;
  border:1px solid rgba(255,255,255,.14)!important;
  color:#fff;
  cursor:pointer;
  border-radius:50%!important;
  width:48px;height:48px;
  padding:0!important;
  display:flex;align-items:center;justify-content:center;
  font-size:1.4rem;line-height:1;
  font-weight:300;
  font-family:var(--ff);
  transition:all .22s;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  z-index:2;
}
.lb-close:hover,.lb-prev:hover,.lb-next:hover{
  background:rgba(124,58,237,.42)!important;
  border-color:var(--acl)!important;
  color:#fff;
}
.lb-close{top:2.4vh;right:2.4vw;font-size:1.6rem}
.lb-prev{left:2.4vw;top:50%;transform:translateY(-50%)}
.lb-next{right:2.4vw;top:50%;transform:translateY(-50%)}
.lb-counter{
  position:absolute;bottom:2.4vh;left:50%;transform:translateX(-50%);
  color:rgba(255,255,255,.5);
  font-size:.74rem;
  letter-spacing:.22em;text-transform:uppercase;
  font-weight:700;
  font-feature-settings:"tnum";
}

@media(max-width:768px){
  .lb{padding:5vh 4vw}
  .lb-close{top:1.6vh;right:1.6vw}
  .lb-prev{left:1.6vw;width:42px;height:42px}
  .lb-next{right:1.6vw;width:42px;height:42px}
  .lb-cap strong{font-size:1rem}
}

/* ═══ Section pillar — distinctive bg for "Žádné kompromisy" ═══ */
.sec-pillar{
  position:relative;
  background:
    radial-gradient(ellipse 55% 60% at 18% 50%, rgba(124,58,237,.10) 0%, transparent 65%),
    radial-gradient(ellipse 40% 60% at 100% 100%, rgba(85,0,255,.06) 0%, transparent 60%),
    linear-gradient(180deg, rgba(14,14,20,.7) 0%, rgba(11,11,18,.9) 100%);
  isolation:isolate;
}
.sec-pillar::before{
  content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent 0%,rgba(155,109,255,.32) 25%,rgba(155,109,255,.32) 75%,transparent 100%);
  pointer-events:none;
}
.sec-pillar::after{
  content:'';position:absolute;bottom:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent 0%,rgba(155,109,255,.18) 30%,rgba(155,109,255,.18) 70%,transparent 100%);
  pointer-events:none;
}

/* Subtle grain overlay — adds depth */
.sec-pillar>.con{position:relative;z-index:1}

/* Image inside .sp gets lifted shadow on this bg */
.sec-pillar .sp-img{
  border-radius:var(--r16);
  overflow:hidden;
  box-shadow:0 24px 60px rgba(0,0,0,.45),0 0 0 1px rgba(255,255,255,.04);
}

/* The section sitting after .sec-pillar (Detailing) also drop padding-top:0 if applicable */
.sec-pillar+.sec[style*="padding-top:0"]{padding-top:var(--ds-section-y)!important}

/* ═══ Lightbox icon centering fix ═══ */
.lb-close i,.lb-prev i,.lb-next i{
  font-size:1rem;
  line-height:1;
  display:block;
  color:inherit;
}
.lb-close i{font-size:1.05rem}
.lb-prev i,.lb-next i{font-size:.95rem}

/* ═══ Contact CTA jako sec-pillar (sjednocení), bez bottom accent ═══ */
.contact-cta.sec-pillar{
  background:
    radial-gradient(ellipse 55% 60% at 18% 50%, rgba(124,58,237,.12) 0%, transparent 65%),
    radial-gradient(ellipse 40% 60% at 100% 100%, rgba(85,0,255,.06) 0%, transparent 60%),
    linear-gradient(180deg, rgba(14,14,20,.7) 0%, rgba(11,11,18,.9) 100%)!important;
}
.contact-cta.sec-pillar::after{display:none!important}
.contact-cta .contact-glow{display:none!important}

/* ═══ Heading descender pattern — apply across all heading variants ═══ */
.h2 .d, .ph-h .d, h1 .d, .hh .d, .hc-col .hh .d{
  display:block!important;
  font-weight:var(--fw-light)!important;
  font-style:italic!important;
  color:var(--mu)!important;
  letter-spacing:-.01em!important;
  text-transform:none!important;
  margin-top:.08em!important;
  font-size:.78em!important;
  line-height:1.04!important;
}
.hc-col .hh .d{color:var(--acl)!important;font-size:.66em!important}

/* Page hero (.ph) — slightly bigger, more presence */
.ph{padding:11rem 0 6rem!important;min-height:62vh}
.ph-c{max-width:var(--ds-container)!important;padding:0 var(--ds-gutter-d)!important}
@media(max-width:768px){
  .ph{padding:8rem 0 4rem!important}
  .ph-c{padding:0 var(--ds-gutter-m)!important}
}
.ph-tag{
  font-size:var(--t-eyebrow)!important;
  font-weight:var(--fw-bold)!important;
  letter-spacing:.22em!important;
  text-transform:uppercase!important;
  color:var(--acl)!important;
  display:inline-flex!important;align-items:center!important;gap:.7rem;
  margin-bottom:1.4rem!important;
}
.ph-tag::before{content:'';width:28px;height:1px;background:var(--acl)}
.ph-h{
  font-size:clamp(2.4rem,4.8vw,4.4rem)!important;
  font-weight:var(--fw-black)!important;
  line-height:1.04!important;
  letter-spacing:-.025em!important;
  text-transform:uppercase!important;
  margin:0 0 1.2rem!important;
}
.ph-p{
  font-size:var(--t-lead)!important;
  color:var(--mu)!important;
  max-width:560px;
  line-height:1.65!important;
  font-weight:var(--fw-regular)!important;
  margin:0 0 1rem!important;
}

/* Page hero CTA wrap */
.ph .hct{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.8rem}

/* ═══ Price card pattern ═══ */
.price-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.6rem;
}
@media(max-width:1100px){.price-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.price-grid{grid-template-columns:1fr}}

.price-card{
  position:relative;
  background:var(--gl)!important;
  border:1px solid var(--gb)!important;
  border-radius:14px;
  padding:2rem 1.8rem 1.8rem!important;
  display:flex!important;
  flex-direction:column!important;
  gap:1.2rem!important;
  transition:background .25s,border-color .25s,transform .25s;
}
.price-card:hover{
  background:var(--glh)!important;
  border-color:rgba(155,109,255,.32)!important;
  transform:translateY(-3px);
}
.price-card.is-featured{
  background:linear-gradient(180deg,rgba(124,58,237,.14),rgba(85,0,255,.06))!important;
  border:1px solid rgba(155,109,255,.4)!important;
  box-shadow:0 12px 40px rgba(85,0,255,.18);
}
.price-card.is-featured::before{
  content:'Doporučujeme';
  position:absolute;top:-10px;left:50%;transform:translateX(-50%);
  background:var(--ac);
  color:#fff;
  font-size:.62rem;font-weight:var(--fw-bold);letter-spacing:.18em;text-transform:uppercase;
  padding:.4rem .8rem;border-radius:999px;
  white-space:nowrap;
}

.price-head{
  display:flex;flex-direction:column;gap:.4rem;
  padding-bottom:1.1rem;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.price-tag{
  font-size:var(--t-eyebrow);font-weight:var(--fw-bold);
  letter-spacing:.2em;text-transform:uppercase;color:var(--acl);
  line-height:1;
}
.price-card h3{
  font-size:var(--t-h3)!important;
  font-weight:var(--fw-bold)!important;
  line-height:1.2!important;
  letter-spacing:-.01em!important;
  color:var(--w)!important;
  margin:.2rem 0 0!important;
}
.price-val{
  margin-top:.6rem;
  display:flex;align-items:baseline;gap:.4rem;
  font-size:.85rem;color:var(--mu);
}
.price-val strong{
  font-size:clamp(1.8rem,2.4vw,2.4rem);
  font-weight:var(--fw-black);
  color:var(--w);
  letter-spacing:-.02em;
  line-height:1;
}
.price-val.is-quote strong{font-size:1.1rem;color:var(--acl);text-transform:uppercase;letter-spacing:.12em}

.price-list{
  list-style:none!important;
  padding:0!important;
  margin:0!important;
  display:flex;flex-direction:column;gap:.55rem;
  flex-grow:1;
}
.price-list li{
  font-size:.94rem;
  color:var(--mu);
  line-height:1.45;
  padding-left:1.4rem;
  position:relative;
}
.price-list li::before{
  content:'';
  position:absolute;left:0;top:.45rem;
  width:14px;height:7px;
  border-left:1.5px solid var(--acl);
  border-bottom:1.5px solid var(--acl);
  transform:rotate(-45deg);
}

.price-card .btn,
.price-card .btn-p{
  margin-top:.4rem;
  width:100%;
  justify-content:center!important;
}
.price-addons{
  margin-top:1.6rem;
  padding:1rem 1.2rem;
  background:rgba(255,255,255,.04);
  border:1px dashed rgba(255,255,255,.1);
  border-radius:10px;
  font-size:.86rem;
  color:var(--mu);
  display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;
}
.price-addons strong{color:var(--w);font-weight:var(--fw-bold);margin-right:.4rem}

/* Bottom note */
.price-note{
  margin-top:1.4rem;
  text-align:center;
  font-size:.86rem;color:var(--mu);
}

/* ═══ Brands grid (O nás materiály) ═══ */
.brands-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.2rem;
}
@media(max-width:900px){.brands-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.brands-grid{grid-template-columns:1fr}}
.brand-card{
  background:var(--gl);
  border:1px solid var(--gb);
  border-radius:12px;
  padding:1.6rem 1.4rem;
  display:flex;flex-direction:column;gap:.5rem;
  transition:background .25s,border-color .25s,transform .25s;
}
.brand-card:hover{background:var(--glh);border-color:rgba(155,109,255,.3);transform:translateY(-2px)}
.brand-card strong{
  font-size:clamp(1.2rem,1.6vw,1.5rem);
  font-weight:var(--fw-black);
  color:var(--w);
  letter-spacing:-.015em;
  line-height:1;
}
.brand-card span{
  font-size:.92rem;
  color:var(--mu);
  line-height:1.55;
}

/* ═══ Ceník switcher tabs ═══ */
.cenik-switch{
  display:flex;
  justify-content:center;
  gap:.6rem;
  margin:0 auto 3rem;
  padding:.5rem;
  max-width:fit-content;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  border-radius:999px;
  flex-wrap:wrap;
}
.cenik-tab{
  display:inline-flex!important;
  align-items:center;
  gap:.55rem!important;
  padding:.85rem 1.6rem!important;
  border-radius:999px!important;
  border:none!important;
  background:transparent!important;
  color:var(--mu)!important;
  font-family:var(--ff);
  font-size:.86rem!important;
  font-weight:var(--fw-bold)!important;
  letter-spacing:.04em!important;
  cursor:pointer;
  transition:background .25s,color .25s,transform .15s;
  white-space:nowrap;
}
.cenik-tab i{font-size:.95rem;color:inherit;line-height:1}
.cenik-tab:hover{color:var(--w)!important;background:rgba(255,255,255,.04)!important}
.cenik-tab.is-active{
  background:linear-gradient(120deg,#5500ff 0%,#7c3aed 50%,#9b6dff 100%)!important;
  color:#fff!important;
  box-shadow:0 6px 20px rgba(85,0,255,.32);
}
.cenik-tab.is-active i{color:#fff}

@media(max-width:640px){
  .cenik-switch{flex-direction:column;width:100%;max-width:none;border-radius:14px}
  .cenik-tab{justify-content:center}
}

/* ═══ Ceník panel — fade transition ═══ */
.cenik-panel{
  display:none;
  opacity:0;
}
.cenik-panel.is-active{
  display:block;
  opacity:1;
  animation:cenikFade .4s cubic-bezier(.4,0,.2,1);
}
@keyframes cenikFade{
  from{opacity:0;transform:translateY(10px)}
  to{opacity:1;transform:translateY(0)}
}

/* Cookies button vypada jako odkaz, ne jako tlacitko */
.ft-cookies{
	background:transparent !important;
	border:0 !important;
	padding:0 !important;
	margin:0 !important;
	font:inherit !important;
	font-size:.82rem !important;
	color:#a0a0b4 !important;
	cursor:pointer;
	text-decoration:none !important;
	line-height:inherit !important;
	box-shadow:none !important;
	-webkit-appearance:none;
	appearance:none;
}
.ft-cookies:hover{color:#fff !important}
.ft-cookies:focus-visible{outline:1px dashed #9b6dff;outline-offset:2px}

/* Footer-cr: oba "odkazy" musi vypadat 1:1 */
.ft-cr .ft-legal a,
.ft-cr .ft-legal .ft-cookies{
	background:transparent !important;
	border:0 !important;
	padding:0 !important;
	margin:0 !important;
	font:inherit !important;
	font-family:var(--ff) !important;
	font-size:.82rem !important;
	font-weight:400 !important;
	color:#a0a0b4 !important;
	cursor:pointer;
	text-decoration:none !important;
	line-height:inherit !important;
	box-shadow:none !important;
	-webkit-appearance:none;
	appearance:none;
	letter-spacing:normal;
}
.ft-cr .ft-legal a:hover,
.ft-cr .ft-legal .ft-cookies:hover{color:#fff !important}
.ft-cr .ft-legal a:focus-visible,
.ft-cr .ft-legal .ft-cookies:focus-visible{outline:1px dashed #9b6dff;outline-offset:2px}

/* ───────────────────────────────────────────────────────────────────
   CF7 form — visual parity with placeholder .fi/.fgrid/.fsb forms.
   The bare-DOM form on home/kontakt uses .fi inputs and .fsb submit;
   the CF7 form on subpages must render identically.
─────────────────────────────────────────────────────────────────── */

/* Span wrappers CF7 puts around each field default to inline. Block them. */
.ew-form .wpcf7-form-control-wrap{
	display:block;
	width:100%;
}

/* Two-column grid on rows tagged .ew-row (name + phone). */
.ew-form .ew-row{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:1rem;
}
.ew-form .ew-row > .wpcf7-form-control-wrap{margin:0}

/* Field styling — copy of .fi rule, scoped to .ew-form. */
.ew-form input[type=text],
.ew-form input[type=tel],
.ew-form input[type=email],
.ew-form input[type=url],
.ew-form input[type=number],
.ew-form select,
.ew-form textarea{
	width:100% !important;
	padding:.95rem 1.2rem !important;
	min-height:48px !important;
	background:rgba(255,255,255,.06) !important;
	border:1px solid var(--gb) !important;
	border-radius:var(--r8) !important;
	color:var(--w) !important;
	font-family:var(--ff) !important;
	font-size:.95rem !important;
	font-weight:400 !important;
	line-height:1.4 !important;
	outline:none !important;
	transition:border .2s !important;
	box-shadow:none !important;
	-webkit-appearance:none;
	appearance:none;
}
.ew-form select{
	background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='%239b6dff'><path d='M0 0l6 8 6-8z'/></svg>") !important;
	background-repeat:no-repeat !important;
	background-position:right 1.1rem center !important;
	background-size:10px 7px !important;
	padding-right:2.6rem !important;
}
/* Dropdown panel options (cross-browser styling is limited; Chrome/Edge/FF apply this, Safari ignores most). */
.ew-form select option{background:#0e0e14 !important;color:#fff !important;padding:.6rem 1rem}
.ew-form select option:checked,
.ew-form select option:hover,
.ew-form select option:focus{
	background:linear-gradient(0deg,rgba(85,0,255,.55),rgba(85,0,255,.55)) #0e0e14 !important;
	color:#fff !important;
}
.ew-form select option:disabled{color:rgba(255,255,255,.35) !important}
.ew-form textarea{
	resize:vertical !important;
	min-height:110px !important;
}
.ew-form input:focus,
.ew-form select:focus,
.ew-form textarea:focus{border-color:var(--acl) !important}
.ew-form input::placeholder,
.ew-form textarea::placeholder{color:var(--mu) !important;opacity:1}

/* Acceptance row — checkbox + label on one line. */
.ew-form .wpcf7-acceptance{
	display:block;
	margin-top:.4rem;
	font-size:.85rem;
	color:var(--mu);
	line-height:1.55;
}
.ew-form .wpcf7-acceptance .wpcf7-list-item{
	display:inline-flex;
	gap:.6rem;
	align-items:flex-start;
	margin:0;
}
.ew-form .wpcf7-acceptance label{
	display:inline-flex;
	gap:.6rem;
	align-items:flex-start;
	font-weight:400;
	color:var(--mu);
	margin:0;
	cursor:pointer;
}
.ew-form .wpcf7-form-control-wrap[data-name=gdpr]{
	display:block;
	font-size:.85rem;
	color:var(--mu);
	line-height:1.55;
	margin-top:.2rem;
}
.ew-form input[type=checkbox]{
	width:18px !important;
	height:18px !important;
	min-height:0 !important;
	flex-shrink:0;
	margin:.2rem .55rem 0 0 !important;
	accent-color:var(--ac);
	-webkit-appearance:auto;
	appearance:auto;
}
.ew-form a{
	color:var(--acl);
	text-decoration:underline;
}
.ew-form a:hover{color:#fff}

/* Submit — copy of .fsb. */
.ew-form input[type=submit],
.ew-form .wpcf7-submit,
.ew-form button[type=submit]{
	width:100% !important;
	padding:1.1rem !important;
	min-height:auto !important;
	background:var(--ac) !important;
	color:#fff !important;
	border:0 !important;
	border-radius:var(--r8) !important;
	font-family:var(--ff) !important;
	font-size:1rem !important;
	font-weight:700 !important;
	cursor:pointer;
	transition:background .22s !important;
	margin-top:.4rem !important;
	letter-spacing:normal;
	-webkit-appearance:none;
	appearance:none;
}
.ew-form input[type=submit]:hover,
.ew-form .wpcf7-submit:hover,
.ew-form button[type=submit]:hover{background:var(--acm) !important}

/* CF7 layout glue — vertical stack with same gap as inline form. */
.ew-form{
	display:flex;
	flex-direction:column;
	gap:.8rem;
	margin:0;
}

/* Per-field validation tip — keep CF7 default placement (under each field),
   only retint to match the dark theme. */
.ew-form .wpcf7-not-valid-tip{
	color:#ff8a8a;
	font-size:.82rem;
	margin-top:.3rem;
}
.ew-form .wpcf7-spinner{margin:0 .6rem}

/* Global response message under the submit button. CF7 already controls
   visibility via the `output` attribute and form state classes; we only
   recolor it and tighten its top margin (CF7 default is 2em). */
.ew-form .wpcf7-response-output{
	margin:.6rem 0 0 !important;
	border-radius:var(--r8);
	border:1px solid var(--gb);
	padding:.85rem 1rem;
	background:rgba(85,0,255,.12);
	color:#fff;
	font-size:.9rem;
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output{
	background:rgba(255,80,80,.12);
	border-color:rgba(255,80,80,.3);
}
.wpcf7 form.sent .wpcf7-response-output{
	background:rgba(0,200,120,.12);
	border-color:rgba(0,200,120,.3);
}

/* Sticky footer — body grows to fill viewport, main takes remaining space.
   The base reset forces `main { display:block !important }`, so we have to
   re-force flex on .ew-main with the same weight. */
html,body{min-height:100vh}
body{display:flex!important;flex-direction:column!important}
.ew-main{
	flex:1 0 auto!important;
	display:flex!important;
	flex-direction:column!important;
	min-height:calc(100vh - 460px);
}
.sec-404{
	flex:1 0 auto!important;
	display:flex!important;
	flex-direction:column!important;
	padding:2rem 1rem!important;
	min-height:calc(100vh - 460px);
}
.sec-404 .con{
	width:100%;
	text-align:center;
	margin-top:auto!important;
	margin-bottom:auto!important;
}

/* ───────────────────────────────────────────────────────────────────
   Subtle reveal-on-scroll. Elements get .anim from main.js; the
   .anim-stagger variant uses --i (set per child) to delay 0..6.
   Respects prefers-reduced-motion: reduce.
─────────────────────────────────────────────────────────────────── */
.anim{
	opacity:0;
	transform:translateY(14px);
	transition:opacity .55s cubic-bezier(.4,0,.2,1),transform .55s cubic-bezier(.4,0,.2,1);
	will-change:opacity,transform;
}
.anim.is-visible{
	opacity:1;
	transform:none;
}
.anim-stagger{
	transition-delay:calc(var(--i,0) * 70ms);
}

/* Elements that should never animate (e.g. fixed nav, sticky chrome). */
#nav,.nav-mobile,#lightbox,.cmplz-cookiebanner,footer.ft{transition:none}

@media (prefers-reduced-motion: reduce){
	.anim,.anim-stagger{
		opacity:1!important;
		transform:none!important;
		transition:none!important;
	}
}

/* Google Maps embed dark-mode hack — Maps embed has no native dark style.
   Filter inverts and hue-shifts the iframe so dark UI fits the site;
   marker pins survive (red → cyan) and remain visible. */
iframe[src*="google.com/maps"],
iframe[src*="google.cz/maps"],
iframe[src*="maps.google"]{
	filter:invert(.92) hue-rotate(180deg) saturate(.7) brightness(.95);
}

/* ───────────────────────────────────────────────────────────────────
   Legal / privacy page
─────────────────────────────────────────────────────────────────── */
.legal-hero{position:relative;padding:8rem 0 2rem;overflow:hidden}
.legal-hero-bg{position:absolute;inset:0;background:radial-gradient(ellipse 60% 80% at 18% 30%,rgba(85,0,255,.18),transparent 65%),linear-gradient(180deg,rgba(7,7,10,.95),rgba(11,11,18,.85));z-index:0}
.legal-hero-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.02) 1px,transparent 1px);background-size:64px 64px;z-index:0;pointer-events:none}
.ew-container{max-width:880px;margin:0 auto;padding:0 48px;width:100%}
.legal-hero-inner,.legal-body{position:relative;z-index:1}
.legal-crumb,.legal-hero .ew-container > div:first-child{display:flex;align-items:center;gap:.5rem;margin-bottom:1.2rem;font-size:.82rem}
.legal-crumb a,.legal-hero a[href*="/"]{color:var(--mu);text-decoration:none}
.legal-crumb a:hover{color:var(--w)}
.legal-h1{font-size:clamp(2rem,5vw,3.8rem);font-weight:800;letter-spacing:-.04em;text-transform:uppercase;line-height:1.05;margin:0}
.legal-h1 .d{color:var(--acl);font-weight:300;display:block;text-transform:none;letter-spacing:-.03em}
.eyebrow{font-size:.7rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--acl);margin-bottom:.5rem;display:flex;align-items:center;gap:.6rem}
.eyebrow::before{content:'';width:22px;height:2px;background:var(--acl);border-radius:2px}
.legal-badge{display:inline-flex;align-items:center;gap:.5rem;background:rgba(85,0,255,.18);border:1px solid rgba(85,0,255,.34);color:var(--acl);padding:.55rem 1rem;border-radius:999px;font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}

.legal-content,.section{padding-top:0}
.legal-body{max-width:880px;margin:0 auto}
.legal-section{margin-top:3rem}
.legal-section-num{font-size:2.4rem;font-weight:800;color:var(--acl);opacity:.35;line-height:1;margin-bottom:.5rem;letter-spacing:-.04em}
.legal-h2{font-size:clamp(1.4rem,2.4vw,1.8rem);font-weight:800;letter-spacing:-.02em;margin:0 0 1rem;line-height:1.2}
.legal-h3{font-size:1.05rem;font-weight:700;margin:1.6rem 0 .6rem;color:var(--w);letter-spacing:-.01em}
.legal-p{font-size:.95rem;color:var(--tx);line-height:1.78;margin:0 0 1rem}

.legal-toc{background:rgba(85,0,255,.06);border:1px solid rgba(85,0,255,.18);border-radius:var(--r12);padding:1.3rem 1.6rem;margin:2rem 0}
.legal-toc-title{font-size:.7rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--acl);margin-bottom:.7rem}
.legal-toc ol{list-style:decimal inside;color:var(--mu);font-size:.92rem;line-height:1.9;padding-left:.5rem;margin:0}
.legal-toc ol a{color:var(--tx);text-decoration:none}
.legal-toc ol a:hover{color:var(--acl)}

.info-card{background:rgba(255,255,255,.04);border:1px solid var(--gb);border-radius:var(--r12);padding:1.1rem 1.3rem}
.info-card strong{display:block;color:var(--w);font-size:.92rem;margin-bottom:.3rem}
.info-card small{display:block;color:var(--mu);font-size:.82rem;line-height:1.65}
.legal-highlight{background:rgba(85,0,255,.08);border-left:3px solid var(--acl);border-radius:var(--r8);padding:1rem 1.2rem;font-size:.92rem;color:var(--tx);line-height:1.7;margin:1.5rem 0}
.legal-highlight strong{color:var(--w)}

.cookie-table{width:100%;border-collapse:separate;border-spacing:0;margin:1.2rem 0;border:1px solid var(--gb);border-radius:var(--r12);overflow:hidden}
.cookie-table th,.cookie-table td{padding:.85rem 1rem;text-align:left;font-size:.88rem;line-height:1.6;border-bottom:1px solid var(--gb);vertical-align:top}
.cookie-table thead th{background:rgba(85,0,255,.1);color:var(--acl);font-size:.72rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase}
.cookie-table tbody tr:last-child td{border-bottom:none}
.ck-badge{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .65rem;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.ck-required{background:rgba(255,255,255,.08);color:var(--w);border:1px solid var(--gb)}
.ck-analytic{background:rgba(245,173,20,.12);color:#faad14;border:1px solid rgba(245,173,20,.3)}
.ck-advert{background:rgba(255,107,107,.12);color:#ff6b6b;border:1px solid rgba(255,107,107,.3)}

.rights-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin:1.5rem 0}
.right-item{display:flex;gap:1rem;align-items:flex-start;padding:1.2rem;background:rgba(255,255,255,.03);border:1px solid var(--gb);border-radius:var(--r12)}
.right-icon{width:36px;height:36px;background:rgba(85,0,255,.12);border:1px solid rgba(85,0,255,.24);border-radius:var(--r8);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--acl)}
.right-item h4{font-size:.95rem;font-weight:700;color:var(--w);margin-bottom:.3rem}
.right-item p{font-size:.85rem;color:var(--mu);line-height:1.65;margin:0}

@media(max-width:1100px){
	.rights-grid{grid-template-columns:1fr}
}
@media(max-width:768px){
	.cookie-table th,.cookie-table td{font-size:.8rem;padding:.65rem .8rem}
	.legal-hero{padding:6rem 0 2rem}
	.ew-container{padding:0 24px}
}

/* Complianz "manage consent" — footer + privacy buttons. */
.cmplz-manage-consent,.cookies-toggle{cursor:pointer}

/* ───────────────────────────────────────────────────────────────────
   Legal prose — plain readable typography, no cards/grids/badges.
─────────────────────────────────────────────────────────────────── */
.legal-prose{padding:5rem 0 6rem}
.legal-prose article{max-width:740px;margin:0 auto;color:rgba(255,255,255,.78)}
.legal-prose .lead{
	font-size:1.05rem;line-height:1.75;font-weight:300;
	color:rgba(255,255,255,.85);margin:0 0 2.4rem;
	padding-bottom:2rem;border-bottom:1px solid rgba(255,255,255,.08);
}
.legal-prose h2{
	font-size:1.35rem;font-weight:700;color:#fff;
	letter-spacing:-.01em;line-height:1.25;
	margin:2.6rem 0 .9rem;scroll-margin-top:90px;
}
.legal-prose h2:first-of-type{margin-top:0}
.legal-prose h3{
	font-size:1rem;font-weight:600;color:#fff;
	margin:1.6rem 0 .55rem;
}
.legal-prose p{
	font-size:.95rem;line-height:1.78;margin:0 0 1.05rem;
}
.legal-prose ul,.legal-prose ol{
	margin:0 0 1.4rem;padding:0 0 0 1.3rem;
	font-size:.95rem;line-height:1.78;
	color:rgba(255,255,255,.78);
}
.legal-prose ul{list-style:disc}
.legal-prose ol{list-style:decimal}
.legal-prose li{margin:.35rem 0;padding-left:.2rem}
.legal-prose li::marker{color:rgba(155,109,255,.7)}
.legal-prose strong{color:#fff;font-weight:600}
.legal-prose a{color:var(--acl);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}
.legal-prose a:hover{color:#fff}
.legal-prose .legal-toc-list{
	background:rgba(85,0,255,.06);border:1px solid rgba(85,0,255,.18);
	border-radius:var(--r12);padding:1.1rem 1.3rem 1.1rem 2.5rem;
	margin:1.6rem 0 2.4rem;font-size:.92rem;
}
.legal-prose .legal-toc-list a{color:rgba(255,255,255,.85);text-decoration:none}
.legal-prose .legal-toc-list a:hover{color:var(--acl);text-decoration:underline}
.legal-prose .legal-meta{
	margin-top:3rem;padding-top:1.6rem;
	border-top:1px solid rgba(255,255,255,.08);
	font-size:.82rem;color:rgba(255,255,255,.5);line-height:1.7;
}

/* Trim hero of the legal page — no decorative grid, just heading + date. */
.legal-hero{padding:7rem 0 1.5rem}
.legal-eff{font-size:.85rem;color:rgba(255,255,255,.55);margin:.8rem 0 0}

@media(max-width:768px){
	.legal-prose{padding:3rem 0 4rem}
	.legal-prose h2{font-size:1.2rem}
}

/* ───────────────────────────────────────────────────────────────────
   Hero — water on glass with backdrop-filter "lensing".
   Each .bead is a real refractive lens: backdrop-filter blurs+brightens
   what's behind it, white highlight on top, dark rim at bottom — gives
   the genuine "looking through a drop" feel.
   .streak adds gravity-driven downward motion with a tail of micro-beads.
─────────────────────────────────────────────────────────────────── */
.hw .glass{
	position:absolute;inset:0;
	pointer-events:none;
	overflow:hidden;
	z-index:1;
}

/* Static beads — visible but subtle, sit on the glass. */
.hw .bead{
	position:absolute;
	left:var(--x,50%);
	top:var(--y,50%);
	width:calc(var(--s,8px) * 1.4);
	height:calc(var(--s,8px) * 1.4);
	border-radius:50%;
	background:rgba(255,255,255,.06);
	backdrop-filter:blur(2px) brightness(1.2) contrast(1.08);
	-webkit-backdrop-filter:blur(2px) brightness(1.2) contrast(1.08);
	box-shadow:
		inset 0 1px .8px rgba(255,255,255,.45),
		inset 0 -1.5px 1px rgba(0,0,0,.28),
		0 1px 2px rgba(0,0,0,.18);
	transform:translate(-50%,-50%);
	opacity:.7;
}

/* CSS streaks — drop drifts mostly straight down (subtle horizontal drift only),
   so the rigid pseudo-element trail still reads as a believable wet streak. */
.hw .streak{
	position:absolute;
	left:var(--x,50%);
	top:var(--top,12%);
	width:calc(12px * var(--sx,1));
	height:calc(14px * var(--sx,1));
	border-radius:50% 50% 50% 50% / 60% 60% 45% 45%;
	background:rgba(255,255,255,.08);
	backdrop-filter:blur(2.4px) brightness(1.25) contrast(1.1);
	-webkit-backdrop-filter:blur(2.4px) brightness(1.25) contrast(1.1);
	box-shadow:
		inset 0 1.2px 1px rgba(255,255,255,.55),
		inset 0 -1.8px 1.5px rgba(0,0,0,.32),
		0 2px 3px rgba(0,0,0,.22);
	transform:translate(-50%,0);
	opacity:0;
	animation:streak-down var(--d,12s) cubic-bezier(.5,.04,.4,1) infinite;
	animation-delay:var(--del,0s);
	will-change:transform,opacity;
}
.hw .streak::after{
	content:'';
	position:absolute;
	left:50%;
	bottom:calc(100% - 4px);
	width:calc(12px * var(--sx,1));
	height:0;
	transform:translateX(-50%);
	background:linear-gradient(
		180deg,
		transparent 0%,
		rgba(255,255,255,.025) 30%,
		rgba(255,255,255,.06) 100%
	);
	-webkit-mask-image:radial-gradient(60% 100% at 50% 100%, #000 30%, transparent 100%);
	        mask-image:radial-gradient(60% 100% at 50% 100%, #000 30%, transparent 100%);
	filter:blur(1.2px);
	opacity:0;
	animation:streak-trail var(--d,12s) cubic-bezier(.5,.04,.4,1) infinite;
	animation-delay:var(--del,0s);
}

/* Subtle diagonal drift (~5-8px sideways across the whole fall) keeps
   the head and trail visually aligned while still feeling alive. */
@keyframes streak-down{
	0%   { transform:translate(-50%, 0)                                scale(.9,.9);    opacity:0   }
	6%   { opacity:.95 }
	22%  { transform:translate(-50%, 0)                                scale(1,1);      opacity:.95 }
	100% { transform:translate(calc(-50% + var(--drift,5px)), 108vh)   scale(1.12,.85); opacity:0   }
}
@keyframes streak-trail{
	0%, 22% { height:0;     opacity:0  }
	30%     { height:1.5vh; opacity:.7 }
	60%     { height:42vh;  opacity:.5 }
	95%     { height:88vh;  opacity:.25}
	100%    { height:104vh; opacity:0  }
}

/* Wiggle: each streak gets per-instance --w1..--w4 (px sideways) so the path
   isn't a straight line. Real drops on glass jerk left/right as surface
   tension catches and releases. */

@media (prefers-reduced-motion: reduce){
	.hw .glass{display:none}
}

/* Safari / older browsers without backdrop-filter — fall back to a
   subtle radial-gradient bead so it still looks like dew, not a sticker. */
@supports not (backdrop-filter: blur(1px)){
	.hw .bead{
		background:radial-gradient(circle at 35% 30%, rgba(255,255,255,.55) 0%, rgba(255,255,255,.18) 40%, transparent 75%);
		box-shadow:inset 0 -1px 1px rgba(0,0,0,.22), inset 0 .5px .5px rgba(255,255,255,.4);
	}
	.hw .streak{
		background:radial-gradient(circle at 35% 30%, rgba(255,255,255,.65) 0%, rgba(255,255,255,.18) 45%, transparent 75%);
		box-shadow:inset 0 -1px 1px rgba(0,0,0,.25), inset 0 .5px .5px rgba(255,255,255,.45);
	}
}

/* ───────────────────────────────────────────────────────────────────
   Mobile header & menu fixes
─────────────────────────────────────────────────────────────────── */
@media (max-width:768px){
	/* Hide phone pill + Rezervovat CTA in header — they live in mobile menu. */
	.nav-r .nav-tel,
	.nav-r .btn,
	.nav-r .btn-p{display:none!important}
	/* Burger only — give it room. */
	.nav-r{gap:0!important}
	/* Tighten nav padding so logo + burger have breathing room. */
	.nav-in{padding:0 16px!important;height:64px}
	#nav .nav-logo img{height:34px!important}
}

/* Close button inside mobile menu. */
.nav-mobile-close{
	position:absolute;top:18px;right:18px;
	width:44px;height:44px;
	background:rgba(255,255,255,.05);
	border:1px solid rgba(255,255,255,.12);
	border-radius:50%;
	color:#fff;
	display:flex;align-items:center;justify-content:center;
	cursor:pointer;
	transition:background .2s,border-color .2s;
}
.nav-mobile-close:hover{background:rgba(124,58,237,.2);border-color:rgba(124,58,237,.5)}
.nav-mobile-close svg{display:block}
.nav-mobile-tel{
	font-size:1.05rem;font-weight:700;color:#fff;
	letter-spacing:.02em;
	padding:.6rem 0;
	border-top:1px solid rgba(255,255,255,.1);
	border-bottom:1px solid rgba(255,255,255,.1);
	margin-top:.5rem;
}
.nav-mobile .btn-p{
	width:auto;padding:1rem 2rem;font-size:1rem;
	border-radius:999px;
}

/* Lock scroll while menu open (set on body via JS). */
body.nav-open{overflow:hidden}

/* ───────────────────────────────────────────────────────────────────
   Service cards (.sk-grid + inline 4-col grid) responsive
─────────────────────────────────────────────────────────────────── */
@media (max-width:1100px){
	.sec .con > div[style*="repeat(4,1fr)"]{
		grid-template-columns:repeat(2,1fr)!important;
	}
}
@media (max-width:600px){
	.sec .con > div[style*="repeat(4,1fr)"],
	.sec .con > div[style*="repeat(3,1fr)"]{
		grid-template-columns:1fr!important;
		gap:1.2rem!important;
	}
	.sk{aspect-ratio:16/10}
}
