/*!
Theme Name: PB-con
Theme URI: https://www.pb-con.cz/
Author: PB-con s.r.o.
Description: Šablona pro PB-con s.r.o. — realizace staveb, projekční činnost, inženýrské služby a technický dozor. Jednostránka s podstránkou ke každé službě (specifikace, schéma, průběh spolupráce, časté otázky). Postavena na designu „Blueprint“: architektonický výkres v pozadí s parallaxem, sklo a vlasové linky nad ním, jeden modrý akcent. Obsah jednostránky se edituje v administraci (PB-con → Nastavení), Služby, Reference a Poradna jsou plnohodnotné typy obsahu. Součástí šablony je SEO vrstva: titulky, popisky, kanonické adresy, Open Graph a strukturovaná data (schema.org) bez pluginu.
Version: 3.15.1
Requires at least: 6.2
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: pb-con
Tags: one-page, business, construction, blog, custom-colors, custom-logo, custom-menu, featured-images, translation-ready
*/

/* ==========================================================================
   0. Fonty — self-hosted (bez volání na Google Fonts, kvůli GDPR)
   ========================================================================== */
/* Archivo — latin-ext */
@font-face{font-family:'Archivo';font-style:normal;font-weight:400 900;font-display:swap;src:url('assets/fonts/archivo-var-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}
/* Archivo — latin */
@font-face{font-family:'Archivo';font-style:normal;font-weight:400 900;font-display:swap;src:url('assets/fonts/archivo-var-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}
/* Space Mono — latin-ext */
@font-face{font-family:'Space Mono';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/space-mono-400-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}
/* Space Mono — latin */
@font-face{font-family:'Space Mono';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/space-mono-400-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}
/* Space Mono — latin-ext */
@font-face{font-family:'Space Mono';font-style:normal;font-weight:700;font-display:swap;src:url('assets/fonts/space-mono-700-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}
/* Space Mono — latin */
@font-face{font-family:'Space Mono';font-style:normal;font-weight:700;font-display:swap;src:url('assets/fonts/space-mono-700-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}

/* ==========================================================================
   1. Tokeny — jediný zdroj pravdy. Hodnoty pocházejí z designu „PB-con – Light“.
      Akcent a pozadí lze přepsat z Přizpůsobit → Barvy (viz inc/customizer.php),
      které vypisuje stejné proměnné do <head> s vyšší specificitou.
   ========================================================================== */
:root{
  /* ground */
  --pb-bg:#F4F5F2;
  --pb-bg-band:rgba(233,236,229,0.82);   /* tmavší pás: reference, kontakt   */
  --pb-bg-footer:rgba(240,242,237,0.92);
  --pb-bg-chrome:rgba(247,248,245,0.88); /* hlavička                         */
  --pb-bg-topbar:rgba(247,248,245,0.78);

  /* surfaces — sklo nad výkresem */
  --pb-surface:rgba(255,255,255,0.92);   /* karty                            */
  --pb-surface-panel:rgba(255,255,255,0.74); /* panely nadpisů sekcí         */
  --pb-surface-hero:rgba(255,255,255,0.62);
  --pb-surface-hover:#F2F4EF;

  /* ink */
  --pb-ink:#0F1216;        /* nadpisy                                        */
  --pb-text:#1A1D22;       /* základní text                                  */
  --pb-text-body:#4C5665;  /* hero lead                                      */
  --pb-text-soft:#55606E;  /* odstavce sekcí                                 */
  --pb-text-card:#5C6773;  /* text v kartách                                 */
  --pb-text-nav:#3D4550;   /* odkazy v navigaci a patičce                    */
  --pb-muted:#6B7480;
  --pb-muted-2:#7C858F;    /* nejtišší popisky                               */

  /* accent */
  --pb-accent:#2E6FF2;
  --pb-accent-hover:#2257c9;
  --pb-accent-a40:rgba(46,111,242,0.40);
  --pb-accent-a50:rgba(46,111,242,0.50);
  --pb-accent-a12:rgba(46,111,242,0.12);
  --pb-accent-a10:rgba(46,111,242,0.10);

  /* hairlines — jediný způsob, jak se v tomto systému kreslí hrana */
  --pb-line-10:rgba(15,18,22,0.10);
  --pb-line-12:rgba(15,18,22,0.12);
  --pb-line-14:rgba(15,18,22,0.14);
  --pb-line-16:rgba(15,18,22,0.16);
  --pb-line-18:rgba(15,18,22,0.18);
  --pb-line-22:rgba(15,18,22,0.22);

  /* type */
  --pb-font:'Archivo',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --pb-mono:'Space Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;

  /* layout */
  --pb-max:1280px;
  --pb-gutter:32px;

  /* Výška hlavičky a loga. Obojí se nastavuje v Přizpůsobit → Identita webu;
     nastavené hodnoty přepíší tyto tokeny inline stylem (pb_con_chrome_css()).
     Hlavička nikdy neklesne pod výšku loga s odsazením — výška je tedy spíš
     spodní mez než pevný rozměr. */
  --pb-header-min-h:88px;
  --pb-logo-h:56px;

  /* Výška fixní hlavičky. Hodnoty odpovídají výchozímu vzhledu a slouží pro
     případ, že se nenačte skript — ten je v assets/js/theme.js přepíše na
     změřené pixely (výška se mění s velikostí loga i zalomením horní lišty). */
  --pb-topbar-h:36px;
  --pb-header-h:89px;
  --pb-chrome-h:calc(var(--pb-topbar-h) + var(--pb-header-h));

  /* motion */
  --pb-ease:cubic-bezier(.2,.7,.2,1);
  --pb-bp-scale:1.85;      /* overscan parallaxových vrstev                   */
}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
/* Atribut hidden musí přebít i vlastní display. Pravidlo z prohlížeče
   ([hidden]{display:none}) totiž prohraje s každým .neco{display:flex}
   v tomhle souboru, takže by skript prvek schoval jen naoko. */
[hidden]{display:none!important}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--pb-header-h) + 20px)}
body{
  background:var(--pb-bg);
  color:var(--pb-text);
  font-family:var(--pb-font);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
img{max-width:100%;height:auto}
::selection{background:var(--pb-accent);color:#fff}
input:focus,textarea:focus,select:focus{outline:none}
a{color:var(--pb-accent)}

/* Viditelný focus pro klávesnici — v mockupu chybí, na produkci je povinný. */
:focus-visible{outline:2px solid var(--pb-accent);outline-offset:2px}

@keyframes pb-rise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
@keyframes pb-blink{0%,100%{opacity:1}50%{opacity:.25}}

.pb-skip{position:absolute;left:-9999px;top:0;z-index:999;background:var(--pb-accent);color:#fff;
  padding:12px 18px;font-weight:700;font-size:14px;text-decoration:none}
.pb-skip:focus{left:8px;top:8px}
.pb-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ==========================================================================
   2. Podklad — architektonický výkres, tři parallaxové vrstvy + čtecí mlha
   ========================================================================== */
.pb-shell{min-height:100vh;background:var(--pb-bg);overflow-x:clip;position:relative;
  padding-top:var(--pb-chrome-h)}
.pb-bp-stage{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.pb-bp-layer{
  position:absolute;inset:0;background-position:center;background-size:cover;
  background-repeat:no-repeat;transform:scale(var(--pb-bp-scale));will-change:transform;
  /* výkres je kreslen světlou linkou na tmavém podkladu — invertujeme ho do světla */
  filter:invert(1) hue-rotate(180deg) saturate(0.7);
}
.pb-bp-layer--far{opacity:.50}
.pb-bp-layer--mid{opacity:.45}
.pb-bp-layer--near{opacity:.42}
.pb-wash{
  position:fixed;inset:0;z-index:1;pointer-events:none;
  background:
    radial-gradient(1100px 680px at 32% 28%, rgba(250,251,248,0.55) 0%, rgba(250,251,248,0) 72%),
    radial-gradient(120% 100% at 50% 45%, rgba(255,255,255,0) 58%, rgba(244,245,242,0.6) 100%),
    linear-gradient(180deg, rgba(250,251,248,0.45) 0%, rgba(250,251,248,0.2) 40%, rgba(250,251,248,0.6) 100%);
}
/* Obsah leží nad podkladem i mlhou (.pb-wash má z-index 1 a je v DOM dřív).
   .pb-chrome (horní lišta + hlavička) tu ZÁMĚRNĚ není: potřebuje z-index 50,
   aby kreslilo nad obsahem — a s ním i vysunutá mobilní zásuvka menu.
   Selektor `.pb-shell > .pb-chrome` má vyšší specificitu než `.pb-chrome`,
   takže by mu position:fixed a z-index přebil a hlavička by se odscrollovala. */
.pb-shell > main,
.pb-shell > .pb-footer,
.pb-section{position:relative;z-index:1}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .pb-bp-layer{transform:scale(var(--pb-bp-scale)) !important}
}

/* ==========================================================================
   3. Opakující se prvky
   ========================================================================== */
/* Pozor: prvky, které nesou .pb-wrap spolu s vlastní třídou, musí odsazení
   nahoru/dolů zapisovat jako padding-top/padding-bottom. Zkratka `padding`
   by přebila i postranní okap a obsah by se rozjel k hraně okna. */
.pb-wrap{max-width:var(--pb-max);margin:0 auto;padding-left:var(--pb-gutter);padding-right:var(--pb-gutter)}

.pb-kicker{font-family:var(--pb-mono);font-size:12px;letter-spacing:.16em;color:var(--pb-accent);margin-bottom:14px}
.pb-h2{font-size:clamp(32px,4vw,52px);font-weight:900;letter-spacing:-.03em;line-height:1;color:var(--pb-ink)}
.pb-chip{font-family:var(--pb-mono);font-size:11px;color:var(--pb-text-nav);
  border:1px solid var(--pb-line-16);padding:5px 10px}
/* Štítek, který někam vede — autorizace ČKAIT ve veřejném seznamu. */
a.pb-chip--link{display:inline-block;text-decoration:none;transition:color .2s,border-color .2s}
a.pb-chip--link:hover,a.pb-chip--link:focus-visible{color:var(--pb-accent);border-color:var(--pb-accent)}

/* Prokliky do veřejných rejstříků vedle IČO. Tiché, aby nepřebily samotný
   údaj — jde o možnost ověřit si firmu, ne o navigaci. */
.pb-icolinks{display:inline-flex;flex-wrap:wrap;gap:6px;margin-left:8px;
  vertical-align:middle;font-style:normal}
.pb-icolink{font-family:var(--pb-mono);font-size:10px;letter-spacing:.06em;
  color:var(--pb-muted-2);text-decoration:none;border:1px solid var(--pb-line-16);
  padding:3px 8px;white-space:nowrap;transition:color .2s,border-color .2s}
.pb-icolink:hover,.pb-icolink:focus-visible{color:var(--pb-accent);border-color:var(--pb-accent)}
.pb-metalabel{font-family:var(--pb-mono);font-size:10px;color:var(--pb-muted-2);letter-spacing:.08em}
/* Odstavce složené z víceřádkového pole v nastavení (pb_con_paragraphs).
   Lead texty samy o sobě odsazení mezi odstavci nemají — dokud šlo vždy
   o jediný odstavec, nebylo ho kde potřebovat. Dvě třídy v selektoru
   přebijí i vlastní margin jednotlivých lead tříd. */
.pb-rt + .pb-rt{margin-top:.75em}

/* panel s nadpisem sekce — frosted sklo s vlasovou linkou */
.pb-sechead{
  background:var(--pb-surface-panel);backdrop-filter:blur(3px);border:1px solid var(--pb-line-10);
  padding:30px 32px;display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;
}
.pb-sechead__lead{max-width:380px;font-size:16px;line-height:1.6;color:var(--pb-text-soft)}
.pb-sechead__link{font-family:var(--pb-mono);font-size:13px;color:var(--pb-accent);
  text-decoration:none;letter-spacing:.06em}
.pb-sechead__link:hover{text-decoration:underline}

/* tlačítka */
.pb-btn{display:inline-block;padding:15px 28px;font-weight:700;font-size:15px;text-decoration:none;
  border:1px solid transparent;cursor:pointer;font-family:var(--pb-font);transition:background .2s,border-color .2s,color .2s}
.pb-btn--primary{background:var(--pb-accent);color:#fff}
.pb-btn--primary:hover{background:var(--pb-accent-hover)}
.pb-btn--ghost{border-color:var(--pb-line-22);color:var(--pb-text);background:rgba(255,255,255,0.5)}
.pb-btn--ghost:hover{border-color:var(--pb-accent)}

/* stínítko za mobilní zásuvkou menu — na desktopu se nepoužívá */
.pb-navscrim{display:none}

/* pás s odlišným pozadím (reference, kontakt) */
.pb-band{border-top:1px solid var(--pb-line-12);background:var(--pb-bg-band)}

/* Odhalování při scrollu.
   Skrýváme teprve tehdy, když skript třídu .pb-reveal skutečně nasadí — tedy
   až je jisté, že má čím obsah zase zobrazit. Kdyby se JS nenačetl nebo spadl,
   zůstane obsah normálně vidět; opačné zapojení by při chybě skriptu nechalo
   prázdnou stránku. */
.pb-reveal [data-reveal]{opacity:0;transform:translateY(28px)}
.pb-reveal [data-reveal].is-in{opacity:1;transform:translateY(0);
  transition:opacity .7s var(--pb-ease),transform .7s var(--pb-ease)}
@media (prefers-reduced-motion:reduce){
  .pb-reveal [data-reveal]{opacity:1;transform:none;transition:none}
}

/* ==========================================================================
   4. Horní lišta + hlavička
   ========================================================================== */
/* Fixní chrom. POZOR: .pb-chrome nesmí dostat transform, filter, backdrop-filter
   ani will-change — každý z nich by z něj udělal containing block pro
   position:fixed potomky a mobilní zásuvka menu (.pb-nav) uvnitř hlavičky by
   se pak měřila k chromu, ne k oknu. Rozostření proto nesou lišta a hlavička
   samostatně. Ze stejného důvodu se lišta na scrollu neschovává transformem,
   ale záporným margin-top — ten se dědí jen v rámci chromu. */
.pb-chrome{position:fixed;top:0;left:0;right:0;z-index:50}
/* Přihlášenému uživateli sedí nad stránkou lišta administrace. Uhýbáme jí jen
   nad 782 px — na menších oknech ji WordPress pozicuje absolutně, takže
   odscrolluje sama a odsazení by po ní nechalo mezeru. */
@media screen and (min-width:783px){
  .admin-bar .pb-chrome{top:32px}
}

.pb-topbar{border-bottom:1px solid var(--pb-line-10);background:var(--pb-bg-topbar);
  backdrop-filter:blur(14px);transition:margin-top .28s var(--pb-ease),opacity .28s var(--pb-ease)}
/* Odscrollováno: lišta odjede nad okraj okna a navigace se dotkne horní hrany.
   Výška chromu v --pb-chrome-h se tím nemění, obsah tedy nepodskočí. */
.pb-scrolled .pb-topbar{margin-top:calc(-1 * var(--pb-topbar-h));opacity:0;pointer-events:none}
@media (prefers-reduced-motion:reduce){
  .pb-topbar{transition:none}
}
.pb-topbar__inner{max-width:var(--pb-max);margin:0 auto;padding:9px var(--pb-gutter);
  display:flex;justify-content:flex-end;align-items:center;gap:22px;
  font-family:var(--pb-mono);font-size:12px;letter-spacing:.04em;color:var(--pb-muted)}
.pb-topbar a{color:var(--pb-text-nav);text-decoration:none}
.pb-topbar a:hover{color:var(--pb-accent)}
.pb-topbar__sep{opacity:.3}

.pb-header{backdrop-filter:blur(14px);background:var(--pb-bg-chrome);
  border-bottom:1px solid var(--pb-line-10);transition:box-shadow .28s var(--pb-ease)}
/* Odscrollováno: hlavička visí nad obsahem, tak ji od něj oddělíme stínem. */
.pb-scrolled .pb-header{box-shadow:0 10px 30px rgba(15,18,22,0.07)}
/* Výšku drží min-height, ne odsazení — nastavená hodnota se tak dodrží i u
   malého loga. Odsazení 6 px je jen pojistka, aby se vysoké logo nedotklo
   vlasové linky pod hlavičkou. */
.pb-header__inner{max-width:var(--pb-max);margin:0 auto;padding:6px var(--pb-gutter);
  min-height:var(--pb-header-min-h);
  display:flex;align-items:center;justify-content:space-between;gap:16px}
.pb-logo{display:flex;align-items:center;text-decoration:none;flex-shrink:0}
.pb-logo img{height:var(--pb-logo-h);width:auto;display:block}
.pb-logo__text{font-size:24px;font-weight:900;letter-spacing:-.02em;color:var(--pb-ink)}

.pb-nav{display:flex;gap:4px;align-items:center}
.pb-nav a{padding:9px 15px;color:var(--pb-text-nav);text-decoration:none;font-weight:600;
  font-size:14px;letter-spacing:.01em;transition:color .2s}
.pb-nav a:hover,.pb-nav .current-menu-item > a{color:var(--pb-accent)}
/* poslední položka menu se vykresluje jako tlačítko (viz pb_con_nav_cta_class) */
.pb-nav .pb-nav__cta > a,.pb-nav a.pb-nav__cta{margin-left:12px;padding:11px 22px;
  background:var(--pb-accent);color:#fff;font-weight:700}
.pb-nav .pb-nav__cta > a:hover,.pb-nav a.pb-nav__cta:hover{background:var(--pb-accent-hover);color:#fff}

/* Rozbalovací nabídka. Nadřazená položka zůstává odkazem, rozbalování drží
   průhledné tlačítko přes kolíčkem — kdo klikne na název, jde na stránku.
   Otevírá se přejezdem myší i fokusem z klávesnice (:focus-within), takže
   nabídka funguje i bez JavaScriptu; skript přidává jen klepnutí na dotyku,
   zavření klávesou Escape a klikem mimo. */
.pb-nav__group{position:relative;display:flex;align-items:center}
.pb-nav__group > a{display:inline-flex;align-items:center;gap:8px;padding-right:13px}
.pb-nav__caret{width:6px;height:6px;border-right:1.5px solid currentColor;
  border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);
  transition:transform .2s var(--pb-ease)}
.pb-nav__group:hover .pb-nav__caret,
.pb-nav__group:focus-within .pb-nav__caret,
.pb-nav__group.is-open .pb-nav__caret{transform:translateY(1px) rotate(225deg)}
/* Tlačítko překrývá jen kolíček, ne celý název. */
.pb-nav__toggle{position:absolute;top:0;right:0;bottom:0;width:26px;padding:0;
  border:0;background:none;cursor:pointer}
.pb-nav__toggle:focus-visible{outline:2px solid var(--pb-accent);outline-offset:-2px}

.pb-nav__sub{position:absolute;top:100%;left:0;z-index:55;min-width:248px;
  display:flex;flex-direction:column;padding:6px 0;
  background:var(--pb-surface);backdrop-filter:blur(6px);
  border:1px solid var(--pb-line-12);box-shadow:0 18px 34px rgba(15,18,22,0.10);
  opacity:0;visibility:hidden;transform:translateY(-6px);
  transition:opacity .2s var(--pb-ease),transform .2s var(--pb-ease),visibility .2s}
.pb-nav__group:hover .pb-nav__sub,
.pb-nav__group:focus-within .pb-nav__sub,
.pb-nav__group.is-open .pb-nav__sub{opacity:1;visibility:visible;transform:translateY(0)}
.pb-nav__sub a{padding:11px 18px;white-space:nowrap}
.pb-nav__sub a:hover{background:var(--pb-surface-hover)}
@media (prefers-reduced-motion:reduce){
  .pb-nav__sub,.pb-nav__caret{transition:none}
}

.pb-burger{display:none;position:relative;width:44px;height:44px;border:1px solid var(--pb-line-18);
  background:rgba(255,255,255,0.5);cursor:pointer;padding:0;align-items:center;justify-content:center}
.pb-burger span{display:block;width:20px;height:2px;background:var(--pb-ink);position:relative;transition:transform .25s,opacity .25s}
.pb-burger span::before,.pb-burger span::after{content:'';position:absolute;left:0;width:20px;height:2px;background:var(--pb-ink);transition:transform .25s}
.pb-burger span::before{top:-6px}
.pb-burger span::after{top:6px}
.pb-burger[aria-expanded="true"] span{background:transparent}
.pb-burger[aria-expanded="true"] span::before{transform:translateY(6px) rotate(45deg)}
.pb-burger[aria-expanded="true"] span::after{transform:translateY(-6px) rotate(-45deg)}

/* ==========================================================================
   5. Hero
   ========================================================================== */
.pb-hero__stage{position:relative;width:100%;min-height:660px;display:flex;align-items:center;overflow:hidden}
/* Fotografie se vlevo rozplývá do podkladu, aby výkres zůstal čitelný. */
.pb-hero__media{position:absolute;inset:0;background-repeat:no-repeat;background-position:right center;background-size:cover;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,0.14) 24%,rgba(0,0,0,0.55) 44%,#000 64%,#000 100%);
  mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,0.14) 24%,rgba(0,0,0,0.55) 44%,#000 64%,#000 100%)}
.pb-hero__scrim{position:absolute;inset:0;background:linear-gradient(90deg,
  rgba(247,248,250,0.9) 0%,rgba(247,248,250,0.72) 38%,rgba(247,248,250,0.22) 66%,rgba(247,248,250,0) 100%)}
.pb-hero__inner{position:relative;width:100%;max-width:var(--pb-max);margin:0 auto;
  padding:96px var(--pb-gutter) 88px}
.pb-hero__card{max-width:660px;background:var(--pb-surface-hero);backdrop-filter:blur(2px);
  border:1px solid rgba(15,18,22,0.09);padding:36px 38px 38px}
.pb-badge{display:inline-flex;align-items:center;gap:10px;font-family:var(--pb-mono);font-size:12px;
  letter-spacing:.14em;color:var(--pb-accent);border:1px solid var(--pb-accent-a40);
  padding:7px 13px;margin-bottom:30px;background:rgba(255,255,255,0.6)}
.pb-badge__dot{width:6px;height:6px;background:var(--pb-accent);border-radius:50%;
  animation:pb-blink 1.6s infinite;flex-shrink:0}
@media (prefers-reduced-motion:reduce){.pb-badge__dot{animation:none}}
.pb-hero__title{font-size:clamp(44px,5.6vw,82px);font-weight:900;line-height:.94;
  letter-spacing:-.035em;color:var(--pb-ink);text-wrap:balance}
.pb-hero__title em{font-style:normal;color:var(--pb-accent)}
/* Podnadpis pod H1 — menší a lehčí, aby H1 držel vizuální dominanci.
   Šířka je omezená, aby se na telefonu nezalomil do tří řádků. */
.pb-hero__subtitle{margin-top:16px;max-width:440px;font-size:clamp(19px,2vw,26px);font-weight:600;
  letter-spacing:-.015em;line-height:1.22;color:var(--pb-text-body);text-wrap:balance}
.pb-hero__lead{margin-top:24px;max-width:560px;font-size:19px;line-height:1.62;color:var(--pb-text-body)}
.pb-hero__actions{margin-top:30px;padding-top:26px;border-top:1px solid var(--pb-line-14);
  display:flex;gap:14px;flex-wrap:wrap}

/* pás statistik */
.pb-stats{background:var(--pb-surface-panel);backdrop-filter:blur(3px);border:1px solid var(--pb-line-10);
  display:grid;grid-template-columns:repeat(4,1fr)}
.pb-stat{padding:28px 22px;border-right:1px solid rgba(15,18,22,0.09)}
.pb-stat:last-child{border-right:0}
.pb-stat__value{font-size:46px;font-weight:900;letter-spacing:-.03em;color:var(--pb-ink);line-height:1}
.pb-stat__label{margin-top:8px;font-family:var(--pb-mono);font-size:11px;letter-spacing:.08em;
  color:var(--pb-muted);text-transform:uppercase}

/* ==========================================================================
   6. 01 — Služby
   ========================================================================== */
.pb-services{padding:40px 0 90px}
.pb-services .pb-sechead{margin-bottom:44px}
/* mřížka 2×2, spáry jsou prosvítající linka pod kartami */
.pb-services__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;
  background:var(--pb-line-12);border:1px solid var(--pb-line-12)}
.pb-service{background:var(--pb-surface);padding:38px 34px;position:relative;transition:background .3s}
.pb-service:hover{background:var(--pb-surface-hover)}
.pb-service__no{font-family:var(--pb-mono);font-size:13px;color:var(--pb-accent);letter-spacing:.1em}
.pb-service__title{margin-top:26px;font-size:clamp(36px,3.4vw,48px);font-weight:800;
  letter-spacing:-.02em;color:var(--pb-ink);line-height:1.02}
.pb-service__title em{font-style:normal;color:var(--pb-accent)}
.pb-service__desc{margin-top:12px;font-size:15px;line-height:1.62;color:var(--pb-text-card)}
.pb-service__tags{margin-top:20px;display:flex;flex-wrap:wrap;gap:8px}
/* Karta s podstránkou je celá odkaz. Barvy si nesou potomci sami, aby
   globální `a{color:accent}` neobarvilo celou kartu modře. */
.pb-service{display:flex;flex-direction:column}
.pb-service--link{text-decoration:none;color:var(--pb-text)}
.pb-service__more{margin-top:auto;padding-top:24px;font-family:var(--pb-mono);font-size:12px;
  letter-spacing:.08em;color:var(--pb-accent)}
.pb-service--link:hover .pb-service__more{text-decoration:underline}

/* ==========================================================================
   7. 02 — Reference (typ obsahu pbcon_reference)
   ========================================================================== */
.pb-reference__inner{padding-top:84px;padding-bottom:84px}
.pb-reference .pb-sechead{background:none;border:0;padding:0;backdrop-filter:none;margin-bottom:38px}
.pb-filters{display:flex;gap:8px;flex-wrap:wrap}
/* Na jednostránce jsou to <button> (filtruje prohlížeč), nad výpisem referencí
   <a> na kategorie (filtruje server) — proto display i podtržení natvrdo. */
.pb-filter{display:inline-block;padding:9px 16px;font-family:var(--pb-mono);font-size:12px;letter-spacing:.04em;
  cursor:pointer;border:1px solid var(--pb-line-18);background:transparent;color:var(--pb-text-nav);
  text-decoration:none;transition:all .2s}
.pb-filter:hover{border-color:var(--pb-accent);color:var(--pb-accent)}
.pb-filter[aria-pressed="true"],
.pb-filter[aria-current="page"]{border-color:var(--pb-accent);background:var(--pb-accent);color:#fff}

.pb-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.pb-ref{background:var(--pb-surface);border:1px solid var(--pb-line-12);overflow:hidden;
  transition:border-color .3s;display:flex;flex-direction:column}
.pb-ref:hover{border-color:var(--pb-accent-a50)}
.pb-ref.is-shown{animation:pb-rise .5s both}
.pb-ref__media{position:relative;aspect-ratio:4/3;overflow:hidden;
  background:linear-gradient(135deg,#EAECE6,#DFE2DA)}
/* modrá milimetrová mřížka prosvítá tam, kde chybí fotografie */
.pb-ref__media::before{content:'';position:absolute;inset:0;
  background-image:linear-gradient(var(--pb-accent-a12) 1px,transparent 1px),
                   linear-gradient(90deg,var(--pb-accent-a12) 1px,transparent 1px);
  background-size:26px 26px}
.pb-ref__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
/* Kategorie stavby nad fotografií. Reference smí patřit do víc kategorií
   (naprojektovali i postavili), takže je to sloupec štítků, ne jeden štítek —
   svisle proto, že vedle sebe by dva delší názvy přelezly celou fotografii. */
.pb-ref__cats{position:absolute;top:12px;left:12px;display:flex;flex-direction:column;
  align-items:flex-start;gap:4px;max-width:calc(100% - 24px)}
.pb-ref__cat{font-family:var(--pb-mono);font-size:10px;
  letter-spacing:.1em;background:var(--pb-accent);color:#fff;padding:4px 8px;text-transform:uppercase}
.pb-ref__body{padding:22px 22px 26px;display:flex;flex-direction:column;flex:1}
/* Nadpis drží dva řádky, i když je jednořádkový — popisy pod ním pak napříč
   řádkem mřížky začínají v jedné rovině místo každý jinde. Delší název se
   ořízne třemi tečkami; na kartě je stejně jen ukázka a celý stojí na detailu.
   Rezerva se počítá z line-height (2 × 1.25em), obojí se tedy mění spolu. */
.pb-ref__title{font-size:20px;font-weight:800;line-height:1.25;letter-spacing:-.01em;
  color:var(--pb-ink);min-height:2.5em;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.pb-ref__title a{color:inherit;text-decoration:none}
.pb-ref__title a:hover{color:var(--pb-accent)}
/* náhled pod názvem — text z oddílu „O projektu“, nebo parametry stavby;
   režim se přepíná v PB-con → Nastavení → Sekce 02 */
.pb-ref__desc{margin-top:12px;font-size:14px;line-height:1.55;color:var(--pb-text-card);
  overflow-wrap:break-word}
/* popisky v jednom sloupci, hodnoty se zlomí, ale nepřetečou */
.pb-ref__facts{margin-top:12px;display:grid;grid-template-columns:auto 1fr;gap:7px 10px;
  align-items:baseline}
.pb-ref__facts dt{font-family:var(--pb-mono);font-size:11px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--pb-muted-2)}
.pb-ref__facts dd{margin:0;font-size:14px;line-height:1.45;font-weight:600;color:var(--pb-text);
  overflow-wrap:break-word;hyphens:auto;min-width:0}

/* ==========================================================================
   8. 03 — Poradna (typ obsahu pbcon_poradna)
   ========================================================================== */
.pb-poradna{padding:84px 0}
.pb-poradna .pb-sechead{margin-bottom:40px}
.pb-post{text-decoration:none;display:flex;flex-direction:column;background:var(--pb-surface);
  border:1px solid var(--pb-line-12);transition:transform .3s var(--pb-ease),border-color .3s}
.pb-post:hover{border-color:var(--pb-accent-a50);transform:translateY(-4px)}
@media (prefers-reduced-motion:reduce){.pb-post:hover{transform:none}}
.pb-post__media{aspect-ratio:16/9;position:relative;overflow:hidden;
  background:linear-gradient(135deg,#EAECE6,#DFE2DA)}
.pb-post__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
/* vodorovné linky výkresu přes fotografii */
.pb-post__media::after{content:'';position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(var(--pb-accent-a10) 1px,transparent 1px);background-size:100% 22px}
.pb-post__body{padding:22px}
.pb-post__kicker{font-family:var(--pb-mono);font-size:11px;letter-spacing:.08em;color:var(--pb-accent)}
/* Dva řádky jako u referencí — zmínky pod nadpisy pak drží jednu rovinu. */
.pb-post__title{margin-top:12px;font-size:19px;font-weight:800;line-height:1.25;
  letter-spacing:-.01em;color:var(--pb-ink);min-height:2.5em;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.pb-post__excerpt{margin-top:10px;font-size:14px;line-height:1.55;color:var(--pb-text-card)}

.pb-empty{grid-column:1/-1;background:var(--pb-surface-panel);border:1px dashed var(--pb-line-18);
  padding:40px 32px;text-align:center;color:var(--pb-text-soft);font-size:15px;line-height:1.6}
.pb-empty strong{display:block;font-size:17px;color:var(--pb-ink);margin-bottom:6px}

/* ==========================================================================
   9. 04 — Kontakt a formulář
   ========================================================================== */
.pb-contact__inner{padding-top:84px;padding-bottom:84px;display:grid;
  grid-template-columns:1fr 1.1fr;gap:64px;align-items:start}
.pb-contact__lead{margin-top:22px;max-width:420px;font-size:16px;line-height:1.6;color:var(--pb-text-soft)}
/* seznam kontaktů: 2px spáry prosvítající linkou, stejně jako mřížka služeb */
.pb-contact__list{margin-top:38px;display:flex;flex-direction:column;gap:2px;
  background:var(--pb-line-12);border:1px solid var(--pb-line-12)}
.pb-contact__row{background:var(--pb-surface);padding:20px 24px;text-decoration:none;
  display:flex;justify-content:space-between;align-items:center;gap:16px;transition:background .2s}
.pb-contact__row:hover{background:var(--pb-surface-hover)}
.pb-contact__rowlabel{font-family:var(--pb-mono);font-size:11px;color:var(--pb-muted-2);letter-spacing:.1em}
.pb-contact__rowval{font-size:17px;font-weight:700;color:var(--pb-ink);text-align:right;word-break:break-word}

.pb-formcard{background:var(--pb-surface);border:1px solid var(--pb-line-12);padding:38px}
.pb-formrow{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
.pb-field{display:block;min-width:0}
.pb-formrow + .pb-field,.pb-field + .pb-field{margin-top:16px}
/* Dvojice polí v jednom řádku stojí vedle sebe, ne pod sebou: mezery řeší
   `gap` mřížky. Bez tohoto přepisu jim pravidlo pro svisle skládaná pole
   (.pb-field + .pb-field) přidalo 16 px nad druhé pole a celý sloupec
   s telefonem se propadl o 16 px pod pole se jménem. */
.pb-formrow > .pb-field + .pb-field{margin-top:0}
.pb-label{font-family:var(--pb-mono);font-size:11px;letter-spacing:.08em;color:var(--pb-muted);display:block}
.pb-input{width:100%;margin-top:8px;background:#FFFFFF;border:1px solid var(--pb-line-18);
  color:var(--pb-ink);padding:13px 14px;font-family:var(--pb-font);font-size:15px;transition:border-color .2s}
.pb-input:focus{border-color:var(--pb-accent)}
textarea.pb-input{resize:vertical;min-height:110px}
select.pb-input{appearance:none;-webkit-appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%236B7480'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;padding-right:38px}
.pb-input--error{border-color:#C2382C}

/* „Mám zájem o“ — zaškrtávací tlačítka místo rozbalovacího seznamu, aby šlo
   vybrat víc služeb najednou. Nativní checkbox zůstává v DOMu (ovládání
   klávesnicí, odesílání bez JavaScriptu), jen je schovaný pod popiskem. */
.pb-choices{border:0;min-width:0}
.pb-choices > .pb-label{padding:0}
.pb-choices__list{margin-top:8px;display:flex;flex-wrap:wrap;gap:8px}
.pb-choices__none{margin-top:10px;padding-top:10px;border-top:1px dashed var(--pb-line-12)}
.pb-choice{display:inline-flex;position:relative}
.pb-choice input{position:absolute;width:100%;height:100%;top:0;left:0;margin:0;
  opacity:0;cursor:pointer}
.pb-choice__label{display:inline-flex;align-items:center;gap:9px;
  background:#FFFFFF;border:1px solid var(--pb-line-18);padding:11px 14px;
  font-size:14px;line-height:1.3;color:var(--pb-text-soft);
  transition:border-color .2s,background .2s,color .2s}
/* Čtvereček před popiskem — bez něj by nebylo poznat, že jde o vícenásobnou
   volbu, a lidé by čekali, že druhý klik ten první zruší. */
.pb-choice__label::before{content:"";flex:0 0 auto;width:15px;height:15px;
  border:1px solid var(--pb-line-18);background:#FFFFFF;
  transition:border-color .2s,background-color .2s}
.pb-choice input:checked + .pb-choice__label{border-color:var(--pb-accent);
  background:var(--pb-accent-a10);color:var(--pb-ink);font-weight:600}
.pb-choice input:checked + .pb-choice__label::before{border-color:var(--pb-accent);
  background-color:var(--pb-accent);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='9'%3E%3Cpath d='M1 4.6l3 3L10 1' fill='none' stroke='%23fff' stroke-width='2'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:center}
.pb-choice input:hover + .pb-choice__label{border-color:var(--pb-accent-a50)}
.pb-choice input:focus-visible + .pb-choice__label{outline:2px solid var(--pb-accent);outline-offset:2px}
.pb-fielderr{display:block;margin-top:6px;font-size:12px;color:#C2382C;font-weight:600}

.pb-submit{margin-top:22px;width:100%;padding:16px;background:var(--pb-accent);border:none;color:#fff;
  font-family:var(--pb-font);font-weight:800;font-size:16px;cursor:pointer;letter-spacing:.01em;transition:background .2s}
.pb-submit:hover{background:var(--pb-accent-hover)}
.pb-submit[disabled]{opacity:.6;cursor:progress}
.pb-gdpr{margin-top:14px;font-size:12px;color:var(--pb-muted-2);line-height:1.5}
.pb-gdpr a{color:var(--pb-muted-2);text-decoration:underline}
/* past na roboty — musí zůstat v layoutu, jen mimo dohled i mimo tab order */
.pb-honeypot{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}

.pb-sent{padding:40px 10px;text-align:center}
.pb-sent__mark{font-size:52px;line-height:1;color:var(--pb-accent)}
.pb-sent__title{margin-top:16px;font-size:26px;font-weight:900;color:var(--pb-ink)}
.pb-sent__text{margin-top:10px;font-size:15px;color:var(--pb-text-soft);line-height:1.6}
.pb-formnotice{border:1px solid #C2382C;background:rgba(194,56,44,0.06);color:#8E2A21;
  padding:14px 16px;font-size:14px;line-height:1.5;margin-bottom:22px;font-weight:600}
/* Náhradní kontakt pod hláškou — tišší než hláška sama. */
.pb-formnotice__alt{display:block;margin-top:6px;font-weight:400}
.pb-formnotice__alt a{color:inherit;font-weight:700;text-decoration:underline}

/* ==========================================================================
   9b. Zpět nahoru — objeví se, jakmile je co odscrollovat
   ========================================================================== */
/* z-index 30 je pod stínítkem menu (40): s vysunutou zásuvkou má tlačítko
   zmizet za ztmavením, ne se vznášet nad ním. */
.pb-totop{
  position:fixed;right:24px;bottom:24px;z-index:30;
  width:48px;height:48px;display:flex;align-items:center;justify-content:center;
  background:var(--pb-accent);color:#fff;text-decoration:none;
  border:1px solid var(--pb-accent);
  opacity:0;visibility:hidden;transform:translateY(10px);
  transition:opacity .25s var(--pb-ease),transform .25s var(--pb-ease),
    visibility .25s,background .2s;
}
.pb-scrolled-far .pb-totop{opacity:1;visibility:visible;transform:translateY(0)}
.pb-totop:hover{background:var(--pb-accent-hover)}
/* Šipka je kreslená, ne znak — v Space Mono i Archivu má „↑“ jinou výšku. */
.pb-totop__arrow{width:11px;height:11px;border-left:2px solid currentColor;
  border-top:2px solid currentColor;transform:rotate(45deg);margin-bottom:-3px}
/* S otevřenou zásuvkou menu tlačítko ustoupí. */
body.pb-navlock .pb-totop{opacity:0;visibility:hidden}
@media (prefers-reduced-motion:reduce){
  .pb-totop{transition:opacity .25s linear,visibility .25s;transform:none}
  .pb-scrolled-far .pb-totop{transform:none}
}
@media (max-width:640px){
  .pb-totop{right:16px;bottom:16px;width:44px;height:44px}
}

/* ==========================================================================
   10. Patička
   ========================================================================== */
.pb-footer{border-top:1px solid var(--pb-line-12);background:var(--pb-bg-footer)}
.pb-footer__inner{max-width:var(--pb-max);margin:0 auto;padding:56px var(--pb-gutter) 30px}
.pb-footer__cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px}
.pb-footer__logo img{height:50px;width:auto;display:block}
.pb-footer__about{margin-top:16px;max-width:280px;font-size:14px;line-height:1.6;color:var(--pb-muted)}
.pb-footer__head{font-family:var(--pb-mono);font-size:11px;letter-spacing:.1em;
  color:var(--pb-muted-2);margin-bottom:14px}
/* Nadpis sloupce vede na přehled služeb — zůstává ale nadpisem, ne odkazem
   navíc: barvu bere až na přejezd myší. */
.pb-footer__head a{color:inherit;text-decoration:none}
.pb-footer__head a:hover{color:var(--pb-accent)}
.pb-footer__list{display:flex;flex-direction:column;gap:9px;font-size:14px;color:var(--pb-muted)}
.pb-footer__list a{color:var(--pb-text-nav);text-decoration:none}
.pb-footer__list a:hover{color:var(--pb-accent)}
/* Telefon s rolí: nad číslem stojí jméno a funkce, aby bylo poznat, komu se
   volá. Popis je menší a světlejší než číslo — klikací je číslo, ne text nad
   ním. Blok má okolo sebe víc místa než řádky v seznamu, jinak by se u dvou
   čísel po sobě nepoznalo, kde jedno jméno končí a druhé začíná. */
.pb-footer__person{display:flex;flex-direction:column;gap:2px;padding:4px 0}
.pb-footer__personname{color:var(--pb-text-soft);font-weight:600}
.pb-footer__personrole{font-family:var(--pb-mono);font-size:11px;letter-spacing:.04em;
  line-height:1.5;color:var(--pb-muted-2)}
.pb-footer__bottom{margin-top:44px;padding-top:22px;border-top:1px solid var(--pb-line-12);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;
  font-family:var(--pb-mono);font-size:12px;color:var(--pb-muted-2)}
.pb-footer__bottom a{color:var(--pb-muted-2);text-decoration:none}
.pb-footer__bottom a:hover{color:var(--pb-accent)}

/* ==========================================================================
   11. Jednotlivý článek / reference — šablona obsahu (single-*.php)
       Definuje pravidla sazby pro obsah, který redaktor napíše v editoru.
   ========================================================================== */
.pb-single{padding:56px 0 90px}
.pb-crumbs{font-family:var(--pb-mono);font-size:12px;letter-spacing:.06em;color:var(--pb-muted-2);
  margin-bottom:26px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.pb-crumbs a{color:var(--pb-text-nav);text-decoration:none}
.pb-crumbs a:hover{color:var(--pb-accent)}

.pb-single__head{background:var(--pb-surface-panel);backdrop-filter:blur(3px);
  border:1px solid var(--pb-line-10);padding:38px 40px}
.pb-single__title{font-size:clamp(32px,4.2vw,54px);font-weight:900;letter-spacing:-.03em;
  line-height:1.02;color:var(--pb-ink);text-wrap:balance}
.pb-single__lead{margin-top:20px;max-width:640px;font-size:19px;line-height:1.6;color:var(--pb-text-body)}
.pb-single__hero{margin-top:26px;position:relative;overflow:hidden;border:1px solid var(--pb-line-12);
  aspect-ratio:16/9;background:linear-gradient(135deg,#EAECE6,#DFE2DA)}
.pb-single__hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}

/* Šířka textu je 720px — cca 70 znaků na řádek, čitelné na jedno oko. */
.pb-prose{max-width:720px;margin:44px auto 0;background:var(--pb-surface);
  border:1px solid var(--pb-line-12);padding:44px 48px}
.pb-prose > * + *{margin-top:20px}
.pb-prose p,.pb-prose li{font-size:17px;line-height:1.72;color:var(--pb-text-soft)}
.pb-prose h2{font-size:30px;font-weight:900;letter-spacing:-.02em;line-height:1.1;
  color:var(--pb-ink);margin-top:46px;padding-top:22px;border-top:1px solid var(--pb-line-12)}
.pb-prose h3{font-size:22px;font-weight:800;letter-spacing:-.01em;color:var(--pb-ink);margin-top:34px}
.pb-prose h4{font-size:18px;font-weight:800;color:var(--pb-ink);margin-top:26px}
.pb-prose h2 + *,.pb-prose h3 + *,.pb-prose h4 + *{margin-top:12px}
.pb-prose a{color:var(--pb-accent);text-decoration:underline;text-underline-offset:2px}
.pb-prose strong{font-weight:700;color:var(--pb-text)}
.pb-prose ul,.pb-prose ol{padding-left:22px}
.pb-prose li + li{margin-top:8px}
.pb-prose li::marker{color:var(--pb-accent)}
.pb-prose img,.pb-prose figure img{display:block;width:100%;height:auto;border:1px solid var(--pb-line-12)}
.pb-prose figure{margin-top:30px}
.pb-prose figcaption{margin-top:10px;font-family:var(--pb-mono);font-size:12px;
  color:var(--pb-muted-2);letter-spacing:.04em}
/* citace čte jako výpis z výkresu — svislá modrá linka, monospace */
.pb-prose blockquote{margin-top:30px;border-left:2px solid var(--pb-accent);
  background:rgba(46,111,242,0.045);padding:20px 24px}
.pb-prose blockquote p{font-size:18px;line-height:1.6;color:var(--pb-text);font-weight:500}
.pb-prose blockquote cite{display:block;margin-top:10px;font-family:var(--pb-mono);font-size:12px;
  font-style:normal;color:var(--pb-muted-2);letter-spacing:.06em}
.pb-prose table{width:100%;border-collapse:collapse;font-size:15px}
.pb-prose th,.pb-prose td{border:1px solid var(--pb-line-12);padding:11px 13px;text-align:left}
.pb-prose th{font-family:var(--pb-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--pb-muted);background:rgba(15,18,22,0.03);font-weight:400}
.pb-prose code{font-family:var(--pb-mono);font-size:14px;background:rgba(15,18,22,0.05);padding:2px 6px}
.pb-prose pre{background:rgba(15,18,22,0.05);border:1px solid var(--pb-line-12);padding:18px;overflow-x:auto}
.pb-prose pre code{background:none;padding:0}
.pb-prose hr{border:0;border-top:1px solid var(--pb-line-12);margin-top:36px}
.pb-prose > :first-child{margin-top:0}
/* Text podstránky služby začíná nadpisem — dělicí linka hned u hrany panelu
   by kreslila druhý rámeček. */
.pb-prose > h2:first-child{padding-top:0;border-top:0}
.pb-prose .wp-caption,.pb-prose .wp-block-image{margin-top:30px}
.pb-prose .alignleft{float:left;margin:6px 24px 16px 0;max-width:50%}
.pb-prose .alignright{float:right;margin:6px 0 16px 24px;max-width:50%}
.pb-prose .aligncenter{margin-left:auto;margin-right:auto}

/* parametry reference (lokalita, doba a délka realizace, hodnota, rozsah).
   Řádky štítek/hodnota, ne mřížka buněk — hodnoty jsou věty („Kompletní
   realizace stavby na klíč“) a ve čtyřech úzkých sloupcích se lámaly. */
.pb-spec{max-width:720px;margin:22px auto 0;background:var(--pb-surface);
  border:1px solid var(--pb-line-12)}
.pb-spec__row{display:grid;grid-template-columns:172px 1fr;gap:18px;padding:14px 20px;align-items:baseline}
.pb-spec__row + .pb-spec__row{border-top:1px solid var(--pb-line-12)}
.pb-spec__val{font-size:17px;font-weight:700;color:var(--pb-ink);overflow-wrap:break-word}
/* V tabulce údajů se prokliky vedle IČO na řádek stejně nevejdou — místo
   nahodilého zalomení jim dáme vlastní řádek zarovnaný pod hodnotu. */
.pb-spec__val .pb-icolinks{display:flex;margin:8px 0 0}

/* další články pod textem */
.pb-more{max-width:var(--pb-max);margin:76px auto 0}
.pb-more__head{font-family:var(--pb-mono);font-size:12px;letter-spacing:.16em;
  color:var(--pb-accent);margin-bottom:22px}

/* ==========================================================================
   11b. Podstránka služby (single-pbcon_sluzba.php) a přehled /sluzby/
        Bloky se skládají na sebe: parametry → rozsah → schéma → text →
        spolupráce → otázky. Textové bloky drží 720px sloupec jako .pb-prose,
        vizuální bloky jdou přes celou šířku.
   ========================================================================== */
.pb-single__title em{font-style:normal;color:var(--pb-accent)}
.pb-svc__tags{margin-top:22px;display:flex;flex-wrap:wrap;gap:8px}
.pb-svc__actions{margin-top:26px;padding-top:24px;border-top:1px solid var(--pb-line-14);
  display:flex;gap:14px;flex-wrap:wrap}

.pb-svc__block{margin-top:64px}
.pb-svc__block--narrow{max-width:720px;margin-left:auto;margin-right:auto}
.pb-svc__h{margin-top:6px;font-size:clamp(26px,2.6vw,34px);font-weight:900;letter-spacing:-.02em;
  line-height:1.1;color:var(--pb-ink);text-wrap:balance}

/* rozsah služby — odškrtaný seznam, spáry jako v mřížce služeb */
.pb-svc__scope{margin-top:26px;list-style:none;display:grid;grid-template-columns:repeat(2,1fr);
  gap:1px;background:var(--pb-line-12);border:1px solid var(--pb-line-12)}
.pb-svc__scope li{background:var(--pb-surface);padding:18px 22px 18px 54px;position:relative;
  font-size:15px;line-height:1.55;color:var(--pb-text)}
.pb-svc__scope li::before{content:'';position:absolute;left:22px;top:23px;width:13px;height:7px;
  border-left:2px solid var(--pb-accent);border-bottom:2px solid var(--pb-accent);
  transform:rotate(-45deg)}

/* fáze — jeden seznam rozpadlý do sloupců (kontrolní plán dozoru).
   Sloupce vedle sebe, ne rozbalovací bloky: obsah je tady argument a schovaný
   pod kliknutím by ho většina lidí nepřečetla. Spáry jako v .pb-svc__scope. */
.pb-phases{margin-top:26px;display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:1px;background:var(--pb-line-12);border:1px solid var(--pb-line-12)}
.pb-phase{background:var(--pb-surface);padding:20px 22px 24px}
.pb-phase__no{font-family:var(--pb-mono);font-size:11px;letter-spacing:.14em;color:var(--pb-accent)}
.pb-phase__title{margin-top:8px;font-size:17px;font-weight:800;letter-spacing:-.01em;
  line-height:1.25;color:var(--pb-ink)}
.pb-phase__list{margin-top:16px;padding-top:14px;border-top:1px solid var(--pb-line-12);
  list-style:none;display:grid;gap:11px}
.pb-phase__list li{position:relative;padding-left:17px;font-size:14px;line-height:1.5;
  color:var(--pb-text-soft)}
.pb-phase__list li::before{content:'';position:absolute;left:0;top:9px;width:9px;height:1px;
  background:var(--pb-accent)}
.pb-phases__note{margin-top:18px;font-size:15px;line-height:1.65;color:var(--pb-text-soft)}

/* popisná grafika — inline SVG, barvy z tokenů */
.pb-svc__graphic{margin-top:26px;background:var(--pb-surface);border:1px solid var(--pb-line-12);
  padding:26px 26px 20px}
/* Na úzkém okně by se text ve výkresu zdrobnil pod čitelnost, proto se
   schéma posouvá do strany. tabindex v šabloně ho zpřístupní z klávesnice. */
.pb-svc__graphic-scroll{overflow-x:auto;overscroll-behavior-x:contain}
.pb-svc__caption{margin-top:18px;padding-top:16px;border-top:1px solid var(--pb-line-12);
  font-family:var(--pb-mono);font-size:12px;line-height:1.6;color:var(--pb-muted-2)}
.pb-svc__hint{display:none;margin-top:12px;font-family:var(--pb-mono);font-size:11px;
  letter-spacing:.06em;color:var(--pb-accent)}
/* Minimální šířka drží popisky ve výkresu čitelné — SVG se do užšího okna
   nezdrobní, jen se posouvá do strany. Pod 1116px (šířka okna minus okap
   a odsazení rámu) se posouvat začne; nápověda .pb-svc__hint se proto
   zapíná ve zlomu 1100px. */
.pb-dg{display:block;width:100%;min-width:1000px;height:auto}
.pb-dg .dg-grid{fill:none;stroke:var(--pb-line-10);stroke-width:1}
.pb-dg .dg-hatch{stroke:var(--pb-line-16);stroke-width:1}
.pb-dg .dg-line{fill:none;stroke:var(--pb-line-22);stroke-width:1}
.pb-dg .dg-line.dg-strong{stroke-width:1.6}
.pb-dg .dg-line.dg-faint{stroke:var(--pb-line-12)}
.pb-dg .dg-accent{fill:none;stroke:var(--pb-accent);stroke-width:1.4}
.pb-dg .dg-dashline{fill:none;stroke:var(--pb-accent-a50);stroke-width:1;stroke-dasharray:5 5}
.pb-dg .dg-dash{fill:none;stroke:var(--pb-line-22);stroke-width:1;stroke-dasharray:4 4}
.pb-dg .dg-body{fill:var(--pb-accent-a10);stroke:var(--pb-line-22);stroke-width:1}
.pb-dg .dg-open{fill:var(--pb-surface);stroke:var(--pb-accent);stroke-width:1.2}
.pb-dg .dg-sheet{fill:var(--pb-surface);stroke:var(--pb-line-22);stroke-width:1}
.pb-dg .dg-solid{fill:var(--pb-accent)}
.pb-dg .dg-band{fill:var(--pb-accent-a10);stroke:var(--pb-accent-a40);stroke-width:1}
.pb-dg .dg-head{fill:var(--pb-accent)}
.pb-dg .dg-check{fill:none;stroke:var(--pb-accent);stroke-width:2.4;stroke-linecap:square}
.pb-dg .dg-dot{fill:var(--pb-accent);stroke:var(--pb-surface);stroke-width:2}
/* Rámeček s prosvítající mřížkou — výplň nese atribut fill="url(#…)",
   proto tu fill ZÁMĚRNĚ není: třída by ho přebila a mřížka by zmizela. */
.pb-dg .dg-gridbox{stroke:var(--pb-line-22);stroke-width:1}
.pb-dg .dg-pin circle{fill:var(--pb-accent)}
.pb-dg .dg-pin text{font-family:var(--pb-mono);font-size:11px;font-weight:700;fill:#fff}
.pb-dg .dg-label{font-family:var(--pb-font);font-size:14px;font-weight:700;fill:var(--pb-ink)}
.pb-dg .dg-box{font-family:var(--pb-mono);font-size:12px;fill:var(--pb-text-nav);letter-spacing:.06em}
.pb-dg .dg-box--inv{fill:#fff}
.pb-dg .dg-box--accent{fill:var(--pb-accent)}
.pb-dg .dg-meta{font-family:var(--pb-mono);font-size:10px;fill:var(--pb-muted-2);letter-spacing:.08em}
.pb-dg .dg-meta--accent{fill:var(--pb-accent)}

/* průběh spolupráce — číslovaná osa, čísla spojuje vlasová linka */
/* Kroky spolupráce stojí mezi textem z editoru (.pb-prose) a otázkami
   (.pb-faq) — obojí je rámovaný panel, takže holá osa mezi nimi vypadala jako
   nedopatření. Panel je matnější a s rozostřením, ne bílá karta: dvě stejné
   bílé plochy pod sebou by splynuly v jednu a výkres v pozadí by zmizel. */
.pb-steps{margin-top:26px;list-style:none;background:var(--pb-surface-panel);
  backdrop-filter:blur(3px);border:1px solid var(--pb-line-10);padding:34px 38px}
.pb-step{position:relative;display:grid;grid-template-columns:64px 1fr;gap:0 22px;padding-bottom:28px}
.pb-step:last-child{padding-bottom:0}
.pb-step::before{content:'';position:absolute;left:23px;top:38px;bottom:-4px;width:1px;
  background:var(--pb-line-14)}
.pb-step:last-child::before{display:none}
.pb-step__no{font-family:var(--pb-mono);font-size:13px;font-weight:700;color:var(--pb-accent);
  width:47px;height:34px;display:flex;align-items:center;justify-content:center;
  border:1px solid var(--pb-accent-a40);background:var(--pb-surface)}
.pb-step__title{font-size:19px;font-weight:800;letter-spacing:-.01em;line-height:1.3;color:var(--pb-ink)}
.pb-step__text{margin-top:8px;font-size:15px;line-height:1.65;color:var(--pb-text-soft)}

/* časté otázky — <details>, takže rozbalování funguje i bez JavaScriptu */
.pb-faq{margin-top:26px;background:var(--pb-surface);border:1px solid var(--pb-line-12)}
.pb-faq__item + .pb-faq__item{border-top:1px solid var(--pb-line-12)}
.pb-faq__q{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;
  padding:20px 24px;cursor:pointer;list-style:none;font-size:17px;font-weight:700;line-height:1.4;
  color:var(--pb-ink);transition:color .2s}
.pb-faq__q::-webkit-details-marker{display:none}
.pb-faq__q:hover{color:var(--pb-accent)}
/* znaménko plus/minus, ne šipka — drží se čar výkresu */
.pb-faq__mark{position:relative;flex-shrink:0;width:14px;height:14px;margin-top:5px}
.pb-faq__mark::before,.pb-faq__mark::after{content:'';position:absolute;background:var(--pb-accent);
  transition:transform .25s var(--pb-ease)}
.pb-faq__mark::before{left:0;top:6px;width:14px;height:2px}
.pb-faq__mark::after{left:6px;top:0;width:2px;height:14px}
.pb-faq__item[open] .pb-faq__mark::after{transform:scaleY(0)}
.pb-faq__a{padding:0 58px 22px 24px;font-size:16px;line-height:1.72;color:var(--pb-text-soft)}
@media (prefers-reduced-motion:reduce){
  .pb-faq__mark::before,.pb-faq__mark::after{transition:none}
}

/* rozcestník na ostatní služby */
.pb-svcnav__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:var(--pb-line-12);border:1px solid var(--pb-line-12)}
.pb-svcnav__item{background:var(--pb-surface);padding:22px 24px;text-decoration:none;
  display:flex;align-items:center;gap:14px;transition:background .2s}
.pb-svcnav__item:hover{background:var(--pb-surface-hover)}
.pb-svcnav__no{font-family:var(--pb-mono);font-size:12px;color:var(--pb-accent)}
.pb-svcnav__name{font-size:17px;font-weight:800;letter-spacing:-.01em;color:var(--pb-ink)}
.pb-svcnav__arrow{margin-left:auto;font-size:18px;color:var(--pb-accent);
  transition:transform .2s var(--pb-ease)}
.pb-svcnav__item:hover .pb-svcnav__arrow{transform:translateX(4px)}
@media (prefers-reduced-motion:reduce){
  .pb-svcnav__item:hover .pb-svcnav__arrow{transform:none}
}

/* výzva na konci podstránky */
.pb-svccta{margin-top:76px;background:var(--pb-surface-panel);backdrop-filter:blur(3px);
  border:1px solid var(--pb-line-10);padding:40px 42px;display:flex;flex-wrap:wrap;
  justify-content:space-between;align-items:flex-end;gap:32px}
.pb-svccta__text{max-width:660px}
.pb-svccta__lead{margin-top:16px;font-size:16px;line-height:1.65;color:var(--pb-text-soft)}
.pb-svccta__actions{display:flex;gap:14px;flex-wrap:wrap}

/* přehled služeb */
.pb-svcarchive .pb-services__grid{margin-top:8px}

/* ==========================================================================
   12. Archiv (výpis typu obsahu) a stránkování
   ========================================================================== */
.pb-archive{padding:56px 0 90px}
.pb-archive__head{margin-bottom:38px}
.pb-archive__lead{margin-top:18px;max-width:620px;font-size:17px;line-height:1.6;color:var(--pb-text-soft)}
.pb-archive__head .pb-filters{margin-top:26px}
.pb-pagination{margin-top:44px;display:flex;gap:8px;flex-wrap:wrap;justify-content:center;
  font-family:var(--pb-mono);font-size:13px}
/* Načítání dalších referencí při scrollování. Skript blok vloží na místo
   stránkování; bez skriptu neexistuje a stránkování zůstane vidět. */
.pb-infinite{margin-top:44px;display:flex;flex-direction:column;align-items:center;gap:14px}
.pb-infinite__status{font-family:var(--pb-mono);font-size:12px;letter-spacing:.04em;
  color:var(--pb-muted);text-align:center;min-height:1em}
.pb-pagination .page-numbers{padding:10px 15px;border:1px solid var(--pb-line-18);
  color:var(--pb-text-nav);text-decoration:none;background:var(--pb-surface);transition:all .2s}
.pb-pagination .page-numbers:hover{border-color:var(--pb-accent);color:var(--pb-accent)}
.pb-pagination .page-numbers.current{background:var(--pb-accent);border-color:var(--pb-accent);color:#fff}
.pb-pagination .dots{border-color:transparent;background:none}

/* ==========================================================================
   13. SEO vrstva — slogan nad H1, datum, cesta, lidé, kontaktní stránka
       Prvky, které přišly s verzí 3.0.0. Kreslí se ze stejných tokenů jako
       zbytek webu, žádná nová barva ani hrana.
   ========================================================================== */
/* Slogan sedí nad H1 a vypadá jako jeho první řádek. V H1 tím zbylo místo
   na to, co lidé opravdu hledají. */
.pb-hero__eyebrow{font-size:clamp(17px,1.6vw,21px);font-weight:800;letter-spacing:-.01em;
  color:var(--pb-text-body);margin-bottom:8px}
.pb-crumbs__now{color:var(--pb-muted-2)}

/* Datum vydání a podpis autora — u obsahu, který stárne. */
.pb-dateline{margin-top:18px;font-family:var(--pb-mono);font-size:12px;letter-spacing:.04em;
  color:var(--pb-muted-2);display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.pb-dateline a{color:var(--pb-text-nav);text-decoration:none}
.pb-dateline a:hover{color:var(--pb-accent)}

/* Odkaz z reference na službu, pod kterou stavba spadá. */
.pb-refsvc{max-width:720px;margin:44px auto 0;background:var(--pb-surface);
  border:1px solid var(--pb-line-12);border-left:2px solid var(--pb-accent);padding:22px 26px}
.pb-refsvc p{margin-top:8px;font-size:16px;line-height:1.65;color:var(--pb-text-soft)}
.pb-refsvc a{color:var(--pb-accent);text-decoration:underline;text-underline-offset:2px;font-weight:600}
/* Poptávka je druhý krok, ne pokračování věty — proto o kus níž než odkaz na službu. */
.pb-refsvc__cta{margin-top:12px}

/* Lidé — stránka O nás a Kontakt. */
.pb-team{margin-top:24px;display:grid;grid-template-columns:repeat(2,1fr);gap:2px}
.pb-team__card{background:var(--pb-surface);border:1px solid var(--pb-line-12);padding:26px 28px}
.pb-team__name{font-size:21px;font-weight:800;letter-spacing:-.01em;color:var(--pb-ink)}
.pb-team__role{margin-top:6px;font-family:var(--pb-mono);font-size:12px;letter-spacing:.04em;
  color:var(--pb-muted)}
.pb-team__cert{margin-top:14px}
.pb-team__note{margin-top:14px;font-size:16px;line-height:1.65;color:var(--pb-text-soft)}
.pb-team__contact{margin-top:18px;padding-top:16px;border-top:1px solid var(--pb-line-12);
  display:flex;gap:18px;flex-wrap:wrap}
.pb-team__link{font-size:15px;font-weight:600;color:var(--pb-accent);text-decoration:none}
.pb-team__link:hover{text-decoration:underline}

/* Kontaktní stránka — spojení vlevo, adresa vpravo, mapa pod tím. */
.pb-contactpage__grid{margin-top:44px;display:grid;grid-template-columns:1fr 1fr;gap:44px;
  align-items:start}
.pb-contactpage__grid .pb-contact__list{margin-top:18px}
.pb-contactpage__grid .pb-svc__tags{margin-top:18px}
.pb-nap{margin-top:18px;font-style:normal;background:var(--pb-surface);
  border:1px solid var(--pb-line-12);padding:22px 24px;display:flex;flex-direction:column;gap:4px;
  font-size:16px;line-height:1.6;color:var(--pb-text-soft)}
.pb-nap strong{font-size:17px;font-weight:800;color:var(--pb-ink)}
/* Rám s mapou drží poměr, aby stránka při načítání neposkakovala (CLS). */
.pb-map{margin-top:44px;border:1px solid var(--pb-line-12);aspect-ratio:16/7;
  background:linear-gradient(135deg,#EAECE6,#DFE2DA)}
.pb-map iframe{display:block;width:100%;height:100%;border:0}

@media (max-width:900px){
  .pb-contactpage__grid{grid-template-columns:1fr;gap:34px}
  .pb-team{grid-template-columns:1fr}
  .pb-map{aspect-ratio:4/3;margin-top:34px}
}

/* ==========================================================================
   14. Responzivita — mockup je kreslen jen pro 1280px, dál dopočítáno.
   ========================================================================== */
@media (max-width:1100px){
  .pb-hero__card{max-width:560px}
  .pb-footer__cols{grid-template-columns:1fr 1fr;gap:36px 32px}
  .pb-contact__inner{grid-template-columns:1fr;gap:44px}
  .pb-contact__lead{max-width:none}
  .pb-grid-3{grid-template-columns:repeat(2,1fr)}
  .pb-prose{padding:36px 34px}
  .pb-steps{padding:30px 30px}
  .pb-svcnav__grid{grid-template-columns:repeat(2,1fr)}
  .pb-svc__hint{display:block}
}
@media (max-width:900px){
  :root{--pb-gutter:22px}

  /* POZOR: backdrop-filter (i filter, transform, will-change) dělá z prvku
     containing block pro position:fixed potomky. Zásuvka menu leží uvnitř
     hlavičky, takže s rozostřením by se její top/bottom počítaly k hlavičce
     (~88 px) místo k oknu — menu by se srolovalo do úzkého pásku pod okrajem.
     Na mobilu proto rozostření vypínáme a podklad hlavičky zneprůhledníme,
     aby text pod ní neprosvítal. */
  .pb-header{backdrop-filter:none;background:rgba(247,248,245,0.97)}

  .pb-nav{position:fixed;top:0;right:0;bottom:0;width:min(320px,86vw);flex-direction:column;
    align-items:stretch;gap:0;background:#FAFBF8;border-left:1px solid var(--pb-line-12);
    padding:max(104px, calc(var(--pb-header-h) + 30px)) 22px 28px;
    transform:translateX(100%);visibility:hidden;
    transition:transform .3s var(--pb-ease),visibility .3s;
    overflow-y:auto;overscroll-behavior:contain;z-index:60}
  /* visibility drží zavřené menu mimo tabulátor — jinak by se fokus ztrácel
     do odkazů odjetých za okrajem okna. */
  .pb-nav.is-open{transform:translateX(0);visibility:visible}
  .pb-nav a{padding:15px 4px;font-size:16px;border-bottom:1px solid var(--pb-line-10)}
  .pb-nav .pb-nav__cta > a,.pb-nav a.pb-nav__cta{margin:18px 0 0;text-align:center;padding:15px 22px;border-bottom:0}

  /* V zásuvce je nabídka služeb rozbalená nastálo: rozbalovací tlačítko by
     na dotyku soupeřilo s odkazem a služby jsou to hlavní, kam lidé míří. */
  .pb-nav__group{display:block;position:static}
  .pb-nav__group > a{display:flex;justify-content:space-between;padding-right:4px}
  .pb-nav__caret,.pb-nav__toggle{display:none}
  .pb-nav__sub{position:static;min-width:0;padding:0 0 0 16px;opacity:1;visibility:visible;
    transform:none;background:none;backdrop-filter:none;border:0;box-shadow:none}
  .pb-nav__sub a{padding:13px 4px;font-size:15px;color:var(--pb-text-card);white-space:normal}
  .pb-burger{display:flex;z-index:61}  /* nad zásuvkou — křížek musí zůstat klikatelný */
    /* Stínítko musí zůstat POD hlavičkou (z-index 50), jinak překryje i tlačítko
     menu a nejde jím zásuvku zavřít. Ztmavuje obsah (z-index 1), ne chrom. */
  .pb-navscrim{display:block;position:fixed;inset:0;background:rgba(15,18,22,0.35);
    z-index:40;opacity:0;pointer-events:none;transition:opacity .3s}
  .pb-navscrim.is-open{opacity:1;pointer-events:auto}
  body.pb-navlock{overflow:hidden}
  .pb-services__grid{grid-template-columns:1fr}
  .pb-stats{grid-template-columns:repeat(2,1fr)}
  .pb-stat{border-bottom:1px solid rgba(15,18,22,0.09)}
  .pb-stat:nth-child(2n){border-right:0}
  .pb-stat:nth-last-child(-n+2){border-bottom:0}
  .pb-hero__stage{min-height:0}
  .pb-hero__media{background-position:right 30% center}
  .pb-hero__inner{padding:56px var(--pb-gutter) 56px}
  .pb-hero__card{max-width:none;padding:28px 26px 30px}
  .pb-sechead{padding:24px 24px}
  .pb-single__head{padding:28px 26px}
  .pb-spec__row{grid-template-columns:148px 1fr;gap:14px}
  .pb-reference__inner{padding-top:56px;padding-bottom:56px}
  .pb-poradna{padding:56px 0}
  .pb-services{padding:32px 0 56px}
  .pb-contact__inner{padding-top:56px;padding-bottom:56px}
  .pb-svc__block{margin-top:48px}
  .pb-svc__scope{grid-template-columns:1fr}
  /* Na tabletu 2 × 2 — čtyři sloupce by se zúžily pod čitelnost. */
  .pb-phases{grid-template-columns:repeat(2,1fr)}
  .pb-svc__graphic{padding:20px 18px 16px}
  .pb-svccta{margin-top:56px;padding:30px 26px}
}
@media (max-width:640px){
  .pb-topbar__inner{justify-content:center;flex-wrap:wrap;gap:10px;font-size:11px}
  /* Na telefonu se drží menší z hodnot: nastavení se projeví, ale hlavička
     ani logo nepřerostou to, s čím počítá návrh. */
  .pb-logo img{height:min(var(--pb-logo-h),44px)}
  .pb-header__inner{min-height:min(var(--pb-header-min-h),76px)}
  .pb-grid-3{grid-template-columns:1fr}
  /* Karta je v řádku sama, nemá co s čím srovnávat — nadpis se smí rozepsat
     na kolik řádků potřebuje a nic se neořezává. */
  .pb-ref__title,.pb-post__title{min-height:0;display:block;-webkit-line-clamp:none;overflow:visible}
  /* Statistiky drží dvojici v řádku i na telefonu. Čtyři pásy pod sebou by
     natáhly pás přes celou obrazovku a odsunuly obsah pod přehyb — raději
     menší písmo než delší svislé rolování. Mřížku 2×2 i linky mezi buňkami
     dědíme z pravidla pro ≤900 px, tady se ladí jen velikosti. */
  .pb-stat{padding:20px 14px}
  .pb-stat__value{font-size:32px}
  .pb-stat__label{margin-top:6px;font-size:10px;letter-spacing:.05em;line-height:1.35}
  .pb-formrow{grid-template-columns:1fr}
  .pb-icolinks{margin-left:0;margin-top:6px}
  /* Volby na úzkém displeji přes celou šířku — vedle sebe by se lámaly
     uprostřed slova a „nevím“ by zůstalo užší než služby nad ním. */
  .pb-choices__list{flex-direction:column}
  .pb-choice,.pb-choice__label{width:100%}
  .pb-formcard{padding:26px 22px}
  .pb-footer__cols{grid-template-columns:1fr}
  .pb-footer__about{max-width:none}
  .pb-prose{padding:28px 22px}
  .pb-prose p,.pb-prose li{font-size:16px}
  .pb-service{padding:28px 24px}
  .pb-contact__row{flex-direction:column;align-items:flex-start;gap:6px}
  .pb-contact__rowval{text-align:left}
  .pb-hero__actions .pb-btn{flex:1 1 100%;text-align:center}
  .pb-prose .alignleft,.pb-prose .alignright{float:none;margin:30px 0;max-width:100%}
  .pb-svcnav__grid{grid-template-columns:1fr}
  .pb-svc__actions .pb-btn,.pb-svccta__actions .pb-btn{flex:1 1 100%;text-align:center}
  /* Na telefonu pod sebe; mezinadpisy fází zůstávají oddělovači seznamu. */
  .pb-phases{grid-template-columns:1fr}
  .pb-steps{padding:24px 20px}
  .pb-step{grid-template-columns:47px 1fr;gap:0 16px}
  .pb-faq__q{padding:18px 20px;font-size:16px}
  .pb-faq__a{padding:0 20px 20px}
}

@media (max-width:380px){
  /* Nejužší telefony: popisky jako „LET ZKUŠENOSTÍ S DOZOREM“ se do půlky
     řádku vejdou jen o kousek menší, pořád ale ve dvou sloupcích. */
  .pb-stat{padding:18px 11px}
  .pb-stat__value{font-size:28px}
  .pb-stat__label{font-size:9px;letter-spacing:.04em}
}

/* ==========================================================================
   15. Tisk — výkres a chrom se zahazují, zůstává text
   ========================================================================== */
@media print{
  .pb-bp-stage,.pb-wash,.pb-chrome,.pb-footer,.pb-filters,.pb-formcard,.pb-more,
  .pb-infinite,.pb-totop,.pb-svccta,.pb-svc__actions{display:none!important}
  .pb-shell{padding-top:0}
  body{background:#fff}
  .pb-prose,.pb-single__head{border:0;padding:0;background:none;max-width:none}
  .pb-prose p,.pb-prose li{color:#000}
}
