/* sub/2027 - vlastný CSS, hodnoty prevzaté z computed štýlov originálu https://2026.aio.sk/
   (Divi 5). Farby: pozadie #030407, primárna #ea0d45, tlmený text #94a3b8,
   karty rgba(99,99,99,.24) + border rgba(255,255,255,.05) + radius 30px, font Quicksand. */

/* Quicksand (SIL Open Font License 1.1) - z nasho servera namiesto Google Fonts (audit 3.10.2026):
   IP navstevnika sa tak neposiela Googlu pred suhlasom a odpadne jedno spojenie.
   Variabilny font = jeden subor pre hrubky 300-700; latin-ext pokryva slovencinu a cestinu. */
@font-face {
  font-family: "Quicksand";
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url("/assets/fonts/quicksand-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Quicksand";
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url("/assets/fonts/quicksand-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --color-bg: #030407;
  --color-primary: #ea0d45;
  --color-primary-dark: #b50e33;   /* hover: tmavsi nez primarna */
  /* #ea0d45 od 2.10.2026 (audit kontrastu, majitel: "na vsetkej cervenej"): jediny odtien povodnej
     cervenej, ktory ma 4,5:1 oboma smermi - biely text na nej (4,52) aj ona ako text na ciernom (4,53).
     Povodna #f21b51 mala biely text len 4,16; tmavsia #d9123f zas text na ciernom len 4,01. */
  --color-muted: #94a3b8;
  --color-text: #ffffff;
  --color-card: rgba(99, 99, 99, .24);
  --color-card-border: rgba(255, 255, 255, .05);
  --color-footer: #0b0e15; /* tmava modrosiva - musi sa lisit od --color-bg (#030407), inak splynu vlny (wave) na okrajoch */
  --radius-card: 30px;
  --container-w: 1390px;
  --font: "Quicksand", -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  /* Glass (sklo) - JEDINY zdroj vzhladu pre hlavicku, mega-menu, pas "Doverujú nám"
     a vsetky karty. Zmena tu = zmena vsade. --glass-tint sa da na prvku prebit
     (napr. tmavsi variant pre dropdown nad hero textom). */
  --glass-sheen: linear-gradient(to bottom, rgba(255, 255, 255, .07), rgba(255, 255, 255, .075) 10%, rgba(255, 255, 255, 0));
  --glass-tint: rgba(10, 12, 20, .6);
  --glass-tint-strong: rgba(10, 12, 20, .61);
  --glass-border: rgba(255, 255, 255, 0);
  --glass-blur: blur(6px) saturate(2.5);
  --glass-shadow: inset 0 1px 0 rgba(255, 255, 255, .05), inset 0 -1px 0 rgba(255, 255, 255, .04), 0 0px 26px rgba(0, 0, 0, .37);
  --glass-haze: 0;                        /* hmla pod hlavickou (alfa) - vyladene na 0 */
  --section-tint: rgba(3, 4, 7, .75);     /* krytie sekcii nad animovanym pozadim */
  /* Ladenie naživo: ?glass=1 na ľubovoľnej stránke otvorí konfigurátor (assets/js/glass-config.js),
     ktorý tieto tokeny mení na <html> a vypíše hotový blok na vloženie sem. */

  /* Tvar rohov pre .shape-hex (zrezaný/šesťuholníkový roh). Ladí sa konfigurátorom
     ?rohy=1 (assets/js/corner-config.js), ktorý tieto tokeny prepisuje na <html>.

     Každý roh má vlastnú šírku (X) aj výšku (Y) zrezania - keď sa nerovnajú, roh je
     eliptický a tvar sa dá ťahať do strán alebo splošťovať. --hex-round rovnako
     na roh: 0 = ostrý zrezaný roh (bevel), 1 = kruhový oblúk, 2 = squircle. */
  --hex-x-tl: 56px; --hex-y-tl: 56px; --hex-round-tl: 0;   /* ľavý horný */
  --hex-x-tr: 56px; --hex-y-tr: 56px; --hex-round-tr: 0;   /* pravý horný */
  --hex-x-br: 56px; --hex-y-br: 56px; --hex-round-br: 0;   /* pravý dolný */
  --hex-x-bl: 56px; --hex-y-bl: 56px; --hex-round-bl: 0;   /* ľavý dolný */
  /* Zaoblenie samotných VRCHOLOV zrezania (hrany zostanú rovné). Kreslí
     assets/js/shape-hex.js do --hex-path; 0 = ostré vrcholy. */
  --hex-vertex-round: 14px;
  --hex-path: none;
  /* Pod 600px sa všetky rohy zmenšia týmto pomerom - pri úzkej karte by plné
     zrezanie odkrojilo text. --hex-scale je to, čo sa reálne použije. */
  --hex-mobile-scale: 0.6;
  --hex-scale: 1;
}
@media (max-width: 600px) { :root { --hex-scale: var(--hex-mobile-scale); } }

/* ---------- Svetlý režim: tokeny ----------
   Prepínač je v hlavičke (partials/header.php, obsluha v partials/footer.php),
   voľba sa ukladá ako data-theme na <html> a pamätá sa medzi návštevami.

   Bez voľby platí nastavenie operačného systému, preto sú pravidlá dvakrát:
   raz pre systémovú preferenciu, raz pre ručnú voľbu. Systémové je vylúčené
   cez :not([data-theme]) - inak by na počítači so svetlým systémom prebíjalo
   ručne zvolený tmavý režim.

   Tu sa menia LEN tokeny. Karty, hlavička aj menu berú vzhľad z glass tokenov,
   takže väčšinu webu pokryje už toto; prepisy jednotlivých komponentov sú
   na konci súboru (poradie tam má význam). */
@media (prefers-color-scheme: light) {
  :root:not([data-theme]) {
    --color-bg: #f6f7fb;
    --color-text: #0f172a;
    --color-muted: #52607a;
    --color-card: rgba(15, 23, 42, .04);
    --color-card-border: rgba(15, 23, 42, .1);
    --color-footer: #efe9f7;
    --glass-sheen: linear-gradient(to bottom, rgba(255, 255, 255, .8), rgba(255, 255, 255, .5) 10%, rgba(255, 255, 255, 0));
    --glass-tint: rgba(255, 255, 255, .75);
    --glass-tint-strong: rgba(255, 255, 255, .92);
    --glass-border: rgba(15, 23, 42, .1);
    --glass-shadow: inset 0 1px 0 rgba(255, 255, 255, .9), inset 0 -1px 0 rgba(15, 23, 42, .04), 0 2px 18px rgba(15, 23, 42, .1);
    --section-tint: rgba(246, 247, 251, .82);
    --color-primary: #d9123f;   /* na svetlom pozadi #ea0d45 ako text nestaci (4,2:1), #d9123f ma 4,8:1 */
  }
}
:root[data-theme="light"] {
  --color-bg: #f6f7fb;
  --color-text: #0f172a;
  --color-muted: #52607a;
  --color-card: rgba(15, 23, 42, .04);
  --color-card-border: rgba(15, 23, 42, .1);
  --color-footer: #efe9f7;
  --glass-sheen: linear-gradient(to bottom, rgba(255, 255, 255, .8), rgba(255, 255, 255, .5) 10%, rgba(255, 255, 255, 0));
  --glass-tint: rgba(255, 255, 255, .75);
  --glass-tint-strong: rgba(255, 255, 255, .92);
  --glass-border: rgba(15, 23, 42, .1);
  --glass-shadow: inset 0 1px 0 rgba(255, 255, 255, .9), inset 0 -1px 0 rgba(15, 23, 42, .04), 0 2px 18px rgba(15, 23, 42, .1);
  --section-tint: rgba(246, 247, 251, .82);
  --color-primary: #d9123f;   /* na svetlom pozadi #ea0d45 ako text nestaci (4,2:1), #d9123f ma 4,8:1 */
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--color-bg); }
body {
  position: relative;
  margin: 0;
  font-family: var(--font);
  font-size: 16px;
  line-height: 1.5;
  font-weight: 500;
  color: var(--color-text);
  background: var(--color-bg);
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}
.container { max-width: calc(var(--container-w) + 48px); margin: 0 auto; padding: 0 24px; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
h1, h2, h3, h4 { margin: 0; font-weight: 700; color: var(--color-text); }
h1 { font-size: 46.4px; line-height: 1.1; }
h2 { font-size: 36.8px; line-height: 1.28; }
h3 { font-size: 17.6px; line-height: 1.3; }
p { margin: 0; }
svg { display: inline-block; }

/* ---------- Animované pozadie (UnicornStudio, ako originál) ---------- */
#aio-site-bg {
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: 130vh;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
  filter: hue-rotate(15deg) saturate(1.5);
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 60%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 0%, #000 60%, transparent 100%);
}
#aio-site-bg::before {
  /* statický fallback, kým sa WebGL scéna načíta (alebo ak nie je dostupná) */
  content: "";
  position: absolute; inset: 0;
  background:
    radial-gradient(60% 45% at 50% 30%, rgba(120, 40, 160, .55), transparent 70%),
    radial-gradient(40% 40% at 18% 8%, rgba(90, 30, 140, .45), transparent 70%),
    radial-gradient(45% 40% at 85% 15%, rgba(140, 20, 90, .35), transparent 70%);
}
#aio-site-bg .aio-us-scene {
  position: absolute;
  top: 0; left: 50%;
  width: 100%;
  height: 120%;
  transform: translateX(-50%);
  transform-origin: center top;
}
#aio-site-bg canvas { display: block; width: 100% !important; height: 100% !important; }
.site-header { position: relative; z-index: 50; }
main, .site-footer { position: relative; z-index: 1; }

/* ---------- Tvar: šesťuholníková karta (.shape-hex) ----------
   Obdĺžnik so zrezanými rohmi. Tri úrovne, od najstaršej podpory po najnovšiu -
   každá ďalšia prebije predošlú, keď ju prehliadač vie:

   1) clip-path: polygon() - funguje všade. Rovné hrany, ostré vrcholy. Clip
      orezáva border aj vonkajší box-shadow, preto sú okraje v tejto vetve
      riešené vnútornými (inset) tieňmi, ktoré clip nezruší.
   2) corner-shape (Chrome 139+) - kreslí prehliadač natívne, takže platí border
      aj vonkajší glass tieň. Vie zaobliť roh, ALE ohne celú hranu: pri hodnote
      medzi 0 a 1 prestane byť strana rovná. Preto sa tu používa len 0 = ostrý
      zrezaný roh (bevel).
      POZOR: superellipse(2) / squircle je obyčajné zaoblenie BEZ zrezania.
   3) shape() (Chrome 135+) + --hex-path z assets/js/shape-hex.js - jediné, čo vie
      rovné hrany A zaoblené vrcholy naraz. Cesta sa musí počítať (odsadenie
      oblúka od vrcholu závisí od uhla hrán), preto ju kreslí JS. Bez JS alebo
      pri --hex-vertex-round: 0 ostáva --hex-path: none a platí úroveň 2. */
.shape-hex {
  background: var(--glass-sheen), var(--glass-tint);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06), inset 0 -1px 0 rgba(255, 255, 255, .04);
  --_x-tl: calc(var(--hex-x-tl) * var(--hex-scale)); --_y-tl: calc(var(--hex-y-tl) * var(--hex-scale));
  --_x-tr: calc(var(--hex-x-tr) * var(--hex-scale)); --_y-tr: calc(var(--hex-y-tr) * var(--hex-scale));
  --_x-br: calc(var(--hex-x-br) * var(--hex-scale)); --_y-br: calc(var(--hex-y-br) * var(--hex-scale));
  --_x-bl: calc(var(--hex-x-bl) * var(--hex-scale)); --_y-bl: calc(var(--hex-y-bl) * var(--hex-scale));
  clip-path: polygon(
    var(--_x-tl) 0, calc(100% - var(--_x-tr)) 0,
    100% var(--_y-tr), 100% calc(100% - var(--_y-br)),
    calc(100% - var(--_x-br)) 100%, var(--_x-bl) 100%,
    0 calc(100% - var(--_y-bl)), 0 var(--_y-tl)
  );
}
@supports (corner-shape: superellipse(0.3)) {
  .shape-hex {
    clip-path: none;
    /* poradie: ľavý horný, pravý horný, pravý dolný, ľavý dolný */
    corner-shape: superellipse(var(--hex-round-tl)) superellipse(var(--hex-round-tr))
                  superellipse(var(--hex-round-br)) superellipse(var(--hex-round-bl));
    /* pred lomítkom vodorovné polomery, za ním zvislé - tým je roh eliptický */
    border-radius: var(--_x-tl) var(--_x-tr) var(--_x-br) var(--_x-bl)
                 / var(--_y-tl) var(--_y-tr) var(--_y-br) var(--_y-bl);
    border: 1px solid var(--glass-border);
    box-shadow: var(--glass-shadow);
  }
}
/* Zaoblené vrcholy pri rovných hranách. --hex-path je none, kým ho JS nenastaví,
   takže bez JS sa nič nezmení. clip-path znovu orezáva border a vonkajší tieň,
   preto sa vracajú vnútorné (inset) tiene ako v úrovni 1. */
@supports (clip-path: shape(from 0px 0px, line to 10px 0px, close)) {
  .shape-hex {
    /* --hex-path je "none", kým ho JS nenastaví - vtedy platí corner-shape
       z úrovne 2 (a v prehliadačoch bez nej polygon z úrovne 1). */
    clip-path: var(--hex-path);
    /* keď cestu kreslí clip-path, border a vonkajší tieň sa orežú - späť na inset */
    border: 0;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06), inset 0 -1px 0 rgba(255, 255, 255, .04);
  }
  /* bez vypočítanej cesty sa okraje vrátia na natívne (corner-shape ich zvládne) */
  .shape-hex:not(.has-hex-path) {
    border: 1px solid var(--glass-border);
    box-shadow: var(--glass-shadow);
  }
}

/* ---------- Tlačidlá ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  height: 49px;
  padding: 0 25px 0 14px;
  border-radius: 100px;
  font-size: 16px;
  font-weight: 600;
  line-height: 1;
  /* Biela natvrdo: tlacidla lezia na cervenej (.btn--primary) alebo tmavom
     podklade v oboch rezimoch. Svetly variant tmaveho tlacidla si farbu
     prepisuje sam na konci suboru. */
  color: #fff;
  border: 1px solid transparent;
  white-space: nowrap;
  cursor: pointer;
  transition: background .2s ease, border-color .2s ease, transform .2s ease;
}
.btn svg { width: 14px; height: 14px; flex: none; }
.btn--primary { background: var(--color-primary); border-color: var(--color-primary); }
.btn--primary:hover { background: var(--color-primary-dark); border-color: var(--color-primary-dark); }
.btn--dark, .btn--secondary { background: rgba(17, 17, 17, .49); border-color: rgba(255, 255, 255, .05); }
.btn--dark svg, .btn--secondary svg { width: 16px; height: 16px; color: var(--color-primary); }
.btn--dark:hover, .btn--secondary:hover { border-color: rgba(255, 255, 255, .2); background: rgba(17, 17, 17, .7); }

