/*
Theme Name: BEPOSYS
Author: PSWebstyle
Author URI: https://pswebstyle.com
Description: Vlastní téma pro BEPOSYS s.r.o. – BOZP, požární ochrana, revize a školení, Liberec.
Version: 1.1.3
Text Domain: beposys
*/

/* Věcný a důvěryhodný: světlý papír s jemnou technickou mřížkou, grafit, bezpečnostní zelená (ISO 7010),
   rejstřík služeb místo kartiček, obchůzka v půdorysu jako hero. */
:root {
  --grafit: #1f2a30;
  --grafit-2: #2c3a42;
  --text: #2a3439;
  --sedy: #5a676e;
  --papir: #f3f6f4;
  --bila: #ffffff;
  --linka: #d8e0dc;
  --modra: #2f2ee9;      /* barva z loga BEPOSYS */
  --modra-2: #2322b8;
  --modra-sv: #8f8eff;   /* na tmavém podkladu */
  --modra-bg: #ececfd;
  --cervena: #d91838;    /* červená z nového loga (PO) – jen ve variantě barev „modrá + červená“ */
  --cervena-2: #b3122c;
  --ok: #0d7342;         /* zelená jen pro „v pořádku“ */
  --ok-sv: #22a061;
  --znacka-zelena: #00843d;
  --znacka-cervena: #c8102e;
  --znacka-zluta: #f7c31c;
  --plan-mrizka: rgba(31, 42, 48, .06);
  --logo-fajfka: #ffffff;
  /* technické písmo (Čejka 19. 10.): výchozí Barlow – kreslené podle dopravního značení, další varianty níže */
  --nadpis: 'Barlow', 'Segoe UI', system-ui, sans-serif;
  --telo: 'Barlow', 'Segoe UI', system-ui, sans-serif;
  --nav-v: 76px;
  --radius: 6px;
}

