/* =====================================================================
   /assets/css/site.css — sjednocený styl Zahrada-art
   Opravy:
   - KPI <ul>/<li> bez odrážek
   - uzavřené @media bloky, žádné „schování“ dalších stylů do dark módu
   - cookie lišta funguje i se stávajícím script.js, který jen odstraní [hidden]
   - ikonky v light/dark režimu mají správný kontrast
   - zachované doplňkové styly: news teaser, modal form fixes, admin analytics
   ===================================================================== */

/* ===================== ROOT PROMĚNNÉ ===================== */
:root{
  --brand:#2b8a3e;
  --brand-600:#2e7d32;
  --brand-700:#1b5e20;

  --accent:#1f8a3b;
  --accent-600:#187132;

  --bg:#ffffff;
  --bg-soft:#f7faf7;
  --surface:#f5f8f6;
  --text:#0b1721;
  --muted:#5b6b75;
  --border:#e3e9e5;

  --header-bg: rgba(255,255,255,.85);

  --shadow:   0 2px 10px rgba(0,0,0,.05);
  --shadow-1: 0 2px 16px rgba(0,0,0,.06);

  --nav-gap: clamp(6px, 1vw, 12px);
  --nav-pad-x: clamp(6px, .9vw, 10px);
  --nav-pad-y: clamp(5px, .6vw, 8px);
  --nav-font: clamp(.92rem, .9vw + .2rem, 1rem);

  --header-height: 64px;

  color-scheme: light dark;
}

/* ===================== BASE / RESET ===================== */
*{ box-sizing: border-box; }
html{
  scroll-behavior:smooth;
  max-width:100%;
  overflow-x:clip;
}
body{
  margin:0;
  max-width:100%;
  overflow-x:clip;
  font-family: system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,'Helvetica Neue',Arial;
  line-height:1.55;
  color:var(--text);
  background:var(--bg);
}
a{ color:var(--brand-600); text-decoration:none; }
a:hover{ text-decoration:underline; }

.wrap{ max-width:1100px; margin:0 auto; padding:0 16px; }
.section{ margin-block: 2rem; }

/* Flex/grid children must be allowed to shrink inside the viewport. */
.wrap,
.content,
main,
section,
article,
aside,
header,
footer,
nav,
[class*="grid-"],
.cards,
.services,
.features,
.gallery{ min-width:0; }

@supports not (overflow:clip){
  html, body{ overflow-x:hidden; }
}

:where(.gallery, .cards, .services, .features, .section) img{
  max-width:100%;
  height:auto;
  display:block;
}

/* ===================== HLAVIČKA ===================== */
.site-header{
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--header-bg);
  border-bottom:1px solid var(--border);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.site-header .wrap{ display:block; max-width:1320px; }
.header-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height: var(--header-height);
  gap:16px;
}
.logo{ display:flex; align-items:center; gap:10px; font-weight:700; color:var(--text); }
.logo img{ display:block; height:36px; width:auto; }

.header-actions{ display:flex; align-items:center; gap:8px; }
.action,
.icon-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-width:38px;
  height:38px;
  padding:8px 10px;
  border:1px solid var(--border);
  border-radius:10px;
  background:#fff;
  color:var(--text);
  cursor:pointer;
  text-decoration:none;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.action:hover,
.icon-link:hover{ background:var(--surface); text-decoration:none; }
.action svg,
.icon-link svg{
  display:block;
  width:18px;
  height:18px;
  color:currentColor;
}
.action svg *,
.icon-link svg *{
  fill: currentColor !important;
  stroke: currentColor !important;
}
.action .label{ font-weight:600; }
.action:focus-visible,
.icon-link:focus-visible{ outline:2px solid var(--brand); outline-offset:2px; }