/* ---------- Header (fix + zaoblená "pilulka", vzor: novy.drevostavbymichalic.sk) ----------
   Pilulka je ::before na __inner (nie background hlavičky), aby zaoblenie kopírovalo
   obsahový kontajner a nie celú šírku okna. Hlavička sa pri scrolle nadol skrýva. */
.site-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  height: auto;
  background: none;
  padding: 14px 20px 0;
  transition: transform .3s ease;
}
.site-header.is-hidden { transform: translateY(-100%); }
/* Hlavicka je fixed a plava nad obsahom: main dostava odsadenie o jej vysku
   (14px vrchny padding + 64px pilulka + 14px odstup). Hero si ho vytiahne spat
   negativnym marginom, aby jeho tmave pozadie siahalo az pod hlavicku. */
main { position: relative; padding-top: var(--header-offset, 92px); }
/* Prva sekcia si odsadenie vytiahne spat negativnym marginom a nahradi ho
   PRIEHLADNYM BORDEROM, nie paddingom: pozadie sekcie sa kresli aj pod border
   (background-clip: border-box), takze siaha az pod hlavicku bez pasu, ale
   vlastny padding-top sekcie ostane nedotknuty a absolutne prvky s top:0
   (wave dividery) sa pocitaju od spodku borderu - ostanu tam, kde boli. */
main > :first-child {
  margin-top: calc(-1 * var(--header-offset, 92px));
  border-top: var(--header-offset, 92px) solid transparent;
}
.site-header__inner {
  position: relative;
  max-width: 1124px;
  height: 64px;
  margin: 0 auto;
  padding: 0 24px;
  display: grid;
  grid-template-columns: minmax(0, 366px) 1fr minmax(0, 366px);
  align-items: center;
}
/* Glass pilulka: silny blur + jemny svetelny gradient zhora (odlesk skla),
   vnutorny highlight na hornej hrane a mekky vonkajsi tien. */
.site-header__inner::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  border-radius: 999px;
  background: var(--glass-sheen), var(--glass-tint);
  border: 1px solid var(--glass-border);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  box-shadow: var(--glass-shadow);
  transition: background .25s ease, box-shadow .25s ease;
}
.site-header.is-scrolled .site-header__inner::before {
  background: var(--glass-sheen), var(--glass-tint-strong);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .16), inset 0 -1px 0 rgba(255, 255, 255, .04), 0 10px 36px rgba(0, 0, 0, .5);
}
/* Hmla: mekky prechod pod hlavickou, aby obsah "vstupoval" do rozmazania
   namiesto ostreho rezu na spodnej hrane pilulky. */
.site-header::after {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 132px;
  z-index: -1;
  pointer-events: none;
  background: linear-gradient(to bottom, rgba(3, 4, 7, var(--glass-haze)), rgba(3, 4, 7, calc(var(--glass-haze) * .5)) 45%, rgba(3, 4, 7, 0));
  -webkit-mask-image: linear-gradient(to bottom, #000 55%, transparent);
  mask-image: linear-gradient(to bottom, #000 55%, transparent);
}
.site-header__inner > * { position: relative; z-index: 1; }
.site-logo { justify-self: start; display: flex; align-items: center; }
.main-nav { justify-self: start; }
.site-logo img { height: 25px; width: auto; display: block; }
.main-nav ul { list-style: none; display: flex; align-items: center; gap: 22px; margin: 0; padding: 0; }
.main-nav__link {
  display: block;
  color: var(--color-text);
  font-size: 16px;
  font-weight: 600;
  line-height: 20px;
  padding: 22px 0;
  /* "Sluzby" ma navyse sipku (.main-nav__caret) - bez nowrap sa pri uzsom
     flex-stlaceni polozky sipka zalomi pod text namiesto vedla neho a
     polozka menu sa (kvoli extra riadku) natiahne vyssie nez ostatne. */
  white-space: nowrap;
  transition: color .15s ease;
}
/* :hover len pre zariadenia s mysou - na dotykovom displeji "hover" po tuknuti
   ostava visiet a Sluzby po zatvoreni menu zostali cervene
   (pripomienka 20260920-181441-f8428775). Samotne (hover: hover) nestacilo -
   niektore telefony (Samsung s perom) ho hlasia ako true, preto je hover
   navyse viazany na desktopovu sirku; v rozbalenom mobilnom menu hover
   nema zmysel (pripomienka 20260920-195544-111c1885). */
@media (hover: hover) and (min-width: 821px) {
  .main-nav__link:hover { color: var(--color-primary); }
}
.main-nav__link[aria-current="page"] { color: var(--color-primary); }
.site-header__right { justify-self: end; display: flex; align-items: center; gap: 12px; }
.header-cta { height: 28px; padding: 0 17px 0 14px; font-size: 14px; gap: 7px; }
.header-cta svg { width: 14px; height: 14px; }
/* Rychly kontakt v hlavicke (telefon, mail, WhatsApp) - len ikony, aby CTA ostalo hlavnym prvkom.
   Standardne su ZBALENE (sirka 0) a vysunu sa dolava pri nabehnuti na pravu cast hlavicky
   alebo ked ma niektora ikona fokus z klavesnice - pripomienka 20260926-082753-6a819d3b.
   Animuje sa max-width, nie width: obsah ma vlastnu sirku (3x30px + medzery) a max-width
   ju vie zrolovat na 0 bez toho, aby sa musela pocitat natvrdo. */
.header-contact {
  display: inline-flex; align-items: center; gap: 2px;
  max-width: 0; overflow: hidden; opacity: 0;
  transition: max-width .28s ease, opacity .2s ease, margin-right .28s ease;
  /* Zbalenie sa spusti az po odchode mysi - pripomienka 20260926-084229-2987b0bd
     ("nemozem to dobre chytit"): ikony sa vysunu dolava a cestou k nim mys opusti
     pravu cast hlavicky, takze bez odkladu zmizli skor, nez sa na ne dalo kliknut.
     Oneskorenie je na zakladnom (zbalenom) stave, preto plati len pri schovavani.
     Skratene z 3s na 1s - pripomienka 20260926-123653-7cfff8ea. */
  transition-delay: 1s;
  margin-right: 0;
}
.site-header__right:hover .header-contact,
.header-contact:focus-within {
  max-width: 120px; opacity: 1; margin-right: 6px;
  /* Vysunutie ostava okamzite - oneskoruje sa iba schovanie. */
  transition-delay: 0s;
}
.header-contact__link { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; flex: none; border-radius: 50%; color: var(--color-text); transition: color .15s ease, background .15s ease; }
.header-contact__link svg { width: 17px; height: 17px; display: block; }
.header-contact__link:hover { color: var(--color-primary); background: rgba(255, 255, 255, .08); }
.header-contact__link--wa:hover { color: #25d366; }
/* Pod 1100px uz menu + ikony + CTA nevojdu do pilulky a prekryvali by sa
   (menu je v strede mriezky, prava cast rastie dolava). */
@media (max-width: 1100px) { .header-contact { display: none; } }
/* Kto ma vypnute animacie, uvidi ikony rovno - bez vysuvania. */
@media (prefers-reduced-motion: reduce) {
  .header-contact { transition: none; }
}
/* Prepínač tmavého / svetlého vzhľadu. Zobrazí sa vždy len jedna ikona - tá,
   na ktorý vzhľad sa prepína (v tmavom režime slnko, v svetlom mesiac).
   Tlačidlo je skryté, kým ho neodkryje JS - bez neho by nerobilo nič. */
.theme-toggle {
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; flex: none; margin-left: 2px;
  padding: 0; border: 0; border-radius: 50%;
  background: none; color: var(--color-text); cursor: pointer;
  transition: background .15s ease, color .15s ease;
}
.theme-toggle[hidden] { display: none; }
.theme-toggle:hover { background: rgba(127, 127, 127, .18); color: var(--color-primary); }
.theme-toggle__icon { width: 17px; height: 17px; display: block; }
.theme-toggle__icon--sun { display: none; }
:root[data-theme="light"] .theme-toggle__icon--sun { display: block; }
:root[data-theme="light"] .theme-toggle__icon--moon { display: none; }
@media (prefers-color-scheme: light) {
  :root:not([data-theme]) .theme-toggle__icon--sun { display: block; }
  :root:not([data-theme]) .theme-toggle__icon--moon { display: none; }
}
.menu-toggle { display: none; background: none; border: 0; color: var(--color-text); padding: 6px; cursor: pointer; align-items: center; gap: 6px; }
.menu-toggle svg { width: 26px; height: 26px; }
.menu-toggle__label { font-size: 12px; font-weight: 700; letter-spacing: .04em; }
/* Otvorene menu: hamburger sa prepne na krizik (pripomienka 20260923-075751),
   ale napis MENU ostava vedla neho aj v otvorenom stave
   (pripomienka 20260925-054143-6158299a). */
.menu-toggle__icon--close { display: none; }
.menu-toggle.is-open .menu-toggle__icon--open { display: none; }
.menu-toggle.is-open .menu-toggle__icon--close { display: block; }

/* Služby mega-menu (dropdown na hover / klik na mobile) */
.main-nav__caret { display: inline-flex; margin-left: 6px; vertical-align: middle; }
.main-nav__caret svg { width: 12px; height: 12px; transform: rotate(90deg); transition: transform .18s ease; }
@media (hover: hover) and (min-width: 821px) {
  .main-nav li.has-dropdown:hover .main-nav__caret svg { transform: rotate(-90deg); }
}
.main-nav li.has-dropdown.is-open .main-nav__caret svg { transform: rotate(-90deg); }
/* Dropdown sa centruje na celu pilulku hlavicky (.site-header__inner), nie na
   polozku menu - preto su li aj nav na desktope static a kontajnerom je __inner. */
.main-nav li.has-dropdown { position: static; }
@media (min-width: 821px) {
  .site-header__inner > .main-nav { position: static; }
}
.mega-menu {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(8px);
  /* 90 % sirky hlavickovej pilulky (pripomienka 20260922-092922-64f377d5 "nie na celu
     sirku, len tak na 90%"; predtym 100 % z 20260922-092350-1f7e3919, 80 % pred tym) */
  width: 90%;
  max-width: 90%;
  /* Vzhlad (sklo) dodava spolocne pravidlo "Glass" nizsie - menu vyzera rovnako
     ako hlavicka, z ktorej vychadza.
     Vyvoj: kvoli presvitaniu hero textu tu bol docasne nepriehladny tmavy
     podklad (--glass-tint: #0a0c14). Majitel ho vratil spat na sklo -
     pripomienka 20260926-183356-419adbce ("to co tam bolo predtym glass,
     a href hover ma byt tmavy aby ho bolo vidno"). Citatelnost teraz riesi
     tmavy hover na polozke, nie zatmavenie celeho menu.
     Silnejsi blur (nie tmavsi podklad) drzi hero nadpis pod menu rozmazany,
     takze cez sklo nepresvita citatelny text a menu pritom ostava sklom.
     Tokeny :root sa nemenia - blur je prebity len tu, hlavicka a karty
     zostavaju bez zmeny. */
  --glass-blur: blur(22px) saturate(2.2);
  border: 1px solid transparent;
  /* horne rohy ostre - vizualne "vychadza" spod menu v hlavicke, ako jeden celok */
  border-radius: 0 0 24px 24px;
  padding: 20px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  /* zatvaranie s oneskorenim - mys prechadza z odkazu do menu cez medzeru a nesmie sa zavriet */
  transition: opacity .18s ease .3s, transform .18s ease .3s, visibility 0s linear .48s;
  z-index: 60;
}
.main-nav li.has-dropdown:hover .mega-menu,
.main-nav li.has-dropdown.is-open .mega-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
  transition-delay: 0s;
}
/* Neviditelny mostik, aby hover nevypadol v medzere medzi odkazom a menu.
   li je zamerne static (kvoli centrovaniu menu na celu hlavicku), takze
   absolute sa viaze na .site-header__inner - mostik preto pokryva cely spodok
   hlavicky az po menu, nie len uzky pruh pod odkazom. */
.main-nav li.has-dropdown:hover::after {
  content: "";
  position: absolute;
  left: 0; right: 0;
  top: 100%;
  height: 28px;
}
/* Rovnaky mostik drzi hover aj ked uz mys vosla do menu a vracia sa spat. */
.main-nav li.has-dropdown .mega-menu::before {
  content: "";
  position: absolute;
  left: 0; right: 0;
  bottom: 100%;
  height: 28px;
}
.mega-menu__inner { display: flex; flex-wrap: wrap; gap: 10px; }
.mega-menu__item {
  /* pevne 3 polozky v riadku (3 + 3), nie "kolko sa zmesti" - pri 100 % sirke to
     vychadzalo 4 + 2 (pripomienka 20260922-092922-64f377d5 "tri a tri mali byt") */
  flex: 0 0 calc((100% - 20px) / 3);
  display: flex;
  align-items: center;
  gap: 14px;
  color: var(--color-text);
  font-weight: 600;
  font-size: 15.5px;
  padding: 16px 14px; /* uzsie bocne odsadenie, aby sa najdlhsi nazov pri 3 v riadku nezalomil */
  border-radius: 10px;
  transition: background .15s ease, color .15s ease;
}
/* Hover: vyraznejsi cerveny podklad a BIELY text. Predtym to bolo
   rgba(234,13,69,.12) + cerveny text, co nad tmavym sklom menu dalo takmer
   cierny podklad a kontrast len ~4,3:1 - text bol na hover horsie citatelny
   nez bez neho (pripomienka 20260926-125015-d2974df3 "hover neprehladne
   tmave pozadie"). Teraz je kontrast ~13:1 a brandova cervena zostava. */
/* Hover je ODTIEN CIERNEJ - pripomienka 20260926-125847-ffc25d4e ("je cervene,
   myslel som odtien ciernej") a 20260926-183356-419adbce ("href hover ma byt
   tmavy aby ho bolo vidno"). Menu samo je sklo, takze polozka pod kurzorom sa
   odlisi TMAVSIM podkladom, nie svetlejsim - predtym to bolo naopak
   (rgba(255,255,255,.09)), lebo menu malo docasne tmavy nepriehladny podklad.
   Nepriehladna cierna staci na citatelnost aj nad svetlym hero textom. */
.mega-menu__item:hover { background: rgba(10, 12, 20, .82); color: #fff; }
.mega-menu__icon { display: inline-flex; flex: none; width: 32px; height: 32px; background: rgba(255, 255, 255, .06); border-radius: 10px; align-items: center; justify-content: center; }
.mega-menu__icon svg { width: 18px; height: 18px; }

main { min-height: 40vh; }

/* ---------- Hero ---------- */
.hero { position: relative; background: var(--section-tint); padding-bottom: 54px; }
.hero__inner { max-width: 900px; margin: 0 auto; padding: 84px 24px 0; text-align: center; }
.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  height: 28px;
  padding: 0 8px;
  border-radius: 100px;
  background: rgba(234, 13, 69, .12);
  border: 1px solid rgba(234, 13, 69, .12);
  color: var(--color-primary);
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  margin: 0 0 21px;
}
.hero-badge svg { width: 14px; height: 14px; }
.hero h1 { font-size: 46.4px; line-height: 1.1; margin: 0 0 23px; padding-bottom: 10px; }
.hero__sub { font-size: 16px; line-height: 1.5; color: var(--color-muted); margin: 0 0 43px; }
.hero__actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 15px; margin-bottom: 101px; }

/* Dôverujú nám - pás na celú šírku + marquee */
.trust-band {
  /* pozadie/okraje dodava spolocne pravidlo "Glass" - tu len sirky okrajov */
  border-top: 1px solid transparent;
  border-bottom: 1px solid transparent;
  padding: 20px 14px;
  text-align: center;
}
.marquee {
  max-width: var(--container-w);
  margin: 0 auto;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
/* 22 s na kolo (5 log): povodnych 40 s posobilo ako stojaci pas
   (pripomienka 20260920-172253-0e6cec93). */
.marquee__track { display: flex; width: max-content; animation: marquee 22s linear infinite; }
.marquee:hover .marquee__track { animation-play-state: paused; }
.marquee__slide { flex: none; width: 278px; height: 100px; display: flex; align-items: center; justify-content: center; }
.marquee__slide a { display: flex; align-items: center; justify-content: center; max-width: 100%; } /* logo je odkaz na referenciu; flex = bez medzery pod inline <img> */
.marquee__slide img { height: 100px; width: auto; max-width: 100%; filter: opacity(.2); transition: filter .3s ease; }
.marquee__slide:hover img { filter: none; }
@keyframes marquee { to { transform: translateX(calc(-278px * 5)); } }
/* Obmedzeny pohyb (telefon s vypnutymi animaciami): pas sa nezastavi uplne
   (majitel na telefone videl stojace loga), len ide 3x pomalsie. */
@media (prefers-reduced-motion: reduce) { .marquee__track { animation-duration: 66s; } }

/* ---------- Sekcie: nadpisy ---------- */
.section-sub { font-size: 16px; line-height: 1.5; color: var(--color-muted); text-align: center; margin: 10px 0 0; }

/* ---------- Služby (5 kariet) ---------- */
/* scroll-margin-top: pri skoku na #komplexne-sluzby nesmie nadpis skoncit pod
   fixnou hlavickou (pripomienka 20260923-073603-7bfa7e56). */
.services { padding: 54px 0 92px; background: var(--section-tint); scroll-margin-top: var(--header-offset, 92px); }
.services h2 { text-align: center; }
.services .section-sub { margin-bottom: 54px; }
.svc-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 15px; }
.svc-card {
  display: flex;
  flex-direction: column;
  background: var(--color-card);
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-card);
  padding: 24px 25px;
  transition: border-color .3s ease;
}
.svc-card:hover { border-color: rgba(255, 255, 255, .18); }
.svc-card__icon { display: block; height: 48px; margin-bottom: 10px; }
.svc-card__icon svg { width: 40px; height: 40px; transition: transform .3s ease; }
.svc-card:hover .svc-card__icon svg { transform: scale(1.1); }
/* cela karta je odkaz - "VIAC" reaguje na hover kdekolvek na karte */
.svc-card:hover .more-link { color: var(--color-primary); }
.svc-card h3 { font-size: 17.6px; line-height: 1; padding-bottom: 10px; }
.svc-card p { font-size: 14.4px; line-height: 1.5; color: var(--color-muted); }
.more-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  align-self: flex-start;
  font-size: 11.2px;
  font-weight: 500;
  color: var(--color-text);
  padding: 3.36px 0;
  margin-top: 1px;
  transition: color .15s ease;
}
.more-link svg { width: 10px; height: 10px; }
.more-link:hover { color: var(--color-primary); }
.more-link--pink { align-self: flex-end; color: var(--color-primary); font-size: 14.4px; font-weight: 600; padding: 0 28.8px 0 10px; margin: 0 0 9px; }
.more-link--pink svg { width: 14px; height: 14px; }
.more-link--pink:hover { color: #fff; }

/* ---------- Referencie ---------- */
.references { padding: 106px 0 73px; background: var(--color-bg); }
.references__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; margin-bottom: 40px; }
.references__head h2 { text-align: left; }
.references__head .section-sub { text-align: left; }
.references__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 35px; align-items: start; }
.ref-card {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  height: 183px;
  padding: 0 25px 27px;
  border-radius: 20px;
  border: 1px solid #333;
  overflow: hidden;
  background:
    linear-gradient(rgba(21, 21, 21, .43) 0%, rgba(0, 0, 0, .92) 100%),
    var(--ref-img) center / cover no-repeat;
  color: var(--color-text);
  transition: transform .3s ease, border-color .3s ease;
}
.ref-card:hover { transform: translateY(-3px); border-color: rgba(255, 255, 255, .25); }
.ref-card__tag { font-size: 11.2px; font-weight: 600; line-height: 24px; color: var(--color-primary); }
.ref-card__name { font-size: 17.6px; font-weight: 600; line-height: 24px; }
.ref-item__desc { font-size: 14.4px; line-height: 23.8px; color: var(--color-muted); margin-top: 15px; }
.testimonial {
  background: var(--color-card);
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-card);
  padding: 30px 25px;
}
.testimonial__stars { display: flex; gap: 8px; color: var(--color-primary); margin-bottom: 30px; }
.testimonial__stars svg { width: 20px; height: 20px; }
.testimonial__quote { font-size: 17.6px; line-height: 23.8px; font-weight: 500; color: var(--color-text); margin-bottom: 14px; }
.testimonial__author { font-size: 14.4px; line-height: 18px; font-weight: 600; color: var(--color-text); }
.testimonial__company { font-size: 12.8px; line-height: 18px; font-weight: 500; color: var(--color-muted); }