*, *::before, *::after { box-sizing: border-box; }
* { -webkit-tap-highlight-color: transparent; }
html { margin-top: 0 !important; scroll-behavior: smooth; scroll-padding-top: calc(var(--nav-v) + 16px); }
#site-header, .site-header { display: none !important; }
body { margin: 0; background: var(--bila); color: var(--text); font-family: var(--telo); font-size: 17px; line-height: 1.65; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--modra); }
h1, h2, h3 { font-family: var(--nadpis); color: var(--grafit); line-height: 1.2; text-wrap: balance; margin: 0 0 .5em; }
h1 { font-size: clamp(2rem, 4.2vw, 3.05rem); font-weight: 700; letter-spacing: -.015em; }
h2 { font-size: clamp(1.6rem, 2.8vw, 2.15rem); font-weight: 700; letter-spacing: -.01em; }
h3 { font-size: 1.15rem; font-weight: 600; }
p { margin: 0 0 1em; }
:focus-visible { outline: 3px solid var(--modra); outline-offset: 3px; border-radius: 3px; }
.obal { width: min(1180px, 100% - 40px); margin-inline: auto; }
.preskocit { position: absolute; left: -9999px; top: 8px; z-index: 200; background: var(--grafit); color: #fff; padding: 10px 16px; border-radius: var(--radius); }
.preskocit:focus { left: 12px; }

/* tlačítka */
.tlacitko { display: inline-flex; align-items: center; justify-content: center; gap: .5em; min-height: 48px; padding: .7em 1.35em; border-radius: var(--radius); font-family: var(--nadpis); font-weight: 600; font-size: 1rem; text-decoration: none; border: 2px solid transparent; cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.tlacitko--plne { background: var(--modra); color: #fff !important; }
.tlacitko--plne:hover { background: var(--modra-2); }
.tlacitko--obrys { border-color: var(--grafit); color: var(--grafit) !important; background: transparent; }
.tlacitko--obrys:hover { background: var(--grafit); color: #fff !important; }

/* ---------------------------------------------------------------- NAVIGACE */
.nav { position: fixed; inset: 0 0 auto 0; z-index: 60; background: rgba(255, 255, 255, .9); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border-bottom: 1px solid var(--linka); }
body.admin-bar .nav { top: 32px; }
.nav__in { display: flex; align-items: center; gap: 22px; height: var(--nav-v); }
.logo { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; margin-right: auto; color: var(--grafit); }
.logo__znacka { display: block; height: 48px; width: auto; }
.logo--svetle .logo__znacka { height: 54px; }
.logo__znacka--b { height: 46px; }
.logo__popis { font-family: var(--nadpis); font-weight: 600; font-size: .7rem; line-height: 1.35; letter-spacing: .09em; text-transform: uppercase; color: var(--sedy); border-left: 2px solid var(--modra); padding-left: 12px; }
/* varianty písma k výběru (přepínač v liště náhledu) */
.pismo-plex { --nadpis: 'IBM Plex Sans', 'Segoe UI', system-ui, sans-serif; --telo: 'IBM Plex Sans', 'Segoe UI', system-ui, sans-serif; }
.pismo-archivo { --nadpis: 'Archivo', 'Segoe UI', system-ui, sans-serif; --telo: 'Archivo', 'Segoe UI', system-ui, sans-serif; }
.logo--svetle { color: #fff; }
.logo--svetle .logo__popis { color: #aab7bd; border-color: #34434b; }
@media (max-width: 1180px) { .logo__popis { display: none; } }
.nav__menu { display: flex; align-items: center; gap: 2px; list-style: none; margin: 0; padding: 0; }
.nav__menu > li { position: relative; }
.nav__menu > li > a { display: flex; align-items: center; gap: .35em; padding: 10px 13px; font-family: var(--nadpis); font-weight: 600; font-size: .97rem; color: var(--grafit) !important; text-decoration: none; background: transparent !important; border-bottom: 2px solid transparent; }
.nav__menu > li > a:hover, .nav__menu > li > a.je-aktivni { color: var(--modra) !important; border-bottom-color: var(--modra); }
.has-dropdown { padding-bottom: 20px; margin-bottom: -20px; }
.sipka { display: inline-block; transition: transform .2s; }
.has-dropdown:hover .sipka, .has-dropdown:focus-within .sipka { transform: rotate(90deg); }
.dropdown { position: absolute; left: 0; top: 100%; min-width: 290px; list-style: none; margin: 0; padding: 8px; background: #fff; border: 1px solid var(--linka); border-radius: var(--radius); box-shadow: 0 16px 40px rgba(31, 42, 48, .12); opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .18s, transform .18s, visibility .18s; }
.has-dropdown:hover .dropdown, .has-dropdown:focus-within .dropdown { opacity: 1; visibility: visible; transform: none; }
.dropdown a { display: block; padding: 9px 12px; color: var(--grafit) !important; text-decoration: none; border-radius: 4px; background: transparent !important; font-size: .95rem; }
.dropdown a:hover { background: var(--modra-bg) !important; color: var(--modra) !important; }
.nav__jazyky { font-size: .8rem; letter-spacing: .06em; color: var(--sedy); white-space: nowrap; }
.nav__jazyky i { font-style: normal; margin: 0 .3em; opacity: .5; }
.nav__cta { min-height: 42px; padding: .5em 1em; font-size: .95rem; }
.hamburger { display: none; }

@media (max-width: 1080px) { .nav__jazyky { display: none; } .nav__menu > li > a { padding: 10px 9px; } }
@media (max-width: 900px) {
  :root { --nav-v: 66px; }
  .nav__menu, .nav__cta, .nav__jazyky { display: none !important; }
  .hamburger { display: block; position: relative; width: 46px; height: 46px; border: 0; background: transparent; cursor: pointer; z-index: 70; }
  .hamburger span { position: absolute; left: 10px; height: 2.5px; border-radius: 2px; background: var(--grafit); transition: transform .3s, opacity .2s, width .3s; }
  .hamburger span:nth-child(1) { top: 15px; width: 26px; }
  .hamburger span:nth-child(2) { top: 22px; width: 18px; }
  .hamburger span:nth-child(3) { top: 29px; width: 26px; }
  .hamburger.je-otevreno span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .hamburger.je-otevreno span:nth-child(2) { opacity: 0; }
  .hamburger.je-otevreno span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
}
.mobil-menu { position: fixed; inset: 0; z-index: 55; background: var(--bila); display: flex; align-items: center; justify-content: center; opacity: 0; visibility: hidden; transition: opacity .25s, visibility .25s; overflow-y: auto; padding: calc(var(--nav-v) + 20px) 24px 40px; }
.mobil-menu.je-otevrene { opacity: 1; visibility: visible; }
.mobil-menu__obsah { display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center; width: 100%; max-width: 420px; }
.mobil-menu a, .m-acc-hlava { font-family: var(--nadpis); font-weight: 300; font-size: 1.75rem; color: var(--grafit) !important; text-decoration: none; background: transparent !important; cursor: pointer; }
.m-acc { width: 100%; }
.m-acc-plus { display: inline-block; margin-left: .3em; transition: transform .25s; color: var(--modra); }
.m-acc.je-otevrene .m-acc-plus { transform: rotate(45deg); }
.m-acc-body { display: none; padding: 6px 0 10px; }
.m-acc.je-otevrene .m-acc-body { display: block; }
.m-acc-body a { display: block; font-size: 1.1rem; font-weight: 400; padding: 6px 0; color: var(--sedy) !important; }
.mobil-menu__tel { margin-top: 14px; font-weight: 600 !important; font-size: 1.3rem !important; color: var(--modra) !important; }
.mobil-menu__jazyky { font-size: .85rem; letter-spacing: .1em; color: var(--sedy); margin-top: 8px; }
nav a, .mobile-menu a, .mobil-menu a { background: transparent !important; }
.nav .nav__cta.tlacitko--plne { background: var(--modra) !important; } /* reset výše by jinak tlačítku vzal pozadí */
.nav .nav__cta.tlacitko--plne:hover { background: var(--modra-2) !important; }

/* ---------------------------------------------------------------- HERO */
.hero { position: relative; background: var(--papir); background-image: linear-gradient(var(--plan-mrizka) 1px, transparent 1px), linear-gradient(90deg, var(--plan-mrizka) 1px, transparent 1px); background-size: 24px 24px; border-bottom: 1px solid var(--linka); }
.hero__mrizka { display: grid; grid-template-columns: 1fr 1.08fr; gap: clamp(28px, 4vw, 56px); align-items: center; padding: calc(var(--nav-v) + 56px) 0 110px; }
.hero__stitek { display: inline-flex; align-items: center; gap: .6em; font-size: .82rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--modra); margin-bottom: 18px; }
.hero__stitek::before { content: ''; width: 22px; height: 2px; background: var(--modra); }
.hero__perex { font-size: 1.12rem; color: var(--sedy); max-width: 34em; }
.hero__tlacitka { display: flex; flex-wrap: wrap; gap: 12px; margin: 26px 0 24px; }
.hero__body { list-style: none; margin: 0; padding: 0; display: grid; gap: 7px; font-size: .97rem; }
.hero__body li { display: flex; gap: .6em; align-items: baseline; }
.hero__body li::before { content: ''; flex: 0 0 auto; width: 9px; height: 9px; border-radius: 2px; background: var(--modra); transform: translateY(-1px); }

/* obchůzka */
.obchuzka { position: relative; margin: 0; background: var(--bila); border: 1px solid var(--linka); border-radius: 8px; box-shadow: 0 24px 60px -30px rgba(31, 42, 48, .35); overflow: hidden; }
.obchuzka__lista { display: flex; justify-content: space-between; gap: 12px; padding: 11px 16px; border-bottom: 1px solid var(--linka); font-size: .8rem; letter-spacing: .03em; }
.obchuzka__nazev { color: var(--sedy); text-transform: uppercase; font-weight: 600; }
.obchuzka__stav { font-weight: 600; color: var(--ok); font-variant-numeric: tabular-nums; }
.obchuzka__plan { display: block; width: 100%; height: auto; background: #fbfcfb; }
.obchuzka__zdi { fill: none; stroke: var(--grafit); stroke-width: 3; stroke-linecap: square; }
.obchuzka__zdi rect { stroke-width: 4; }
.obchuzka__dvere { stroke: #fbfcfb; stroke-width: 6; }
.obchuzka__mistnosti text { font-family: var(--telo); font-size: 10.5px; letter-spacing: .12em; fill: #8b989e; font-weight: 600; }
.obchuzka__regaly rect { fill: #c9d2ce; }
.obchuzka__stroje rect { fill: none; stroke: #b9c4bf; stroke-width: 1.5; stroke-dasharray: 4 3; }
.obchuzka__stopa { fill: none; stroke: var(--modra); stroke-width: 2.5; stroke-dasharray: 6 5; stroke-linecap: round; stroke-linejoin: round; opacity: .9; }
.obchuzka.hraje .obchuzka__stopa { stroke-dasharray: none; }
.obchuzka__bod .obchuzka__znacka { opacity: .32; filter: grayscale(1); transition: opacity .35s, filter .35s; }
.obchuzka__bod.je-hotovo .obchuzka__znacka, .obchuzka__bod.je-aktivni .obchuzka__znacka { opacity: 1; filter: none; }
.obchuzka__puls { fill: none; stroke: var(--znacka-zluta); stroke-width: 3; opacity: 0; }
.obchuzka__bod.je-aktivni .obchuzka__puls { animation: puls 0.9s ease-out; }
@keyframes puls { 0% { opacity: .9; transform: scale(.6); } 100% { opacity: 0; transform: scale(1.4); } }
.obchuzka__fajfka { opacity: 0; transition: opacity .3s; }
.obchuzka__fajfka circle { fill: var(--ok); stroke: #fff; stroke-width: 1.5; }
.obchuzka__fajfka path { fill: none; stroke: #fff; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.obchuzka__bod.je-hotovo .obchuzka__fajfka { opacity: 1; }
.obchuzka__technik circle:last-child { fill: var(--grafit); stroke: #fff; stroke-width: 2.5; }
.obchuzka__halo { fill: rgba(47, 46, 233, .16); }
.obchuzka:not(.hraje) .obchuzka__technik { opacity: 0; }
.obchuzka__zapis { list-style: none; margin: 0; padding: 10px 16px 14px; display: grid; grid-template-columns: 1fr 1fr; gap: 4px 22px; border-top: 1px solid var(--linka); font-size: .82rem; counter-reset: z; }
.obchuzka__zapis li { display: flex; gap: .5em; align-items: baseline; color: #9aa6ab; transition: color .3s; min-width: 0; }
.obchuzka__zapis li::before { content: '○'; font-size: .8em; }
.obchuzka__zapis li.je-hotovo { color: var(--text); }
.obchuzka__zapis li.je-hotovo::before { content: '✓'; color: var(--ok); font-weight: 700; }
.obchuzka__zapis b { font-weight: 600; white-space: nowrap; }
.obchuzka__zapis span { color: var(--sedy); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.obchuzka__prehrat { position: absolute; top: 52px; left: 50%; transform: translateX(-50%); display: inline-flex; align-items: center; gap: .5em; padding: .6em 1.2em; border: 0; border-radius: var(--radius); background: var(--modra); color: #fff; font-family: var(--nadpis); font-weight: 600; font-size: .92rem; cursor: pointer; box-shadow: 0 10px 24px rgba(0, 0, 0, .2); }
.obchuzka__prehrat::before { content: ''; border-style: solid; border-width: 6px 0 6px 10px; border-color: transparent transparent transparent currentColor; }

/* hero varianta 2: hlídání termínů */
.terminy { position: relative; margin: 0; background: var(--bila); border: 1px solid var(--linka); border-radius: 8px; box-shadow: 0 24px 60px -30px rgba(31, 42, 48, .35); overflow: hidden; }
.terminy__lista { display: flex; justify-content: space-between; gap: 12px; padding: 11px 18px; border-bottom: 1px solid var(--linka); font-size: .8rem; letter-spacing: .03em; }
.terminy__nazev { color: var(--sedy); text-transform: uppercase; font-weight: 600; }
.terminy__mesic { font-weight: 600; color: var(--modra); font-variant-numeric: tabular-nums; }
.terminy__seznam { list-style: none; margin: 0; padding: 6px 18px; }
.termin { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 14px; padding: 13px 0; border-bottom: 1px solid #eef1f0; }
.termin:last-child { border-bottom: 0; }
.termin__text { display: flex; flex-direction: column; min-width: 0; }
.termin__text b { font-family: var(--nadpis); font-weight: 600; color: var(--grafit); font-size: .98rem; }
.termin__text span { font-size: .8rem; color: var(--sedy); }
.termin__stav { align-self: center; }
.termin__stitek { display: inline-block; font-size: .76rem; font-weight: 600; padding: 3px 10px; border-radius: 99px; background: #eef1f0; color: var(--sedy); white-space: nowrap; transition: background .3s, color .3s; }
.termin__pruh { grid-column: 1 / -1; height: 5px; border-radius: 3px; background: #eef1f0; overflow: hidden; }
.termin__pruh i { display: block; height: 100%; background: var(--modra); border-radius: 3px; transition: width .5s linear, background .3s; }
.termin[data-stav="pripominka"] .termin__stitek { background: #fff3cd; color: #8a5a00; }
.termin[data-stav="pripominka"] .termin__pruh i { background: #e9a800; }
.termin[data-stav="obnoveno"] .termin__stitek { background: #e6f2ea; color: var(--ok); }
.termin[data-stav="obnoveno"] .termin__pruh i { background: var(--ok-sv); }
.terminy__pata { display: flex; justify-content: space-between; gap: 12px; padding: 11px 18px; border-top: 1px solid var(--linka); font-size: .84rem; color: var(--sedy); }
.terminy__pata b { color: var(--grafit); }
.terminy__propadle b { color: var(--ok); }
@media (max-width: 640px) { .termin { grid-template-columns: 1fr; } .termin__stav { justify-self: start; } }

/* hero varianta 3: výjezdy po kraji */
.kraj { position: relative; margin: 0; background: var(--bila); border: 1px solid var(--linka); border-radius: 8px; box-shadow: 0 24px 60px -30px rgba(31, 42, 48, .35); overflow: hidden; }
.kraj__lista { display: flex; justify-content: space-between; gap: 12px; padding: 11px 16px; border-bottom: 1px solid var(--linka); font-size: .8rem; letter-spacing: .03em; }
.kraj__nazev { color: var(--sedy); text-transform: uppercase; font-weight: 600; }
.kraj__stav { font-weight: 600; color: var(--modra); }
.kraj__mapa { display: block; width: 100%; height: auto; background: #fbfcfb; }
.kraj__relief path { fill: none; stroke: #c3cdc8; stroke-width: 2; stroke-linejoin: round; }
.kraj__relief text, .kraj__praha { font-family: var(--telo); font-size: 11px; fill: #9aa6ab; letter-spacing: .06em; }
.kraj__silnice line { stroke: #d5ddd9; stroke-width: 2; stroke-dasharray: 2 5; stroke-linecap: round; }
.kraj__cesta { stroke: var(--modra); stroke-width: 3; stroke-linecap: round; }
.kraj__bod { fill: #fff; stroke: var(--grafit); stroke-width: 2.5; transition: fill .3s, stroke .3s; }
.kraj__mesto--sidlo .kraj__bod { fill: var(--modra); stroke: var(--modra); }
.kraj__mesto text { font-family: var(--nadpis); font-weight: 600; font-size: 13px; fill: var(--grafit); }
.kraj__mesto.je-hotovo .kraj__bod, .kraj__mesto.je-aktivni .kraj__bod { fill: var(--ok-sv); stroke: var(--ok); }
.kraj__puls { fill: none; stroke: var(--ok-sv); stroke-width: 3; opacity: 0; }
.kraj__mesto.je-aktivni .kraj__puls { animation: puls 1s ease-out; }
.kraj__auto circle { fill: var(--grafit); stroke: #fff; stroke-width: 2.5; }
.kraj:not(.hraje) .kraj__auto { opacity: 0; }
.kraj__denik { list-style: none; margin: 0; padding: 10px 16px 14px; border-top: 1px solid var(--linka); display: grid; gap: 4px; font-size: .84rem; }
.kraj__denik li { display: flex; gap: .6em; align-items: baseline; }
.kraj__denik li::before { content: '✓'; color: var(--ok); font-weight: 700; }
.kraj__denik b { font-weight: 600; min-width: 8.5em; }
.kraj__denik span { color: var(--sedy); }

/* scroll indikátor (standard PSWebstyle) */
.scroll-dolu { position: absolute; left: 0; right: 0; bottom: 26px; margin-inline: auto; width: max-content; z-index: 5; display: flex; flex-direction: column; align-items: center; gap: 10px; text-decoration: none; transition: opacity .3s; }
.scroll-dolu.skryty { opacity: 0; pointer-events: none; }
.scroll-mys { width: 26px; height: 42px; border: 2px solid var(--modra); border-radius: 15px; display: flex; justify-content: center; padding-top: 8px; }
.scroll-kolecko { width: 4px; height: 8px; border-radius: 3px; background: var(--modra); animation: scrollKolecko 1.8s ease-in-out infinite; }
.scroll-text { font-size: .72rem; letter-spacing: .28em; text-transform: uppercase; color: var(--sedy); }
.scroll-dolu:hover .scroll-text { color: var(--modra); }
@keyframes scrollKolecko { 0% { opacity: 0; transform: translateY(0); } 30% { opacity: 1; } 100% { opacity: 0; transform: translateY(14px); } }

/* ---------------------------------------------------------------- SEKCE */
.sekce { padding: clamp(64px, 8vw, 104px) 0; }
.sekce--papir { background: var(--papir); }
.sekce--tmava { background: var(--grafit); color: #d5dde0; }
.sekce--tmava h2 { color: #fff; }
.sekce__perex { color: var(--sedy); max-width: 40em; margin-bottom: 34px; }
.dva-sloupce { display: grid; grid-template-columns: 1.25fr 1fr; gap: clamp(30px, 5vw, 72px); align-items: start; }
.dva-sloupce > div { min-width: 0; }
.prinos { margin-top: 28px; }   /* bez svislé čáry vlevo – ta je poznávací znak AI webů */
.prinos__nadpis { display: flex; align-items: center; gap: .6em; font-family: var(--nadpis); font-weight: 700; font-size: .85rem; letter-spacing: .1em; text-transform: uppercase; color: var(--modra); margin-bottom: 14px; }
.sekce--tmava .prinos__nadpis { color: var(--modra-sv); }
.fajfky { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; font-size: 1.05rem; }
.fajfky li { display: flex; gap: .7em; align-items: baseline; }
.fajfky li::before { content: '✓'; color: var(--ok); font-weight: 700; }

/* fotky */
.foto { display: block; width: 100%; height: auto; }
.foto-ram { margin: 0; position: relative; }
.foto-ram--audit .foto { aspect-ratio: 3 / 4; object-fit: cover; border-radius: 6px; box-shadow: 0 30px 60px -34px rgba(31, 42, 48, .5); }
.foto-ram--audit::before { content: ''; position: absolute; left: -14px; bottom: -14px; width: 46%; height: 38%; border-left: 3px solid var(--modra); border-bottom: 3px solid var(--modra); z-index: -1; }
#v-poradku .dva-sloupce { grid-template-columns: 1.15fr .85fr; align-items: center; }
#v-poradku .prinos { margin-top: 30px; }
.pas-foto { height: clamp(220px, 34vw, 440px); overflow: hidden; background: var(--grafit); }
.pas-foto .foto { height: 100%; object-fit: cover; object-position: 50% 52%; }

/* rejstřík služeb: řádky, ne kartičky */
.rejstrik { border-top: 2px solid var(--grafit); }
.rejstrik__radek { display: grid; grid-template-columns: 200px minmax(0, 1fr) minmax(0, 1.25fr); gap: 18px 40px; padding: 28px 0; border-bottom: 1px solid var(--linka); align-items: start; }
.rejstrik__pata { margin: 22px 0 0; color: var(--sedy); font-size: .95rem; }
.rejstrik__foto { aspect-ratio: 4 / 3; object-fit: cover; border-radius: 4px; filter: saturate(.9); }
.rejstrik__hlava p { color: var(--sedy); margin-bottom: 10px; font-size: .98rem; }
.rejstrik__pravo { display: inline-block; font-size: .78rem; letter-spacing: .03em; color: var(--modra-2); background: var(--modra-bg); padding: 3px 9px; border-radius: 3px; }
.rejstrik__polozky { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: 30px; }
.rejstrik__polozky li { break-inside: avoid; padding: 5px 0 5px 16px; position: relative; font-size: .98rem; }
.rejstrik__polozky li::before { content: ''; position: absolute; left: 0; top: .9em; width: 7px; height: 2px; background: var(--modra); }

/* postup: skutečná posloupnost, proto čísla */
.postup { list-style: none; margin: 30px 0 0; padding: 0; counter-reset: krok; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; border-top: 2px solid var(--linka); }
.postup li { counter-increment: krok; position: relative; padding: 30px 22px 0 0; display: flex; flex-direction: column; gap: 8px; }
.postup li::before { content: counter(krok); position: absolute; top: -17px; left: 0; width: 32px; height: 32px; border-radius: 50%; background: var(--bila); border: 2px solid var(--modra); color: var(--modra); font-family: var(--nadpis); font-weight: 700; display: grid; place-items: center; font-size: .95rem; }
.postup b { font-family: var(--nadpis); font-weight: 700; color: var(--grafit); font-size: 1.05rem; line-height: 1.3; }
.postup span { color: var(--sedy); font-size: .95rem; }

.o-nas__jednatel { margin-top: 22px; font-family: var(--nadpis); font-weight: 600; color: #fff; }
.hodnoty { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.hodnoty li { border: 1px solid #4a5a62; border-radius: 3px; padding: 7px 14px; color: #fff; font-size: .97rem; }

/* kontakt */
.kontakt { display: grid; grid-template-columns: 1fr 1.15fr; gap: clamp(30px, 5vw, 64px); align-items: start; }
.kontakt > * { min-width: 0; }
.kontakt__udaje { display: grid; grid-template-columns: max-content 1fr; gap: 10px 22px; margin: 26px 0 0; }
.kontakt__udaje dt { font-size: .8rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--sedy); padding-top: 3px; }
.kontakt__udaje dd { margin: 0; }
.kontakt__udaje a { font-weight: 600; text-decoration: none; }
.formular { display: grid; gap: 14px; background: var(--papir); border: 1px solid var(--linka); border-radius: 8px; padding: clamp(20px, 3vw, 30px); }
.formular__radek { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.formular label { display: grid; gap: 6px; font-size: .9rem; font-weight: 600; color: var(--grafit); }
.formular input, .formular select, .formular textarea { width: 100%; font: inherit; font-weight: 400; font-size: 1rem; color: var(--text); background: #fff; border: 1px solid #c3cdc8; border-radius: 4px; padding: 11px 12px; }
.formular input:focus, .formular select:focus, .formular textarea:focus { border-color: var(--modra); outline: 2px solid rgba(47, 46, 233, .2); }
.formular .tlacitko { justify-self: start; }
.formular__pozn { margin: 0; font-size: .85rem; color: var(--sedy); }
.formular__stav { margin: 0; padding: 10px 14px; background: var(--modra-bg); border-radius: 4px; color: var(--modra-2); font-size: .95rem; }

/* patička */
.paticka { background: #172025; color: #aab7bd; padding: 56px 0 26px; font-size: .95rem; }
.paticka a { color: #dfe7ea; text-decoration: none; }
.paticka a:hover { color: var(--modra-sv); }
.paticka__mrizka { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 36px; }
.paticka__mrizka > div { min-width: 0; }
.paticka__mrizka .logo { margin-bottom: 14px; }
.paticka__nadpis { font-family: var(--nadpis); font-weight: 700; color: #fff; letter-spacing: .06em; text-transform: uppercase; font-size: .82rem; margin-bottom: 12px; }
.paticka ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.paticka__spodek { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; border-top: 1px solid #2c3a42; margin-top: 40px; padding-top: 20px; font-size: .85rem; }

/* ---------------------------------------------------------------- RESPONZIVITA */
@media (max-width: 1060px) {
  .hero__mrizka { grid-template-columns: 1fr; padding-bottom: 70px; }
  .scroll-dolu { display: none; }
  .postup { grid-template-columns: 1fr; border-top: 0; border-left: 2px solid var(--linka); margin-left: 16px; }
  .postup li { padding: 0 0 26px 34px; }
  .postup li::before { left: -17px; top: -2px; }
}
@media (max-width: 900px) {
  .dva-sloupce, .kontakt, #v-poradku .dva-sloupce { grid-template-columns: 1fr; }
  .rejstrik__radek { grid-template-columns: 150px minmax(0, 1fr); gap: 16px 24px; }
  .rejstrik__polozky { grid-column: 1 / -1; }
  .foto-ram--audit { max-width: 460px; }
  .foto-ram--audit .foto { aspect-ratio: 4 / 3; }
  .paticka__mrizka { grid-template-columns: 1fr; gap: 26px; }
}
@media (max-width: 640px) {
  body { font-size: 16px; }
  .hero__mrizka { padding-top: calc(var(--nav-v) + 34px); }
  .rejstrik__polozky { columns: 1; }
  .rejstrik__radek { grid-template-columns: 1fr; }
  .rejstrik__foto { aspect-ratio: 16 / 9; }
  .formular__radek { grid-template-columns: 1fr; }
  .obchuzka__zapis { grid-template-columns: 1fr; }
  .obchuzka__lista { font-size: .72rem; }
  .hero__tlacitka .tlacitko { flex: 1 1 100%; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

/* ---------------------------------------------------------------- PODSTRÁNKY */
.stranka-hlava { background: var(--papir); background-image: linear-gradient(var(--plan-mrizka) 1px, transparent 1px), linear-gradient(90deg, var(--plan-mrizka) 1px, transparent 1px); background-size: 24px 24px; border-bottom: 1px solid var(--linka); }
.stranka-hlava__mrizka { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(28px, 4vw, 56px); align-items: center; padding: calc(var(--nav-v) + var(--nahore, 0px) + 44px) 0 64px; }
.stranka-hlava--uzka .obal { padding: calc(var(--nav-v) + var(--nahore, 0px) + 44px) 0 52px; }
.stranka-hlava h1 { font-size: clamp(1.9rem, 3.6vw, 2.7rem); }
.stranka-hlava .hero__tlacitka { margin-bottom: 0; }
.stranka-hlava__foto .foto { aspect-ratio: 4 / 3; object-fit: cover; border-radius: 6px; box-shadow: 0 30px 60px -34px rgba(31, 42, 48, .5); }
.drobecky { font-size: .85rem; color: var(--sedy); margin-bottom: 18px; }
.drobecky a { color: var(--sedy); text-decoration: none; font-weight: 600; }
.drobecky a:hover { color: var(--modra); }
.sekce__hlava { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px 18px; margin-bottom: 26px; }
.sekce__hlava h2 { margin: 0; }
.vycet { margin: 0; border-top: 2px solid var(--grafit); display: grid; grid-template-columns: 1fr 1fr; column-gap: 48px; }
.vycet--1 { grid-template-columns: 1fr; }
.vycet__radek { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 6px 20px; padding: 16px 0; border-bottom: 1px solid var(--linka); }
.vycet dt { font-family: var(--nadpis); font-weight: 600; color: var(--grafit); line-height: 1.35; }
.vycet dt a { color: var(--modra); text-decoration: none; }
.vycet dd { margin: 0; color: var(--sedy); font-size: .97rem; }
@media (min-width: 1061px) { .postup--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.faq-obal { width: min(880px, 100% - 40px); }
.faq { border-top: 2px solid var(--grafit); }
.faq__polozka { border-bottom: 1px solid var(--linka); }
.faq__polozka summary { cursor: pointer; list-style: none; position: relative; padding: 18px 44px 18px 0; font-family: var(--nadpis); font-weight: 600; font-size: 1.08rem; color: var(--grafit); }
.faq__polozka summary::-webkit-details-marker { display: none; }
.faq__polozka summary::after { content: '+'; position: absolute; right: 6px; top: 50%; transform: translateY(-50%); color: var(--modra); font-size: 1.6rem; font-weight: 400; transition: transform .2s; }
.faq__polozka[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.faq__polozka p { margin: 0 0 20px; max-width: 46em; }
.vyzva__mrizka { display: grid; grid-template-columns: 1.2fr 1fr; gap: 28px 56px; align-items: center; }
.vyzva p { color: #d5dde0; }
.vyzva__kontakt { display: grid; gap: 12px; justify-items: start; }
.vyzva__tel { font-family: var(--nadpis); font-size: clamp(1.5rem, 2.6vw, 2rem); font-weight: 700; color: #fff; text-decoration: none; }
.vyzva__mail { color: #d5dde0; text-decoration: none; font-weight: 600; }
.vyzva__souvisejici { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-top: 44px; padding-top: 22px; border-top: 1px solid #3a4a52; font-size: .95rem; }
.vyzva__souvisejici span { color: #9fb0b7; }
.vyzva__souvisejici a, .odkaz-svetly { color: var(--modra-sv); text-decoration: none; font-weight: 600; }
.doplnit { border: 2px dashed #c3cdc8; border-radius: 8px; padding: 22px 24px; background: var(--bila); }
.doplnit p:last-child { margin: 0; }
.doplnit__nadpis { font-family: var(--nadpis); font-weight: 700; font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; color: #8a5a00; margin-bottom: 8px; }
.hodnoty--svetle li { border-color: var(--linka); color: var(--grafit); background: var(--bila); }
.o-nas__podpis { font-family: var(--nadpis); font-weight: 600; color: var(--grafit); margin-top: 18px; }
.mapa-sekce { padding-top: clamp(40px, 6vw, 72px); }
.mapa-sekce h2 { margin-bottom: 22px; }
.mapa { display: block; width: 100%; height: clamp(320px, 40vw, 460px); border: 0; }
.rejstrik__hlava h3 a { color: inherit; text-decoration: none; }
.rejstrik__hlava h3 a:hover { color: var(--modra); }
.rejstrik__odkazy { margin: 14px 0 0; display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: .95rem; }
.rejstrik__odkazy a, .rejstrik__pata a { font-weight: 700; text-decoration: none; }
@media (max-width: 900px) {
  .stranka-hlava__mrizka, .vycet, .vyzva__mrizka { grid-template-columns: 1fr; }
  .stranka-hlava__foto { max-width: 520px; }
}
@media (max-width: 640px) {
  .vycet__radek { grid-template-columns: 1fr; }
  .stranka-hlava__mrizka { padding-bottom: 44px; }
}

/* ---------------------------------------------------------------- VZHLEDY (náhled je přepíná, na webu zůstane jeden) */
.stranka-hlava { position: relative; overflow: hidden; }

/* A + C: tmavé pozadí, bílý text */
.vzhled-a .hero, .vzhled-a .stranka-hlava, .vzhled-c .hero, .vzhled-c .stranka-hlava { border-bottom: 0; color: #fff; }
.vzhled-a :is(.hero, .stranka-hlava) h1, .vzhled-c :is(.hero, .stranka-hlava) h1 { color: #fff; }
.vzhled-a :is(.hero, .stranka-hlava) .hero__perex, .vzhled-c :is(.hero, .stranka-hlava) .hero__perex { color: rgba(255, 255, 255, .86); }
.vzhled-a :is(.hero, .stranka-hlava) .hero__stitek, .vzhled-c :is(.hero, .stranka-hlava) .hero__stitek { color: #fff; }
.vzhled-a :is(.hero, .stranka-hlava) .hero__stitek::before, .vzhled-c :is(.hero, .stranka-hlava) .hero__stitek::before { background: #fff; }
.vzhled-a .drobecky, .vzhled-a .drobecky a, .vzhled-c .drobecky, .vzhled-c .drobecky a { color: rgba(255, 255, 255, .8); }
.vzhled-a :is(.hero, .stranka-hlava) .tlacitko--plne, .vzhled-c :is(.hero, .stranka-hlava) .tlacitko--plne { background: #fff; color: var(--modra) !important; }
.vzhled-a :is(.hero, .stranka-hlava) .tlacitko--plne:hover, .vzhled-c :is(.hero, .stranka-hlava) .tlacitko--plne:hover { background: var(--modra-bg); }
.vzhled-a :is(.hero, .stranka-hlava) .tlacitko--obrys, .vzhled-c :is(.hero, .stranka-hlava) .tlacitko--obrys { border-color: rgba(255, 255, 255, .7); color: #fff !important; }
.vzhled-a :is(.hero, .stranka-hlava) .tlacitko--obrys:hover, .vzhled-c :is(.hero, .stranka-hlava) .tlacitko--obrys:hover { background: #fff; color: var(--grafit) !important; }
.vzhled-a .hero__body li, .vzhled-c .hero__body li { color: #fff; }
.vzhled-a .hero__body li::before, .vzhled-c .hero__body li::before { background: #fff; }
.vzhled-a .scroll-mys, .vzhled-c .scroll-mys { border-color: #fff; }
.vzhled-a .scroll-kolecko, .vzhled-c .scroll-kolecko { background: #fff; }
.vzhled-a .scroll-text, .vzhled-c .scroll-text { color: rgba(255, 255, 255, .8); }

/* A: fotka oboru přes celou šířku + modrý přechod v barvě loga */
.vzhled-a .hero { background: linear-gradient(135deg, #17168a 0%, #2322b8 45%, #2f2ee9 100%); }
.vzhled-a .stranka-hlava { background: linear-gradient(90deg, rgba(20, 19, 96, .95) 0%, rgba(35, 34, 184, .84) 50%, rgba(35, 34, 184, .38) 100%), var(--hlava-foto, linear-gradient(#2322b8, #2322b8)) center / cover no-repeat; }
.vzhled-a .stranka-hlava__mrizka { grid-template-columns: minmax(0, 760px); padding-bottom: 92px; }
.vzhled-a .stranka-hlava__foto { display: none; }

/* C: tmavě modrá, fotka zůstává vpravo */
.vzhled-c .hero, .vzhled-c .stranka-hlava { background: radial-gradient(ellipse at 85% 0%, #2a3680 0%, #161d48 50%, #0f1433 100%); }

/* B: bílá a velký trojúhelník z loga */
.vzhled-b .hero, .vzhled-b .stranka-hlava { background: #fff; }
.vzhled-b .hero::before, .vzhled-b .stranka-hlava::before { content: ''; position: absolute; top: 0; right: 0; width: min(46vw, 700px); height: 100%; background: var(--modra-bg); clip-path: polygon(0 0, 100% 0, 100% 100%, 46% 100%); }
.vzhled-b .hero::after, .vzhled-b .stranka-hlava::after { content: ''; position: absolute; top: 0; right: 0; width: min(36vw, 560px); height: 82%; background: var(--modra); clip-path: polygon(0 0, 100% 0, 58% 100%); }
.vzhled-b .hero__mrizka, .vzhled-b .stranka-hlava > .obal { position: relative; z-index: 1; }
@media (max-width: 900px) {
  .vzhled-b .hero::before, .vzhled-b .stranka-hlava::before { width: 70vw; height: 300px; }
  .vzhled-b .hero::after, .vzhled-b .stranka-hlava::after { width: 46vw; height: 190px; }
  .vzhled-a .stranka-hlava { background: linear-gradient(180deg, rgba(20, 19, 96, .94) 0%, rgba(35, 34, 184, .86) 100%), var(--hlava-foto, linear-gradient(#2322b8, #2322b8)) center / cover no-repeat; }
}

/* D: světlá fotka vpravo plynule do bílé, text vlevo, modrá linka dole */
.vzhled-d .hero { background: linear-gradient(180deg, #fff 0%, #f3f4ff 100%); border-bottom: 0; }
.vzhled-d .stranka-hlava { background: #fff; border-bottom: 4px solid var(--modra); }
.vzhled-d .stranka-hlava::before { content: ''; position: absolute; top: 0; right: 0; bottom: 0; width: 70%; background: var(--hlava-svetla, var(--hlava-foto, none)) 70% center / cover no-repeat; }
.vzhled-d .stranka-hlava::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, #fff 0%, #fff 34%, rgba(255, 255, 255, .93) 46%, rgba(255, 255, 255, .4) 60%, rgba(255, 255, 255, 0) 72%); }
.vzhled-d .stranka-hlava > .obal { position: relative; z-index: 1; }
.vzhled-d .stranka-hlava__mrizka { grid-template-columns: minmax(0, 600px); padding-bottom: 96px; }
.vzhled-d .stranka-hlava__foto { display: none; }
.vzhled-d .stranka-hlava .hero__perex { color: var(--text); }
@media (max-width: 900px) {
  .vzhled-d .stranka-hlava::before { width: 100%; background-position: 75% center; }
  .vzhled-d .stranka-hlava::after { background: linear-gradient(180deg, rgba(255, 255, 255, .95) 0%, rgba(255, 255, 255, .86) 100%); }
}
.vzhled-d .stranka-hlava--uzka .obal { padding-bottom: 96px; }
.vzhled-d .stranka-hlava--uzka .obal > * { max-width: 600px; }
.vzhled-d .stranka-hlava--uzka::before { background-position: 70% 18%; }

/* ---------------------------------------------------------------- KOMPLEXNOST */
.jeden { display: grid; grid-template-columns: minmax(0, 1fr) minmax(80px, 200px) minmax(0, 1fr); align-items: center; margin: 10px 0 56px; }
.jeden__stitek { font-family: var(--nadpis); font-weight: 700; font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; color: var(--sedy); margin: 0 0 12px; text-align: right; }
.jeden__role { list-style: none; margin: 0; padding: 0; display: grid; grid-auto-rows: var(--krok, 40px); justify-items: end; }
.jeden__role li { align-self: center; position: relative; background: var(--bila); border: 1px solid var(--linka); border-radius: 99px; padding: 5px 16px 5px 14px; font-size: .92rem; color: var(--grafit); white-space: nowrap; }
.jeden__role li::after { content: ''; position: absolute; right: -5px; top: 50%; width: 9px; height: 9px; margin-top: -4.5px; border-radius: 50%; background: var(--modra); }
.jeden__spoje { width: 100%; height: calc(var(--krok, 40px) * 9); margin-top: 32px; align-self: start; overflow: visible; }
.jeden__spoje path { fill: none; stroke: var(--modra); stroke-width: 1.6; opacity: .55; vector-effect: non-scaling-stroke; stroke-dasharray: 1; stroke-dashoffset: 0; }
.js .jeden:not(.je-videt) .jeden__spoje path { stroke-dashoffset: 1; }
.jeden.je-videt .jeden__spoje path { transition: stroke-dashoffset .9s ease calc(var(--i) * 70ms); }
.jeden__s-nami { background: var(--modra); color: #fff; border-radius: 10px; padding: clamp(24px, 3vw, 36px); box-shadow: 0 30px 60px -30px rgba(47, 46, 233, .55); }
.jeden__znak { width: 46px; height: auto; display: block; margin-bottom: 14px; }
.jeden__nadpis { font-family: var(--nadpis); font-weight: 700; font-size: clamp(1.3rem, 2vw, 1.6rem); line-height: 1.25; margin: 0 0 18px; color: #fff; }
.jeden__cisla { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.jeden__cisla li { display: grid; grid-template-columns: 64px 1fr; align-items: baseline; gap: 12px; border-top: 1px solid rgba(255, 255, 255, .22); padding-top: 12px; }
.jeden__cisla b { font-family: var(--nadpis); font-size: 2rem; font-weight: 700; line-height: 1; }
.jeden__cisla span { color: rgba(255, 255, 255, .88); font-size: 1.06rem; }   /* stejná velikost jako role vlevo (18 px) */
.pas-sluzeb { background: var(--papir); border-bottom: 1px solid var(--linka); }
.pas-sluzeb__in { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; padding: 14px 0; }
.pas-sluzeb__popis { font-family: var(--nadpis); font-weight: 700; font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; color: var(--sedy); margin-right: 6px; }
.pas-sluzeb a { font-size: .88rem; font-weight: 600; text-decoration: none; color: var(--grafit) !important; background: var(--bila); border: 1px solid var(--linka); border-radius: 99px; padding: 5px 12px; }
.pas-sluzeb a:hover { border-color: var(--modra); color: var(--modra) !important; }
.pas-sluzeb a.je-aktivni { background: var(--modra) !important; border-color: var(--modra); color: #fff !important; }
@media (max-width: 900px) {
  .jeden { grid-template-columns: 1fr; gap: 18px; }
  .jeden__spoje { display: none; }
  .jeden__stitek { text-align: left; }
  .jeden__role { grid-auto-rows: auto; display: flex; flex-wrap: wrap; gap: 6px; justify-items: start; }
  .jeden__role li { white-space: normal; padding: 4px 12px; font-size: .88rem; }
  .jeden__role li::after { display: none; }
  .jeden__s-nami { position: relative; margin-top: 18px; }
  .jeden__s-nami::before { content: '↓'; position: absolute; top: -34px; left: 20px; font-size: 1.4rem; color: var(--modra); }
}
@media (prefers-reduced-motion: reduce) { .js .jeden:not(.je-videt) .jeden__spoje path { stroke-dashoffset: 0; } }
/* O nás – odkazy na služby (Čejka 19. 10.: tým bez jmen, bez oprávnění a referencí) */
.o-nas__sluzby { display: flex; flex-wrap: wrap; gap: 8px 10px; margin-top: 18px; }
.o-nas__sluzba { font-family: var(--nadpis); font-weight: 600; font-size: .95rem; text-decoration: none; color: var(--grafit) !important; background: var(--bila); border: 1px solid var(--linka); border-radius: 99px; padding: 8px 16px; }
.o-nas__sluzba:hover { border-color: var(--modra); color: var(--modra) !important; }
/* Varianta barev „modrá + červená“ (červená z loga, Pavel 19. 10.): červená jen na výzvy k akci a drobné akcenty, modrá zůstává hlavní */
.barvy-cervena .tlacitko--plne, .barvy-cervena :is(.hero, .stranka-hlava) .tlacitko--plne { background: var(--cervena); color: #fff !important; }
.barvy-cervena .tlacitko--plne:hover, .barvy-cervena :is(.hero, .stranka-hlava) .tlacitko--plne:hover { background: var(--cervena-2); }
.barvy-cervena .hero__stitek::before, .barvy-cervena :is(.hero, .stranka-hlava) .hero__stitek::before { background: var(--cervena); }
.barvy-cervena .hero .hero__body li::before, .barvy-cervena .rejstrik__polozky li::before { background: var(--cervena); }
.barvy-cervena .nav__menu > li > a.je-aktivni, .barvy-cervena .nav__menu > li > a:hover { border-bottom-color: var(--cervena); }
.barvy-cervena .logo__popis { border-left-color: var(--cervena); }
.barvy-cervena .foto-ram--audit::before { border-color: var(--cervena); }
.barvy-cervena .nav .nav__cta.tlacitko--plne { background: var(--cervena) !important; }
.barvy-cervena .nav .nav__cta.tlacitko--plne:hover { background: var(--cervena-2) !important; }
/* menu na jeden řádek (Pavel 19. 10.: u užšího notebooku se položky i telefon zalamovaly) */
.nav__menu > li > a, .nav__cta, .logo__popis { white-space: nowrap; }
.nav__in { gap: 16px; }
@media (max-width: 1440px) { .logo__popis { display: none; } }
@media (max-width: 1240px) { .nav__jazyky { display: none; } .nav__menu > li > a { padding: 10px 10px; font-size: .94rem; } }
/* IBM Plex a Archivo jsou širší než Barlow – v menu trochu menší rozestupy, ať se vejde i popisek u loga */
:is(.pismo-plex, .pismo-archivo) .nav__menu > li > a { padding: 10px 9px; font-size: .93rem; }
:is(.pismo-plex, .pismo-archivo) .logo__popis { letter-spacing: .05em; font-size: .66rem; }
:is(.pismo-plex, .pismo-archivo) .nav__cta { font-size: .9rem; }
.prinos__nadpis::before { content: ''; width: 22px; height: 2px; background: currentColor; }
.barvy-cervena .prinos__nadpis::before { background: var(--cervena); }
.foto-ram { isolation: isolate; }   /* ozdobný roh (::before, z-index -1) zůstane vidět i na šedém pozadí sekce */
/* Rejstřík služeb: oblasti oddělené střídavým podkladem a číslem oblasti místo tenké čáry (Pavel 19. 10.) */
.rejstrik { border-top: 0; display: grid; gap: 12px; counter-reset: oblast; }
.rejstrik__radek { border-bottom: 0; padding: 28px; border-radius: 8px; background: var(--bila); border: 1px solid var(--linka); counter-increment: oblast; }
.rejstrik__radek:nth-child(odd) { background: var(--papir); border-color: transparent; }
.rejstrik__hlava::before { content: 'Oblast ' counter(oblast, decimal-leading-zero); display: block; margin-bottom: 6px; font-family: var(--nadpis); font-weight: 700; font-size: .74rem; letter-spacing: .12em; text-transform: uppercase; color: var(--modra); }
.barvy-cervena .rejstrik__hlava::before { color: var(--cervena); }
@media (max-width: 900px) { .rejstrik__radek { padding: 20px 16px; } }
.jeden__role li { font-size: 1.06rem; line-height: 1.3; padding: 7px 18px 7px 16px; }   /* 18 px, Pavlovi bylo 15,6 px málo */

/* ==================================================================== *
 *  DOLADĚNÍ 25. 10. 2026 – pryč znaky šablonových webů:
 *  štítky nad nadpisy bez verzálek a čárky, oblasti služeb bez čísel,
 *  odkazy bez šipek, kontakt bez verzálkových popisků, modrá karta
 *  větou místo velkých čísel, hodnoty jako konkrétní zásady.
 * ==================================================================== */
.hero__stitek { text-transform: none; letter-spacing: 0; font-size: .98rem; }
.hero__stitek::before, .vzhled-a :is(.hero, .stranka-hlava) .hero__stitek::before, .vzhled-c :is(.hero, .stranka-hlava) .hero__stitek::before, .barvy-cervena .hero__stitek::before, .barvy-cervena :is(.hero, .stranka-hlava) .hero__stitek::before { display: none; }
.prinos__nadpis { text-transform: none; letter-spacing: 0; font-size: 1.08rem; color: var(--grafit); }
.prinos__nadpis::before, .barvy-cervena .prinos__nadpis::before { display: none; }
.sekce--tmava .prinos__nadpis { color: #fff; }
.jeden__stitek { text-transform: none; letter-spacing: 0; font-size: .98rem; }
.rejstrik__hlava::before { content: none; display: none; }
.kontakt__udaje dt { text-transform: none; letter-spacing: 0; font-size: .92rem; }
.jeden__veta { margin: 0 0 18px; color: rgba(255, 255, 255, .9); font-size: 1.05rem; line-height: 1.6; }
.jeden__odkaz { color: #fff !important; font-weight: 700; text-decoration: none; border-bottom: 2px solid rgba(255, 255, 255, .55); padding-bottom: 2px; }
.jeden__odkaz:hover { border-bottom-color: #fff; }
.zasady { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.zasady li { display: grid; gap: 2px; padding: 14px 0; border-top: 1px solid #3a4850; }
.zasady li:last-child { border-bottom: 1px solid #3a4850; }
.zasady b { color: #fff; font-family: var(--nadpis); font-size: 1.08rem; }
.zasady span { color: #c3ccd0; }
.zasady--svetle { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 40px; }
.zasady--svetle li { border-color: var(--linka); }
.zasady--svetle li:last-child { border-bottom: 0; }
.zasady--svetle b { color: var(--grafit); }
.zasady--svetle span { color: var(--sedy); }
@media (max-width: 760px) { .zasady--svetle { grid-template-columns: 1fr; } }

/* ===== Ostrý web 1.0 (27. 10. 2026): formulář a přepínač jazyků ===== */
.formular__past { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.formular__stav--ok { background: #e7f4ec; color: #0d5a34; }
.formular__stav--chyba { background: #fdecef; color: #9c1027; }
.formular__pozn a { color: inherit; font-weight: 600; text-decoration: none; }
.formular button[disabled] { opacity: .7; cursor: wait; }
.nav__jazyky, .mobil-menu__jazyky { display: flex; align-items: center; gap: 6px; }
.mobil-menu__jazyky { justify-content: center; }
.paticka__spodek a { color: inherit; }

/* ====================================================================
 *  Schůzka s panem Čejkou 27. 10. 2026 (1.1.0)
 * ==================================================================== */
/* tlačítka všude hranatá, jako logo */
.tlacitko, .nav__cta, .obchuzka__prehrat, .formular button, .jeden__role li, .pas-sluzeb a, .rejstrik__pravo { border-radius: 0 !important; }

/* menu kapitálkami, menší písmo (Pavel 27. 10. večer; dříve 1.2rem bez verzálek) */
.nav__menu > li > a, :is(.pismo-plex, .pismo-archivo) .nav__menu > li > a { font-size: .92rem; letter-spacing: .06em; text-transform: uppercase; padding: 10px 12px; }
.dropdown a { font-size: 1.04rem; }
@media (max-width: 1240px) { .nav__menu > li > a, :is(.pismo-plex, .pismo-archivo) .nav__menu > li > a { font-size: .86rem; padding: 10px 8px; } .logo__popis { display: none; } }

/* úvod, hero: odrážky stejným písmem jako text nad nimi */
.hero__body { font-size: 1.12rem; gap: 9px; }
.vzhled-a .hero__body li { color: rgba(255, 255, 255, .86); }

/* červené pomlčky před i za štítkem a nadpisem pod hero */
.hero__stitek::before, .hero__stitek::after,
.vzhled-a :is(.hero, .stranka-hlava) .hero__stitek::before, .vzhled-a :is(.hero, .stranka-hlava) .hero__stitek::after,
.barvy-cervena .hero__stitek::before, .barvy-cervena :is(.hero, .stranka-hlava) .hero__stitek::before,
.barvy-cervena :is(.hero, .stranka-hlava) .hero__stitek::after { content: ''; display: block; width: 26px; height: 3px; background: var(--cervena); flex: 0 0 auto; }
.nadpis-carky { display: flex; align-items: center; gap: .55em; }
.nadpis-carky::before, .nadpis-carky::after { content: ''; width: 34px; height: 3px; background: var(--cervena); flex: 0 0 auto; }

/* obchůzka: logo B nad žlutou helmou */
.obchuzka__technik circle:last-child { fill: initial; stroke: none; }
.obchuzka__halo { fill: rgba(217, 24, 56, .14); }
.obchuzka__b { fill: var(--modra); stroke: #fff; stroke-width: 1.6; }
.obchuzka__b-pismeno { font-family: Arial, sans-serif; font-weight: 700; font-size: 11px; fill: #fff; }
.obchuzka__helma { fill: var(--znacka-zluta); stroke: var(--grafit); stroke-width: 1.4; stroke-linejoin: round; }
.obchuzka__helma-hreben { fill: none; stroke: var(--grafit); stroke-width: 1.2; stroke-linecap: round; opacity: .55; }

/* modrý blok: výraznější nadpis a role vlevo, červený okraj, zákazníci */
.jeden__stitek { font-family: var(--nadpis); font-weight: 700; font-size: 1.45rem; line-height: 1.25; color: var(--grafit); margin-bottom: 16px; }
.jeden__role li { color: var(--grafit); font-weight: 600; border: 1.5px solid var(--grafit); background: #fff; }
.jeden__role li::after, .barvy-cervena .jeden__role li::after { background: var(--cervena); border-radius: 0; }
.jeden__spoje path { stroke: var(--grafit); opacity: .45; }
.jeden__s-nami { border-radius: 0; border: 4px solid var(--cervena); box-shadow: 0 30px 60px -30px rgba(47, 46, 233, .55); }
.jeden__nadpis { font-size: clamp(1.45rem, 2.2vw, 1.8rem); margin-bottom: 14px; }
.jeden__zakaznici { display: flex; align-items: baseline; gap: .45em; margin: 0 0 16px; padding: 12px 0; border-top: 1px solid rgba(255, 255, 255, .25); border-bottom: 1px solid rgba(255, 255, 255, .25); }
.jeden__zakaznici b { font-family: var(--nadpis); font-size: 2.6rem; line-height: 1; font-weight: 700; color: #fff; }
.jeden__zakaznici span { font-size: 1.12rem; color: #fff; font-weight: 600; }
@media (max-width: 1060px) { .jeden__s-nami::before { color: var(--cervena); } }

/* odkaz v seznamu služby (např. Koordinátor na stránce BOZP) stejnou barvou jako ostatní položky */
.vycet dt a { color: var(--grafit) !important; text-decoration: none; font-weight: 700; border-bottom: 2px solid var(--cervena); }
.vycet dt a:hover { color: var(--cervena) !important; }
/* Školení BOZP a PO na stránce BOZP (V03) – H3 pod výčtem, aby zůstalo 5 H2 */
.skoleni-blok { margin-top: 34px; padding: 26px 0 0; border-top: 2px solid var(--grafit); max-width: 52em; }
.skoleni-blok h3 { margin: 0 0 10px; font-size: 1.3rem; }
.skoleni-blok p { margin: 0 0 10px; }
.skoleni-blok .odkaz-dal { color: var(--grafit) !important; font-weight: 700; text-decoration: none; border-bottom: 2px solid var(--cervena); }
.skoleni-blok .odkaz-dal:hover { color: var(--cervena) !important; }

/* Revize: hlavička s animací Hlídání termínů vedle textu */
.vzhled-a .stranka-hlava--scena .stranka-hlava__mrizka { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); }
.stranka-hlava__scena { position: relative; z-index: 1; }
.stranka-hlava__scena .terminy { border-radius: 0; }
@media (max-width: 1060px) { .vzhled-a .stranka-hlava--scena .stranka-hlava__mrizka { grid-template-columns: 1fr; } }

/* ===== 1.1.1 (27. 10. 2026): modrý blok s čísly, čáry přesně k rámečkům; číslování oblastí zpět ===== */
.jeden { grid-template-rows: auto auto; align-items: start; }
.jeden__stitek { grid-column: 1; grid-row: 1; text-align: right; }
.jeden__role { grid-column: 1; grid-row: 2; }
.jeden__spoje { grid-column: 2; grid-row: 2; margin-top: 0; align-self: start; }
.jeden__s-nami { grid-column: 3; grid-row: 2; align-self: center; }
.jeden__role li { border: 1px solid #b9c2c7; font-weight: 600; padding: 7px 18px 7px 16px; }
.jeden__role li::after { right: -4px; width: 8px; height: 8px; margin-top: -4px; }
.jeden__spoje path { stroke: #9aa6ab; opacity: .8; }
.jeden__cisla { margin: 0 0 22px; }
.jeden__cisla li { grid-template-columns: 76px 1fr; }
.jeden__cisla b { color: #fff; }
.jeden__cisla span { font-size: 1.04rem; }
.jeden__cisla-zakaznici b { color: #fff; }
.jeden__cisla-zakaznici span { font-weight: 700; color: #fff; }
.jeden__nadpis { margin-bottom: 18px; }
@media (max-width: 1060px) {
  .jeden__stitek, .jeden__role, .jeden__s-nami { grid-column: 1; grid-row: auto; text-align: left; }
}
.rejstrik__hlava::before { content: 'Oblast ' counter(oblast, decimal-leading-zero); display: block; }

/* helma realističtěji (Pavel 27. 10.): kopule s přechodem, hřeben, lesk, zahnutý kšilt */
.obchuzka__helma { fill: url(#bp-helma); stroke: #8a6200; stroke-width: .9; }
.obchuzka__helma-hreben { fill: #e0a800; stroke: #8a6200; stroke-width: .7; opacity: 1; stroke-linecap: butt; }
.obchuzka__helma-lesk { fill: none; stroke: #fff; stroke-width: 1.5; stroke-linecap: round; opacity: .75; }
.obchuzka__helma-krempa { fill: url(#bp-krempa); stroke: #8a6200; stroke-width: .9; stroke-linejoin: round; }
/* role vlevo výrazněji (Pavel 27. 10.): modré pozadí, bílé písmo; čáry z téže výšky řádku (--krok na .jeden) */
.jeden__role li { background: var(--modra); color: #fff; border: 0; font-weight: 600; box-shadow: 0 6px 14px -8px rgba(47, 46, 233, .6); }
.jeden__role li::after, .barvy-cervena .jeden__role li::after { right: -5px; width: 10px; height: 10px; margin-top: -5px; background: var(--cervena); }
.jeden__spoje path { stroke: var(--modra); opacity: .55; stroke-width: 1.8; }
/* Cloudflare Turnstile ve formuláři (4. 11. 2026) */
.formular__overeni { min-height: 65px; }

/* ===== 1.2.3 (6. 11. 2026): lišta cookies (Complianz) hranatá a červená jako zbytek webu ===== */
.cmplz-cookiebanner, .cmplz-cookiebanner .cmplz-btn, .cmplz-cookiebanner .cmplz-category, .cmplz-cookiebanner .cmplz-category .cmplz-category-header,
.cmplz-btn.cmplz-manage-consent { border-radius: 0 !important; }
.cmplz-cookiebanner .cmplz-btn.cmplz-accept { background-color: var(--cervena) !important; border-color: var(--cervena) !important; color: #fff !important; }
.cmplz-cookiebanner .cmplz-btn.cmplz-accept:hover { background-color: var(--cervena-2) !important; border-color: var(--cervena-2) !important; }
.cmplz-cookiebanner .cmplz-btn:not(.cmplz-accept) { border: 1.5px solid var(--grafit) !important; color: var(--grafit) !important; background: #fff !important; }
.cmplz-cookiebanner .cmplz-btn:not(.cmplz-accept):hover { background: var(--grafit) !important; color: #fff !important; }