/* ===================== NAV (desktop + dropdown) ===================== */
.site-nav{
  display:flex;
  gap:var(--nav-gap);
  align-items:center;
  position:relative;
  z-index:40;
}
.site-nav a,
.site-nav button.nav-dropbtn{
  padding:var(--nav-pad-y) var(--nav-pad-x);
  border-radius:10px;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease;
  font-size:var(--nav-font);
  white-space:nowrap;
  border:0;
  background:transparent;
  color:var(--text);
}
.site-nav a:not(.cta):hover,
.site-nav .nav-dropbtn:hover{ background:var(--surface); text-decoration:none; }
.site-nav a.cta{ background:var(--brand); color:#fff; }
.site-nav a.cta:hover{ background:var(--brand-700); text-decoration:none; }
.site-nav a:focus-visible,
.site-nav .nav-dropbtn:focus-visible{ outline:2px solid var(--brand); outline-offset:2px; }

.nav-dropdown{ position:relative; }
.nav-dropbtn{ display:inline-flex; align-items:center; gap:8px; cursor:pointer; position:relative; }
.nav-dropbtn svg{ width:16px; height:16px; transition: transform .2s ease; }

.nav-dropbtn::after{
  content:"";
  position:absolute;
  left:-8px;
  right:-8px;
  bottom:-12px;
  height:14px;
  background:transparent;
  pointer-events:auto;
  z-index:10;
}
.nav-dropdown:focus-within .nav-dropbtn svg,
.nav-dropdown:hover .nav-dropbtn svg{ transform: rotate(180deg); }

.nav-dropmenu{
  position:absolute;
  top:100%;
  left:0;
  display:none;
  flex-direction:column;
  gap:4px;
  min-width:220px;
  padding:8px;
  background:#fff;
  color:var(--text);
  border:1px solid var(--border);
  border-radius:12px;
  box-shadow: 0 8px 28px rgba(0,0,0,.12);
  z-index:60;
}
.nav-dropmenu a{
  display:block;
  padding:10px 10px;
  border-radius:8px;
  color:inherit;
  text-decoration:none;
}
.nav-dropmenu a:hover{ background:var(--surface); text-decoration:none; }
.nav-dropdown:hover .nav-dropmenu,
.nav-dropdown:focus-within .nav-dropmenu{ display:flex; }

@media (min-width:901px){
  .site-nav{ white-space:nowrap; flex-wrap:nowrap; overflow:visible; }
  .action .label{ display:inline; }

  .site-nav a.is-active:not(.cta),
  .site-nav a[aria-current="page"]:not(.cta),
  .site-nav .nav-dropbtn.is-active{
    background: color-mix(in srgb, var(--brand) 12%, #fff);
    border: 1px solid color-mix(in srgb, var(--brand) 35%, var(--border));
    color: var(--text);
    text-decoration: none;
    border-radius:10px;
  }
  .site-nav a.is-active:not(.cta):hover,
  .site-nav a[aria-current="page"]:not(.cta):hover,
  .site-nav .nav-dropbtn.is-active:hover{
    background: color-mix(in srgb, var(--brand) 18%, #fff);
    text-decoration: none;
  }
}

@media (min-width:901px) and (max-width:1100px){
  :root{ --nav-gap:6px; --nav-pad-x:6px; --nav-pad-y:5px; --nav-font:.9rem; }
}
@media (min-width:901px) and (max-width:1000px){
  :root{ --nav-gap:4px; --nav-pad-x:6px; --nav-pad-y:4px; --nav-font:.88rem; }
}

/* ===================== BURGER + MOBILE NAV ===================== */
.burger{
  display:none;
  border:1px solid var(--border);
  padding:8px 10px;
  border-radius:10px;
  background:#fff;
  color:var(--text);
  transition: background-color .2s ease, border-color .2s ease;
}
.burger[aria-expanded="true"]{ background:var(--surface); }

.mobile-nav{
  position: fixed;
  top: var(--header-height);
  left: 0;
  right: 0;
  background: #fff;
  border-top: 1px solid var(--border);
  box-shadow: 0 8px 20px rgba(0,0,0,.08);
  z-index: 45;
  display: none;
  flex-direction: column;
  gap: .25rem;
  padding: .75rem 1rem;
}
.mobile-nav[hidden]{ display:none !important; }
.mobile-nav a{ padding:10px 6px; border-radius:8px; transition: background-color .2s ease; }
.mobile-nav a:hover{ background:var(--surface); text-decoration:none; }
.mobile-nav a:focus-visible{ outline:2px solid var(--brand); outline-offset:2px; }

.mobile-subtoggle{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:10px 6px;
  border-radius:8px;
  border:1px solid transparent;
  background:transparent;
  width:100%;
  font: inherit;
  color:inherit;
  cursor:pointer;
}
.mobile-subtoggle:hover{ background:var(--surface); }
.mobile-subtoggle svg{ width:18px; height:18px; transition: transform .2s ease; }
.mobile-subtoggle[aria-expanded="true"] svg{ transform: rotate(180deg); }
.mobile-submenu{ display:none; padding:6px 0 6px 10px; }
.mobile-submenu a{ padding:8px 6px; }

.mobile-nav a.is-active,
.mobile-nav a[aria-current="page"]{
  background: var(--surface);
  border: 1px solid var(--border);
  text-decoration: none;
}

@media (max-width:900px){
  .site-nav{ display:none; }
  .burger{ display:block; }

  .action .label{ display:none; }
  .header-actions{ gap:8px; }
  .header-actions .action,
  .header-actions .icon-link{
    font-size:0;
    min-width:38px;
    height:38px;
    padding:8px;
    gap:0;
  }
  .header-actions .action svg,
  .header-actions .icon-link svg{ width:20px; height:20px; }
}

/* Veřejná hlavička: plné menu jen tam, kde se skutečně vejde.
   Na menších noteboocích a tabletech použijeme burger dříve,
   místo aby navigace vytvářela vodorovný posuvník. */
.site-nav{ width:100%; max-width:100%; }

@media (min-width:1181px) and (max-width:1450px){
  :root{
    --nav-gap:4px;
    --nav-pad-x:5px;
    --nav-pad-y:5px;
    --nav-font:.86rem;
  }
}

@media (max-width:1180px){
  .site-nav{ display:none !important; }
  .burger{ display:block; }
  .action .label{ display:none; }
  .header-actions{ gap:8px; }
  .header-actions .action,
  .header-actions .icon-link{
    font-size:0;
    min-width:38px;
    height:38px;
    padding:8px;
    gap:0;
  }
  .header-actions .action svg,
  .header-actions .icon-link svg{ width:20px; height:20px; }
  .mobile-nav{
    max-height:calc(100dvh - var(--header-height));
    overflow-y:auto;
    overscroll-behavior:contain;
  }
}

@media (min-width:1181px){
  .site-nav{ display:flex; }
  .burger{ display:none; }
}

/* ===================== LAYOUT / GRID ===================== */
.wrap [class*="grid-"],
.wrap .cards,
.wrap .services,
.wrap .features,
.wrap .gallery{ gap: 1.25rem; }

.grid-2{
  display:grid;
  grid-template-columns: 1fr;
}
@media (min-width: 900px){
  .grid-2{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (min-width: 900px){
  .grid-2.asym{ grid-template-columns: 1.15fr .85fr; align-items:start; }
}

.grid-3{
  display:grid;
  grid-template-columns: 1fr;
}
@media (min-width: 900px){
  .grid-3{ grid-template-columns: repeat(3, minmax(0,1fr)); }
}

/* ===================== KARTY / SLUŽBY / FEATURES ===================== */
.card{
  background:#fff;
  border:1px solid var(--border);
  border-radius:14px;
  padding:16px;
  box-shadow:var(--shadow-1);
}

a.card{
  display:block;
  color:inherit;
  text-decoration:none;
}
a.card:hover{ text-decoration:none; }

.cards .card h3{ margin:.25rem 0; font-size:1.05rem; }
.cards .card p{ color:var(--muted); }

.cards{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(min(100%, 280px), 1fr));
  gap:1.25rem;
}

.services .card{ display:flex; gap:.75rem; align-items:flex-start; }
.services .card img{ flex:0 0 auto; width:48px; height:48px; object-fit:contain; }
.services .card p{ margin:0; }

.features{
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap:.75rem;
}
@media (min-width: 840px){
  .features{ grid-template-columns: repeat(3, minmax(0,1fr)); }
}
.features .feature{
  background:#fff;
  border:1px solid var(--border);
  border-radius:12px;
  padding:.9rem;
}

.service-card{ transition: transform .2s ease, box-shadow .2s ease; }
.service-card:hover{ transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0,0,0,.08); }
.service-card img{
  object-fit:cover;
  border-radius:10px;
  margin-bottom:.5rem;
}

figure.card{ padding:0; overflow:hidden; }
figure.card img{ display:block; width:100%; height:auto; }
figure.card figcaption{ padding:.8rem 1rem; color:var(--muted); }
.media-card{ padding:0; overflow:hidden; }
.media-card figcaption{ padding:.8rem 1rem; color:var(--muted); }

.brands .brand{ display:flex; align-items:center; justify-content:center; }
.brands img{ filter: grayscale(100%); opacity:.9; }

/* ===================== NEWS TEASER ===================== */
.news-teaser{
  display:grid;
  gap:1rem;
  align-items:start;
  padding:1rem;
  border:1px solid var(--border);
  border-radius:14px;
  background:#fff;
  box-shadow:var(--shadow);
}
.news-teaser img{
  display:block;
  width:100%;
  aspect-ratio: 4 / 3;
  object-fit:cover;
  border-radius:10px;
  margin-bottom:0;
}
.news-teaser-body h2{
  margin:0 0 .35rem 0;
  font-size:1.25rem;
  line-height:1.25;
}
.news-teaser-body p{ margin:.25rem 0 0; color:var(--muted); }
@media (min-width: 900px){
  .news-teaser{ grid-template-columns:260px 1fr; }
}

.clamp-2,
.clamp-3,
.clamp-4{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.clamp-2{ -webkit-line-clamp:2; }
.clamp-3{ -webkit-line-clamp:3; }
.clamp-4{ -webkit-line-clamp:4; }

/* ===================== GALERIE ===================== */
.gallery{
  display:grid;
  grid-template-columns:1fr;
}
@media (min-width: 900px){
  .gallery{ grid-template-columns: repeat(3, minmax(0,1fr)); }
}
.gallery figure,
.gallery .card{
  border-radius:14px;
  overflow:hidden;
  background:#fff;
  border:1px solid var(--border);
}
.gallery img{ width:100%; height:auto; display:block; }
.gallery figcaption{
  font-size:.925rem;
  color:var(--muted);
  padding:.6rem .8rem .8rem;
}
.gallery a{ display:block; }
.gallery--crop img{ height:180px; object-fit:cover; }

/* ===================== CHECKLIST / PROCESS / FAQ ===================== */
.checklist{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:.5rem;
}
.checklist li{ position:relative; padding-left:1.6rem; }
.checklist li::before{
  content:"✓";
  position:absolute;
  left:0;
  top:.05rem;
  width:1.1rem;
  height:1.1rem;
  line-height:1.1rem;
  text-align:center;
  border-radius:999px;
  background:var(--bg-soft);
  color:var(--accent);
  border:1px solid var(--border);
  font-weight:700;
  font-size:.8rem;
}

.process{
  counter-reset: step;
  list-style:none;
  margin:.25rem 0 0;
  padding:0;
  display:grid;
  gap:.6rem;
}
.process li{
  counter-increment: step;
  background:#fff;
  border:1px solid var(--border);
  border-radius:12px;
  padding:.75rem .9rem .75rem 3.1rem;
  position:relative;
  box-shadow:var(--shadow);
}
.process li::before{
  content:counter(step);
  position:absolute;
  left:.9rem;
  top:.7rem;
  width:1.8rem;
  height:1.8rem;
  line-height:1.8rem;
  text-align:center;
  border-radius:999px;
  background:var(--accent);
  color:#fff;
  font-weight:700;
}

.faq details{
  border:1px solid var(--border);
  border-radius:12px;
  padding:.75rem .9rem;
  background:#fff;
}
.faq details + details{ margin-top:.75rem; }
.faq summary{ cursor:pointer; font-weight:600; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{
  content:"▾";
  float:right;
  color:var(--muted);
  transition:transform .2s ease;
}
.faq details[open] summary::after{ transform: rotate(180deg); }
.faq p{ color:var(--text); margin:.5rem 0 0; }

/* ===================== CTA BOX ===================== */
.cta{
  margin-top:1rem;
  background:var(--bg-soft);
  border:1px solid var(--border);
  border-left:6px solid var(--accent);
  border-radius:12px;
  padding:1rem;
}
.cta .btn{
  margin-top:.5rem;
  background:var(--accent);
  color:#fff;
  border:none;
  padding:.6rem .95rem;
  border-radius:10px;
  font-weight:600;
  cursor:pointer;
}
.cta .btn:hover{ background:var(--accent-600); }
.cta .btn:focus{ outline:2px solid var(--accent); outline-offset:2px; }

/* ===================== TYPO / BUTTONS V OBSAHU ===================== */
.wrap h1{
  margin-bottom:.5rem;
  max-width:32ch;
  text-wrap:balance;
  overflow-wrap:anywhere;
}
.wrap h2,
.wrap h3{
  text-wrap:balance;
  overflow-wrap:anywhere;
}
.wrap h2{ margin-top:1.25rem; margin-bottom:.5rem; }
.wrap h3{ margin:.9rem 0 .25rem; }
.wrap p{ color:var(--text); overflow-wrap:anywhere; }
.wrap em{ font-style:italic; }

.wrap .btn{
  display:inline-block;
  background:var(--brand);
  color:#fff;
  border:none;
  padding:.6rem .95rem;
  border-radius:10px;
  font-weight:600;
  cursor:pointer;
  text-decoration:none;
}
.wrap .btn:hover{ background:var(--brand-700); }
.wrap .btn:focus{ outline:2px solid var(--brand); outline-offset:2px; }

/* ===================== HERO ===================== */
.hero{
  position:relative;
  overflow:hidden;
  color:#fff;
  background:#0b1d10;
  min-height:clamp(460px, 62vh, 740px);
  border-bottom:1px solid transparent;
}
@media (min-width:900px){
  .hero{ min-height:clamp(560px, 70vh, 820px); }
}
.hero--light{
  color:var(--text);
  background:linear-gradient(180deg, var(--surface), #fff);
  border-bottom-color:var(--border);
}
.hero .wrap{ position:relative; z-index:2; }
.hero-wrap{
  display:grid;
  gap:1.25rem;
  padding:2rem 0;
  min-height:inherit;
  align-items:center;
}
@media (min-width:900px){
  .hero-wrap{ grid-template-columns:1.2fr .8fr; align-items:start; padding:3rem 0; }
}
.hero-copy .lead{ margin:.4rem 0 .8rem; }
.hero-cta .btn{ margin-right:.4rem; }
.hero-form h3{ margin-top:0; }

/* KPI chipy */
.kpis,
.hero-kpis{
  list-style:none;
  margin:0;
  padding:0;
}
.kpis{
  display:flex;
  gap:.5rem;
  flex-wrap:wrap;
  margin:.6rem 0 1rem;
}
.hero-kpis{
  position:absolute;
  left:1rem;
  bottom:1rem;
  z-index:3;
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
}
.kpis > li,
.hero-kpis > li{ list-style:none; }
.kpis > li::marker,
.hero-kpis > li::marker{ content:""; }
.kpi{
  display:inline-flex;
  align-items:center;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.2);
  padding:.4rem .6rem;
  border-radius:999px;
  font-size:.95rem;
}
@media (min-width:900px){
  .hero-kpis{ left:2rem; bottom:1.25rem; }
}
.hero-kpis .kpi{
  background:rgba(0,0,0,.25);
  border:1px solid rgba(255,255,255,.35);
  color:#fff;
}

.hero-bg{ position:absolute; inset:0; z-index:1; pointer-events:none; }
.hero-bg-photo,
.hero-bg-video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  pointer-events:none;
}
[data-variant="photo"] .hero-bg-video{ display:none !important; }
[data-variant="video"] .hero-bg-photo{ display:none !important; }
.hero-bg::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to top, rgba(0,0,0,.35), rgba(0,0,0,.15));
}
.hero-video-toggle{
  position:absolute;
  right:1rem;
  bottom:1rem;
  background:rgba(0,0,0,.5);
  color:#fff;
  border:1px solid rgba(255,255,255,.25);
  padding:.4rem .7rem;
  border-radius:10px;
  font-weight:600;
  cursor:pointer;
}
.hero-video-toggle:focus{ outline:2px solid #1f8a3b; outline-offset:2px; }
@media (max-width:420px){
  .kpis .kpi,
  .hero-kpis .kpi{ font-size:.9rem; padding:.3rem .5rem; }
}

/* ===================== SEZÓNNÍ BANNER ===================== */
.seasonal-banner{ position:relative; z-index:5; }
.seasonal-banner .wrap{
  display:flex;
  gap:.75rem;
  align-items:center;
  justify-content:space-between;
  padding:.6rem .5rem;
}
.seasonal-banner .msg{ font-weight:600; }
.seasonal-banner .btn-link{
  background:none;
  border:none;
  color:inherit;
  cursor:pointer;
  font-size:1.25rem;
  line-height:1;
  padding:.2rem .4rem;
}
.seasonal-banner.green,
.seasonal-banner.info{ background:#0b4d1a; color:#fff; }
.seasonal-banner.blue{ background:#0b4f6c; color:#fff; }
.seasonal-banner.orange{ background:#8a4b08; color:#fff; }
.seasonal-banner.red,
.seasonal-banner.alert{ background:#7c2d12; color:#fff; }
.seasonal-banner.neutral{ background:#334155; color:#fff; }
.seasonal-banner.off{ display:none; }

/* ===================== COOKIES BAR ===================== */
.cookies-bar[hidden]{ display:none !important; }
.cookies-bar{
  position:fixed;
  inset-inline:0;
  bottom:0;
  z-index:1200;
  background:var(--header-bg, rgba(255,255,255,.85));
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  border-top:1px solid var(--border, #e3e9e5);
  box-shadow:var(--shadow-1, 0 2px 16px rgba(0,0,0,.06));
  transform:translateY(100%);
  transition:transform .28s ease, opacity .28s ease;
  opacity:0;
  padding-bottom:calc(env(safe-area-inset-bottom, 0px));
}
.cookies-bar.is-visible,
.cookies-bar:not([hidden]){
  transform:translateY(0);
  opacity:1;
}
.cookies-bar .bar-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:clamp(12px, 2.2vw, 24px);
  padding:clamp(10px, 1.6vw, 16px) 0;
}
.cookies-bar .bar-text{
  flex:1 1 auto;
  min-width:240px;
  color:var(--text, #0b1721);
}
.cookies-bar .bar-text strong{
  display:block;
  font-weight:700;
  margin-bottom:4px;
}
.cookies-bar .bar-text p{
  margin:0 0 6px 0;
  color:var(--muted, #5b6b75);
  line-height:1.45;
}
.cookies-bar .cookies-link{
  color:var(--brand, #2b8a3e);
  text-decoration:underline;
  text-underline-offset:2px;
}
.cookies-bar .bar-actions{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.cookies-bar .btn,
.cookies-bar .btn-secondary,
.cookies-bar .btn-plain{
  padding:.5rem .8rem;
  border-radius:10px;
  font-weight:600;
  white-space:nowrap;
}
.cookies-bar .btn-plain{
  background:transparent;
  color:var(--text, #0b1721);
  border:1px dashed var(--border, #e3e9e5);
}
.cookies-bar .icon-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:36px;
  border-radius:10px;
  border:1px solid var(--border, #e3e9e5);
  background:transparent;
  color:var(--muted, #5b6b75);
  line-height:1;
}
@media (max-width:900px){
  .cookies-bar .bar-row{
    flex-direction:column;
    align-items:stretch;
    gap:12px;
  }
  .cookies-bar .bar-actions{ justify-content:flex-start; }
}
@media print{
  .cookies-bar{ display:none !important; }
}

.cookies-modal{
  position:fixed;
  inset:0;
  z-index:95;
  background:rgba(0,0,0,.45);
  display:grid;
  place-items:center;
  padding:1rem;
}
.cookies-dialog{
  background:#fff;
  color:var(--text);
  width:min(720px, 100%);
  border-radius:14px;
  border:1px solid var(--border);
  box-shadow:var(--shadow);
  overflow:hidden;
}
.cookies-header,
.cookies-footer{ padding:.9rem 1rem; background:var(--bg-soft); }
.cookies-body{ padding:1rem; }
.cookies-close{ background:transparent; border:none; font-size:1.4rem; line-height:1; cursor:pointer; }
.cookies-group{ padding:.6rem 0; border-bottom:1px dashed var(--border); }
.cookies-group:last-child{ border-bottom:none; }

.cookies-switch{ display:flex; align-items:center; gap:.7rem; cursor:pointer; }
.cookies-switch input{ display:none; }
.cookies-switch .slider{
  width:44px;
  height:24px;
  background:#d1d5db;
  border-radius:999px;
  position:relative;
  transition:.2s ease;
}
.cookies-switch .slider::after{
  content:"";
  position:absolute;
  top:2px;
  left:2px;
  width:20px;
  height:20px;
  background:#fff;
  border-radius:50%;
  box-shadow:0 2px 6px rgba(0,0,0,.2);
  transition:.2s ease;
}
.cookies-switch input:checked + .slider{ background:var(--accent); }
.cookies-switch input:checked + .slider::after{ transform:translateX(20px); }
.cookies-switch .label{ color:var(--text); }

/* ===================== FORM / OBECNÉ ===================== */
.form{ display:grid; gap:12px; }
.form .grid{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.form label{ display:block; margin-bottom:6px; color:var(--muted); }
.form input,
.form select,
.form textarea{
  width:100%;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:10px;
  background:#fff;
  color:var(--text);
  transition:border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}
.form input:focus,
.form select:focus,
.form textarea:focus{
  outline:none;
  border-color:var(--brand-600);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--brand) 25%, transparent);
}
.form .consent{ font-size:14px; color:var(--muted); }

/* ===================== PATIČKA ===================== */
.site-footer{
  margin-top:40px;
  border-top:1px solid var(--border);
  background:#fff;
  padding:24px 0;
}
.small{ font-size:12px; color:var(--muted); margin-top:8px; }

/* ===================== MODAL ===================== */
.modal-backdrop{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.45);
  display:none;
  align-items:center;
  justify-content:center;
  z-index:1000;
}
.modal-backdrop.open{ display:flex; }
.modal-backdrop[hidden]{ display:none !important; }
.modal{
  width:min(700px, 92vw);
  background:#fff;
  color:var(--text);
  border:1px solid var(--border);
  border-radius:16px;
  box-shadow:0 10px 40px rgba(0,0,0,.25);
  padding:18px;
  position:relative;
}
.modal h3{ margin:0 0 6px; }
.modal .contact-quick{ margin:0 0 12px; color:var(--muted); }
.modal .modal-close{
  position:absolute;
  right:16px;
  top:10px;
  width:36px;
  height:36px;
  border:1px solid var(--border);
  border-radius:10px;
  background:#fff;
  cursor:pointer;
  font-size:20px;
  line-height:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.modal .modal-close:focus-visible{ outline:2px solid var(--brand); outline-offset:2px; }
body.modal-open{ overflow:hidden; }

.modal .form .consent{ margin:.5rem 0 .75rem; }
.modal .form input[type="checkbox"]{
  width:auto;
  display:inline-block;
  vertical-align:middle;
  margin:0;
}
.modal .form .consent label{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  line-height:1.3;
  color:var(--muted);
}
.modal .form .consent input[type="checkbox"]{
  appearance:none;
  -webkit-appearance:none;
  width:18px;
  height:18px;
  border:2px solid var(--border);
  border-radius:6px;
  background:var(--bg);
  position:relative;
}
.modal .form .consent input[type="checkbox"]:checked{
  background:var(--brand);
  border-color:var(--brand);
}
.modal .form .consent input[type="checkbox"]:checked::after{
  content:"✓";
  position:absolute;
  inset:0;
  font-size:14px;
  line-height:18px;
  text-align:center;
  color:#fff;
}
button.btn,
.modal .btn{
  background:var(--brand);
  color:#fff;
  border:1px solid var(--brand-600);
  border-radius:12px;
  padding:.65rem 1rem;
  font-weight:600;
  box-shadow:var(--shadow-1);
}
button.btn:hover,
.modal .btn:hover{ background:var(--brand-600); }
button.btn:disabled,
.modal .btn:disabled{ opacity:.6; cursor:not-allowed; }
.modal .form .grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
@media (max-width:680px){
  .modal .form .grid-2{ grid-template-columns:1fr; }
}

/* ===================== LINKS / HOVER VE CHLÍVEČCÍCH ===================== */
.cards .card a,
.services .card a,
.features .feature a,
.faq details a,
.process li a,
figure.card a,
a.card,
.cards .card a:hover,
.services .card a:hover,
.features .feature a:hover,
.faq details a:hover,
.process li a:hover,
figure.card a:hover,
a.card:hover{
  text-decoration:none;
}
.cards .card,
.features .feature,
.faq details,
.process li{
  transition:background-color .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.cards .card:hover,
.cards .card:focus-within,
.features .feature:hover,
.features .feature:focus-within,
.faq details:hover,
.faq details:focus-within,
.process li:hover,
.process li:focus-within,
figure.card:hover,
figure.card:focus-within{
  background:color-mix(in srgb, var(--surface) 85%, #fff);
  border-color:color-mix(in srgb, var(--brand) 25%, var(--border));
  box-shadow:0 6px 18px rgba(0,0,0,.07);
}

/* ===================== A11Y / REDUCED MOTION ===================== */
:where(a, button, [role="button"], summary):focus{ outline:none; }
:where(a, button, [role="button"], summary):focus-visible{
  outline:2px solid var(--accent);
  outline-offset:2px;
}
a.card:focus-visible{
  outline:none;
  box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 45%, transparent), var(--shadow-1);
}
@media (prefers-reduced-motion: reduce){
  *{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
  .hero-bg-video{ display:none !important; }
}

/* ===================== DARK MODE ===================== */
@media (prefers-color-scheme: dark){
  :root{
    --bg:#0e1110;
    --text:#e7efe9;
    --muted:#a8b9b0;
    --surface:#141a18;
    --border:#26332c;

    --brand:#8fe39f;
    --brand-600:#7bd68d;
    --brand-700:#5fc877;

    --header-bg:rgba(15,20,18,.72);
    --shadow-1:0 2px 16px rgba(0,0,0,.35);
  }

  body{ background:var(--bg); color:var(--text); }

  .site-header,
  .mobile-nav,
  .card,
  .site-footer{
    background:#0f1412;
  }
  .site-header{ border-bottom:1px solid var(--border); }
  .mobile-nav{ border-top:1px solid var(--border); }
  .card{ border-color:var(--border); }
  .hero{ background:linear-gradient(180deg, #0f1412, #0e1110); }
  .gallery img{ border-color:var(--border); }

  a{ color:var(--brand); }
  .wrap .btn{ background:var(--brand-700); color:#0b120f; }
  .wrap .btn:hover{ background:var(--brand-600); }

  .burger,
  .action,
  .icon-link,
  .site-footer .action,
  .site-footer .icon-link{
    background:#0f1412;
    border-color:#2b3a33;
    color:var(--text);
  }
  .burger:hover,
  .burger[aria-expanded="true"],
  .action:hover,
  .icon-link:hover{
    background:#1b2521;
  }
  .action svg,
  .icon-link svg{ color:#ecf5ef; }

  .mobile-nav a.is-active,
  .mobile-nav a[aria-current="page"]{
    background:#1b2521;
    border-color:#2b3a33;
    color:var(--text);
  }

  .form input,
  .form select,
  .form textarea{
    background:#0f1412;
    color:var(--text);
    border-color:#2b3a33;
  }
  .form input::placeholder,
  .form textarea::placeholder{
    color:color-mix(in srgb, var(--muted) 70%, transparent);
  }

  .nav-dropmenu{
    background:#0f1412;
    border-color:#2b3a33;
    box-shadow:0 8px 28px rgba(0,0,0,.5);
  }
  .nav-dropmenu a:hover{ background:#1b2521; }

  .cookies-bar{
    background:rgba(20,24,28,.85);
    border-top-color:rgba(255,255,255,.08);
    color:#e7efe9;
  }
  .cookies-bar .bar-text,
  .cookies-bar .bar-text p{ color:rgba(255,255,255,.9); }
  .cookies-bar .cookies-link{ color:var(--brand-600); }
  .cookies-bar .btn{
    background:var(--brand-700);
    color:#0b120f;
    border:1px solid var(--brand-600);
  }
  .cookies-bar .btn:hover{ background:var(--brand-600); }
  .cookies-bar .btn-plain,
  .cookies-bar .icon-btn{
    color:rgba(255,255,255,.9);
    border-color:rgba(255,255,255,.2);
  }
  .cookies-dialog,
  .modal{
    background:#0f1412;
    color:var(--text);
    border-color:#2b3a33;
    box-shadow:var(--shadow-1);
  }
  .cookies-header,
  .cookies-footer{ background:#141a18; }
  .modal .modal-close{ background:#0f1412; color:var(--text); border-color:#2b3a33; }

  .faq details,
  .process li,
  .cta,
  .features .feature,
  .services .card,
  .cards .card,
  figure.card,
  .media-card,
  .news-teaser{
    background:#141a18;
    color:var(--text);
    border-color:#2b3a33;
  }
  .news-teaser{ box-shadow:0 8px 22px rgba(0,0,0,.35); }
  .news-teaser-body h2,
  .news-teaser-body p,
  .faq summary,
  .faq p{ color:var(--text); }
  .faq summary::after{ color:var(--muted); }
  .process li::before{
    background:var(--brand-700);
    color:#0b120f;
  }

  .faq details:hover,
  .faq details:focus-within,
  .process li:hover,
  .process li:focus-within,
  .features .feature:hover,
  .features .feature:focus-within,
  .services .card:hover,
  .services .card:focus-within,
  .cards .card:hover,
  .cards .card:focus-within,
  figure.card:hover,
  figure.card:focus-within{
    background:#18201c;
    border-color:#2b3a33;
    box-shadow:0 8px 22px rgba(0,0,0,.35);
  }
}

@media (prefers-color-scheme: dark) and (min-width:901px){
  .site-nav a.is-active:not(.cta),
  .site-nav a[aria-current="page"]:not(.cta),
  .site-nav .nav-dropbtn.is-active{
    background:color-mix(in srgb, var(--brand) 22%, #0f1412);
    border-color:color-mix(in srgb, var(--brand) 45%, var(--border));
    color:var(--text);
  }
  .site-nav a.is-active:not(.cta):hover,
  .site-nav a[aria-current="page"]:not(.cta):hover,
  .site-nav .nav-dropbtn.is-active:hover{
    background:color-mix(in srgb, var(--brand) 28%, #0f1412);
    text-decoration:none;
  }
}

@media (prefers-color-scheme: light){
  .cookies-bar{
    background:#ffffff !important;
    color:var(--text, #0b1721);
    border-top-color:var(--border, #e3e9e5);
  }
  .cookies-bar .bar-text p{ color:var(--muted, #5b6b75); }
  .cookies-bar .btn-plain,
  .cookies-bar .icon-btn{
    color:var(--text, #0b1721);
    border-color:var(--border, #e3e9e5);
  }
  .cookies-bar .cookies-link{ color:var(--brand, #2b8a3e); }

  .action svg,
  .icon-link svg{ color:var(--text); }
  .site-footer .action,
  .site-footer .icon-link{
    background:#fff;
    border-color:var(--border);
    color:var(--text);
  }
}

/* ===================== ANTI-SPAM HONEYPOT ===================== */
.hp{
  position:absolute!important;
  left:-9999px!important;
  opacity:0!important;
  height:0!important;
  width:0!important;
  pointer-events:none!important;
}

@media (max-width:768px){
  .wrap{ padding-inline:20px; }
  .hero-wrap{
    padding-top:2.3rem;
    padding-bottom:2.3rem;
  }
  .section{ margin-block:2.4rem; }
}



/* =====================================================================
   RESPONSIVNÍ OBSAHOVÉ LAYOUTY v20260714-ux2
   Karty a text se řídí dostupnou šířkou, ne pouze šířkou viewportu.
   ===================================================================== */
.grid-2 > *,
.grid-3 > *,
.cards > *,
.features > *,
.gallery > *,
.article-lead-main > *{
  min-width:0;
}

/* Úvod aktuality: foto + čitelný text, informační karty až pod nimi. */
.article-lead{
  padding:clamp(1rem, 2.5vw, 2rem);
  overflow:hidden;
}
.article-lead-main{
  display:grid;
  grid-template-columns:1fr;
  gap:clamp(1rem, 2.5vw, 2rem);
  align-items:start;
}
.article-lead figure{
  margin:0;
  overflow:hidden;
  border-radius:12px;
  background:var(--surface);
}
.article-lead figure img,
.article-lead figure picture{
  display:block;
  width:100%;
}
.article-lead figure img{
  height:auto;
  aspect-ratio:3 / 2;
  object-fit:cover;
}
.article-lead figcaption{
  padding:.8rem 1rem;
}
.article-lead-copy{
  max-width:68ch;
  align-self:center;
}
.article-lead-copy > :first-child{ margin-top:0; }
.article-lead-copy > :last-child{ margin-bottom:0; }
.article-highlights{
  margin-top:clamp(1rem, 2.5vw, 1.5rem);
}
.article-highlights .card{
  min-height:100%;
}
.article-lead-cta{
  margin-top:clamp(1rem, 2.5vw, 1.5rem);
}

/* Delší postupy nepatří do úzkého bočního sloupce. */
.process--responsive{
  grid-template-columns:1fr;
}

/* Široká CTA: text vlevo, hlavní akce vpravo. */
.cta--split{
  margin-top:clamp(1rem, 2.5vw, 1.5rem);
}

@media (min-width:700px){
  .process--responsive{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@media (min-width:900px){
  .article-lead-main{
    grid-template-columns:minmax(0, 1.08fr) minmax(320px, .92fr);
  }
  .article-highlights{
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }
  .article-lead-cta,
  .cta--split{
    display:grid;
    grid-template-columns:minmax(0, 1fr) auto;
    column-gap:1.5rem;
    align-items:center;
  }
  .article-lead-cta h2,
  .article-lead-cta p,
  .cta--split h2,
  .cta--split p{
    grid-column:1;
  }
  .article-lead-cta .btn,
  .cta--split .btn{
    grid-column:2;
    grid-row:1 / span 2;
    align-self:center;
    margin-top:0;
    white-space:nowrap;
  }
}

@media (min-width:1080px){
  .process--responsive{
    grid-template-columns:repeat(4, minmax(0, 1fr));
  }
}

@media (max-width:560px){
  .article-lead{
    padding:1rem;
  }
  .article-lead-cta .btn,
  .cta--split .btn{
    width:100%;
  }
}

/* ===================== ADMIN ANALYTICS (zahrada-art.cz) ===================== */
.za-chart{ display:block; }
.za-bars{
  height:220px;
  display:grid;
  grid-template-columns:repeat(var(--bars, 24), minmax(0, 1fr));
  gap:3px;
  align-items:end;
  padding:8px 6px 2px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--bg-soft);
}
.za-bar{
  background:color-mix(in srgb, var(--accent) 70%, #fff);
  border-radius:8px 8px 6px 6px;
  min-height:2px;
}
.za-xlabels{
  display:grid;
  grid-template-columns:repeat(var(--bars, 24), minmax(0, 1fr));
  gap:3px;
  padding:6px 6px 0;
  color:var(--muted);
  font-size:12px;
}
.za-xlabels span{ text-align:center; }
.za-table th,
.za-table td{
  padding:10px 10px;
  border-bottom:1px solid var(--border);
  text-align:left;
  vertical-align:top;
}
.za-table thead th{
  position:sticky;
  top:0;
  background:#fff;
  z-index:1;
}
.za-table code{
  background:var(--bg-soft);
  border:1px solid var(--border);
  padding:2px 6px;
  border-radius:8px;
}
@media (prefers-color-scheme: dark){
  .za-bars{ background:#141a18; border-color:#2b3a33; }
  .za-table thead th{ background:#0f1412; }
  .za-table code{ background:#141a18; border-color:#2b3a33; color:var(--text); }
}

/* =====================================================================
   UI upgrade v20260601 — mobil, odsazení, CTA, formuláře, ceník
   ===================================================================== */
:root{
  --radius-sm:10px;
  --radius-md:14px;
  --radius-lg:20px;
  --space-section:clamp(2.6rem, 5vw, 5rem);
  --space-card:clamp(1rem, 2vw, 1.35rem);
  --tap-size:44px;
}

body{
  background:
    radial-gradient(circle at 15% -10%, color-mix(in srgb, var(--brand) 10%, transparent), transparent 30rem),
    linear-gradient(180deg, #fff 0%, var(--bg-soft) 100%);
}
.content{ overflow:hidden; }
.wrap{ padding-inline:clamp(18px, 4vw, 28px); }
.section{ margin-block:var(--space-section); }
.section:first-child{ margin-top:0; }
.section-head{ max-width:760px; margin-bottom:clamp(1rem, 2.2vw, 1.6rem); }
.section-head h2{ margin-top:.1rem; }
.section-head p:last-child{ color:var(--muted); margin-bottom:0; }
.eyebrow{
  margin:0 0 .4rem;
  color:var(--brand-600);
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:.78rem;
}
.lead{
  font-size:clamp(1.04rem, 1.1vw + .85rem, 1.25rem);
  line-height:1.6;
  color:color-mix(in srgb, var(--text) 84%, #fff);
  max-width:64ch;
}

.site-header{ box-shadow:0 1px 0 rgba(0,0,0,.03); }
.header-row{ min-height:64px; }
.action,
.icon-link,
.burger{
  min-height:var(--tap-size);
  min-width:var(--tap-size);
}
.mobile-nav{
  max-height:calc(100dvh - var(--header-height));
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:1rem clamp(18px, 4vw, 28px) calc(1rem + env(safe-area-inset-bottom, 0px));
}
.mobile-nav a,
.mobile-subtoggle{
  min-height:44px;
  padding:.72rem .8rem;
  font-weight:650;
}
.mobile-nav .mobile-cta{
  background:var(--brand);
  color:#fff;
  text-align:center;
  justify-content:center;
  border-radius:12px;
  margin:.25rem 0;
}
.mobile-nav .mobile-cta:hover{ background:var(--brand-700); color:#fff; }

.card,
.features .feature,
.faq details,
.process li,
.cta{
  border-radius:var(--radius-md);
}
.card{ padding:var(--space-card); }
.cards{ gap:clamp(1rem, 2vw, 1.5rem); }
.service-card{
  min-height:100%;
  border-color:color-mix(in srgb, var(--border) 80%, var(--brand));
}
.service-card h3{ margin-top:.1rem; }
.service-card p{ color:var(--muted); }

.hero{
  min-height:clamp(520px, 72vh, 820px);
  isolation:isolate;
}
.hero-wrap{ align-items:center; }
.hero-copy{
  max-width:760px;
  padding:clamp(1rem, 3vw, 2rem);
  border-radius:var(--radius-lg);
  background:linear-gradient(135deg, rgba(0,0,0,.45), rgba(0,0,0,.18));
  border:1px solid rgba(255,255,255,.18);
  box-shadow:0 18px 50px rgba(0,0,0,.18);
  backdrop-filter:blur(2px);
}
.hero-copy h1{
  margin:.1rem 0 .65rem;
  font-size:clamp(2.1rem, 5.6vw, 4.7rem);
  line-height:1.04;
  text-wrap:balance;
}
.hero-copy .eyebrow{ color:#d9fbe1; }
.hero-copy .lead{ color:rgba(255,255,255,.92); }
.hero-actions,
.cta-actions{
  display:flex;
  gap:.75rem;
  align-items:center;
  flex-wrap:wrap;
  margin-top:1rem;
}
.wrap .btn,
button.btn,
.modal .btn{
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.45rem;
  border-radius:12px;
  padding:.72rem 1rem;
}
.btn-secondary,
.wrap .btn-secondary{
  background:#fff;
  color:var(--text);
  border:1px solid var(--border);
}
.btn-secondary:hover,
.wrap .btn-secondary:hover{ background:var(--surface); color:var(--text); }
.btn-ghost,
.wrap .btn-ghost{
  background:rgba(255,255,255,.14);
  color:#fff;
  border:1px solid rgba(255,255,255,.32);
}
.btn-ghost:hover,
.wrap .btn-ghost:hover{
  background:rgba(255,255,255,.22);
  color:#fff;
}
.hero-bg::after{
  background:
    linear-gradient(90deg, rgba(0,0,0,.56), rgba(0,0,0,.18) 62%, rgba(0,0,0,.28)),
    linear-gradient(to top, rgba(0,0,0,.38), rgba(0,0,0,.08));
}
.hero-kpis{ max-width:min(920px, calc(100% - 2rem)); }
.hero-kpis .kpi{
  background:rgba(0,0,0,.34);
  backdrop-filter:blur(4px);
}

.news-teaser{
  display:grid;
  grid-template-columns:minmax(190px, .42fr) 1fr;
  gap:0;
  overflow:hidden;
  padding:0;
}
.news-teaser img{ width:100%; height:100%; object-fit:cover; min-height:190px; }
.news-teaser-body{ padding:clamp(1rem, 2.5vw, 1.5rem); }
.news-teaser-body h2{ margin-top:0; }
.clamp-3{
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.locality-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:clamp(1rem, 2.4vw, 1.5rem);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  background:linear-gradient(135deg, #fff, var(--bg-soft));
  box-shadow:var(--shadow-1);
}
.locality-card h2{ margin:.1rem 0 .3rem; }
.locality-card p:last-child{ margin-bottom:0; color:var(--muted); }

.form .grid{ gap:clamp(.8rem, 2vw, 1rem); }
.form label{ font-weight:650; color:color-mix(in srgb, var(--text) 80%, var(--muted)); }
.form input,
.form select,
.form textarea{
  min-height:44px;
  border-radius:12px;
  font-size:16px;
}
.form textarea{ min-height:118px; resize:vertical; }
.contact-quick{
  display:flex;
  flex-wrap:wrap;
  gap:.35rem .75rem;
  align-items:center;
}
.field-error{
  margin:.35rem 0 0;
  color:#b42318;
  font-size:.9rem;
  font-weight:700;
}
.form-alert{
  margin:0 0 1rem;
  padding:.85rem 1rem;
  border:1px solid color-mix(in srgb, #b42318 35%, var(--border));
  border-left:6px solid #b42318;
  border-radius:12px;
  background:color-mix(in srgb, #b42318 7%, #fff);
}
.required-note{ color:var(--muted); font-size:.92rem; }

.price-page .wrap{ max-width:1180px; }
.price-hero{
  margin-bottom:clamp(1rem, 2.4vw, 1.8rem);
  padding:clamp(1.25rem, 3vw, 2rem);
  background:linear-gradient(135deg, #ffffff, color-mix(in srgb, var(--brand) 8%, #fff));
}
.price-hero h1{ max-width:850px; margin:.15rem 0 .7rem; text-wrap:balance; }
.price-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:clamp(1rem, 2vw, 1.25rem);
}
.price-card{
  display:flex;
  flex-direction:column;
  gap:.8rem;
}
.price-card h2{ margin:0; font-size:1.25rem; }
.price-note{ margin:0; color:var(--muted); }
.price-list{
  display:grid;
  gap:.55rem;
  margin:.15rem 0 0;
}
.price-list div{
  display:grid;
  grid-template-columns:1fr auto;
  gap:.8rem;
  align-items:start;
  padding:.7rem 0;
  border-top:1px solid var(--border);
}
.price-list dt{ font-weight:700; }
.price-list dd{
  margin:0;
  text-align:right;
  font-weight:800;
  color:var(--brand-700);
  white-space:nowrap;
}
.price-card--highlight{
  background:linear-gradient(135deg, color-mix(in srgb, var(--brand) 9%, #fff), #fff);
}
.checklist.compact{ gap:.35rem; }
.price-cta{ margin-top:clamp(1.2rem, 3vw, 2rem); }

@media (max-width:1100px){
  .price-grid{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
}
@media (max-width:900px){
  .hero{ min-height:clamp(500px, 78dvh, 720px); }
  .hero-wrap{ padding:clamp(1.4rem, 8vw, 3rem) 0 5.6rem; }
  .hero-copy{
    padding:1.15rem;
    border-radius:16px;
  }
  .hero-copy h1{ font-size:clamp(2rem, 11vw, 3.35rem); }
  .hero-actions .btn,
  .cta-actions .btn{ flex:1 1 220px; }
  .hero-kpis{
    left:clamp(18px, 4vw, 28px);
    right:clamp(18px, 4vw, 28px);
    bottom:1rem;
  }
  .news-teaser{ grid-template-columns:1fr; }
  .news-teaser img{ max-height:240px; }
  .locality-card{ align-items:stretch; flex-direction:column; }
  .locality-card .btn{ width:100%; }
}
@media (max-width:720px){
  .form .grid,
  .modal .form .grid,
  .modal .form .grid-2{ grid-template-columns:1fr !important; }
  .price-grid{ grid-template-columns:1fr; }
  .price-list div{ grid-template-columns:1fr; gap:.25rem; }
  .price-list dd{ text-align:left; white-space:normal; }
  .cookies-bar .bar-actions{ display:grid; grid-template-columns:1fr 1fr; }
  .cookies-bar .btn,
  .cookies-bar .btn-secondary,
  .cookies-bar .btn-plain{ width:100%; }
}
@media (max-width:520px){
  .header-actions .link-contact{
    min-width:auto;
    padding-inline:.75rem;
    font-size:.92rem;
  }
  .header-actions .link-contact .label{ display:inline; font-size:.92rem; }
  .header-actions .link-client .label{ display:none; }
  .logo img{ height:32px; }
  .hero-actions .btn,
  .cta-actions .btn,
  .price-hero .btn{ width:100%; flex-basis:100%; }
  .hero-video-toggle{ display:none; }
}

@media (prefers-color-scheme: dark){
  body{
    background:
      radial-gradient(circle at 15% -10%, color-mix(in srgb, var(--brand) 12%, transparent), transparent 28rem),
      var(--bg);
  }
  .lead{ color:var(--muted); }
  .hero-copy{ background:linear-gradient(135deg, rgba(0,0,0,.55), rgba(0,0,0,.28)); }
  .btn-secondary,
  .wrap .btn-secondary{
    background:#0f1412;
    color:var(--text);
    border-color:#2b3a33;
  }
  .btn-secondary:hover,
  .wrap .btn-secondary:hover{ background:#1b2521; color:var(--text); }
  .locality-card,
  .price-hero,
  .price-card--highlight{
    background:linear-gradient(135deg, #141a18, #0f1412);
    border-color:#2b3a33;
  }
  .price-list dd{ color:var(--brand-600); }
  .form-alert{
    background:rgba(180,35,24,.14);
    border-color:rgba(255,255,255,.12);
  }
  .mobile-nav .mobile-cta{ color:#0b120f; background:var(--brand-700); }
  .mobile-nav .mobile-cta:hover{ background:var(--brand-600); }
}
.quick-kicker{ color:var(--muted); margin-top:0; }
.flush-top{ margin-top:0 !important; }
.consent-row{ display:flex !important; gap:.55rem; align-items:flex-start; }
.consent-row input[type="checkbox"]{ width:auto; margin-top:.25rem; flex:0 0 auto; }


/* =====================================================================
   HOTFIX 2026-06-01 B — hero kontrast + sjednocení CTA + menší H1
   Důvod: černý text v hero splýval s pozadím, CTA měla různou šířku
   a KPI čipy se na mobilu překrývaly s tlačítky.
   ===================================================================== */

/* Klidnější desktopový hero */
.hero{
  min-height:clamp(500px, 66vh, 760px);
}
.hero-wrap{
  padding:clamp(1.6rem, 4vw, 3rem) 0 clamp(1.8rem, 4vw, 2.4rem);
  align-items:center;
}
.hero-copy{
  max-width:640px;
  padding:clamp(1.1rem, 2.8vw, 1.8rem);
  border-radius:18px;
  background:linear-gradient(135deg, rgba(0,0,0,.62), rgba(0,0,0,.36));
  border:1px solid rgba(255,255,255,.16);
  box-shadow:0 18px 50px rgba(0,0,0,.22);
  backdrop-filter:blur(3px);
}
.hero-copy,
.hero-copy h1,
.hero-copy p,
.hero-copy .lead{
  color:#fff !important;
}
.hero-copy .eyebrow{
  color:#e5ffe9 !important;
  font-weight:700;
  letter-spacing:.01em;
}
.hero-copy h1{
  margin:.12rem 0 .7rem;
  font-size:clamp(2rem, 3.3vw, 3.1rem);
  line-height:1.1;
  letter-spacing:-.03em;
  max-width:13ch;
  text-wrap:balance;
}
.hero-copy .lead{
  max-width:56ch;
  font-size:clamp(1rem, 1.25vw, 1.08rem);
  line-height:1.52;
  text-shadow:0 2px 12px rgba(0,0,0,.35);
}
.hero-copy .eyebrow,
.hero-copy h1{
  text-shadow:0 2px 12px rgba(0,0,0,.38);
}

.hero-bg::after{
  background:
    linear-gradient(90deg, rgba(0,0,0,.64), rgba(0,0,0,.22) 58%, rgba(0,0,0,.32)),
    linear-gradient(to top, rgba(0,0,0,.45), rgba(0,0,0,.14));
}

/* CTA v hero – stejné rozměry */
.hero-actions,
.cta-actions{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:.75rem;
  align-items:stretch;
  margin-top:1rem;
}
.hero-actions > .btn,
.cta-actions > .btn{
  width:100%;
  min-width:0;
  min-height:50px;
  padding:.88rem 1rem;
  text-align:center;
  justify-content:center;
}
.hero-actions .btn-ghost,
.cta-actions .btn-ghost{
  background:rgba(43,138,62,.94);
  color:#fff;
  border:1px solid rgba(255,255,255,.14);
}
.hero-actions .btn-ghost:hover,
.cta-actions .btn-ghost:hover{
  background:var(--brand-700);
  color:#fff;
}

/* KPI čipy – desktop decentní */
.hero-kpis{
  max-width:min(920px, calc(100% - 2rem));
}
.hero-kpis .kpi{
  background:rgba(0,0,0,.38);
  color:#fff;
  backdrop-filter:blur(4px);
}

/* Sezónní banner – menší mobilní výška */
.seasonal-banner .wrap{
  padding-inline:clamp(16px, 4vw, 28px);
}
.seasonal-banner .msg{
  line-height:1.36;
  font-size:clamp(.95rem, 2.2vw, 1rem);
}

@media (max-width: 900px){
  .hero{
    min-height:auto;
  }
  .hero .wrap{
    padding-inline:clamp(18px, 5vw, 28px);
  }
  .hero-wrap{
    min-height:clamp(520px, 74dvh, 650px);
    padding:clamp(1.15rem, 6vw, 1.8rem) 0 1rem;
    align-items:center;
  }
  .hero-copy{
    width:100%;
    max-width:none;
    padding:clamp(1rem, 4.4vw, 1.2rem);
    border-radius:16px;
    background:linear-gradient(135deg, rgba(0,0,0,.68), rgba(0,0,0,.42));
  }
  .hero-copy h1{
    font-size:clamp(1.72rem, 7.4vw, 2.45rem);
    line-height:1.13;
    max-width:12ch;
  }
  .hero-copy .lead{
    font-size:1rem;
    line-height:1.48;
  }

  .hero-actions,
  .cta-actions{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:.65rem;
  }
  .hero-actions > .btn,
  .cta-actions > .btn{
    min-height:48px;
    padding:.82rem .8rem;
    font-size:clamp(.98rem, 3.6vw, 1.1rem);
  }

  /* KPI čipy pod CTA bez překryvu */
  .hero-kpis{
    position:relative;
    left:auto;
    right:auto;
    bottom:auto;
    z-index:3;
    display:flex;
    flex-wrap:wrap;
    gap:.5rem;
    max-width:none;
    margin:.9rem clamp(18px, 5vw, 28px) 1rem;
    padding:0;
  }
  .hero-kpis .kpi{
    flex:1 1 145px;
    text-align:center;
    line-height:1.22;
    font-size:.92rem;
    padding:.5rem .65rem;
  }
}

@media (max-width: 560px){
  .seasonal-banner .wrap{
    display:grid;
    grid-template-columns:1fr auto;
    align-items:center;
    gap:.55rem;
    padding-block:.58rem;
  }
  .seasonal-banner .msg{
    font-size:.96rem;
  }

  .hero-copy h1{
    font-size:clamp(1.66rem, 8vw, 2.15rem);
    max-width:11ch;
  }
  .hero-copy .eyebrow{
    font-size:.92rem;
  }
  .hero-actions,
  .cta-actions{
    grid-template-columns:1fr;
  }
  .hero-actions > .btn,
  .cta-actions > .btn{
    width:100%;
  }
  .hero-kpis{
    margin-top:.8rem;
  }
  .hero-kpis .kpi{
    flex:1 1 calc(50% - .5rem);
    font-size:.88rem;
    padding:.46rem .55rem;
  }
}

@media (max-width: 380px){
  .hero-copy h1{
    font-size:1.56rem;
  }
  .hero-kpis .kpi{
    flex-basis:100%;
  }
}

/* =====================================================================
   HOTFIX 2026-06-01 C — desktop hero zmenšení + UI kontrola
   Cíl: na PC zmenšit hero titulek, zjemnit levý textový blok,
        sjednotit CTA a udržet mobil bez překryvů.
   ===================================================================== */

/* Desktop hero: titul je teď hlavní, ale ne "billboard přes půl stránky". */
@media (min-width: 901px){
  .hero{
    min-height: clamp(500px, 62vh, 700px);
  }

  .hero-wrap{
    min-height: inherit;
    align-items: center;
    padding: clamp(2.2rem, 5vh, 3.4rem) 0;
  }

  .hero-copy{
    max-width: 560px;
    padding: clamp(1.25rem, 2.2vw, 1.75rem);
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(0,0,0,.56), rgba(0,0,0,.30));
  }

  .hero-copy .eyebrow{
    margin: 0 0 .45rem;
    font-size: .82rem;
    letter-spacing: .13em;
    text-transform: uppercase;
  }

  .hero-copy h1{
    max-width: 14.5ch;
    font-size: clamp(2.15rem, 3.05vw, 3.45rem) !important;
    line-height: 1.08;
    letter-spacing: -.035em;
    margin: 0 0 .8rem;
  }

  .hero-copy .lead{
    max-width: 48ch;
    font-size: clamp(1rem, 1.05vw, 1.08rem);
    line-height: 1.55;
    margin-bottom: 0;
  }

  .hero-actions{
    display: grid;
    grid-template-columns: repeat(2, minmax(190px, 1fr));
    gap: .75rem;
    width: min(100%, 430px);
    margin-top: 1.15rem;
  }

  .hero-actions > .btn{
    min-height: 46px;
    padding: .78rem .95rem;
    font-size: .98rem;
    line-height: 1.15;
  }

  .hero-kpis{
    left: max(2rem, calc((100vw - 1180px) / 2 + 1rem));
    bottom: 1.15rem;
  }

  .hero-kpis .kpi{
    font-size: .9rem;
    padding: .38rem .62rem;
  }
}

/* Velké monitory: držet text kompaktní, ať nepůsobí přerostle. */
@media (min-width: 1400px){
  .hero-copy{
    max-width: 590px;
  }
  .hero-copy h1{
    font-size: clamp(2.25rem, 2.65vw, 3.25rem) !important;
  }
}

/* Široké, ale nízké displeje/notebooky: menší výška hero a méně agresivní typografie. */
@media (min-width: 901px) and (max-height: 780px){
  .hero{
    min-height: clamp(470px, 58vh, 620px);
  }
  .hero-copy h1{
    font-size: clamp(2rem, 2.7vw, 3rem) !important;
  }
  .hero-copy .lead{
    font-size: 1rem;
  }
}

/* Jemnější zatmavení: čitelnost zůstává, ale obrázek nepůsobí tak utopeně. */
@media (min-width: 901px){
  .hero-bg::after{
    background:
      linear-gradient(90deg, rgba(0,0,0,.62), rgba(0,0,0,.28) 42%, rgba(0,0,0,.18) 68%, rgba(0,0,0,.38)),
      linear-gradient(to top, rgba(0,0,0,.36), rgba(0,0,0,.10));
  }
}

/* CTA sjednocení zůstává i na mobilu, ale bez přetékání. */
.hero-actions > .btn{
  box-sizing: border-box;
  white-space: normal;
}

/* Mobil: KPI/chlívečky vždy pod tlačítky, žádné negativní odsazení. */
@media (max-width: 900px){
  .hero-kpis{
    position: relative;
    margin: .9rem clamp(18px, 5vw, 28px) 1rem !important;
  }

  .hero-copy h1{
    font-size: clamp(1.65rem, 7.2vw, 2.25rem) !important;
    line-height: 1.14;
  }
}

/* =====================================================================
   HOMEPAGE CONVERSION POLISH v20260602
   Kratší hero, silnější důvěra, lepší mobilní CTA.
   ===================================================================== */

/* Hero pro kratší nový nadpis – čitelný, ale ne přerostlý. */
@media (min-width: 901px){
  .hero-copy{
    max-width: 540px;
  }
  .hero-copy h1{
    max-width: 13ch;
    font-size: clamp(2.05rem, 2.75vw, 3.05rem) !important;
    line-height: 1.08;
  }
  .hero-copy .lead{
    max-width: 51ch;
  }
}

@media (min-width: 1400px){
  .hero-copy h1{
    font-size: clamp(2.1rem, 2.35vw, 2.9rem) !important;
  }
}

/* Služby – trochu obchodnější a přehlednější dlaždice. */
.services .service-card{
  position: relative;
  overflow: hidden;
}
.services .service-card::after{
  content: "";
  position: absolute;
  inset: auto 1rem 1rem auto;
  width: 34px;
  height: 34px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--brand) 10%, transparent);
  opacity: .75;
}
.services .service-card h3{
  font-size: 1.08rem;
  line-height: 1.25;
}
.services .service-card p{
  line-height: 1.48;
}

/* Důvěryhodnost / proč my. */
.proof-grid{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(1rem, 2vw, 1.25rem);
}
.proof-card{
  display: flex;
  flex-direction: column;
  min-height: 100%;
  border-color: color-mix(in srgb, var(--border) 78%, var(--brand));
}
.proof-icon{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  margin-bottom: .65rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--brand) 13%, #fff);
  color: var(--brand-700);
  font-weight: 900;
}
.proof-card h3{
  margin: 0 0 .45rem;
  font-size: 1.02rem;
  line-height: 1.25;
}
.proof-card p{
  margin: 0;
  color: var(--muted);
  line-height: 1.5;
}

@media (max-width: 1100px){
  .proof-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 640px){
  .proof-grid{
    grid-template-columns: 1fr;
  }
}

/* Mobilní spodní CTA – jen na telefonu, nenahrazuje obsah, pouze zkracuje cestu ke kontaktu. */
.mobile-sticky-cta{
  display: none;
}

@media (max-width: 720px){
  .mobile-sticky-cta{
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 70;
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    gap: .55rem;
    padding: .62rem clamp(14px, 4vw, 22px) calc(.62rem + env(safe-area-inset-bottom, 0px));
    background: rgba(255,255,255,.92);
    border-top: 1px solid var(--border);
    box-shadow: 0 -8px 24px rgba(0,0,0,.10);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
  }
  .mobile-sticky-btn{
    min-height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    border: 1px solid transparent;
    padding: .75rem .7rem;
    font-weight: 800;
    font-size: .95rem;
    line-height: 1.12;
    text-align: center;
    text-decoration: none;
  }
  .mobile-sticky-primary{
    background: var(--brand);
    color: #fff;
  }
  .mobile-sticky-secondary{
    background: #fff;
    color: var(--text);
    border-color: var(--border);
  }
  .mobile-sticky-primary:hover,
  .mobile-sticky-secondary:hover{
    text-decoration: none;
  }
  .mobile-sticky-primary:hover{
    background: var(--brand-700);
    color: #fff;
  }
  .site-footer{
    padding-bottom: calc(24px + 72px + env(safe-area-inset-bottom, 0px));
  }
}

@media (prefers-color-scheme: dark){
  .proof-icon{
    background: color-mix(in srgb, var(--brand) 18%, #0f1412);
    color: var(--brand);
  }
  @media (max-width: 720px){
    .mobile-sticky-cta{
      background: rgba(15,20,18,.92);
      border-top-color: #2b3a33;
      box-shadow: 0 -8px 24px rgba(0,0,0,.32);
    }
    .mobile-sticky-secondary{
      background: #0f1412;
      color: var(--text);
      border-color: #2b3a33;
    }
  }
}

@media print{
  .mobile-sticky-cta{
    display: none !important;
  }
}

/* =====================================================================
   WATER DELIVERY PRICE BLOCK v20260629
   Ceník dovozu vody – používá se v ceniku i na stránce tlakové mytí.
   ===================================================================== */
.water-price-section{
  margin-top: clamp(1.2rem, 3vw, 2rem);
}
.water-price-box{
  position: relative;
  overflow: hidden;
  padding: clamp(1rem, 2.8vw, 1.5rem);
  background: linear-gradient(135deg, #ffffff, color-mix(in srgb, var(--brand) 7%, #fff));
  border-color: color-mix(in srgb, var(--brand) 26%, var(--border));
}
.water-price-box::after{
  content: "";
  position: absolute;
  right: -62px;
  top: -72px;
  width: 170px;
  height: 170px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--brand) 9%, transparent);
  pointer-events: none;
}
.water-price-head{
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1rem;
}
.water-price-head h2{
  margin: .1rem 0 .35rem;
}
.water-price-head p{
  margin: 0;
  max-width: 72ch;
  color: var(--muted);
}
.water-price-pill{
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .42rem .7rem;
  border-radius: 999px;
  background: var(--brand);
  color: #fff;
  font-weight: 800;
  font-size: .9rem;
  white-space: nowrap;
  box-shadow: 0 6px 18px rgba(43,138,62,.18);
}
.water-zone-grid{
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns:repeat(auto-fit, minmax(min(100%, 240px), 1fr));
  gap: clamp(.8rem, 2vw, 1rem);
}
.water-zone-card{
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: 1rem;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: rgba(255,255,255,.86);
  box-shadow: var(--shadow);
}
.water-zone-card strong{
  font-size: 1.02rem;
  line-height: 1.25;
}
.water-zone-card span{
  display: block;
  margin-top: .25rem;
  color: var(--muted);
  line-height: 1.42;
}
.water-zone-price{
  margin-top: auto;
  padding-top: .85rem;
  color: var(--brand-700);
  font-size: clamp(1.35rem, 2.1vw, 1.75rem);
  line-height: 1.05;
  font-weight: 900;
  letter-spacing: -.02em;
  white-space:nowrap;
}
.water-zone-price small{
  display: block;
  white-space:normal;
  margin-top: .22rem;
  color: var(--muted);
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: 0;
}
.water-price-note{
  position: relative;
  z-index: 1;
  margin: 1rem 0 0;
  padding-top: .85rem;
  border-top: 1px dashed color-mix(in srgb, var(--brand) 28%, var(--border));
  color: var(--muted);
  font-size: .95rem;
}
.water-price-note strong{
  color: var(--text);
}
.water-price-actions{
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  margin-top: 1rem;
}
.water-price-actions .btn{
  margin-top: 0;
}

@media (max-width: 900px){
  .water-price-head{
    flex-direction:column;
  }
  .water-zone-card{
    padding:.95rem;
  }
}
@media (max-width: 560px){
  .water-price-actions .btn{
    width: 100%;
  }
  .water-price-pill{
    width: 100%;
  }
}
@media (prefers-color-scheme: dark){
  .water-price-box{
    background: linear-gradient(135deg, #141a18, #0f1412);
    border-color: color-mix(in srgb, var(--brand) 28%, #2b3a33);
  }
  .water-zone-card{
    background: rgba(15,20,18,.82);
    border-color: #2b3a33;
  }
  .water-zone-price{
    color: var(--brand-600);
  }
  .water-price-note strong{
    color: var(--text);
  }
}


/* ===================== SOUVISEJÍCÍ SLUŽBY / COOKIE ZÁSADY ===================== */
.related-services{ border-top:1px solid var(--border); padding-top:1.5rem; }
.related-service-card{ display:block; color:var(--text); text-decoration:none; }
.related-service-card:hover{ text-decoration:none; transform:translateY(-2px); box-shadow:0 8px 24px rgba(0,0,0,.08); }
.related-service-card h3{ color:var(--text); }
.related-service-card p{ color:var(--muted); }
.related-service-link{ display:inline-block; margin-top:.35rem; color:var(--brand-600); font-weight:700; }
.cookie-settings-actions{ display:flex; flex-wrap:wrap; gap:.6rem; margin:1rem 0; }
.cookie-settings-actions .btn{ margin:0; }
.privacy-table{ width:100%; border-collapse:collapse; min-width:680px; }
.privacy-table th,.privacy-table td{ padding:.7rem .8rem; border-bottom:1px solid var(--border); text-align:left; vertical-align:top; }
.privacy-table th{ background:var(--bg-soft); }
.consent-status{ align-self:start; }
@media (prefers-color-scheme:dark){
  .related-service-card:hover{ box-shadow:0 8px 24px rgba(0,0,0,.35); }
}

/* =====================================================================
   HOMEPAGE UX v20260714
   Zvýrazněné služby, postup spolupráce, skutečné recenze a značky.
   ===================================================================== */
.home-seasonal{ margin-top:clamp(1.25rem, 3vw, 2.4rem); }
.home-seasonal .news-teaser-link{ display:inline-flex; margin-top:.75rem; color:var(--brand-600); font-weight:800; }

.home-services-primary .service-card,
.services-more-grid .service-card{
  position:relative;
  overflow:hidden;
  color:var(--text);
  text-decoration:none;
}
.home-services-primary .service-card:hover,
.services-more-grid .service-card:hover{ text-decoration:none; }
.service-card.is-highlighted{
  border-color:color-mix(in srgb,var(--brand) 58%,var(--border));
  background:linear-gradient(145deg,#fff,color-mix(in srgb,var(--brand) 8%,#fff));
  box-shadow:0 10px 28px rgba(43,138,62,.12);
}
.service-card.is-highlighted::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:5px;
  background:var(--brand);
}
.service-card-copy{
  flex:1 1 auto;
  min-width:0;
}
.service-card-badge{
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  min-height:28px;
  margin:0 0 .45rem;
  padding:.3rem .58rem;
  border-radius:999px;
  background:var(--brand);
  color:#fff;
  font-size:.76rem;
  font-weight:850;
  line-height:1.2;
  text-align:center;
  box-shadow:0 6px 16px rgba(43,138,62,.18);
}
.services-more{ margin-top:1rem; }
.services-more > summary{
  display:flex;
  width:fit-content;
  max-width:100%;
  margin-inline:auto;
  align-items:center;
  justify-content:center;
  gap:.45rem;
  min-height:44px;
  padding:.65rem .9rem;
  border:1px solid var(--border);
  border-radius:12px;
  background:#fff;
  color:var(--text);
  font-weight:750;
  cursor:pointer;
  list-style:none;
}
.services-more > summary::-webkit-details-marker{ display:none; }
.services-more > summary:hover{ background:var(--surface); }
.services-more > summary span{ transition:transform .18s ease; }
.services-more[open] > summary span{ transform:rotate(180deg); }
.services-more-grid{ margin-top:1rem; }

.collaboration-grid{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(.8rem,2vw,1.15rem);
}
.collaboration-grid > li{
  display:flex;
  align-items:flex-start;
  gap:.8rem;
  min-height:100%;
}
.collaboration-grid > li > span{
  flex:0 0 auto;
  display:grid;
  place-items:center;
  width:2rem;
  height:2rem;
  border-radius:999px;
  background:var(--brand);
  color:#fff;
  font-weight:900;
}
.collaboration-grid h3{ margin:.05rem 0 .25rem; font-size:1.02rem; }
.collaboration-grid p{ margin:0; color:var(--muted); }

.reviews{ margin-top:clamp(1.25rem,2.5vw,2rem); }
.review-cards{
  align-items:stretch;
  gap:clamp(1rem,2vw,1.5rem);
  margin-top:1rem;
}
figure.card.review{
  display:flex;
  flex-direction:column;
  min-height:100%;
  margin:0;
  padding:clamp(1.15rem,2.2vw,1.5rem);
  gap:.85rem;
  overflow:hidden;
}
.review-source-row{ display:flex; align-items:center; justify-content:space-between; gap:.75rem; }
.reviews .stars{
  color:#f5b301;
  font-size:1.08rem;
  letter-spacing:.08em;
  line-height:1;
  white-space:nowrap;
}
.review-source{
  display:inline-flex;
  align-items:center;
  padding:.22rem .5rem;
  border:1px solid var(--border);
  border-radius:999px;
  color:var(--muted);
  font-size:.78rem;
  font-weight:750;
}
.review-cards .review blockquote{
  margin:0;
  color:var(--text);
  font-size:1rem;
  line-height:1.62;
}
.review-cards .review figcaption{
  display:flex;
  align-items:center;
  gap:.6rem;
  margin-top:auto;
  padding:.9rem 0 0;
  border-top:1px solid var(--border);
  color:var(--muted);
  font-size:.95rem;
}
.review-cards .review figcaption strong{ color:var(--text); }
.review-cards .review figcaption time{ margin-left:auto; white-space:nowrap; }
.review-trust-note{
  display:flex;
  align-items:flex-start;
  gap:.4rem;
  max-width:820px;
  margin:1rem 0 0;
  color:var(--muted);
  font-size:.9rem;
  line-height:1.5;
}
.review-trust-note span{
  flex:0 0 auto;
  color:var(--brand-600);
  font-weight:900;
}
.review-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.7rem;
  margin-top:1.25rem;
}
.review-actions .btn{ margin:0; }
.review-actions .btn-ghost,
.wrap .review-actions .btn-ghost{
  background:#fff;
  color:var(--text);
  border:1px solid var(--border);
}
.review-actions .btn-ghost:hover,
.wrap .review-actions .btn-ghost:hover{
  background:var(--surface);
  color:var(--text);
}

.brand-groups{ display:grid; gap:1.25rem; }
.brand-group{ display:grid; gap:.65rem; }
.brand-group h3{ margin:0; font-size:1rem; color:var(--muted); }
.brand-cards{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  gap:1rem;
}
.brand-cards--technology{ max-width:520px; }
.brand-cards .brand{ min-height:92px; }

@media (max-width:900px){
  .collaboration-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:620px){
  .collaboration-grid{ grid-template-columns:1fr; }
  .review-actions .btn{ width:100%; }
  .review-source-row{ align-items:flex-start; }
}
@media (prefers-color-scheme:dark){
  .service-card.is-highlighted{
    background:linear-gradient(145deg,#0f1412,color-mix(in srgb,var(--brand) 11%,#0f1412));
    border-color:color-mix(in srgb,var(--brand) 48%,#2b3a33);
    box-shadow:0 10px 28px rgba(0,0,0,.32);
  }
  .services-more > summary,
  .review-actions .btn-ghost,
  .wrap .review-actions .btn-ghost{
    background:#0f1412;
    color:var(--text);
    border-color:#2b3a33;
  }
  .services-more > summary:hover,
  .review-actions .btn-ghost:hover,
  .wrap .review-actions .btn-ghost:hover{ background:#1b2521; }
}

/* ===================== DROBEČKOVÁ NAVIGACE ===================== */
.site-breadcrumbs{
  padding-top:.8rem;
  padding-bottom:.15rem;
  font-size:.86rem;
  color:var(--muted);
}
.site-breadcrumbs ol{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:.35rem;
  list-style:none;
  margin:0;
  padding:0;
}
.site-breadcrumbs li{ display:inline-flex; align-items:center; min-width:0; }
.site-breadcrumbs li + li::before{
  content:"/";
  margin-right:.35rem;
  color:color-mix(in srgb,var(--muted) 65%,transparent);
}
.site-breadcrumbs a{ color:var(--muted); text-decoration:none; }
.site-breadcrumbs a:hover{ color:var(--brand-600); text-decoration:underline; }
.site-breadcrumbs [aria-current="page"]{
  color:var(--text);
  overflow-wrap:anywhere;
}
@media (max-width:640px){
  .site-breadcrumbs{ font-size:.8rem; padding-top:.6rem; }
  .site-breadcrumbs li:not(:first-child):not(:last-child){ display:none; }
  .site-breadcrumbs li:last-child::before{ content:"/"; }
}

/* ===================== PŘESKOČENÍ NA OBSAH ===================== */
.skip-link{
  position:fixed; left:16px; top:10px; z-index:2000;
  transform:translateY(-160%);
  padding:.65rem .9rem; border-radius:10px;
  background:var(--brand-700); color:#fff; font-weight:700;
  box-shadow:var(--shadow-1);
}
.skip-link:focus{ transform:translateY(0); text-decoration:none; }

/* ===================== AI / AUTOR / PŘEHLED SLUŽEB / PŘÍPADOVÉ STUDIE ===================== */
.wrap .btn.btn-ghost,
.btn.btn-ghost{
  background:#fff;
  color:var(--text);
  border:1px solid var(--border);
}
.wrap .btn.btn-ghost:hover,
.btn.btn-ghost:hover{ background:var(--surface); color:var(--text); text-decoration:none; }

.article-attribution{
  display:flex;
  flex-wrap:wrap;
  gap:.35rem 1rem;
  margin:.55rem 0 1.2rem;
  padding:.72rem .9rem;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--bg-soft);
  color:var(--muted);
  font-size:.88rem;
  line-height:1.45;
}
.article-attribution span{ display:inline-flex; gap:.25rem; min-width:0; }
.article-attribution a{ color:var(--text); font-weight:700; }

.expert-profile-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.25rem;
  padding:clamp(1.1rem,3vw,1.6rem);
}
.expert-profile-card h2{ margin:.1rem 0 .2rem; }
.expert-profile-card p{ margin:.3rem 0 0; }
.expert-role{ color:var(--muted); font-weight:700; }

.services-overview-head{ max-width:850px; }
.services-directory{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1.25rem;
  margin-top:1.25rem;
}
.service-directory-card{
  display:grid;
  grid-template-columns:minmax(150px,.72fr) minmax(0,1.28fr);
  gap:0;
  padding:0;
  overflow:hidden;
  min-width:0;
}
.service-directory-media{ min-height:100%; background:var(--surface); overflow:hidden; }
.service-directory-media img{ width:100%; height:100%; min-height:230px; object-fit:cover; }
.service-directory-copy{ display:flex; flex-direction:column; min-width:0; padding:1.15rem; }
.service-directory-copy h2{ margin:.1rem 0 .4rem; font-size:clamp(1.1rem,2vw,1.35rem); }
.service-directory-copy h2 a{ color:var(--text); }
.service-directory-copy p{ margin:.25rem 0; }
.service-directory-action{ margin-top:auto!important; padding-top:.75rem; }
.services-overview-cta{ margin-top:1.5rem; }

.case-study-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.25rem;
  margin-top:1.25rem;
}
.case-study-card{ display:flex; flex-direction:column; min-width:0; padding:0; overflow:hidden; }
.case-study-card.is-featured{ border-color:color-mix(in srgb,var(--brand) 40%,var(--border)); }
.case-study-image{ display:block; aspect-ratio:16/10; overflow:hidden; background:var(--surface); }
.case-study-image img{ width:100%; height:100%; object-fit:cover; transition:transform .25s ease; }
.case-study-card:hover .case-study-image img{ transform:scale(1.025); }
.case-study-copy{ display:flex; flex:1 1 auto; flex-direction:column; min-width:0; padding:1rem; }
.case-study-copy h2{ margin:.2rem 0 .45rem; font-size:1.18rem; }
.case-study-copy h2 a{ color:var(--text); }
.case-study-copy p{ margin:.2rem 0; }
.case-study-meta{ color:var(--muted); font-size:.88rem; }
.case-study-action{ margin-top:auto!important; padding-top:.8rem; }

.case-study-detail{ max-width:920px; }
.case-study-detail-head{ max-width:820px; }
.case-study-detail-head h1{ text-wrap:balance; }
.case-study-hero-image{ margin:1.2rem 0 1.4rem; }
.case-study-hero-image img{ width:100%; max-height:620px; object-fit:cover; }
.case-study-services{ margin:1.25rem 0; }
.case-study-services h2{ font-size:1.05rem; margin-bottom:.55rem; }
.case-study-service-links{ display:flex; flex-wrap:wrap; gap:.55rem; }
.service-chip{
  display:inline-flex;
  align-items:center;
  min-height:38px;
  padding:.45rem .7rem;
  border:1px solid var(--border);
  border-radius:999px;
  background:var(--bg-soft);
  color:var(--text);
  font-weight:700;
  font-size:.88rem;
}
.service-chip:hover{ background:var(--surface); text-decoration:none; }
.case-study-sections{ display:grid; gap:1rem; margin:1.2rem 0; }
.case-study-sections .card h2{ margin:.1rem 0 .5rem; }
.case-study-sections .card p:last-child{ margin-bottom:0; line-height:1.7; }
.case-study-verification-note{
  margin:1rem 0;
  padding:.85rem 1rem;
  border-left:4px solid var(--brand);
  border-radius:0 10px 10px 0;
  background:var(--bg-soft);
  color:var(--muted);
}
.reference-home-actions{ display:flex; flex-wrap:wrap; gap:.65rem; }
.case-study-promo{ margin-block:1.5rem; }

@media (max-width:980px){
  .services-directory{ grid-template-columns:1fr; }
  .case-study-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:680px){
  .service-directory-card{ grid-template-columns:1fr; }
  .service-directory-media img{ min-height:0; aspect-ratio:16/9; }
  .case-study-grid{ grid-template-columns:1fr; }
  .expert-profile-card{ align-items:flex-start; flex-direction:column; }
  .expert-profile-card .btn{ width:100%; text-align:center; }
  .article-attribution{ display:grid; gap:.3rem; }
  .article-attribution span{ display:block; }
  .reference-home-actions .btn{ width:100%; text-align:center; }
}
@media (prefers-color-scheme:dark){
  .wrap .btn.btn-ghost,.btn.btn-ghost,
  .article-attribution,.service-chip,.case-study-verification-note{
    background:#0f1412;
    color:var(--text);
    border-color:#2b3a33;
  }
  .wrap .btn.btn-ghost:hover,.btn.btn-ghost:hover,.service-chip:hover{ background:#1b2521; }
}

/* ===================== PŘÍPADOVÁ STUDIE – FOTOGALERIE ===================== */
.case-study-hero-image{
  margin:1.2rem 0 1.5rem;
  border:1px solid var(--border);
  border-radius:16px;
  overflow:hidden;
  background:#fff;
  box-shadow:var(--shadow-1);
}
.case-study-hero-image .case-gallery-main-link{
  position:relative;
  display:block;
  background:var(--surface);
  text-decoration:none;
}
.case-study-hero-image img{
  display:block;
  width:100%;
  max-height:680px;
  object-fit:cover;
}
.case-study-hero-image figcaption{
  padding:.75rem 1rem;
  color:var(--muted);
  border-top:1px solid var(--border);
}
.case-gallery-zoom{
  position:absolute;
  right:.8rem;
  bottom:.8rem;
  padding:.4rem .65rem;
  border-radius:999px;
  background:rgba(0,0,0,.62);
  color:#fff;
  font-size:.82rem;
  font-weight:700;
  backdrop-filter:blur(4px);
}
.case-study-gallery-section{
  margin:1.5rem 0;
  padding:1.1rem;
  border:1px solid var(--border);
  border-radius:16px;
  background:var(--bg-soft);
}
.case-study-gallery-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:.9rem;
}
.case-study-gallery-head h2{ margin:.1rem 0 0; }
.case-study-gallery-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:.75rem;
}
.case-study-gallery-card{
  min-width:0;
  margin:0;
  overflow:hidden;
  border:1px solid var(--border);
  border-radius:12px;
  background:#fff;
  box-shadow:var(--shadow);
}
.case-study-gallery-card[hidden]{ display:none!important; }
.case-study-gallery-card a{
  display:block;
  aspect-ratio:4/3;
  overflow:hidden;
  background:var(--surface);
}
.case-study-gallery-card img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .2s ease;
}
.case-study-gallery-card a:hover img{ transform:scale(1.035); }
.case-study-gallery-card figcaption{
  padding:.55rem .65rem .65rem;
  color:var(--muted);
  font-size:.84rem;
  line-height:1.4;
}
.case-gallery-more{ margin-top:.9rem; }

.case-gallery-lightbox{
  position:fixed;
  inset:0;
  z-index:1300;
  display:grid;
  place-items:center;
  padding:1rem;
}
.case-gallery-lightbox[hidden]{ display:none!important; }
.case-gallery-lightbox-backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.82);
  cursor:zoom-out;
}
.case-gallery-lightbox-stage{
  position:relative;
  z-index:1;
  width:min(1180px,96vw);
  max-height:94vh;
  display:grid;
  place-items:center;
}
.case-gallery-lightbox-stage figure{
  margin:0;
  max-width:100%;
  max-height:92vh;
  display:grid;
  place-items:center;
}
.case-gallery-lightbox-stage img{
  display:block;
  max-width:92vw;
  max-height:82vh;
  width:auto;
  height:auto;
  border-radius:14px;
  background:#111;
  box-shadow:0 16px 64px rgba(0,0,0,.5);
}
.case-gallery-lightbox-stage figcaption{
  max-width:min(880px,90vw);
  padding:.65rem .8rem 0;
  color:#fff;
  text-align:center;
}
.case-gallery-lightbox-close,
.case-gallery-lightbox-nav{
  position:absolute;
  z-index:2;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,.3);
  background:rgba(0,0,0,.55);
  color:#fff;
  cursor:pointer;
  backdrop-filter:blur(5px);
}
.case-gallery-lightbox-close{
  top:.5rem;
  right:.5rem;
  width:42px;
  height:42px;
  border-radius:12px;
  font-size:24px;
}
.case-gallery-lightbox-nav{
  top:50%;
  width:48px;
  height:48px;
  border-radius:14px;
  transform:translateY(-50%);
  font-size:30px;
}
.case-gallery-lightbox-nav.is-prev{ left:.5rem; }
.case-gallery-lightbox-nav.is-next{ right:.5rem; }
.case-gallery-lightbox-nav[hidden]{ display:none!important; }
.case-gallery-lightbox-count{
  position:absolute;
  left:50%;
  bottom:.35rem;
  transform:translateX(-50%);
  color:rgba(255,255,255,.88);
  font-size:.82rem;
}
body.case-gallery-open{ overflow:hidden; }

@media (max-width:980px){
  .case-study-gallery-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:640px){
  .case-study-gallery-section{ padding:.85rem; }
  .case-study-gallery-head{ align-items:flex-start; flex-direction:column; gap:.25rem; }
  .case-study-gallery-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .case-gallery-lightbox-nav{ width:42px; height:42px; }
  .case-gallery-lightbox-nav.is-prev{ left:.15rem; }
  .case-gallery-lightbox-nav.is-next{ right:.15rem; }
  .case-gallery-lightbox-stage img{ max-width:94vw; max-height:78vh; }
}
@media (prefers-color-scheme:dark){
  .case-study-hero-image,
  .case-study-gallery-card{ background:#0f1412; border-color:#2b3a33; }
  .case-study-gallery-section{ background:#111714; border-color:#2b3a33; }
}