/* ---------- Footer ---------- */
.site-footer { color: var(--color-text); }
.site-footer__main { position: relative; background: var(--color-footer); padding: 127px 0; }
.footer-col--contact { padding-top: 30px; }
.wave {
  position: absolute;
  left: 0; right: 0;
  height: 44px;
  background-repeat: repeat-x;
  background-size: 100% 44px;
  pointer-events: none;
  z-index: 1;
}
.wave--top, .wave--why-top {
  top: 0;
  background-image: url("data:image/svg+xml;utf8,%3Csvg preserveAspectRatio='none' width='100%25' height='140px' viewBox='0 0 1280 140' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23030407'%3E%3Cpath d='M504.854,80.066c7.812,0,14.893,0.318,21.41,0.879 c-25.925,22.475-56.093,40.852-102.946,40.852c-20.779,0-37.996-2.349-52.898-6.07C413.517,107.295,434.056,80.066,504.854,80.066z M775.938,51.947c19.145,18.596,39.097,35.051,77.956,35.051c46.907,0,62.299-14.986,80.912-24.98 c-21.357-15.783-46.804-28.348-85.489-28.348C816.829,33.671,794.233,41.411,775.938,51.947z' fill-opacity='.3' /%3E%3Cpath d='M1200.112,46.292c39.804,0,59.986,22.479,79.888,39.69v16.805 c-19.903-10.835-40.084-21.777-79.888-21.777c-72.014,0-78.715,43.559-147.964,43.559c-56.84,0-81.247-35.876-117.342-62.552 c9.309-4.998,19.423-8.749,34.69-8.749c55.846,0,61.99,39.617,115.602,39.617C1143.177,92.887,1142.618,46.292,1200.112,46.292z M80.011,115.488c-40.006,0-60.008-12.206-80.011-29.506v16.806c20.003,10.891,40.005,21.782,80.011,21.782 c80.004,0,78.597-30.407,137.669-30.407c55.971,0,62.526,24.026,126.337,24.026c9.858,0,18.509-0.916,26.404-2.461 c-57.186-14.278-80.177-48.808-138.66-48.808C154.698,66.919,131.801,115.488,80.011,115.488z M526.265,80.945 c56.848,4.902,70.056,28.726,137.193,28.726c54.001,0,73.43-35.237,112.48-57.724C751.06,27.782,727.548,0,665.691,0 C597.381,0,567.086,45.555,526.265,80.945z' fill-opacity='.5' /%3E%3Cpath d='M0,0v85.982c20.003,17.3,40.005,29.506,80.011,29.506c51.791,0,74.688-48.569,151.751-48.569 c58.482,0,81.473,34.531,138.66,48.808c43.096-8.432,63.634-35.662,134.433-35.662c7.812,0,14.893,0.318,21.41,0.879 C567.086,45.555,597.381,0,665.691,0c61.856,0,85.369,27.782,110.246,51.947c18.295-10.536,40.891-18.276,73.378-18.276 c38.685,0,64.132,12.564,85.489,28.348c9.309-4.998,19.423-8.749,34.69-8.749c55.846,0,61.99,39.617,115.602,39.617 c58.08,0,57.521-46.595,115.015-46.595c39.804,0,59.986,22.479,79.888,39.69V0H0z' /%3E%3C/g%3E%3C/svg%3E");
}
.wave--bottom, .wave--why-bottom {
  bottom: 0;
  transform: scaleX(-1);
  background-image: url("data:image/svg+xml;utf8,%3Csvg preserveAspectRatio='none' width='100%25' height='140px' viewBox='0 0 1280 140' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23030407'%3E%3Cpath d='M853.893,86.998c-38.859,0-58.811-16.455-77.956-35.051c18.295-10.536,40.891-18.276,73.378-18.276 c38.685,0,64.132,12.564,85.489,28.347C916.192,72.012,900.8,86.998,853.893,86.998z M526.265,80.945 c-6.517-0.562-13.599-0.879-21.41-0.879c-70.799,0-91.337,27.229-134.433,35.662c14.901,3.72,32.118,6.07,52.898,6.07 C470.171,121.797,500.34,103.421,526.265,80.945z' fill-opacity='.3' /%3E%3Cpath d='M663.458,109.671c-67.137,0-80.345-23.824-137.193-28.726C567.086,45.555,597.381,0,665.691,0 c61.857,0,85.369,27.782,110.246,51.947C736.888,74.434,717.459,109.671,663.458,109.671z M217.68,94.163 c55.971,0,62.526,24.026,126.337,24.026c9.858,0,18.508-0.916,26.404-2.461c-57.186-14.278-80.177-48.808-138.659-48.808 c-77.063,0-99.96,48.569-151.751,48.569c-40.006,0-60.008-12.206-80.011-29.506v16.806c20.003,10.891,40.005,21.782,80.011,21.782 C160.014,124.57,158.608,94.163,217.68,94.163z M1200.112,46.292c-57.493,0-56.935,46.595-115.015,46.595 c-53.612,0-59.755-39.618-115.602-39.618c-15.267,0-25.381,3.751-34.69,8.749c36.096,26.675,60.503,62.552,117.342,62.552 c69.249,0,75.951-43.559,147.964-43.559c39.804,0,59.986,10.943,79.888,21.777V85.982 C1260.097,68.771,1239.916,46.292,1200.112,46.292z' fill-opacity='.5' /%3E%3Cpath d='M1052.147,124.57c-56.84,0-81.247-35.876-117.342-62.552c-18.613,9.994-34.005,24.98-80.912,24.98 c-38.859,0-58.811-16.455-77.956-35.051c-39.05,22.487-58.479,57.724-112.48,57.724c-67.137,0-80.345-23.824-137.193-28.726 c-25.925,22.475-56.093,40.852-102.946,40.852c-20.779,0-37.996-2.349-52.898-6.07c-7.895,1.545-16.546,2.461-26.404,2.461 c-63.811,0-70.366-24.026-126.337-24.026c-59.072,0-57.665,30.407-137.669,30.407c-40.006,0-60.008-10.891-80.011-21.782V140h1280 v-37.212c-19.903-10.835-40.084-21.777-79.888-21.777C1128.098,81.011,1121.397,124.57,1052.147,124.57z' /%3E%3C/g%3E%3C/svg%3E");
}
.footer-cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 76px; }
.footer-col h3 { font-size: 20px; line-height: 30px; letter-spacing: 2px; padding-bottom: 10px; }
.footer-list { list-style: none; margin: 0; padding: 0 0 16px; }
.footer-list li { display: flex; align-items: flex-start; gap: 10px; font-size: 14.4px; line-height: 26px; color: var(--color-text); }
.footer-list li:first-child { line-height: 24px; }
.footer-list__spacer { height: 20px; }
.footer-list__small { font-size: 12.8px !important; }
.footer-list a { color: var(--color-text); transition: color .15s ease; }
.footer-list a:hover { color: var(--color-primary); }
.fi { display: inline-flex; width: 16px; height: 16px; flex: none; margin-top: 5px; }
.fi svg { width: 16px; height: 16px; }
.fi--pink { color: var(--color-primary); }
.contact-box { display: flex; gap: 15px; margin-bottom: 38px; }
.contact-box:last-child { margin-bottom: 0; }
.contact-box__icon {
  width: 50px; height: 50px; flex: none;
  border-radius: 100px;
  background: var(--color-card);
  display: flex; align-items: center; justify-content: center;
  color: var(--color-text);
}
.contact-box__icon svg { width: 24px; height: 24px; }
.contact-box__text { display: flex; flex-direction: column; gap: 9px; }
.contact-box__label { font-size: 11.2px; font-weight: 500; line-height: 14px; text-transform: uppercase; color: var(--color-muted); }
.contact-box__text a { font-size: 19.2px; font-weight: 700; line-height: 24px; color: var(--color-text); transition: color .15s ease; }
.contact-box__text a:hover { color: var(--color-primary); }
.site-footer__bar { background: rgba(3, 4, 7, .16); margin-top: 23px; padding: 0 0 24px; }
.footer-bar { display: flex; justify-content: space-between; align-items: center; gap: 24px; font-size: 12.8px; color: #f1f1f1; }
.footer-bar__left { line-height: 23.8px; }
.footer-bar__left a { color: #f1f1f1; }
.footer-bar__left a:hover { color: var(--color-primary); }
.footer-bar__right { text-align: right; line-height: 20.8px; }

/* ---------- Podstránky (hodnoty z computed štýlov originálu 2026.aio.sk) ---------- */

.btn--purple { background: #c084fc; border-color: #c084fc; }
.btn--purple:hover { background: #b06ff5; border-color: #b06ff5; }
.btn--blue { background: #60a5fa; border-color: #60a5fa; color: #202c45; }
.btn--blue:hover { background: #4b95f2; border-color: #4b95f2; }
.btn--orange { background: #fb923c; border-color: rgba(251, 146, 60, .05); color: #000; }
.btn--orange:hover { background: #f9832a; }
.btn--outline { background: transparent; border-color: var(--color-text); }
.btn--outline:hover { background: rgba(255, 255, 255, .08); }

/* Hero varianty */
.hero__sub { max-width: 700px; margin-left: auto; margin-right: auto; }
.hero--svc .hero__inner { padding-top: 64px; }
.hero--box .hero__inner { padding-top: 74px; }
.hero .h1--split { margin-bottom: 33px; }
.sec-pill.hero-badge--svc { display: flex; width: max-content; margin: 0 auto 21px; }
.hero-box {
  display: inline-flex; align-items: center; justify-content: center;
  width: 68px; height: 68px;
  border: 1px solid; border-radius: 10px;
  margin-bottom: 16px;
}
.hero-box svg { width: var(--icon, 40px); height: var(--icon, 40px); }
.hero--list .svc-grid { margin-top: 21px; padding-bottom: 37px; }
/* Podstránky: logá v páse len 16px vysoké (ako originál) - bez stlmenia, na origináli sú plne viditeľné */
.trust-band--sm .marquee__slide { width: 247px; height: 16px; }
.trust-band--sm .marquee__slide img { height: 16px; filter: none; }
.trust-band--sm .marquee__track { animation-name: marquee-sm; }
@keyframes marquee-sm { to { transform: translateX(calc(-247px * 5)); } }
.hero--list .hero__sub { margin-bottom: 0; }
.hero--refs .hero-badge { color: var(--color-text); font-size: 14px; font-weight: 500; }

/* Hero so "Späť" (kontakt, detail referencie) */
.hero--back .hero__inner { max-width: 862px; padding-top: 108px; }
.back-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 5px 25px;
  font-size: 12.8px; font-weight: 700; line-height: 21.76px;
  color: var(--color-text);
  background: rgba(97, 97, 97, .4);
  border: 1px solid rgba(255, 255, 255, .05);
  border-radius: 100px;
  margin-bottom: 31px;
  transition: background .2s ease;
}
.back-pill svg { width: 12px; height: 12px; flex: none; transform: rotate(180deg); }
.back-pill:hover { background: rgba(97, 97, 97, .6); }
/* margin-top sa zlučuje s margin-bottom podtitulu (43px) - cielom je 66 / 103 px */
.hero__content { margin-top: 66px; margin-bottom: 101px; }
.hero__content--ref { margin-top: 103px; }

/* Sekcia so spoločnou hlavičkou */
.sec { padding: 50px 0 80px; }
.sec--dark { background: var(--section-tint); }
.sec__head { text-align: center; }
.sec h2 { line-height: 1; padding-bottom: 10px; }
.sec-pill {
  display: inline-flex; align-items: center; gap: 6px;
  height: 28px; padding: 0 8px;
  border: 1px solid; border-radius: 100px;
  font-size: 14px; font-weight: 500; line-height: 26px;
  margin-bottom: 24px;
}
.sec-pill svg { width: 16px; height: 16px; flex: none; } /* ikona sluzby pred textom stitku (farba = currentColor stitku) */
.sec__note { max-width: 666px; margin: 0 auto; padding-bottom: 16px; text-align: center; font-size: 16px; line-height: 23.8px; color: var(--color-muted); }

/* Ikonové karty (vlastnosti, kroky) - šírky 1:1 podľa originálu cez flex-basis */
/* Divi riadok ma pod kartami padding 37px; medzera medzi riadkami kariet je min. 20px */
.cards-row { display: flex; flex-wrap: wrap; gap: max(20px, var(--gap, 30px)) var(--gap, 30px); margin-top: 54px; padding-bottom: 37px; }
.icard {
  flex: 0 1 var(--w, 300px); min-width: 0;
  background: rgba(99, 99, 99, .16);
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-card);
  padding: 24px 25px;
  transition: border-color .3s ease;
}
.icard:hover, .pcard:hover { border-color: rgba(255, 255, 255, .18); }
/* Ikona, nadpis aj popis na stred - pripomienka 20260926-125456-ff1adb0a
   ("ikona text popis vsetko nastred vsade"). .icard vykresluje spolocny blok
   block_cards_section(), takze zmena tu plati na celom webe, nie len na uvode.
   Ikona potrebuje flex - pri display:block by ju text-align nevycentroval,
   lebo <svg> je inline-block s vlastnou sirkou. */
.icard { text-align: center; }
.icard__icon { display: flex; align-items: center; justify-content: center; height: var(--iw, 39px); margin-bottom: 9px; }
.icard__icon svg { width: 32px; height: 32px; }
.icard h3 { font-size: 17.6px; line-height: 1; padding-bottom: 10px; }
.icard p { font-size: 14.4px; line-height: 21.6px; font-weight: 300; color: var(--color-muted); }

/* Cenníkové karty */
.pcard {
  position: relative;
  flex: 0 1 var(--w, 325px); min-width: 0;
  display: flex; flex-direction: column;
  background: rgba(99, 99, 99, .16);
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-card);
  padding: 24px 25px;
  transition: border-color .3s ease;
}
.pcard--featured { background: rgba(234, 13, 69, .12); border-color: rgba(234, 13, 69, .12); }
.pcard__badge { position: absolute; top: 22px; right: 25px; font-size: 14px; font-weight: 500; line-height: 26px; color: var(--color-text); }
.pcard__icon { display: block; height: calc(var(--icon, 24px) + 7px); margin-bottom: 10px; }
.pcard__icon svg { width: var(--icon, 24px); height: var(--icon, 24px); }
.pcard h3 { font-size: 20.8px; line-height: 1; padding-bottom: 10px; }
.pcard__tag { font-size: 14.4px; line-height: 21.6px; color: var(--color-muted); }
.pcard__tag--sm { font-size: 12.8px; line-height: 19.2px; }
.pcard__price { font-size: 35.2px; line-height: 52.8px; font-weight: 600; color: var(--color-text); margin-top: 10px; }
.pcard__price--long { font-size: 33.6px; line-height: 50.4px; }
.pcard__period { font-size: 14.4px; line-height: 21.6px; font-weight: 400; color: var(--color-muted); margin: -2px 0 26px; }
.check-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.check-list li { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; font-weight: 500; line-height: 26px; color: var(--color-text); }
.check-list svg { width: 16px; height: 16px; flex: none; margin-top: 5px; color: var(--color-muted); }
/* margin-top:auto pritlaci tlacidlo na spodok karty - vo vsetkych kartach
   riadku je potom v rovnakej vyske. 30px je minimalny odstup od zoznamu
   pri nizkej karte. */
.pcard__btn { align-self: center; margin-top: auto; padding-top: 0; }
.pcard .check-list { margin-bottom: 30px; }

/* FAQ akordeón */
/* Uzsi ako zvysok obsahu - dlhe riadky otazok a odpovedi sa citaju lepsie. */
.faq-list { margin-top: 40px; margin-bottom: 24px; max-width: 900px; margin-left: auto; margin-right: auto; }
.sec--faq .sec__head:last-child { margin-bottom: 54px; }
.faq-item { background: rgba(99, 99, 99, .16); border: 1px solid rgba(99, 99, 99, .16); border-radius: 15px; margin-bottom: 30px; }
.faq-item__btn {
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  width: 100%; padding: 20px;
  background: none; border: 0; color: var(--color-text); text-align: left; cursor: pointer; font: inherit;
}
.faq-item__btn h3 { font-size: 18px; font-weight: 500; line-height: 27px; }
.faq-item__icon { width: 16px; height: 16px; flex: none; color: #ccc; transition: transform .2s ease, color .2s ease; }
.faq-item__icon svg { width: 16px; height: 16px; display: block; }
.faq-item.is-open .faq-item__icon { color: var(--color-primary); transform: rotate(45deg); }
.faq-item__body { padding: 0 20px 20px; font-size: 14px; line-height: 23.8px; color: var(--color-text); }
.faq-item__body p { margin: 0 0 10px; }
.faq-item__body p:last-child { margin-bottom: 0; }

/* "Prečo spolupracovať s nami" */
.why-us {
  position: relative;
  padding: 100px 14px;
  background: url("/assets/images/bg/why-us-800.webp") no-repeat 0 0 / auto;
}
.wave--why-top { top: 0; height: 47.44px; background-size: 100% 47.44px; }
.wave--why-bottom { bottom: 0; height: 47.44px; background-size: 100% 47.44px; transform: scaleX(-1); }
.why-us__grid { max-width: var(--container-w); margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 76px; }
.why-us__pill { font-size: 14px; font-weight: 500; line-height: 26px; color: var(--color-text); padding-bottom: 10px; }
.why-us h2 { font-size: 36.8px; line-height: 1; padding-bottom: 10px; }
.why-feats { display: grid; grid-template-columns: repeat(2, minmax(0, 310px)); grid-template-rows: repeat(2, auto); grid-auto-flow: column; column-gap: 36px; row-gap: 50px; margin-top: 20px; padding: 10px 0; }
.why-feat__icon { display: block; height: 20px; margin-bottom: 18px; }
.why-feat__icon svg { width: 20px; height: 20px; display: block; }
.why-feat h3 { font-size: 17.6px; line-height: 1; padding-bottom: 10px; }
.why-feat p { font-size: 14.4px; line-height: 21.6px; font-weight: 300; color: var(--color-muted); }
.why-us__side { padding-top: 150px; }
.stats-card {
  display: grid; grid-template-columns: 1fr 1fr; gap: 46px;
  background: var(--color-card); border: 1px solid var(--color-card-border); border-radius: var(--radius-card);
  padding: 24px 25px 31px 40px; text-align: center;
}
.stats-card h3 { font-size: 38.4px; line-height: 23.04px; margin-top: 13px; padding-bottom: 10px; }
.stats-card p { font-size: 13px; font-weight: 600; line-height: 23.8px; color: var(--color-muted); }

/* Služby - variant s automatickou šírkou kariet (/referencie/) */
.services--auto { padding: 54px 0; }
.svc-grid--auto { display: flex; justify-content: space-between; gap: 30px; }
.svc-grid--auto .svc-card { flex: 0 1 auto; }

/* /referencie/ - filter + zoznam */
.filter-row { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; margin-bottom: 39px; }
.filter-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 5px 15px;
  font-size: 14.4px; font-weight: 600; line-height: 24.48px;
  color: var(--color-text);
  background: rgba(17, 17, 17, .49);
  border: 1px solid rgba(255, 255, 255, .05);
  border-radius: 100px;
  transition: background .2s ease, border-color .2s ease;
}
/* Ikona je v origináli primárna červená, na aktívnej (červenej) pill biela. */
.filter-pill svg { width: 14px; height: 14px; flex: none; color: var(--color-primary); }
.filter-pill:hover { border-color: rgba(255, 255, 255, .2); }
.filter-pill.is-active { background: var(--color-primary); border-color: var(--color-primary); }
.filter-pill.is-active svg { color: #fff; }
.rlist { display: flex; flex-wrap: wrap; gap: 24px; }
.rcard {
  flex: 0 0 calc((100% - 48px) / 3);
  display: flex; flex-direction: column; gap: 18px;
  padding: 10px;
  background: rgba(99, 99, 99, .16);
  border: 1px solid rgba(99, 99, 99, .16);
  border-radius: 7px;
  transition: border-color .3s ease, transform .3s ease;
}
.rcard:hover { border-color: rgba(255, 255, 255, .18); transform: translateY(-3px); }
.rcard img { width: 100%; aspect-ratio: 425 / 219; object-fit: cover; border-radius: 7px; }
.rcard__meta { display: flex; justify-content: space-between; align-items: center; padding: 0 10px; font-size: 12.8px; line-height: 23.8px; }
.rcard__cat { display: inline-block; padding: 0 10px; color: var(--color-primary); background: rgba(234, 13, 69, .12); border: 1px solid rgba(234, 13, 69, .12); border-radius: 100px; }
.rcard__year { color: var(--color-muted); padding: 0 10px; }
/* nadpis aj popis sa tlacia k spodku karty (rovnaka vyska kariet v riadku ako v originali) */
.rcard__title { margin: auto 20px 0; padding-top: 7px; }
.rcard h2 { font-size: 16px; line-height: 20.8px; font-weight: 700; color: var(--color-primary); text-align: center; padding-bottom: 10px; }
.rcard__excerpt { font-size: 14.4px; line-height: 20.16px; font-weight: 500; color: var(--color-muted); text-align: center; margin: auto 15px 22px; }
.rcard__more { color: var(--color-primary); font-weight: 700; white-space: nowrap; }
.rcard__more::before { content: "… "; color: var(--color-muted); }
.rcard:hover .rcard__more { text-decoration: underline; }

/* Detail referencie */
.ref-body { font-size: 14px; line-height: 23.8px; color: var(--color-text); }
.ref-body p { padding-bottom: 14px; }
.ref-body ul, .ref-body ol { margin: 0 0 23px; padding-left: 14px; }
.ref-body > p:last-child { padding-bottom: 0; }
.ref-body li { line-height: 26px; }
/* Odkazy v texte referencie boli fialove (#c084fc - odtien sluzby AI), takze detail
   referencie vyzeral ako z ineho webu. Zjednotene s hlavnym webom (znackova cervena
   --color-primary, rovnako ako odkazy v pravnych textoch a v kartach) - pripomienka
   20260918-060753-8cb3c4a9, odpoved majitela (b): len farby zosuladit, text a
   rozlozenie nechat. */
.ref-body a { color: var(--color-primary); font-weight: 700; }
.ref-body a:hover { color: var(--color-text); }
.ref-body h2, .ref-body h3 { font-size: 20.8px; line-height: 1.3; padding: 10px 0; }
.ref-body img { max-width: 100%; height: auto; border-radius: 3px; margin: 10px 0; }
.ref-body figure { margin: 0; }
.ref-figure { margin-top: 72px; display: flex; justify-content: flex-end; }
.ref-figure img { width: 700px; max-width: 100%; height: auto; border-radius: 3px; }
.ref-nav { display: flex; justify-content: space-between; gap: 16px; margin-top: 54px; font-size: 15px; font-weight: 600; line-height: 1.4; }
.ref-nav a {
  display: inline-flex; align-items: center; gap: 8px;
  max-width: 46%;
  padding: 11px 18px;
  border: 1px solid var(--glass-border, rgba(255, 255, 255, .12));
  border-radius: 999px;
  background: var(--glass-sheen), var(--glass-tint);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  box-shadow: var(--glass-shadow);
  color: var(--color-primary);
  transition: color .15s ease, background .15s ease, transform .15s ease;
}
.ref-nav a:hover { color: #fff; background: var(--color-primary); transform: translateY(-1px); }
.ref-nav__next { margin-left: auto; text-align: right; }
/* Detail referencie: original ma pod navigaciou 31px navyse a kazdy dalsi H2 o 45px vyssi (prazdny riadok) */
.hero--ref .ref-nav { margin-bottom: 31px; }
.hero--ref ~ .why-us h2, .hero--ref ~ .references h2 { padding-top: 45px; }

/* Kontakt */
.contact-layout { display: flex; gap: 30px; align-items: flex-start; }
.form-card { flex: 1 1 822px; min-width: 0; padding: 45px; background: rgba(99, 99, 99, .16); border: 1px solid var(--color-card-border); border-radius: var(--radius-card); }
.form-card h2 { font-size: 28.8px; line-height: 1; text-align: center; padding-bottom: 10px; margin-bottom: 30px; }
.f-row { display: flex; gap: 15px; margin-bottom: 15px; }
.f-input, .l-input {
  flex: 1 1 0; width: 100%; min-width: 0; height: 50px; margin: 0;
  padding: 16px; border: 0; border-radius: 7px;
  background: rgba(0, 0, 0, .6);
  font: 400 14px/1 var(--font); color: var(--color-text);
  outline: none;
}
.f-input::placeholder { color: var(--color-text); opacity: 1; }
.f-input:focus { box-shadow: 0 0 0 1px var(--color-primary); }
.f-textarea, .l-textarea { height: 150px; line-height: 1.4; resize: vertical; }
.f-consent { display: flex; gap: 10px; align-items: flex-start; margin: 22px 0 14px; font-size: 14px; line-height: 23.8px; color: var(--color-text); text-transform: none; letter-spacing: 0; }
.f-consent input {
  appearance: none; -webkit-appearance: none;
  width: 20px; height: 20px; flex: none; margin: 2px 0 0; cursor: pointer;
  border: 1px solid rgba(255, 255, 255, .25); border-radius: 6px;
  background: rgba(255, 255, 255, .06);
  display: grid; place-content: center;
  transition: background .15s, border-color .15s;
}
.f-consent input::before {
  content: ""; width: 11px; height: 11px;
  clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
  background: #fff; transform: scale(0); transition: transform .12s;
}
.f-consent input:checked { background: var(--color-primary); border-color: var(--color-primary); }
.f-consent input:checked::before { transform: scale(1); }
.f-consent input:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 2px; }
.f-consent input:hover { border-color: rgba(255, 255, 255, .5); }
.f-consent a { color: var(--color-text); font-weight: 700; }
.f-bottom { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; flex-wrap: wrap; }
.f-required { font-size: 16px; line-height: 23.8px; color: var(--color-muted); }
.f-submit { display: flex; align-items: center; gap: 18px; }
.f-captcha { display: flex; align-items: center; margin: 0; font-size: 18px; line-height: 23.8px; color: var(--color-text); text-transform: none; letter-spacing: 0; }
.f-captcha__input, .l-captcha { width: 60px; flex: none; margin-left: 10px; }
.btn--form { height: 50px; border-width: 2px; padding: 0 25px 0 41px; }
.contact-side { flex: 0 0 538px; display: flex; flex-direction: column; gap: 30px; }
.side-card { padding: 25px; background: rgba(99, 99, 99, .16); border: 1px solid var(--color-card-border); border-radius: var(--radius-card); }
.side-card--contact { display: flex; flex-direction: column; gap: 24px; }
.side-card--contact .contact-box { margin: 0; }
.side-card__head { display: flex; align-items: center; gap: 3px; font-size: 16px; font-weight: 600; line-height: 23.8px; height: 31px; }
.side-card__head svg { width: 24px; height: 24px; }
.side-card__cols { display: flex; gap: 56px; margin-top: 10px; padding-top: 10px; }
.side-card__cols h3 { font-size: 17.6px; line-height: 1; padding-bottom: 10px; }
.side-card__cols p { font-size: 14.4px; line-height: 21.6px; font-weight: 300; color: var(--color-muted); }
.side-card__cols strong { font-weight: 700; }
.side-card__cols > p { margin-top: 6px; }
.side-card--note { display: flex; gap: 10px; align-items: flex-start; }

/* ---------- Glass: JEDNO pravidlo pre sklo na celom webe ----------
   Hlavicka ma to iste na .site-header__inner::before. Rozmery, radius a padding
   ostavaju v pravidlach komponentov - toto prebija len povrch (pozadie, farba
   okraja, blur, tien). Musi stat AZ ZA komponentmi: rovnaka specificita, vyhrava
   neskorsie. Hover stavy (.x:hover) maju vyssiu specificitu a ostavaju funkcne. */
.mega-menu,
.trust-band,
.svc-card,
.testimonial,
.icard,
.pcard,
.rcard,
.stats-card,
.faq-item,
.form-card,
.side-card {
  background: var(--glass-sheen), var(--glass-tint);
  border-color: var(--glass-border);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  box-shadow: var(--glass-shadow);
}
/* Zvyraznena cennikova karta ostava ruzova - len cez tint, povrch je stale sklo. */
.pcard--featured { --glass-tint: rgba(234, 13, 69, .16); border-color: rgba(234, 13, 69, .22); }
.side-card--note svg { width: 16px; height: 16px; flex: none; margin-top: 5px; color: var(--color-primary); }
.side-card--note p { font-size: 14px; font-weight: 500; line-height: 26px; color: var(--color-text); }

/* Staršie svetlé stránky originálu (VOP, GDPR, objednávka, blog, podpora predaja) */
.legacy { position: relative; background: #f1f1f1; color: #444; padding: 54px 0; }
.legacy .container { padding-top: 55px; }
.legacy h1 { font-size: 40px; line-height: 1; color: #444; text-align: center; padding-bottom: 10px; }
/* breadcrumb originalu: Home > <nazov stranky> (nazov je biely - na svetlom pozadi neviditelny, 1:1) */
.crumbs { display: flex; justify-content: center; align-items: center; font-size: 14px; line-height: 26px; margin-top: -7px; }
.crumbs a { color: #d64343; }
.crumbs__sep { width: 13px; height: 13px; color: var(--color-text); }
.crumbs__sep svg { width: 13px; height: 13px; display: block; }
.crumbs__cur { color: var(--color-text); }
.legacy__body { margin-top: 70px; font-size: 14px; line-height: 23.8px; color: #444; }
.legacy__body p { padding-bottom: 14px; }
.legacy__body > p:last-child { padding-bottom: 0; }
.legacy__body h2 { font-size: 23px; line-height: 48.3px; color: var(--color-primary); padding-bottom: 10px; }
.legacy__body h3 { font-size: 21px; line-height: 1.5; color: #222; padding-bottom: 10px; }
.legacy__body ul, .legacy__body ol { margin: 0 0 14px; padding-left: 20px; }
.legacy__body li { line-height: 26px; }
.legacy__body strong { color: #222; }
.legacy__body a { color: #d64343; font-weight: 700; }
.wave--legacy-top { top: 0; height: 40px; background-size: 100% 40px; transform: scaleY(-1); background-image: url("data:image/svg+xml;utf8,%3Csvg preserveAspectRatio='none' width='100%25' height='140px' viewBox='0 0 1280 140' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23ffffff'%3E%3Cpath d='M853.893,86.998c-38.859,0-58.811-16.455-77.956-35.051c18.295-10.536,40.891-18.276,73.378-18.276 c38.685,0,64.132,12.564,85.489,28.347C916.192,72.012,900.8,86.998,853.893,86.998z M526.265,80.945 c-6.517-0.562-13.599-0.879-21.41-0.879c-70.799,0-91.337,27.229-134.433,35.662c14.901,3.72,32.118,6.07,52.898,6.07 C470.171,121.797,500.34,103.421,526.265,80.945z' fill-opacity='.3' /%3E%3Cpath d='M663.458,109.671c-67.137,0-80.345-23.824-137.193-28.726C567.086,45.555,597.381,0,665.691,0 c61.857,0,85.369,27.782,110.246,51.947C736.888,74.434,717.459,109.671,663.458,109.671z M217.68,94.163 c55.971,0,62.526,24.026,126.337,24.026c9.858,0,18.508-0.916,26.404-2.461c-57.186-14.278-80.177-48.808-138.659-48.808 c-77.063,0-99.96,48.569-151.751,48.569c-40.006,0-60.008-12.206-80.011-29.506v16.806c20.003,10.891,40.005,21.782,80.011,21.782 C160.014,124.57,158.608,94.163,217.68,94.163z M1200.112,46.292c-57.493,0-56.935,46.595-115.015,46.595 c-53.612,0-59.755-39.618-115.602-39.618c-15.267,0-25.381,3.751-34.69,8.749c36.096,26.675,60.503,62.552,117.342,62.552 c69.249,0,75.951-43.559,147.964-43.559c39.804,0,59.986,10.943,79.888,21.777V85.982 C1260.097,68.771,1239.916,46.292,1200.112,46.292z' fill-opacity='.5' /%3E%3Cpath d='M1052.147,124.57c-56.84,0-81.247-35.876-117.342-62.552c-18.613,9.994-34.005,24.98-80.912,24.98 c-38.859,0-58.811-16.455-77.956-35.051c-39.05,22.487-58.479,57.724-112.48,57.724c-67.137,0-80.345-23.824-137.193-28.726 c-25.925,22.475-56.093,40.852-102.946,40.852c-20.779,0-37.996-2.349-52.898-6.07c-7.895,1.545-16.546,2.461-26.404,2.461 c-63.811,0-70.366-24.026-126.337-24.026c-59.072,0-57.665,30.407-137.669,30.407c-40.006,0-60.008-10.891-80.011-21.782V140h1280 v-37.212c-19.903-10.835-40.084-21.777-79.888-21.777C1128.098,81.011,1121.397,124.57,1052.147,124.57z' /%3E%3C/g%3E%3C/svg%3E"); }
.wave--legacy-bottom { bottom: 0; height: 40px; background-size: 100% 40px; transform: scaleX(-1); background-image: url("data:image/svg+xml;utf8,%3Csvg preserveAspectRatio='none' width='100%25' height='140px' viewBox='0 0 1280 140' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23ffffff'%3E%3Cpath d='M853.893,86.998c-38.859,0-58.811-16.455-77.956-35.051c18.295-10.536,40.891-18.276,73.378-18.276 c38.685,0,64.132,12.564,85.489,28.347C916.192,72.012,900.8,86.998,853.893,86.998z M526.265,80.945 c-6.517-0.562-13.599-0.879-21.41-0.879c-70.799,0-91.337,27.229-134.433,35.662c14.901,3.72,32.118,6.07,52.898,6.07 C470.171,121.797,500.34,103.421,526.265,80.945z' fill-opacity='.3' /%3E%3Cpath d='M663.458,109.671c-67.137,0-80.345-23.824-137.193-28.726C567.086,45.555,597.381,0,665.691,0 c61.857,0,85.369,27.782,110.246,51.947C736.888,74.434,717.459,109.671,663.458,109.671z M217.68,94.163 c55.971,0,62.526,24.026,126.337,24.026c9.858,0,18.508-0.916,26.404-2.461c-57.186-14.278-80.177-48.808-138.659-48.808 c-77.063,0-99.96,48.569-151.751,48.569c-40.006,0-60.008-12.206-80.011-29.506v16.806c20.003,10.891,40.005,21.782,80.011,21.782 C160.014,124.57,158.608,94.163,217.68,94.163z M1200.112,46.292c-57.493,0-56.935,46.595-115.015,46.595 c-53.612,0-59.755-39.618-115.602-39.618c-15.267,0-25.381,3.751-34.69,8.749c36.096,26.675,60.503,62.552,117.342,62.552 c69.249,0,75.951-43.559,147.964-43.559c39.804,0,59.986,10.943,79.888,21.777V85.982 C1260.097,68.771,1239.916,46.292,1200.112,46.292z' fill-opacity='.5' /%3E%3Cpath d='M1052.147,124.57c-56.84,0-81.247-35.876-117.342-62.552c-18.613,9.994-34.005,24.98-80.912,24.98 c-38.859,0-58.811-16.455-77.956-35.051c-39.05,22.487-58.479,57.724-112.48,57.724c-67.137,0-80.345-23.824-137.193-28.726 c-25.925,22.475-56.093,40.852-102.946,40.852c-20.779,0-37.996-2.349-52.898-6.07c-7.895,1.545-16.546,2.461-26.404,2.461 c-63.811,0-70.366-24.026-126.337-24.026c-59.072,0-57.665,30.407-137.669,30.407c-40.006,0-60.008-10.891-80.011-21.782V140h1280 v-37.212c-19.903-10.835-40.084-21.777-79.888-21.777C1128.098,81.011,1121.397,124.57,1052.147,124.57z' /%3E%3C/g%3E%3C/svg%3E"); }
.legacy-partners { position: relative; background: #fff; padding: 31px 0 54px; }
.legacy-partners h3 { font-size: 21px; font-weight: 600; line-height: 1; color: #000; margin-top: 38px; padding-bottom: 10px; }
.wave--partners { bottom: 0; height: 42px; background-size: 100% 42px; transform: scaleX(-1); background-image: url("data:image/svg+xml;utf8,%3Csvg preserveAspectRatio='none' width='100%25' height='140px' viewBox='0 0 1280 140' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%2360a5fa'%3E%3Cpath d='M853.893,86.998c-38.859,0-58.811-16.455-77.956-35.051c18.295-10.536,40.891-18.276,73.378-18.276 c38.685,0,64.132,12.564,85.489,28.347C916.192,72.012,900.8,86.998,853.893,86.998z M526.265,80.945 c-6.517-0.562-13.599-0.879-21.41-0.879c-70.799,0-91.337,27.229-134.433,35.662c14.901,3.72,32.118,6.07,52.898,6.07 C470.171,121.797,500.34,103.421,526.265,80.945z' fill-opacity='.3' /%3E%3Cpath d='M663.458,109.671c-67.137,0-80.345-23.824-137.193-28.726C567.086,45.555,597.381,0,665.691,0 c61.857,0,85.369,27.782,110.246,51.947C736.888,74.434,717.459,109.671,663.458,109.671z M217.68,94.163 c55.971,0,62.526,24.026,126.337,24.026c9.858,0,18.508-0.916,26.404-2.461c-57.186-14.278-80.177-48.808-138.659-48.808 c-77.063,0-99.96,48.569-151.751,48.569c-40.006,0-60.008-12.206-80.011-29.506v16.806c20.003,10.891,40.005,21.782,80.011,21.782 C160.014,124.57,158.608,94.163,217.68,94.163z M1200.112,46.292c-57.493,0-56.935,46.595-115.015,46.595 c-53.612,0-59.755-39.618-115.602-39.618c-15.267,0-25.381,3.751-34.69,8.749c36.096,26.675,60.503,62.552,117.342,62.552 c69.249,0,75.951-43.559,147.964-43.559c39.804,0,59.986,10.943,79.888,21.777V85.982 C1260.097,68.771,1239.916,46.292,1200.112,46.292z' fill-opacity='.5' /%3E%3Cpath d='M1052.147,124.57c-56.84,0-81.247-35.876-117.342-62.552c-18.613,9.994-34.005,24.98-80.912,24.98 c-38.859,0-58.811-16.455-77.956-35.051c-39.05,22.487-58.479,57.724-112.48,57.724c-67.137,0-80.345-23.824-137.193-28.726 c-25.925,22.475-56.093,40.852-102.946,40.852c-20.779,0-37.996-2.349-52.898-6.07c-7.895,1.545-16.546,2.461-26.404,2.461 c-63.811,0-70.366-24.026-126.337-24.026c-59.072,0-57.665,30.407-137.669,30.407c-40.006,0-60.008-10.891-80.011-21.782V140h1280 v-37.212c-19.903-10.835-40.084-21.777-79.888-21.777C1128.098,81.011,1121.397,124.57,1052.147,124.57z' /%3E%3C/g%3E%3C/svg%3E"); }
.legacy--dark { background: rgba(0, 0, 0, .08); color: var(--color-text); }
.legacy--dark h1 { color: var(--color-text); }
.legacy--dark .legacy__body { margin-top: 102px; color: var(--color-text); }

/* Právne stránky (VOP, GDPR) - na žiadosť užívateľa zosúladené s tmavým dizajnom
   webu namiesto svetlej Divi sekcie originálu (zámerná odchýlka od 1:1 kópie). */
.legacy--legal { background: var(--color-bg); color: var(--color-muted); }
.legacy--legal h1 { color: var(--color-text); }
.legacy--legal .crumbs a { color: var(--color-primary); }
.legacy--legal .crumbs__sep, .legacy--legal .crumbs__cur { color: var(--color-muted); }
.legacy--legal .legacy__body { color: var(--color-muted); }
.legacy--legal .legacy__body h2 { color: var(--color-primary); }
.legacy--legal .legacy__body h3 { color: var(--color-text); }
.legacy--legal .legacy__body strong { color: var(--color-text); }
.legacy--legal .legacy__body a { color: var(--color-primary); }
.legacy--legal .wave--legacy-top, .legacy--legal .wave--legacy-bottom { display: none; }
.legacy--center .legacy__body { max-width: 1080px; margin-left: auto; margin-right: auto; text-align: center; }
/* VOP (pripomienka 20260919-172430-f5bba1fc): rovnaky 1080px blok ako OOU, na stred len nadpisy, odseky a zoznamy ostavaju vlavo */
.legacy--center-heads .legacy__body { max-width: 1080px; margin-left: auto; margin-right: auto; }
.legacy--center-heads .legacy__body h2, .legacy--center-heads .legacy__body h3 { text-align: center; }
.legal-contact { display: flex; justify-content: center; flex-wrap: wrap; gap: 24px 56px; margin-top: 34px; }
.legal-contact__item { display: flex; align-items: center; gap: 14px; text-align: left; padding-bottom: 0; }
.legal-contact__item svg { width: 24px; height: 24px; flex: none; color: var(--color-primary); }
.legacy--legal .legal-contact__item a { font-size: 16px; }
.pp-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.pp-card { height: 80px; padding: 20px; background: #fff; border-radius: 10px; overflow: hidden; }
.pp-card h2 { font-size: 16px; font-weight: 500; line-height: 1.3; color: var(--color-primary); text-align: center; padding: 0 0 13px; }
.pp-card a { color: #000; font-weight: 700; }
.pp-card a:hover { color: var(--color-primary); }
.pp-nav { display: flex; justify-content: space-between; gap: 24px; margin-top: 27px; font-size: 18px; font-weight: 700; line-height: 1.6; }
.pp-nav a { color: #d64343; }
.pp-nav__next { margin-left: auto; }
.legacy--narrow .legacy__body { max-width: 1080px; margin-left: auto; margin-right: auto; }
.legacy--narrow .legacy__body h2 { font-size: 36.8px; line-height: 1.28; }
.legacy-back { padding-top: 14px; }
.btn-legacy { display: inline-block; font-weight: 500; color: var(--color-text); border-radius: 3px; border: 0; cursor: pointer; font-family: var(--font); transition: filter .2s ease; }
.btn-legacy:hover { filter: brightness(1.08); }
.btn-legacy--purple { background: #c084fc; font-size: 18px; line-height: 27px; padding: 8px 15px; }
.btn-legacy--blue { background: #60a5fa; font-size: 22px; line-height: 31px; padding: 20px 24px; }
.btn-legacy--red { background: #d64343; color: #f1f1f1; font-size: 20px; width: 114px; height: 50px; margin-left: 18px; border-radius: 0; }
.legacy-cta { background: #c084fc; padding: 45px 0 54px; }
.legacy-cta .container { max-width: calc(1080px + 48px); display: flex; justify-content: space-between; align-items: center; gap: 30px; }
.legacy-cta h3 { font-size: 21px; font-weight: 500; line-height: 1.5; color: var(--color-text); }
.legacy-form { max-width: 1390px; padding-bottom: 59px; }
.l-input { background: #fff; border: 1px solid #ddd; border-radius: 0; color: #444; font-weight: 700; }
.l-input::placeholder { color: #444; opacity: 1; }
.legacy-form__bottom { display: flex; justify-content: flex-end; align-items: center; }
.legacy-form .f-captcha { color: #444; font-size: 14px; }
/* Tmavy variant objednavky (/nezavazna-objednavka/ s .legacy--legal): polia ako v kontaktnom formulari */
.legacy--legal .l-input { background: rgba(0, 0, 0, .6); border: 1px solid var(--color-card-border); border-radius: 7px; color: var(--color-text); font-weight: 400; }
.legacy--legal .l-input::placeholder { color: var(--color-text); opacity: 1; }
.legacy--legal .l-input:focus { box-shadow: 0 0 0 1px var(--color-primary); }
.legacy--legal .legacy-form .f-captcha { color: var(--color-muted); }
.legacy--legal .btn-legacy--red { border-radius: 7px; }

/* Responzívnosť podstránok */
@media (max-width: 1100px) {
  .icard, .pcard { flex-basis: calc(50% - var(--gap, 30px)); }
  .contact-side { flex: 1 1 auto; }
  .contact-layout { flex-direction: column; }
}
@media (max-width: 980px) {
  .why-us__grid { grid-template-columns: 1fr; gap: 40px; }
  .why-us__side { padding-top: 0; }
  .why-feats { grid-template-columns: 1fr 1fr; }
  .rcard { flex-basis: calc((100% - 24px) / 2); }
  .svc-grid--auto { flex-wrap: wrap; justify-content: center; }
  .pp-grid { grid-template-columns: 1fr 1fr; }
  .legacy-cta .container { flex-direction: column; text-align: center; }
  .hero--back .hero__inner, .hero--svc .hero__inner { padding-top: 56px; }
}
@media (max-width: 560px) {
  .icard, .pcard { flex-basis: 100%; }
  .rcard { flex-basis: 100%; }
  .why-feats { grid-template-columns: 1fr; }
  .stats-card { grid-template-columns: 1fr; gap: 20px; }
  .f-row, .legacy-form .f-row { flex-direction: column; gap: 15px; }
  .f-bottom { flex-direction: column; align-items: flex-start; }
  .form-card { padding: 28px 20px; }
  .side-card__cols { flex-direction: column; gap: 14px; }
  .pp-grid { grid-template-columns: 1fr; }
  .legacy h1 { font-size: 30px; }
  .why-us { padding: 70px 16px; }
  .pcard__badge { position: static; display: block; margin-bottom: 8px; }
}

/* ---------- Scroll reveal ---------- */
.reveal { opacity: 0; transform: translateY(24px); transition: opacity .6s ease, transform .6s ease; }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; transition: none; } }

/* ---------- Responzívnosť ---------- */
@media (max-width: 1280px) {
  .svc-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 980px) {
  #aio-site-bg { height: 100vh; }
  #aio-site-bg .aio-us-scene { transform: translateX(-50%) scale(1.1); }
  h1, .hero h1, .page-hero h1 { font-size: 34px; }
  h2 { font-size: 30px; }
  .hero__inner { padding-top: 56px; }
  .hero__actions { margin-bottom: 64px; }
  .svc-grid { grid-template-columns: repeat(2, 1fr); }
  .references__grid { grid-template-columns: 1fr 1fr; }
  .references__head { flex-direction: column; align-items: flex-start; gap: 12px; }
  .footer-cols { grid-template-columns: 1fr 1fr; gap: 40px; }
  .contact-grid { grid-template-columns: 1fr; }
  .cards-grid--refs-teaser, .references-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 820px) {
  .site-header { padding: 10px 10px 10px; }
  .site-header__inner { position: static; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0 18px; }
  /* __inner je na mobile static, takze pilulka ::before aj panel menu sa pripinaju
     na .site-header (fixed). inset:0 by pokryl cely padding-box (pilulka az po
     okraj okna) - inset kopiruje padding hlavicky, aby bola pilulka 10px od okrajov. */
  .site-header__inner::before { inset: 10px; }
  /* Panel sa pripina na .site-header (nie na flexovy __inner, kde by mu
     staticka pozicia zuzila sirku na obsah). */
  .main-nav {
    display: none;
    position: absolute;
    top: calc(100% + 8px); left: 10px; right: auto; width: calc(100% - 20px);
    background: rgba(6, 7, 12, .96);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid var(--color-card-border);
    border-radius: 20px;
    padding: 16px 20px 24px;
    box-shadow: 0 12px 24px rgba(0, 0, 0, .5);
    z-index: 90;
  }
  .main-nav.is-open { display: block; }
  .main-nav ul { flex-direction: column; align-items: stretch; gap: 0; }
  /* Rozbalene menu na telefone: vacsie pismo a polozky na stred
     (pripomienka 20260920-172140-5a94781c). */
  .main-nav__link { padding: 14px 0; font-size: 20px; line-height: 24px; text-align: center; }
  .main-nav__caret svg { width: 14px; height: 14px; }
  .menu-toggle { display: inline-flex; align-items: center; justify-content: center; }
  /* Popis MENU pri hamburgeri na telefone citatelnejsi
     (pripomienka 20260920-203523-024bad31, este vacsi: 20260920-210127-9b920b3e,
     a este vacsi: 20260920-210919-9fedc3f3, potom o 2px mensi:
     20260920-212219-300776f8, a este o 2px mensi: 20260920-213449-bb81308e).
     Hamburger ikona o 2px mensia (pripomienka 20260920-214441-d54e9072,
     este o 2px mensia: 20260920-215200-f7434c5d). */
  .menu-toggle svg { width: 30px; height: 30px; }
  .menu-toggle__label { font-size: 18px; }
  .mega-menu {
    position: static; min-width: 0; transform: none; box-shadow: none; border: 0;
    background: transparent; backdrop-filter: none; -webkit-backdrop-filter: none;
    width: 100%; padding: 0 0 8px; display: none;
  }
  .main-nav li.has-dropdown.is-open .mega-menu { display: block; opacity: 1; visibility: visible; pointer-events: auto; transform: none; }
  .mega-menu__inner { flex-direction: column; gap: 2px; }
  /* desktopove flex: 1 1 220px by sa v stlpci stalo zakladom VYSKY (220px na polozku) */
  .mega-menu__item { flex: none; justify-content: center; font-size: 17px; padding: 12px 18px; }
}
@media (max-width: 560px) {
  .site-header { padding: 10px 10px 10px; }
  :root { --header-offset: 92px; }
  .hero h1, .page-hero h1 { font-size: 28px; }
  .hero__inner { padding-top: 40px; }
  .btn { height: 44px; font-size: 15px; }
  /* Az PO .btn, inak by generickych 44px prebilo vysku CTA v hlavicke
     a tlacidlo by presahovalo pilulku. Kruhove ikonove tlacidlo 38x38. */
  .header-cta .header-cta-text { display: none; }
  .header-cta { width: 38px; height: 38px; padding: 0; gap: 0; }
  .header-cta svg { width: 16px; height: 16px; }
  /* Na uzkych mobiloch sa do pilulky uz nezmestia - cislo aj mail su v paticke a na /kontakt/. */
  .header-contact { display: none; }
  /* Dlhy text v pilulke (domov2) sa na mobile zalamuje na viac riadkov - pevna
     vyska 28px + line-height 1 ho vytlacila cez okraj. Vyska podla obsahu. */
  .hero-badge { height: auto; min-height: 28px; padding: 6px 12px 6px 10px; line-height: 1.35; text-align: center; }
  .hero-badge svg { width: 20px; height: 20px; flex-shrink: 0; }
  /* Ikona ostava vlavo, viacriadkovy text sa centruje v zvysku pilulky
     (pripomienka 20260920-172222-544be09c). */
  .hero-badge span { flex: 1 1 auto; text-align: center; }
  .svc-grid, .references__grid, .footer-cols, .cards-grid--refs-teaser, .references-grid { grid-template-columns: 1fr; }
  .footer-bar { flex-direction: column; align-items: flex-start; }
  .footer-bar__right { text-align: left; }
  /* Telefon: vacsie loga (pripomienka 20260920-181342-8a12762b, nahradza
     uzsie 140/56 z 20260920-172253) - cca 2 loga naraz, rychlejsi posun. */
  .marquee__slide { width: 200px; height: 84px; }
  .marquee__slide img { height: 80px; }
  .marquee__track { animation-duration: 16s; }
  @keyframes marquee { to { transform: translateX(calc(-200px * 5)); } }
  /* Rovnaka medzera nad aj pod logami (pripomienka 20260920-200051-d323cd1e:
     povodnych 28px hore vs. 20px dole posobilo nesymetricky). */
  .trust-band { padding-top: 20px; }
  .cta-form { padding: 40px 20px; }
}

/* Späť na začiatok - vlastný dizajn (nie 1:1 z originálu, na žiadosť užívateľa): okrúhle primary tlačidlo ako ostatné CTA */
.scroll-top {
  position: fixed;
  right: 24px;
  bottom: 24px;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-primary);
  border: 0;
  border-radius: 100px;
  box-shadow: 0 8px 24px rgba(234, 13, 69, .35);
  color: #fff;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity .2s ease, transform .2s ease, visibility .2s, background .2s ease;
  z-index: 99999;
}
.scroll-top.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.scroll-top:hover { background: var(--color-primary-dark); }
.scroll-top svg { width: 18px; height: 18px; transform: rotate(-90deg); }
@media (max-width: 560px) { .scroll-top { right: 16px; bottom: 16px; width: 44px; height: 44px; } }

/* ---- Domov2 (variant hlavnej stranky na rozhodnutie) - pouziva len /domov2/ ----
   Vsetko ostatne na tej stranke su existujuce bloky (hero, icard, pcard, faq...). */
.d2-facts { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin: -6px 0 34px; }
.d2-fact { display: inline-flex; align-items: center; gap: 8px; height: 34px; padding: 0 16px; border-radius: 100px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .18); color: var(--color-text); font-size: 14px; font-weight: 500; }
.d2-fact svg { width: 15px; height: 15px; flex: none; color: var(--color-primary); }
/* Od 26.9.2026 je v pase osem poloziek (pripomienka 20260926-123959-9b3d5044).
   Na uzkom displeji ma kazda vlastny riadok (texty su dlhe, dve sa vedla seba
   nezmestia) a pas by meral cez 350px - tlacidla by spadli pod prehyb. Preto sa
   tu pilulky zmensia a stracaju ramcek aj pozadie: zostane citatelny zoznam
   s ikonou, ktory zabera zlomok vysky. */
@media (max-width: 560px) {
  /* Pilulky zostavaju pilulkami aj na mobile - pripomienka 20260927-172720-24c97c9b
     ("na telefone maju iny dizajn"). Predtym tu stracali pozadie, ramcek aj
     zaoblenie a menili sa na holy zoznam, takze mobil vyzeral ako iny web.
     Dovod toho riesenia (zmestit osem poloziek nad prehyb) je splneny aj takto:
     mensie pismo, nizsie pilulky a tesnejsie medzery - pas je stale kratsi nez
     povodnych 8 samostatnych riadkov s plnou velkostou. */
  .d2-facts { gap: 5px; margin-bottom: 22px; }
  .d2-fact {
    height: auto; min-height: 24px; padding: 2px 9px; font-size: 11.5px; gap: 5px;
    line-height: 1.25;
  }
  .d2-fact svg { width: 12px; height: 12px; }
}
/* Najuzsie displeje (do 380px): dve pilulky vedla seba. Pri jednej na riadok
   by pas mal osem riadkov a tlacidla by spadli pod prehyb - to bol povodny
   dovod, preco tu pilulky vobec nemali ramcek. Mriezka to riesi bez toho,
   aby sa menil ich vzhlad. */
@media (max-width: 380px) {
  .d2-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; }
  .d2-fact { justify-content: center; text-align: center; }
}
/* Nadpis a odseky su na strede - zjednocuje vzhlad so zvyskom stranky, kde
   su vsetky sekcne nadpisy tiez centrovane. .check-list riadky su vlastny
   flex box s ikonou vlavo od textu (.check-list li{display:flex}), takze
   text-align na rodicovi ich neovplyvnuje - zostavaju zarovnane od lavého
   okraja aj v centrovanej karte, co je pre citatelnost zoznamu spravne. */
.d2-path { display: flex; flex-direction: column; gap: 14px; text-align: center; }
.d2-path h3 { font-size: 24px; line-height: 1.2; padding-bottom: 4px; }
.d2-path p { margin: 0; }
.d2-path .check-list { margin-top: 4px; text-align: left; }
.d2-path .btn { align-self: center; margin-top: 10px; }
.d2-center { text-align: center; }
.d2-cards-center { justify-content: center; }
.d2-statement { max-width: 900px; margin: 0 auto; text-align: center; font-size: 32px; line-height: 1.3; font-weight: 600; color: var(--color-text); }
.d2-statement__accent { color: var(--color-primary); }
.d2-lead { max-width: 820px; margin: 18px auto 0; text-align: center; font-size: 16px; line-height: 1.55; color: var(--color-muted); }
.d2-actions { margin: 40px 0 0; }
/* Domov2 hero: medzi faktami a tlacidlami je 34px, pod tlacidlami vsak
   dedenych 101px z .hero__actions - opticky to vyzera ako "spadnute" nizsie.
   Zjednotene na 56px hore aj dole. Cielene cez :has(.d2-facts), lebo
   .hero__actions pouzivaju aj home, cennik a vsetky podpora-predaja
   stranky, kde je rozostup spravny (tam nad tlacidlami ziadne fakty nie su). */
.hero__inner:has(.d2-facts) .d2-facts { margin-bottom: 56px; }
.hero__inner:has(.d2-facts) .hero__actions { margin-bottom: 56px; }
/* Domov3: H1 o 2px vacsi nez spolocnych 46.4px (pripomienka 20260920-212532-554b13ca).
   Len na desktope - pod 980px platia mobilne velkosti z media queries nizsie. */
@media (min-width: 981px) {
  .hero h1.d3-h1 { font-size: 48.4px; }
}
/* Na mobile bol H1 uvodnej stranky prilis maly (34px / 28px zo spolocnych
   pravidiel nizsie) - pripomienka 20260923-070101-a39703d2. Zvacsene len pre
   .d3-h1 (uvodna stranka a /domov3/), nie plosne pre vsetky H1: ostatne
   podstranky maju dlhe nadpisy, ktore by sa pri tejto velkosti rozbili.
   Specificita .hero h1.d3-h1 (0,2,1) vyhrava nad .hero h1 bez ohladu na poradie. */
@media (max-width: 980px) {
  .hero h1.d3-h1 { font-size: 40px; }
}
@media (max-width: 560px) {
  .hero h1.d3-h1 { font-size: 34px; }
}
/* Zoznam nevyhod v karte "Ako to vyzeralo doteraz" - rovnaka struktura ako
   check-list vedla, ale tlmena farba ikony, aby sa nezamenil za zoznam vyhod. */
.d2-list-neg svg { color: var(--color-muted); opacity: .75; }

/* Sekcia "Kde je vas web teraz?" - dve cesty. Vlastne triedy, NIE zdielany
   .icard: tieto karty maju cislovanie, text vlavo a odkaz so sipkou. Zdielany
   .icard sa pouziva aj na inych strankach, preto sa nemeni. */
.d2-eyebrow { display: block; margin-bottom: 14px; font-size: 12px; font-weight: 700;
  letter-spacing: .18em; text-transform: uppercase; color: var(--color-primary); }
.d2-cesty-head { text-align: left; max-width: 560px; }
.d2-cesty-head h2 { margin: 0; }
.d2-cesty { display: flex; flex-wrap: wrap; gap: 30px; margin-top: 56px; }
.d2-cesta { flex: 1 1 420px; min-width: 0; display: flex; flex-direction: column;
  padding: 32px 34px; border-radius: var(--radius-card);
  border: 1px solid var(--color-card-border); background: rgba(99, 99, 99, .10); }
/* Prva karta je zvyraznena - cerveny ram a jemny prechod, ako na skici. */
.d2-cesta--hl { border-color: rgba(234, 13, 69, .55);
  background: linear-gradient(135deg, rgba(234, 13, 69, .10), rgba(99, 99, 99, .08) 60%); }
.d2-cesta__num { font-size: 13px; font-weight: 700; letter-spacing: .1em;
  color: var(--color-muted); margin-bottom: 10px; }
.d2-cesta--hl .d2-cesta__num { color: var(--color-primary); }
.d2-cesta h3 { margin: 0 0 14px; font-size: 26px; line-height: 1.2; }
.d2-cesta p { margin: 0 0 14px; font-size: 15.5px; line-height: 1.6; color: var(--color-text); }
.d2-cesta__sub { color: var(--color-muted) !important; font-size: 14.5px !important; }
/* margin-top:auto drzi odkaz na spodku, takze v oboch kartach je v rovnakej
   vyske aj ked maju rozne dlhy text. */
.d2-cesta__link { margin-top: auto; padding-top: 10px; display: inline-flex; align-items: center;
  gap: 10px; font-size: 15px; font-weight: 600; color: var(--color-text); text-decoration: none;
  transition: color .15s ease, gap .15s ease; }
.d2-cesta__link:hover { color: var(--color-primary); gap: 14px; }
@media (max-width: 860px) { .d2-cesta { flex: 1 1 100%; padding: 26px 24px; } }
/* Hlavicka "Dve cesty" je na desktope vlavo nad dvoma kartami vedla seba; na
   telefone su karty pod sebou a lavy nadpis posobil odsadene. Na stred, ako
   ostatne .sec__head. Musi stat AZ ZA .d2-cesty-head vyssie (rovnaka
   specificita). Pripomienky 20260920-195935-f2b1d835, 20260920-200106-d49e24ca. */
@media (max-width: 560px) { .d2-cesty-head { text-align: center; max-width: none; } }
/* Domov3: hlavicka "Dve cesty" na stred aj na desktope (pripomienky
   20260921-080643-93979d95, 20260921-080647-f9d5a49f) a namiesto textoveho
   odkazu so sipkou vyrazne tlacidlo .btn na stred karty (20260921-080721-101d7653).
   Musi stat AZ ZA .d2-cesty-head (rovnaka specificita). /domov2/ ostava bez zmeny. */
.d3-cesty-head { text-align: center; max-width: none; }
.d2-cesta .d3-cesta__btn { margin-top: auto; align-self: center; }
.d2-cesta:has(.d3-cesta__btn) .d2-cesta__sub { margin-bottom: 24px; }
/* Vlny okolo sekcie "Kde ste teraz?" - rovnaky motiv ako wave--why/legacy
   inde na webe. Vypln vlny ma farbu SUSEDNEJ sekcie (priehladne pozadie
   stranky), nie vlastnej - tak vlna "ukroji" z tmavej sekcie a prechod
   posobi prirodzene. Sekcia musi byt position:relative, inak by sa vlny
   ukotvili k inemu rodicovi. */
/* Sekcia musi mat vlastne, zretelne odlisne pozadie - .sec--dark je
   rgba(3,4,7,.75) nad pozadim #030407, cize takmer to iste a vlna by na nej
   zanikla (rovnaka poznamka ako pri --color-footer vyssie). */
.d2-waves { position: relative; overflow: hidden; background: #0d0718; padding-top: 104px; padding-bottom: 104px; }
.d2-waves > .container { position: relative; z-index: 2; }
.wave--d2-top, .wave--d2-bottom { height: 44px; background-size: 100% 44px; }
.wave--d2-top {
  top: 0;
  background-image: url("data:image/svg+xml;utf8,%3Csvg preserveAspectRatio='none' width='100%25' height='140px' viewBox='0 0 1280 140' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23030407'%3E%3Cpath d='M0,0v85.982c20.003,17.3,40.005,29.506,80.011,29.506c51.791,0,74.688-48.569,151.751-48.569 c58.482,0,81.473,34.531,138.66,48.808c43.096-8.432,63.634-35.662,134.433-35.662c7.812,0,14.893,0.318,21.41,0.879 C567.086,45.555,597.381,0,665.691,0c61.856,0,85.369,27.782,110.246,51.947c18.295-10.536,40.891-18.276,73.378-18.276 c38.685,0,64.132,12.564,85.489,28.348c9.309-4.998,19.423-8.749,34.69-8.749c55.846,0,61.99,39.617,115.602,39.617 c58.08,0,57.521-46.595,115.015-46.595c39.804,0,59.986,22.479,79.888,39.69V0H0z' /%3E%3C/g%3E%3C/svg%3E");
}
.wave--d2-bottom {
  bottom: 0; transform: scaleX(-1);
  background-image: url("data:image/svg+xml;utf8,%3Csvg preserveAspectRatio='none' width='100%25' height='140px' viewBox='0 0 1280 140' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23030407'%3E%3Cpath d='M1052.147,124.57c-56.84,0-81.247-35.876-117.342-62.552c-18.613,9.994-34.005,24.98-80.912,24.98 c-38.859,0-58.811-16.455-77.956-35.051c-39.05,22.487-58.479,57.724-112.48,57.724c-67.137,0-80.345-23.824-137.193-28.726 c-25.925,22.475-56.093,40.852-102.946,40.852c-20.779,0-37.996-2.349-52.898-6.07c-7.895,1.545-16.546,2.461-26.404,2.461 c-63.811,0-70.366-24.026-126.337-24.026c-59.072,0-57.665,30.407-137.669,30.407c-40.006,0-60.008-10.891-80.011-21.782V140h1280 v-37.212c-19.903-10.835-40.084-21.777-79.888-21.777C1128.098,81.011,1121.397,124.57,1052.147,124.57z' /%3E%3C/g%3E%3C/svg%3E");
}
/* Oddelenie sekcie ciarou. Sekcia je priehladna medzi dvoma tmavymi, takze
   samotne pozadie ju neodlisi - ciara hore aj dole ju vymedzi ako celok.
   Ciara je v sirke obsahu (::before/::after v containeri), nie cez cely
   viewport, aby ladila s mriezkou stranky. */
/* Vacsi odstup textu od ciar (pripomienka 165c4ae6): sekcia ma vlastny
   symetricky padding, ciary su 40px od okrajov sekcie, text 72px od ciar. */
.d2-sec-sep { padding: 112px 0; }
.d2-sec-sep > .container { position: relative; }
.d2-sec-sep > .container::before,
.d2-sec-sep > .container::after {
  content: ""; position: absolute; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.14) 20%, rgba(255,255,255,.14) 80%, transparent);
}
.d2-sec-sep > .container::before { top: -72px; }
.d2-sec-sep > .container::after  { bottom: -72px; }
/* Sekcia "Web vam odovzdali" ma pod kartami mensie odsadenie (pripomienka
   b45cc603) - nasleduje hned oddelovacia ciara sekcie d2-sec-sep. */
.d2-sec-tight { padding-bottom: 40px; }
/* Ked je v pricing riadku len JEDNA karta (Domov2 - na inych strankach su
   3-4), vyzera "stratena" na lavom okraji sirokej sekcie. Cielene len na
   tento pripad (:only-child), aby sa nezmenilo rozlozenie inde na webe. */
.cards-row--pricing:has(.pcard:only-child) { justify-content: center; }
@media (max-width: 640px) {
  .d2-statement { font-size: 24px; }
  .d2-path h3 { font-size: 20px; }
  .d2-sec-sep { padding: 88px 0; }
  .d2-sec-sep > .container::before { top: -48px; }
  .d2-sec-sep > .container::after  { bottom: -48px; }
}
/* Domov3: sekcia "Jeden partner" ma fotku na pozadi s tmavym prekrytim
   (pripomienka 20260921-081013-66c0eb18). Obal .d3-partner-bg je len na tejto
   stranke, block_cards_section() ani .sec--dark sa nemenia. Prekrytie je
   gradientom NAD fotkou (viacnasobne pozadie), aby text a karty ostali citatelne;
   pri okrajoch je tmavsie, aby sekcia plynulo nadvazovala na susedne sekcie.
   Pod 640px sa nacita uzsia orezana verzia fotky (960px), nie 1920px. */
.d3-partner-bg > .sec--dark {
  background:
    linear-gradient(180deg, rgba(3, 4, 7, .92) 0%, rgba(3, 4, 7, .78) 30%, rgba(3, 4, 7, .78) 70%, rgba(3, 4, 7, .92) 100%),
    url("/assets/images/bg/partner-1920.jpg") center / cover no-repeat;
}
@media (max-width: 640px) {
  .d3-partner-bg > .sec--dark { background-image: linear-gradient(180deg, rgba(3, 4, 7, .92), rgba(3, 4, 7, .8) 30%, rgba(3, 4, 7, .8) 70%, rgba(3, 4, 7, .92)), url("/assets/images/bg/partner-960.jpg"); }
}

/* ---------------------------------------------------------------------------
   Citatelnost beznych textov (pripomienka 20260919-205209-d8dcb19c).
   Cielova skupina su starsi ludia, 14/14.4px bolo prilis male.

   ZAMERNE len POPISNE ODSEKY. Rovnaku velkost maju aj prvky s pevnou vyskou
   (.header-cta 28px, .pcard__badge, .why-us__pill, .check-list li, .d2-fact,
   .f-consent) - tam by vacsie pismo text orezalo alebo rozbilo vysku, preto
   ostavaju nezmenene (rozhodnutie majitela 20.9.2026).
   --------------------------------------------------------------------------- */
.svc-card p,
.icard p,
.why-feat p,
.pcard__tag,
.ref-item__desc,
.rcard__excerpt,
.faq-item__body,
.ref-body {
  font-size: 15.5px;
  line-height: 1.6;
}

/* Hero podnadpis na /domov2/ - prva veta je vyclenena nad popisny text, aby
   vynikla ako hlavne posolstvo (pripomienka 20260919-204405-12fe7bb4).
   Vacsie a svetlejsie pismo nez .hero__sub, ktory zostava popisom pod nou. */
.hero__lead {
  max-width: 760px;
  margin: 0 auto 14px;
  font-size: 21px;
  line-height: 1.45;
  font-weight: 600;
  color: var(--color-text);
}
@media (max-width: 640px) { .hero__lead { font-size: 18px; } }

/* ==========================================================================
   Popup dopytovy formular ("Ziskat ponuku" v hlavicke)
   Pripomienka 20260920-175818-612b8328 (odpoved a) - CTA uz nevedie na
   samostatnu stranku, ale otvara modal nad aktualnou strankou.
   Zobrazenie riadi VYLUCNE atribut [hidden] na .dopyt-modal - preto tu nie je
   ziadne konkurencne `display` pravidlo na triede .dopyt-modal, ktore by nad
   [hidden] vyhralo specificitou a modal by zostal viditelny.
   ========================================================================== */
.dopyt-modal { position: fixed; inset: 0; z-index: 2000; display: flex; align-items: flex-start; justify-content: center; padding: 24px 16px; overflow-y: auto; }
.dopyt-modal[hidden] { display: none; }
.dopyt-modal__backdrop { position: fixed; inset: 0; background: rgba(3, 4, 7, .78); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); border: 0; }
.dopyt-modal__dialog {
  position: relative;
  width: 100%;
  max-width: 640px;
  margin: auto;
  padding: 40px 40px 34px;
  background: #0d1017;
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-card);
  box-shadow: 0 30px 80px rgba(0, 0, 0, .6);
}
.dopyt-modal__dialog h2 { font-size: 28.8px; line-height: 1.15; text-align: center; margin-bottom: 8px; }
.dopyt-modal__lead { text-align: center; color: var(--color-muted); font-size: 16px; line-height: 1.5; margin-bottom: 26px; }
/* Reset natívneho vzhľadu <button> - .dopyt-modal__close nedediť browser default. */
.dopyt-modal__close {
  position: absolute; top: 16px; right: 16px;
  width: 38px; height: 38px;
  display: flex; align-items: center; justify-content: center;
  padding: 0; border: 0; border-radius: 50%;
  background: rgba(255, 255, 255, .07); color: #fff;
  font: inherit; cursor: pointer;
  transition: background .2s, color .2s;
}
.dopyt-modal__close:hover { background: var(--color-primary); color: var(--color-text); }
.dopyt-modal__close svg { width: 18px; height: 18px; }
.dopyt-form__msg { margin: 4px 0 14px; font-size: 15px; line-height: 1.45; }
.dopyt-form__msg--ok { color: #34d399; }
.dopyt-form__msg--err { color: var(--color-primary); }
.dopyt-form .f-textarea { min-height: 120px; }
body.dopyt-open { overflow: hidden; }
@media (max-width: 640px) {
  .dopyt-modal { padding: 12px; }
  .dopyt-modal__dialog { padding: 32px 20px 26px; border-radius: 20px; }
  .dopyt-modal__dialog h2 { font-size: 24px; }
}
/* Na uzkom displeji sa nadpis dotykal zatvaracieho X (namerane pri 390px) -
   nadpis dostane odsadenie na sirku tlacidla, aby sa nikdy neprekryli. */
@media (max-width: 640px) { .dopyt-modal__dialog h2 { padding: 0 34px; } }

/* ===== Svetlý režim: prepisy komponentov =====
   Musia stáť AŽ TU, na konci súboru. Pravidlá ako .btn--dark alebo .footer-bar
   sú definované nižšie než tokeny hore a majú rovnakú silu selektora - pri
   zhode rozhoduje poradie, takže inak by pôvodné tmavé hodnoty prebili svetlé.

   Sú tu veci, ktoré token nepokryje: obrázky s bielou grafikou, farby zapečené
   v SVG a prvky, ktoré ležia na tmavom podklade v oboch režimoch. */

/* Logo webu aj logá klientov sú BIELE obrázky - na svetlom podklade by zmizli. */
:root[data-theme="light"] .site-logo img,
:root[data-theme="light"] .marquee__slide img { filter: invert(1) brightness(.35); }
:root[data-theme="light"] .marquee__slide img { opacity: .45; }

/* Tmavé tlačidlo má farbu napevno (v tmavom režime leží na tmavom podklade). */
:root[data-theme="light"] .btn--dark,
:root[data-theme="light"] .btn--secondary {
  background: rgba(15, 23, 42, .06); border-color: rgba(15, 23, 42, .12); color: var(--color-text);
}
:root[data-theme="light"] .btn--dark:hover,
:root[data-theme="light"] .btn--secondary:hover {
  background: rgba(15, 23, 42, .1); border-color: rgba(15, 23, 42, .2);
}
/* .btn--outline ma priehladne pozadie - text dedil bielu z .btn a na svetlom
   podklade zmizol (cennikove tlacidla "Mam zaujem"). */
:root[data-theme="light"] .btn--outline { border-color: rgba(15, 23, 42, .3); color: var(--color-text); }
:root[data-theme="light"] .btn--outline:hover { background: rgba(15, 23, 42, .06); }

/* Rozbalené menu a tmavé sekcie. */
:root[data-theme="light"] .mega-menu { --glass-tint: #ffffff; }
:root[data-theme="light"] .mega-menu__item:hover { background: rgba(15, 23, 42, .06); color: var(--color-text); }
:root[data-theme="light"] .sec--dark { background: rgba(15, 23, 42, .03); }

/* Vlnky pätičky majú farbu zapečenú v SVG (%23030407) - prefarbia sa filtrom. */
:root[data-theme="light"] .wave { filter: invert(1) hue-rotate(170deg) brightness(1.08); }
:root[data-theme="light"] .site-footer__bar { background: rgba(15, 23, 42, .05); }
:root[data-theme="light"] .footer-bar,
:root[data-theme="light"] .footer-bar__left a { color: var(--color-muted); }

/* Karta referencie má tmavý gradient cez fotku - text na nej ostáva biely. */
:root[data-theme="light"] .ref-card { color: #fff; border-color: rgba(15, 23, 42, .12); }
:root[data-theme="light"] .ref-card__name { color: #fff; }

/* Animované pozadie je vo svetlom režime len jemný nádych - pri plnej sile by
   tmavá fialová scéna pod svetlým webom pôsobila ako chyba. */
:root[data-theme="light"] #aio-site-bg { opacity: .22; }

@media (prefers-color-scheme: light) {
  :root:not([data-theme]) .site-logo img,
  :root:not([data-theme]) .marquee__slide img { filter: invert(1) brightness(.35); }
  :root:not([data-theme]) .marquee__slide img { opacity: .45; }
  :root:not([data-theme]) .btn--dark,
  :root:not([data-theme]) .btn--secondary {
    background: rgba(15, 23, 42, .06); border-color: rgba(15, 23, 42, .12); color: var(--color-text);
  }
  :root:not([data-theme]) .btn--dark:hover,
  :root:not([data-theme]) .btn--secondary:hover {
    background: rgba(15, 23, 42, .1); border-color: rgba(15, 23, 42, .2);
  }
  :root:not([data-theme]) .btn--outline { border-color: rgba(15, 23, 42, .3); color: var(--color-text); }
  :root:not([data-theme]) .btn--outline:hover { background: rgba(15, 23, 42, .06); }
  :root:not([data-theme]) .mega-menu { --glass-tint: #ffffff; }
  :root:not([data-theme]) .mega-menu__item:hover { background: rgba(15, 23, 42, .06); color: var(--color-text); }
  :root:not([data-theme]) .sec--dark { background: rgba(15, 23, 42, .03); }
  :root:not([data-theme]) .wave { filter: invert(1) hue-rotate(170deg) brightness(1.08); }
  :root:not([data-theme]) .site-footer__bar { background: rgba(15, 23, 42, .05); }
  :root:not([data-theme]) .footer-bar,
  :root:not([data-theme]) .footer-bar__left a { color: var(--color-muted); }
  :root:not([data-theme]) .ref-card { color: #fff; border-color: rgba(15, 23, 42, .12); }
  :root:not([data-theme]) .ref-card__name { color: #fff; }
  :root:not([data-theme]) #aio-site-bg { opacity: .22; }
}

/* Farebne stitky sekcii (.sec-pill) maju farbu z dat sluzby v inline style -
   napr. modra #60a5fa, ktora je na svetlom podklade slabo citatelna (kontrast 2.4).
   Inline styl sa CSS pravidlom prebit neda, preto sa text stmavi filtrom.
   Ikona vnutri dedi farbu textu, takze stmavne s nim. */
:root[data-theme="light"] .sec-pill { filter: brightness(.62) saturate(1.25); }
@media (prefers-color-scheme: light) {
  :root:not([data-theme]) .sec-pill { filter: brightness(.62) saturate(1.25); }
}

/* Formularove polia maju v tmavom rezime cierne pozadie (rgba(0,0,0,.6)) -
   na svetlom webe by v nich bol tmavy text na ciernom podklade. */
:root[data-theme="light"] .f-input,
:root[data-theme="light"] .l-input {
  background: #fff; box-shadow: inset 0 0 0 1px rgba(15, 23, 42, .16);
}
:root[data-theme="light"] .f-input::placeholder,
:root[data-theme="light"] .l-input::placeholder { color: var(--color-muted); }
:root[data-theme="light"] .f-consent input {
  border-color: rgba(15, 23, 42, .28); background: #fff;
}
@media (prefers-color-scheme: light) {
  :root:not([data-theme]) .f-input,
  :root:not([data-theme]) .l-input {
    background: #fff; box-shadow: inset 0 0 0 1px rgba(15, 23, 42, .16);
  }
  :root:not([data-theme]) .f-input::placeholder,
  :root:not([data-theme]) .l-input::placeholder { color: var(--color-muted); }
  :root:not([data-theme]) .f-consent input {
    border-color: rgba(15, 23, 42, .28); background: #fff;
  }
}

/* Vyskakovaci formular (popup) ma pozadie #0d1017 natvrdo - v svetlom rezime
   by bol tmavym oknom s tmavym textom. */
:root[data-theme="light"] .dopyt-modal__dialog {
  background: #fff; box-shadow: 0 30px 80px rgba(15, 23, 42, .22);
}
:root[data-theme="light"] .dopyt-modal__backdrop { background: rgba(15, 23, 42, .45); }
:root[data-theme="light"] .dopyt-modal__close { background: rgba(15, 23, 42, .07); color: var(--color-text); }
:root[data-theme="light"] .dopyt-modal__close:hover { background: rgba(15, 23, 42, .14); }

/* Filtracne pilulky referencii: neaktivna ma tmavy podklad, aktivna cervenu
   (na nej musi byt text biely v oboch rezimoch). */
:root[data-theme="light"] .filter-pill:not(.is-active) {
  background: rgba(15, 23, 42, .05); border-color: rgba(15, 23, 42, .12);
}
:root[data-theme="light"] .filter-pill:hover { border-color: rgba(15, 23, 42, .25); }
:root[data-theme="light"] .filter-pill.is-active { color: #fff; }

@media (prefers-color-scheme: light) {
  :root:not([data-theme]) .dopyt-modal__dialog {
    background: #fff; box-shadow: 0 30px 80px rgba(15, 23, 42, .22);
  }
  :root:not([data-theme]) .dopyt-modal__backdrop { background: rgba(15, 23, 42, .45); }
  :root:not([data-theme]) .dopyt-modal__close { background: rgba(15, 23, 42, .07); color: var(--color-text); }
  :root:not([data-theme]) .dopyt-modal__close:hover { background: rgba(15, 23, 42, .14); }
  :root:not([data-theme]) .filter-pill:not(.is-active) {
    background: rgba(15, 23, 42, .05); border-color: rgba(15, 23, 42, .12);
  }
  :root:not([data-theme]) .filter-pill:hover { border-color: rgba(15, 23, 42, .25); }
  :root:not([data-theme]) .filter-pill.is-active { color: #fff; }
}

/* --- Cookie lista (partials/cookies.php, 2.10.2026) ---
   Vlavo dole, aby nekryla tlacidlo pripomienkovaca ani "hore" vpravo dole.
   Na mobile cez celu sirku. Sklo z tych istych tokenov ako karty -> sedi aj vo svetlom rezime. */
.cookie-lista {
  position: fixed; left: 24px; bottom: 24px; z-index: 1000; width: min(440px, calc(100vw - 32px));
  padding: 22px 22px 18px; border-radius: 22px; color: var(--color-text);
  background: var(--glass-sheen), var(--glass-tint-strong); border: 1px solid var(--glass-border);
  -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur); box-shadow: var(--glass-shadow), 0 10px 40px rgba(0, 0, 0, .35);
}
.cookie-lista[hidden] { display: none; }
.cookie-lista__nadpis { margin: 0 0 6px; font-size: 18px; font-weight: 700; }
.cookie-lista__text { margin: 0; font-size: 14px; line-height: 1.55; color: var(--color-muted); }
.cookie-lista__text a { color: var(--color-text); text-decoration: underline; }
.cookie-lista__volby { display: grid; gap: 10px; margin-top: 14px; }
.cookie-lista__volby[hidden] { display: none; }
.cookie-volba { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; line-height: 1.45; color: var(--color-muted); }
.cookie-volba strong { color: var(--color-text); }
.cookie-volba input { margin-top: 3px; width: 18px; height: 18px; accent-color: var(--color-primary); flex: none; }
.cookie-lista__tlacidla { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 16px; }
.cookie-lista__tlacidla .btn { padding: 10px 18px; font-size: 14px; font-family: inherit; cursor: pointer; }
.cookie-lista__tlacidla .btn[hidden], .cookie-lista__odkaz[hidden] { display: none; }
.cookie-lista__odkaz { background: none; border: 0; padding: 6px 4px; font: inherit; font-size: 14px; color: var(--color-muted); text-decoration: underline; cursor: pointer; }
.cookie-lista__odkaz:hover { color: var(--color-text); }
@media (max-width: 560px) {
  .cookie-lista { left: 16px; right: 16px; bottom: 16px; width: auto; padding: 18px 16px 14px; }
  .cookie-lista__tlacidla .btn { flex: 1 1 auto; justify-content: center; }
}

/* Kotvy sekcii sluzieb (tlacidla v hlavicke, audit 3.10.2026) - nadpis nesmie skoncit pod fixnou hlavickou */
.sec[id] { scroll-margin-top: var(--header-offset, 92px); }
