/* ==================== VITALITÉ — základní styly (kostra) ==================== */
:root {
  --green: #3a8a5f;
  --green-dark: #2c6b49;
  --green-light: #e8f3ec;
  --ink: #1f2a24;
  --muted: #5a6b62;
  --bg: #ffffff;
  --bg-alt: #f6f9f7;
  --border: #e2e9e4;
  --white: #ffffff;
  --radius: 14px;
  --shadow: 0 8px 30px rgba(31, 42, 36, .08);
  --container: 1140px;
  --font: "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: var(--font); color: var(--ink); background: var(--bg); line-height: 1.6; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; border-radius: 6px; }

.container { width: 100%; max-width: var(--container); margin: 0 auto; padding: 0 24px; }

/* ---------- Tlačítka ---------- */
.btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 12px 24px; border-radius: 999px; border: 0; cursor: pointer;
  font: inherit; font-weight: 600; transition: transform .15s, box-shadow .15s, background .15s;
}
.btn--primary { background: var(--green); color: var(--white); }
.btn--primary:hover { background: var(--green-dark); transform: translateY(-1px); box-shadow: var(--shadow); }
.btn--ghost { background: var(--white); color: var(--ink); border: 1px solid var(--border); }
.btn--ghost:hover { border-color: var(--green); color: var(--green-dark); transform: translateY(-1px); }
.btn--lg { padding: 15px 32px; font-size: 1.05rem; }

/* ---------- Plovoucí horní lišta (hlavička + poradna panel) ---------- */
.topbar { position: sticky; top: 0; z-index: 50; }

/* ---------- Header ---------- */
.header { background: rgba(255,255,255,.92); backdrop-filter: blur(8px); border-bottom: 1px solid var(--border); }
.header__inner { display: flex; align-items: center; justify-content: space-between; height: 88px; }
.header__logo { display: flex; align-items: center; }
.header__logo img { height: 68px; width: auto; }
.header__nav { display: flex; gap: 28px; }
.header__nav a { color: var(--muted); font-weight: 600; }
.header__nav a:hover, .header__nav a.active { color: var(--green-dark); }

/* ---------- Akcentní odlišení sekcí (publikum) ---------- */
/* Default akcent = brand zelená → na neoznačených stránkách žádná změna.
   Stránky publika nastaví na <body> třídu aud-* + proměnnou --accent (viz config.php). */
body { --accent: var(--green); }
/* aktivní položka v navigaci — podtržení v akcentu (na brand stránkách zelené) */
.header__nav a.active { position: relative; }
.header__nav a.active::after { content: ""; position: absolute; left: 0; right: 0; bottom: -7px; height: 3px; border-radius: 3px; background: var(--accent); }
/* na stránkách publika i barva textu aktivní položky = akcent */
body.aud-skoly .header__nav a.active,
body.aud-firmy .header__nav a.active,
body.aud-jednotlivci .header__nav a.active { color: var(--accent); }
/* Pozn.: štítek sekce v hero (.section-tag) odpadl — byl jen na školním stravování
   a působil nekonzistentně; příslušnost k sekci nese barevný pruh pod hlavičkou. */
/* trvalý pruh sekce ve sticky liště — pořád viditelná kotva „kde jsem" */
.sectionbar { background: var(--green-light); background: color-mix(in srgb, var(--accent) 12%, #fff); border-bottom: 2px solid var(--accent); }
.sectionbar__inner { display: flex; align-items: center; gap: 16px; padding: 9px 0; }
/* Nadpis skupiny je hlavní orientační bod po prokliku — proto výrazně větší než okolní drobný text. */
.sectionbar__tag { display: inline-flex; align-items: center; gap: 9px; font-weight: 800; font-size: 1.28rem; line-height: 1.2; letter-spacing: -.01em; color: var(--accent); }
.sectionbar__tag svg { width: 22px; height: 22px; flex-shrink: 0; }
.sectionbar__hint { color: var(--muted); font-size: .85rem; }
@media (max-width: 600px) { .sectionbar__hint { display: none; } .sectionbar__tag { font-size: 1.12rem; } .sectionbar__tag svg { width: 19px; height: 19px; } }
.header__cta { padding: 10px 22px; }

.menu-toggle { display: none; flex-direction: column; justify-content: center; gap: 5px; width: 36px; height: 36px; background: none; border: 0; cursor: pointer; padding: 4px; position: relative; z-index: 60; }
.menu-toggle span { display: block; width: 24px; height: 2px; background: var(--ink); border-radius: 2px; transition: transform .25s ease, opacity .2s ease; transform-origin: center; }
/* otevřený stav -> křížek (X) */
.menu-toggle.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menu-toggle.open span:nth-child(2) { opacity: 0; }
.menu-toggle.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Mobilní / tabletové menu — centrované fullscreen overlay (logo i hamburger zůstávají nahoře viditelné) */
.mobile-nav { position: fixed; inset: 0; background: rgba(255,255,255,.98); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); z-index: 40; flex-direction: column; align-items: center; justify-content: flex-start; gap: 6px; padding: 112px 32px 48px; overflow-y: auto; display: none; }
.mobile-nav.open { display: flex; }
@media (prefers-reduced-motion: reduce) { .menu-toggle span { transition: none; } }
.mobile-nav a:not(.btn) { font-size: 1.45rem; font-weight: 600; color: var(--ink); padding: 10px 24px; }
.mobile-nav a:not(.btn):hover { color: var(--green-dark); }
/* položky vázané na jednu skupinu (mají inline --accent) hoverují/tapnou ve své barvě */
.mobile-nav a[style*="--accent"]:not(.btn):hover, .mobile-nav a[style*="--accent"]:not(.btn):active { color: var(--accent); }
.mobile-nav .btn { margin-top: 18px; min-width: 200px; justify-content: center; }
/* Přihlášení — pod oddělovací čárou, dle patičky */
.mobile-nav__logins { display: flex; flex-direction: column; align-items: center; gap: 6px; width: 100%; max-width: 300px; margin-top: 26px; padding-top: 22px; border-top: 1px solid var(--border); }
.mobile-nav__label { font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); margin-bottom: 2px; }
.mobile-nav .mobile-nav__logins a { font-size: 1.05rem; font-weight: 600; color: var(--green-dark); padding: 4px 0; }
.mobile-nav .mobile-nav__logins a:hover { text-decoration: underline; }
/* při otevřeném menu schováme panel poradny, ať overlay působí čistě jako u fantovi */
body.nav-open .advisor, body.nav-open .sectionbar { display: none; }

/* ---------- Poradna panel (globální) ---------- */
.advisor { background: #eef2ef; border-bottom: 1px solid var(--border); }
.advisor__toggle { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 0; background: none; border: 0; cursor: pointer; text-align: left; font: inherit; }
.advisor__title { font-weight: 700; font-size: 1.05rem; color: var(--ink); }
.advisor__more { flex-shrink: 0; display: inline-flex; align-items: center; gap: 7px; padding: 8px 16px; border-radius: 999px; border: 1.5px solid var(--green); background: var(--white); color: var(--green-dark); font-weight: 700; font-size: .92rem; transition: background .15s, color .15s; }
.advisor__toggle:hover .advisor__more, .advisor__toggle:focus-visible .advisor__more { background: var(--green); color: var(--white); }
.advisor__chevron { color: inherit; flex-shrink: 0; transition: transform .25s ease; }
.advisor__toggle[aria-expanded="true"] .advisor__chevron { transform: rotate(180deg); }
.advisor__panel { padding: 6px 0 22px; }
.advisor__row { display: flex; align-items: center; justify-content: space-between; gap: 28px; padding: 18px 0; border-top: 1px solid rgba(31,42,36,.1); }
.advisor__row:first-child { border-top: 0; }
.advisor__text strong { display: block; color: var(--ink); font-size: 1.02rem; margin-bottom: 3px; }
.advisor__text span { color: var(--muted); }
.advisor__btn { flex-shrink: 0; min-width: 270px; justify-content: center; }
/* barevný hover podle skupiny (ladí s akcentním systémem) */
.advisor__btn:hover { border-color: var(--accent); color: var(--accent); }

/* ---------- Hero (carousel + box) ---------- */
.hero { position: relative; height: clamp(520px, 68vh, 660px); overflow: hidden; padding: 0; }
.hero__slides { position: absolute; inset: 0; }
.hero__slide { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: 0; transition: opacity 1s ease; }
.hero__slide.is-active { opacity: 1; }
/* Ohnisko tematických fotek skupin na podstránkách — v CSS (ne inline), ať ho můžou
   přepsat mobilní pravidla níže (na úzké obrazovce se fotka ořezává po stranách). */
.hero--onphoto .hero__slide { background-position: center 45%; }
.hero__slides::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(31,42,36,.28), rgba(31,42,36,0) 55%); pointer-events: none; }

.hero__arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 3; width: 52px; height: 52px; display: grid; place-items: center; border: 0; border-radius: 999px; background: rgba(31,42,36,.55); color: var(--white); cursor: pointer; transition: background .15s, transform .15s; }
.hero__arrow:hover { background: rgba(31,42,36,.8); }
.hero__arrow--prev { left: 24px; }
.hero__arrow--next { right: 24px; }

.hero__inner { position: relative; z-index: 2; height: 100%; display: flex; align-items: flex-end; }
.hero__box { background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); padding: 34px 38px; max-width: 680px; margin-bottom: 52px; }
.hero__title { font-size: clamp(1.6rem, 3vw, 2.3rem); font-weight: 700; letter-spacing: -.6px; line-height: 1.2; color: var(--ink); }
.hero__title span { display: block; white-space: nowrap; }
.hero__lead { margin-top: 14px; font-size: 1.1rem; color: var(--muted); }
.hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }

/* ---------- Hero „podle cílových skupin" (homepage) ---------- */
/* Každý snímek nese vlastní fotku + text + tlačítko; text sedí na fotce přes gradient. */
.hero--audience .hero__slides::after { display: none; } /* sdílený scrim vypnut, řešíme per-snímek */
/* Neaktivní snímky nesou vlastní odkazy — skrýt z klikání i z tab pořadí (jinak neviditelný
   snímek nad viditelným přebírá kliknutí). visibility se přepne až po dokončení prolnutí. */
.hero--audience .hero__slide { visibility: hidden; pointer-events: none; transition: opacity 1s ease, visibility 0s linear 1s; }
.hero--audience .hero__slide.is-active { visibility: visible; pointer-events: auto; transition: opacity 1s ease; }
.hero--audience .hero__slide::after {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(90deg, rgba(20,32,24,.74), rgba(20,32,24,.34) 44%, rgba(20,32,24,0) 72%),
              linear-gradient(0deg, rgba(20,32,24,.5), rgba(20,32,24,0) 42%);
}
.hero--audience .hero__inner { position: relative; z-index: 2; align-items: flex-end; }
.hero--audience .hero__box {
  background: transparent; box-shadow: none; padding: 0;
  max-width: 620px; margin-bottom: 96px; color: var(--white);
}
.hero--audience .hero__title { color: var(--white); font-size: clamp(1.9rem, 3.6vw, 2.8rem); text-shadow: 0 2px 20px rgba(0,0,0,.4); }
.hero--audience .hero__lead { margin-top: 14px; max-width: 540px; color: rgba(255,255,255,.94); font-size: 1.15rem; text-shadow: 0 1px 14px rgba(0,0,0,.4); }
.hero--audience .hero__actions { margin-top: 16px; }

/* ---------- Hero „text na fotce" (podstránky skupin) ---------- */
/* Stejný styl jako hero homepage — bez bílé tabulky, text sedí přímo na fotce.
   Fotky skupin jsou světlé (jídelny, kantýny), proto silnější ztmavení zdola než na homepage. */
/* Jednotná výška banneru na VŠECH podstránkách — Školní stravování, Firmy a jednotlivci,
   Jak vaříme, Poradna, Registrace, Kontakt, Mám zájem, právní i chybové stránky. Jeden
   rozměr na jednom místě, ne výška po stránkách: banner je pruh přes celou šířku a různá
   výška je při přecházení mezi stránkami vidět jako poskakování.
   Úvodní stránka je jediná výjimka (`.hero--audience`) — nese projíždějící snímky tří
   publik s texty a tlačítky, takže potřebuje víc místa. */
.hero--onphoto { height: clamp(400px, 50vh, 460px); }
.hero--onphoto .hero__slides::after { display: none; }
.hero--onphoto .hero__slide::after {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(90deg, rgba(20,32,24,.78), rgba(20,32,24,.4) 48%, rgba(20,32,24,.06) 78%),
              linear-gradient(0deg, rgba(20,32,24,.62), rgba(20,32,24,0) 52%);
}
.hero--onphoto .hero__inner { position: relative; z-index: 2; align-items: flex-end; }
.hero--onphoto .hero__box {
  background: transparent; box-shadow: none; padding: 0;
  max-width: 660px; margin-bottom: 66px; color: var(--white);
}
.hero--onphoto .hero__title { color: var(--white); font-size: clamp(1.9rem, 3.6vw, 2.8rem); text-shadow: 0 2px 20px rgba(0,0,0,.45); }
.hero--onphoto .hero__lead { margin-top: 14px; max-width: 560px; color: rgba(255,255,255,.94); font-size: 1.12rem; text-shadow: 0 1px 14px rgba(0,0,0,.45); }
.hero--onphoto .hero__actions { margin-top: 22px; }
/* Druhé tlačítko na tmavém podkladu — skleněná varianta místo světlé výplně. */
.hero--onphoto .btn--ghost {
  background: rgba(255,255,255,.14); color: var(--white); border-color: rgba(255,255,255,.6);
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
.hero--onphoto .btn--ghost:hover { background: var(--white); color: var(--ink); border-color: var(--white); }

/* Piluly = přepínač cílových skupin (zároveň popis „pro koho vaříme") */
.hero__dots { position: absolute; left: 0; right: 0; bottom: 26px; z-index: 3; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; padding: 0 20px; }
.hero__dot {
  border: 1px solid rgba(255,255,255,.6); background: rgba(20,32,24,.4); color: var(--white);
  padding: 9px 18px; border-radius: 999px; font-size: .92rem; font-weight: 600; cursor: pointer;
  backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); transition: background .15s, border-color .15s, transform .15s;
}
.hero__dot:hover { background: rgba(20,32,24,.65); border-color: var(--accent); transform: translateY(-1px); }
.hero__dot.is-active { background: var(--accent); border-color: var(--accent); color: var(--accent-ink, #fff); font-weight: 700; }

/* Placka „rozvoz po Brně a okolí" — v toku textu, nad tlačítkem */
.hero__badge {
  display: inline-flex; align-items: center; gap: 8px;
  margin-top: 18px;
  padding: 8px 15px 8px 13px; border-radius: 999px;
  background: rgba(20,32,24,.42); color: var(--white);
  font-size: .9rem; font-weight: 600; line-height: 1;
  border: 1px solid rgba(255,255,255,.4);
  backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px);
}
.hero__badge svg { width: 16px; height: 16px; flex-shrink: 0; }

/* Utilita — vizuálně skrytý obsah (přístupnost / SEO H1) */
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* ---------- Sekce ---------- */
.section { padding: 80px 0; }
.section--alt { background: var(--bg-alt); }
.section--narrow { max-width: 760px; }
.section-label { text-transform: uppercase; letter-spacing: 2px; font-size: .8rem; font-weight: 700; color: var(--green); margin-bottom: 8px; }
.section-title { font-size: clamp(1.8rem, 4vw, 2.6rem); font-weight: 700; letter-spacing: -.5px; margin-bottom: 18px; }
.section-lead { font-size: 1.1rem; color: var(--muted); max-width: 640px; }

/* ---------- Karty ---------- */
.cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 24px; margin-top: 36px; }
.card { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); padding: 28px; box-shadow: var(--shadow); }
.card__title { font-size: 1.2rem; margin-bottom: 10px; color: var(--green-dark); }
.card__text { color: var(--muted); }

/* ---------- Služby / zákazníci ---------- */
.services { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; margin-top: 44px; }
.service { display: flex; flex-direction: column; }
.service__title { position: relative; font-size: 1.3rem; font-weight: 700; line-height: 1.2; color: var(--accent); margin-bottom: 14px; padding-bottom: 12px; }
.service__title::after { content: ""; position: absolute; left: 0; bottom: 0; width: 46px; height: 3px; border-radius: 3px; background: var(--accent); }
/* Fotka na kartě je odkaz na stránku té skupiny (viz Home/default.latte) — `display: block`
   a zrušené podtržení jsou jen proto, aby se odkaz choval jako dosavadní <div>; vzhled
   zůstává stejný. */
.service__photo { display: block; text-decoration: none; aspect-ratio: 16 / 10; border-radius: var(--radius); background: #e6ece8 center/cover no-repeat; margin-bottom: 18px; }
.service__photo:focus-visible { outline: 3px solid var(--green); outline-offset: 3px; }
.service__photo.is-empty { display: grid; place-items: center; background: var(--green-light); color: var(--green-dark); }
.service__photo.is-empty::after { content: "Fotku doplníme"; font-size: .78rem; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; opacity: .55; }
.service__text { color: var(--muted); margin-bottom: 22px; flex-grow: 1; }
.service__actions { display: flex; flex-direction: column; gap: 10px; }
.service__btn { width: 100%; justify-content: center; }
/* ghost tlačítka v kartách hoverují v barvě skupiny (karta má vlastní --accent); primární zůstává zelené */
.service__btn.btn--ghost:hover { border-color: var(--accent); color: var(--accent); }
/* Odbočka nad tlačítky dlaždice (rozcestník registrace) — tichý odkaz, ne páté tlačítko.
   `.service__text` nad ní roste do zbylé výšky, takže tlačítka všech tří dlaždic lícují. */
.service__extra { margin: 0 0 18px; font-size: .9rem; line-height: 1.45; color: var(--muted); }
.service__extra a { color: var(--accent); text-decoration: underline; text-underline-offset: 2px; }
/* Poznámka pod trojicí dlaždic (rozcestník registrace) — odsazená od mřížky, ať nevypadá
   jako text poslední karty. */
.services__note { margin-top: 36px; }

/* ---------- Naše filozofie ---------- */
.philo { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; margin-top: 44px; }
.philo__item { margin: 0; }
.philo__photo { aspect-ratio: 16 / 10; border-radius: var(--radius); background: #e6ece8 center/cover no-repeat; display: grid; place-items: center; }
/* Chybí-li fotka, drží dlaždice svoje místo v mřížce a řekne proč — prázdný rámeček
   vypadá jako chyba webu, ne jako čekání na podklad. Stejné provedení jako .whychoose__ph. */
.philo__photo.is-empty { border: 1px dashed #b9c8bf; }
.photo-ph { color: var(--muted); font-weight: 600; letter-spacing: .06em; text-transform: uppercase; font-size: .9rem; }
.philo__caption { margin-top: 18px; text-align: center; font-weight: 700; font-size: 1.15rem; line-height: 1.35; color: var(--green-dark); }

/* ---------- Jak vaříme ---------- */
/* (Sekce je samostatná se střídavým pozadím, podnadpis .section-title--sub odpadl.) */
.howwe { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px 40px; margin-top: 36px; }
.howwe__item { margin: 0; }
.howwe__head { display: flex; align-items: center; gap: 16px; margin-bottom: 12px; }
.howwe__icon { flex-shrink: 0; width: 56px; height: 56px; border-radius: 14px; background: var(--green-light); color: var(--green-dark); display: grid; place-items: center; }
.howwe__icon svg { width: 28px; height: 28px; }
.howwe__title { font-size: 1.3rem; font-weight: 700; color: var(--green-dark); }
.howwe__text { color: var(--muted); }
.philo__cta { text-align: center; margin-top: 50px; }
.philo__cta .btn { min-width: 360px; justify-content: center; }
/* varianta se 2 sloupci (4 dlaždice) */
.howwe--cols2 { grid-template-columns: repeat(2, 1fr); gap: 36px 56px; }
@media (max-width: 820px) { .howwe--cols2 { grid-template-columns: 1fr; max-width: 440px; margin-left: auto; margin-right: auto; } }

/* ---------- Jak to funguje (timeline) ---------- */
.steps { margin-top: 44px; max-width: 760px; list-style: none; }
.step { position: relative; display: flex; gap: 26px; padding-bottom: 48px; }
.step:last-child { padding-bottom: 0; }
.step__icon { position: relative; z-index: 1; flex-shrink: 0; width: 72px; height: 72px; border-radius: 18px; background: var(--white); border: 1px solid var(--border); color: var(--green-dark); display: grid; place-items: center; box-shadow: var(--shadow); }
.step__icon svg { width: 34px; height: 34px; }
/* propojovací čára */
.step:not(:last-child)::after { content: ""; position: absolute; left: 36px; top: 80px; height: calc(100% - 80px); width: 2px; transform: translateX(-50%); background: #c4d1c9; }
/* šipka dolů */
.step:not(:last-child)::before { content: ""; position: absolute; left: 36px; bottom: 22px; width: 11px; height: 11px; transform: translateX(-50%) rotate(45deg); border-right: 2px solid var(--green); border-bottom: 2px solid var(--green); z-index: 1; }
.step__body { padding-top: 6px; }
.step__title { font-size: 1.25rem; font-weight: 700; color: var(--green-dark); margin-bottom: 8px; }
.step__num { color: var(--green); }
.step__text { color: var(--muted); }
.step__text a { color: var(--green-dark); text-decoration: underline; }
.step__text a:hover { color: var(--green); }

/* ---------- CTA banner "Zaujali jsme vás?" ---------- */
.cta-banner { position: relative; overflow: hidden; background: #1f2a24 center/cover no-repeat; }
.cta-banner::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(20,28,23,.8), rgba(20,28,23,.5) 55%, rgba(20,28,23,.12)); }
.cta-banner__inner { position: relative; z-index: 1; padding-top: 92px; padding-bottom: 92px; }
.cta-banner__content { max-width: 560px; }
.cta-banner__title { font-size: clamp(1.8rem, 4vw, 2.6rem); font-weight: 800; letter-spacing: -.5px; color: #fff; }
.cta-banner__text { margin: 16px 0 28px; font-size: 1.15rem; color: rgba(255,255,255,.9); max-width: 480px; }

/* ---------- Servisní panel pro zákazníky ---------- */
.servicepanel { background: var(--green-dark); color: #fff; border-radius: 22px; padding: 48px 52px; box-shadow: var(--shadow); }
.servicepanel__title { font-size: clamp(1.5rem, 3vw, 2rem); font-weight: 700; color: #fff; }
.servicepanel__lead { margin-top: 10px; color: rgba(255,255,255,.85); }
.servicepanel__search { display: flex; gap: 14px; margin-top: 20px; max-width: 860px; }
.servicepanel__input { flex: 1; min-width: 0; padding: 14px 18px; border: 0; border-radius: 10px; font: inherit; background: #fff; color: var(--ink); }
.servicepanel__input:focus { outline: 3px solid rgba(255,255,255,.55); }
.servicepanel__submit { background: #fff; color: var(--green-dark); white-space: nowrap; }
.servicepanel__submit:hover { background: var(--green-light); transform: translateY(-1px); }
.servicepanel__quick { margin-top: 34px; }
.servicepanel__subtitle { font-size: 1.12rem; font-weight: 700; color: #fff; margin-bottom: 14px; }
.servicepanel__links { display: flex; flex-wrap: wrap; gap: 12px; }
.servicepanel__links--top { margin-top: 22px; }
.servicepanel__link { background: rgba(255,255,255,.12); color: #fff; border: 1px solid rgba(255,255,255,.4); }
.servicepanel__link:hover { background: #fff; color: var(--green-dark); border-color: #fff; transform: translateY(-1px); }
.servicepanel :focus-visible { outline-color: #fff; outline-offset: 3px; }

/* ---------- Pro rodiče a strávníky (záložky) ---------- */
.tabs { margin-top: 30px; }
.tabs__panel.is-active { display: block; }
.tabs__intro { color: var(--muted); margin-bottom: 22px; }
.faq { display: grid; gap: 18px; }
.faq__item { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; padding-bottom: 18px; border-bottom: 1px solid var(--border); }
.faq__item:last-child { padding-bottom: 0; border-bottom: 0; }
.faq__q { margin: 0; color: var(--ink); flex: 1 1 320px; }
.faq__q strong { color: var(--green-dark); }
.faq__btn { flex-shrink: 0; white-space: nowrap; }

/* záložky na tmavě zeleném panelu — výrazný "folderový" styl */
.tabs--ondark .tabs__nav { display: flex; flex-wrap: wrap; gap: 6px; }
.tabs--ondark .tabs__tab { padding: 14px 26px; border: 0; background: rgba(255,255,255,.14); color: #fff; font: inherit; font-weight: 700; cursor: pointer; border-radius: 12px 12px 0 0; transition: background .15s, color .15s; }
.tabs--ondark .tabs__tab:hover { background: rgba(255,255,255,.26); color: #fff; }
.tabs--ondark .tabs__tab.is-active { background: var(--white); color: var(--green-dark); }
.tabs--ondark .tabs__panel { background: var(--white); border: 0; border-radius: 0 14px 14px 14px; padding: 34px; color: var(--ink); }
.tabs--ondark .tabs__panel:focus-visible { outline-offset: -3px; }

/* ---------- Proč si nás vybírají (text + foto) ---------- */
.whychoose { display: grid; grid-template-columns: 1.05fr 1fr; gap: 56px; align-items: center; }
.whychoose__lead { font-size: 1.12rem; color: var(--muted); max-width: 520px; }
.whychoose__values-title { font-size: 1.3rem; font-weight: 700; color: var(--green-dark); margin: 30px 0 20px; }
.whychoose__values { list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: 20px 28px; }
.whychoose__value { display: flex; align-items: center; gap: 14px; }
.whychoose__vicon { flex-shrink: 0; width: 52px; height: 52px; border-radius: 14px; background: var(--green-light); color: var(--green-dark); display: grid; place-items: center; }
.whychoose__vicon svg { width: 26px; height: 26px; }
.whychoose__vlabel { font-weight: 700; font-size: 1.08rem; color: var(--ink); }
.whychoose__cta { margin-top: 38px; }
.whychoose__media { margin: 0; }
/* Blok bez fotky: jeden sloupec přes celou šířku, ne polovina s dírou vedle. Fotka, kterou
   zákazník teprve dodá, se do redakce doplní a blok se sám vrátí do dvou sloupců — dřív
   tu místo ní stál prázdný rámeček s příslibem „doplníme", což na spuštěném webu vypadá
   jako nedodělek, ne jako čekání na podklad. */
.whychoose--bez-fotky { grid-template-columns: 1fr; }
.whychoose--bez-fotky .whychoose__lead,
.whychoose--bez-fotky .story__p { max-width: 820px; }
.whychoose__photo { aspect-ratio: 4 / 3; border-radius: var(--radius); background: #e6ece8 center/cover no-repeat; box-shadow: var(--shadow); display: grid; place-items: center; }
.whychoose__photo.is-empty { border: 1px dashed #b9c8bf; box-shadow: none; }
.whychoose__ph { color: var(--muted); font-weight: 600; letter-spacing: .06em; text-transform: uppercase; font-size: .9rem; }

/* ---------- Superpotraviny (mřížka dlaždic + modal) ---------- */
.superfoods { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 40px; }
.superfood { position: relative; aspect-ratio: 1 / 1; border: 0; padding: 0; border-radius: var(--radius); overflow: hidden; cursor: pointer; font: inherit; background: var(--bg-alt); box-shadow: var(--shadow); transition: transform .15s, box-shadow .15s; }
.superfood:hover { transform: translateY(-3px); box-shadow: 0 14px 36px rgba(31,42,36,.16); }
.superfood__media { position: absolute; inset: 0; background-size: cover; background-position: center; display: grid; place-items: center; }
.superfood__ph { color: var(--muted); font-size: .82rem; text-transform: uppercase; letter-spacing: .06em; }
.superfood__name { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; padding: 26px 14px 12px; text-align: left; font-weight: 700; font-size: 1.02rem; color: #fff; background: linear-gradient(to top, rgba(20,28,23,.86), rgba(20,28,23,.45) 55%, rgba(20,28,23,0)); }

/* modal s přínosem */
.sf-modal { position: fixed; inset: 0; z-index: 200; background: rgba(15,20,17,.62); display: none; align-items: center; justify-content: center; padding: 20px; }
.sf-modal.open { display: flex; }
.sf-modal__box { position: relative; width: 100%; max-width: 520px; max-height: 90vh; overflow-y: auto; background: var(--white); border-radius: 18px; box-shadow: 0 24px 70px rgba(0,0,0,.35); }
.sf-modal__photo { aspect-ratio: 16 / 9; background: var(--green-light) center/cover no-repeat; border-radius: 18px 18px 0 0; }
.sf-modal__photo.is-empty { display: none; }
.sf-modal__body { padding: 26px 30px 30px; }
.sf-modal__title { font-size: 1.5rem; color: var(--green-dark); }
.sf-modal__intro { color: var(--muted); margin-top: 12px; }
.sf-modal__label { margin-top: 18px; font-weight: 700; color: var(--green-dark); text-transform: uppercase; letter-spacing: .06em; font-size: .82rem; }
.sf-modal__benefits { list-style: none; margin-top: 10px; display: grid; gap: 8px; }
.sf-modal__benefits li { position: relative; padding-left: 26px; color: var(--ink); }
.sf-modal__benefits li::before { content: ""; position: absolute; left: 0; top: .5em; width: 9px; height: 9px; border-radius: 50%; background: var(--green); }
.sf-modal__close { position: absolute; top: 14px; right: 14px; width: 40px; height: 40px; border: 0; border-radius: 999px; background: rgba(255,255,255,.9); color: var(--ink); cursor: pointer; font-size: 1.1rem; display: grid; place-items: center; box-shadow: var(--shadow); }
.sf-modal__close:hover { background: #fff; }

@media (max-width: 560px) { .superfoods { grid-template-columns: repeat(2, 1fr); } .superfood__name { font-size: .92rem; } }

/* ---------- Náš příběh a naše základna (zig-zag řádky) ---------- */
.story { display: grid; gap: 64px; margin-top: 44px; }
.story__p { color: var(--muted); }
.story__p + .story__p { margin-top: 16px; }

/* ---------- Naše filozofie — tři zásady (řádky foto + text) ---------- */
.principles { display: grid; gap: 46px; margin-top: 46px; }
.principle { display: grid; grid-template-columns: 360px 1fr; gap: 44px; align-items: center; }
.principle__photo { aspect-ratio: 16 / 10; border-radius: var(--radius); background: #e6ece8 center/cover no-repeat; box-shadow: var(--shadow); }
.principle__title { font-size: 1.4rem; font-weight: 700; color: var(--green-dark); margin-bottom: 12px; }
.principle__text { color: var(--muted); }
@media (max-width: 760px) {
  .principle { grid-template-columns: 1fr; gap: 18px; }
  .principle__photo { max-width: 440px; }
}

/* ---------- Podsekce (menší nadpis uvnitř sekce) ---------- */
.subsection-title { font-size: clamp(1.45rem, 2.6vw, 1.85rem); font-weight: 700; letter-spacing: -.3px; color: var(--ink); margin-bottom: 14px; }
.subsection-title:not(:first-child) { margin-top: 64px; }
/* odrážkový seznam v dlaždici howwe (zelená tečka) */
.howwe__list { list-style: none; display: grid; gap: 9px; color: var(--muted); }
.howwe__list li { position: relative; padding-left: 18px; }
.howwe__list li::before { content: ""; position: absolute; left: 2px; top: .58em; width: 6px; height: 6px; border-radius: 50%; background: var(--green); }
.whychoose--sub { margin-top: 60px; }
/* foto vlevo, text vpravo */
.whychoose--media-left { grid-template-columns: 1fr 1.05fr; }
/* eyebrow „Varianta 1/2" nad titulkem dlaždice */
.howwe__label { display: block; font-size: .8rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--green); margin-bottom: 2px; }

/* ---------- Jak to vypadá v praxi (stohované kroky vedle fota) ---------- */
.practice { list-style: none; display: grid; gap: 28px; margin-top: 6px; }
.practice__step { margin: 0; }
.practice__title { font-size: 1.25rem; font-weight: 700; color: var(--green-dark); margin-bottom: 8px; }
.practice__num { color: var(--green); }
.practice__text { color: var(--muted); }
.practice__cta { margin-top: 36px; }

/* ---------- Jak začíná spolupráce (číslované kroky) ---------- */
.coop { list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: 38px 56px; margin-top: 44px; max-width: 940px; }
.coop__step { margin: 0; }
.coop__title { font-size: 1.3rem; font-weight: 700; color: var(--green-dark); margin-bottom: 10px; }
.coop__num { color: var(--green); }
.coop__text { color: var(--muted); }
.coop__btn { margin-top: 18px; }
/* lichý poslední krok (5.) sám v řádku → vystředit na šířku jednoho sloupce */
.coop__step:last-child:nth-child(odd) { grid-column: 1 / -1; max-width: calc(50% - 28px); justify-self: center; }

/* ---------- Stravovací programy (tabulky / accordion) ---------- */
.ptable__caption { font-size: 1.3rem; font-weight: 700; color: var(--green-dark); margin: 38px 0 16px; }
.ptable__note { margin-top: 22px; color: var(--muted); }
.ptable__note strong { color: var(--ink); }

/* desktop: opravdová tabulka */
.ptable-wrap { border: 1px solid var(--border); border-radius: 12px; overflow: hidden; background: var(--white); }
.ptable-tbl { width: 100%; border-collapse: collapse; }
.ptable-tbl th, .ptable-tbl td { text-align: left; padding: 14px 18px; border-top: 1px solid var(--border); vertical-align: top; }
.ptable-tbl thead th { background: #e3eae5; border-top: 0; font-weight: 700; color: var(--ink); }
.ptable-tbl tbody th { font-weight: 700; color: var(--ink); width: 26%; }
.ptable-tbl td { color: var(--muted); }
.ptable-acc { display: none; }

/* mobil: accordion */
@media (max-width: 820px) {
  .ptable-wrap { display: none; }
  .ptable-acc { display: block; }
  .pacc { border: 1px solid var(--border); border-radius: 10px; margin-bottom: 10px; background: var(--white); overflow: hidden; }
  .pacc__sum { list-style: none; cursor: pointer; padding: 14px 16px; font-weight: 700; color: var(--ink); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
  .pacc__sum::-webkit-details-marker { display: none; }
  .pacc__sum::after { content: ""; width: 9px; height: 9px; border-right: 2px solid var(--green); border-bottom: 2px solid var(--green); transform: rotate(45deg); transition: transform .2s; flex-shrink: 0; }
  .pacc[open] .pacc__sum::after { transform: rotate(-135deg); }
  .pacc__body { padding: 0 16px 14px; display: grid; gap: 12px; }
  .pacc__cell { color: var(--muted); }
  .pacc__label { display: block; font-weight: 600; color: var(--green-dark); font-size: .82rem; text-transform: uppercase; letter-spacing: .03em; margin-bottom: 2px; }
}

/* ---------- Galerie ---------- */
.gallery { margin-top: 40px; }
.gallery__stage { position: relative; }
.gallery__viewport { position: relative; aspect-ratio: 16 / 9; border-radius: var(--radius); overflow: hidden; background: var(--bg-alt); }
.gallery__slide { position: absolute; inset: 0; margin: 0; background-size: cover; background-position: center; opacity: 0; pointer-events: none; transition: opacity .4s ease; display: grid; place-items: center; cursor: default; }
.gallery__slide.is-active { opacity: 1; pointer-events: auto; }
.gallery__slide[data-src] { cursor: zoom-in; }
.gallery__ph { color: var(--muted); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; font-size: .9rem; }
.gallery__caption { position: absolute; right: 0; bottom: 20px; max-width: 70%; background: rgba(31,42,36,.72); color: #fff; padding: 9px 18px; font-size: .95rem; border-radius: 8px 0 0 8px; }
.gallery__arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 48px; height: 48px; border: 0; border-radius: 999px; background: rgba(255,255,255,.92); color: var(--ink); cursor: pointer; display: grid; place-items: center; box-shadow: var(--shadow); transition: background .15s; }
.gallery__arrow:hover { background: #fff; }
.gallery__arrow--prev { left: 16px; }
.gallery__arrow--next { right: 16px; }

.gallery__thumbs { display: flex; align-items: center; gap: 10px; margin-top: 16px; }
.gallery__thumbstrip { display: flex; gap: 12px; overflow-x: auto; scroll-behavior: smooth; flex: 1; padding-bottom: 4px; scrollbar-width: thin; }
.gallery__thumb { position: relative; flex: 0 0 auto; width: 150px; aspect-ratio: 3 / 2; border-radius: 10px; overflow: hidden; border: 2px solid transparent; background: var(--bg-alt) center/cover no-repeat; cursor: pointer; display: grid; place-items: center; color: var(--muted); font-size: .8rem; padding: 0; transition: border-color .15s; }
.gallery__thumb.is-active { border-color: var(--green); }
.gallery__thumb:hover { border-color: var(--green-light); }
.gallery__tarrow { flex: 0 0 auto; width: 40px; height: 40px; border: 1px solid var(--border); background: #fff; border-radius: 999px; cursor: pointer; display: grid; place-items: center; color: var(--ink); transition: border-color .15s; }
.gallery__tarrow:hover { border-color: var(--green); }

/* ---------- Lightbox ---------- */
.lightbox { position: fixed; inset: 0; z-index: 200; background: rgba(15,20,17,.93); display: none; align-items: center; justify-content: center; }
.lightbox.open { display: flex; }
/* Fotka, kterou jde zvětšit — stejná nápověda jako u galerie, ať se to chová jednotně.
   Značku doplňuje main.js, takže bez JS se lupa neukáže a nic neslibuje. */
[data-zoomable] { cursor: zoom-in; }

/* Strop v pixelech vedle procent: fotky v galerii mají 1200 px, takže při 92vw zabraly na
   notebooku (1366 px) prakticky celou obrazovku od kraje ke kraji. Takhle vyjde zvětšenina
   na obou koncích podobně velká a kolem ní zůstane tmavý rám — z něj je poznat, že jde
   o překryv, a zavření kliknutím mimo je na dosah. */
.lightbox__img { max-width: min(88vw, 1100px); max-height: 82vh; border-radius: 8px; box-shadow: 0 20px 60px rgba(0,0,0,.5); }
.lightbox__close, .lightbox__nav { position: absolute; background: rgba(255,255,255,.16); color: #fff; border: 0; cursor: pointer; border-radius: 999px; display: grid; place-items: center; transition: background .15s; }
.lightbox__close:hover, .lightbox__nav:hover { background: rgba(255,255,255,.32); }
.lightbox__close { top: 24px; right: 28px; width: 48px; height: 48px; font-size: 1.3rem; }
.lightbox__nav { top: 50%; transform: translateY(-50%); width: 56px; height: 56px; }
.lightbox__nav--prev { left: 24px; }
.lightbox__nav--next { right: 24px; }

/* ---------- Kontakt / formulář ---------- */
.contact-info { display: flex; gap: 24px; flex-wrap: wrap; margin: 16px 0 28px; font-weight: 600; color: var(--green-dark); }
.contact-form { margin-top: 28px; display: grid; gap: 18px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.form-group { display: flex; flex-direction: column; gap: 6px; }
.form-group label { font-size: .9rem; font-weight: 600; color: var(--ink); }
.form-group input, .form-group textarea {
  padding: 12px 14px; border: 1px solid var(--border); border-radius: 10px; font: inherit; background: var(--white);
}
.form-group input:focus, .form-group textarea:focus { outline: 2px solid var(--green); border-color: var(--green); }
.form-gdpr { display: flex; align-items: flex-start; gap: 10px; font-size: .9rem; color: var(--muted); }
.form-gdpr a { color: var(--green-dark); text-decoration: underline; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.form-msg { padding: 14px 16px; border-radius: 10px; font-weight: 600; }
.form-msg--ok { background: var(--green-light); color: var(--green-dark); }
.form-msg--err { background: #fdecec; color: #b3261e; }

/* ---------- Hero jen s titulkem (kontakt, mám zájem, obchodní podmínky, GDPR) ---------- */
/* Vzhled i výšku řídí .hero--onphoto (text na fotce), tady zůstává jen odsazení titulku. */
.hero--simple .hero__box { margin-bottom: 40px; }

/* ---------- Hero poradny (přepínač cílových skupin) ---------- */
/* Stejný styl jako ostatní hero (.hero--onphoto): text na fotce, bez světlého závoje.
   Text ale nesedí jen vlevo dole (nadpis vlevo + lead vpravo nahoře, piluly dole),
   proto vlastní gradient — tmavší shora i zdola, ne zleva. */
.hero--poradna .hero__slide::after {
  background: linear-gradient(180deg, rgba(20,32,24,.66), rgba(20,32,24,.2) 48%, rgba(20,32,24,.5) 100%);
}
/* Ohniska tematických fotek skupin (stejné fotky jako v hero homepage). */
.hero--poradna .hero__slide { background-position: center 45%; }
.hero--poradna-firmy .hero__slide { background-position: center 50%; }
.hero--poradna-jednotlivci .hero__slide { background-position: center 45%; }
.hero--poradna .hero__inner { flex-direction: column; align-items: stretch; justify-content: space-between; padding-top: 52px; padding-bottom: 44px; }
.poradna-hero__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 28px 40px; flex-wrap: wrap; }
/* velikost nadpisu drží .hero--onphoto — stejná jako na ostatních stránkách */
.poradna-hero__lead { font-size: clamp(1.1rem, 1.8vw, 1.4rem); font-weight: 700; color: rgba(255,255,255,.94); text-shadow: 0 1px 14px rgba(0,0,0,.45); line-height: 1.4; text-align: right; margin: 6px 0 0; }
/* na PC přesně 2 řádky (zalomení jen na <br>) */
@media (min-width: 761px) { .poradna-hero__lead { white-space: nowrap; } }
/* Přepínač skupin = skleněné piluly ve stejném provedení jako .hero__dot na homepage. */
.poradna-switch { display: flex; flex-wrap: wrap; gap: 10px; }
.poradna-switch__btn {
  padding: 9px 18px; border-radius: 999px; text-align: center;
  background: rgba(20,32,24,.4); color: var(--white); border: 1px solid rgba(255,255,255,.6);
  font-size: .92rem; font-weight: 600;
  backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px);
  transition: background .15s, border-color .15s, transform .15s;
}
.poradna-switch__btn:hover { background: rgba(20,32,24,.65); border-color: var(--accent); transform: translateY(-1px); }
/* --accent-ink = čitelná barva textu na dané akcentní ploše (viz $AUDIENCES v config.php) */
.poradna-switch__btn.is-active { background: var(--accent); color: var(--accent-ink, #fff); border-color: var(--accent); font-weight: 700; }
.poradna-todo { color: var(--muted); }

/* ---------- Poradna — zelený úvodní panel hlavní sekce ---------- */
.poradna-intro { background: var(--green-dark); color: #fff; border-radius: 22px; padding: 32px 44px; box-shadow: var(--shadow); margin-bottom: 36px; }
.poradna-intro__title { font-size: clamp(1.4rem, 2.6vw, 1.9rem); font-weight: 700; color: #fff; }
.poradna-intro__text { margin: 10px 0 0; color: rgba(255,255,255,.85); max-width: 760px; }
@media (max-width: 760px) { .poradna-intro { padding: 26px 24px; border-radius: 18px; } }

/* ---------- Poradna — accordion otázek (hlavní informace) ---------- */
.pacc-q { display: flex; align-items: flex-start; gap: 20px; }
.pacc-q + .pacc-q { margin-top: 20px; }
.pacc-q__num { flex: none; width: 48px; height: 48px; border-radius: 999px; border: 2px solid var(--green); background: var(--white); color: var(--green-dark); display: grid; place-items: center; font-weight: 700; font-size: 1.2rem; }
.pacc-q__panel { flex: 1 1 auto; min-width: 0; border: 1px solid var(--border); border-radius: 14px; background: var(--white); box-shadow: var(--shadow); overflow: hidden; }
.pacc-q__sum { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 18px; padding: 22px 26px; }
.pacc-q__sum::-webkit-details-marker { display: none; }
.pacc-q__heading { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.pacc-q__title { font-size: clamp(1.15rem, 2vw, 1.4rem); font-weight: 700; color: var(--ink); }
.pacc-q__sub { font-weight: 400; font-size: .95rem; color: var(--muted); line-height: 1.5; }
.pacc-q__chevron { flex: none; color: var(--green-dark); transition: transform .2s; }
.pacc-q__panel[open] .pacc-q__chevron { transform: rotate(180deg); }
.pacc-q__body { padding: 4px 26px 28px; }
.pacc-q__intro { margin: 0 0 22px; color: var(--ink); }

/* pod-bod (A, B, C…) — 2 sloupce: vlevo hlavní info, vpravo screenshot / doprovod */
.pstep { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; background: var(--bg-alt); border-radius: 12px; padding: 22px 24px; }
.pstep + .pstep { margin-top: 16px; }
.pstep__main p { margin: 0 0 12px; }
.pstep__main p:last-child { margin-bottom: 0; }
.pstep__lead { color: var(--ink); line-height: 1.6; }
.pstep__note { color: var(--muted); padding-left: 14px; }
.pstep__heading { font-style: italic; font-weight: 700; color: var(--ink); }
.pstep__side { color: var(--ink); }
.pstep__side p { margin: 0 0 12px; }
.pstep__shot { border: 1px dashed var(--border); border-radius: 10px; background: var(--white); min-height: 170px; display: grid; place-items: center; text-align: center; padding: 16px; color: var(--muted); font-size: .9rem; }
.pstep__qa { margin-top: 16px; }
.pstep__qa-label { font-weight: 600; color: var(--ink); margin-bottom: 8px; }
.pstep__qa-list { margin: 0; padding-left: 20px; display: grid; gap: 6px; }
.pstep__qa-list a { color: var(--green-dark); text-decoration: underline; }

@media (max-width: 760px) {
  .pacc-q { gap: 12px; }
  .pacc-q__num { width: 40px; height: 40px; font-size: 1.05rem; }
  .pacc-q__sum { padding: 18px 18px; }
  .pacc-q__body { padding: 4px 18px 22px; }
  .pstep { grid-template-columns: 1fr; gap: 18px; }
}

/* ---------- Poradna — časté otázky a odpovědi (FAQ) ---------- */
.faq-search { margin: 6px 0 36px; }
.faq-search__input { width: 100%; max-width: 720px; padding: 14px 18px; border: 1px solid var(--border); border-radius: 12px; font: inherit; background: var(--white); }
.faq-search__input:focus { outline: 2px solid var(--green); border-color: var(--green); }
.faq-list__title { font-size: 1.2rem; font-weight: 700; color: var(--ink); margin: 0 0 6px; }
.faq-list { display: grid; }
.faq-q { border-bottom: 1px solid var(--border); }
.faq-q[open] { background: #f3f5f4; border-radius: 12px; border-bottom-color: transparent; margin: 8px 0; }
.faq-q__q { list-style: none; cursor: pointer; display: flex; align-items: flex-start; gap: 14px; padding: 16px; font-weight: 700; color: var(--ink); }
.faq-q__q::-webkit-details-marker { display: none; }
.faq-q__q:hover { color: var(--green-dark); }
.faq-q__dot { flex: none; width: 9px; height: 9px; border-radius: 999px; background: var(--green); margin-top: 8px; }
.faq-q__text { flex: 1; min-width: 0; }
.faq-q__chevron { flex: none; color: var(--green-dark); transition: transform .2s; margin-top: 2px; }
.faq-q[open] .faq-q__chevron { transform: rotate(180deg); }
.faq-q__a { padding: 0 16px 18px 39px; color: var(--ink); line-height: 1.65; }
.faq-q__a p { margin: 0 0 14px; }
.faq-q__a p a { color: var(--green-dark); text-decoration: underline; }
.faq-q__placeholder { color: var(--muted); }
.faq-q__tip { color: var(--muted); padding-left: 16px; margin-top: 18px; }
.faq-q__actions { background: #e7eae8; border-radius: 10px; padding: 18px 20px; margin-top: 24px; display: grid; gap: 14px; }
.faq-q__action { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; }
.faq-q__action span { color: var(--ink); }
.faq-q__action .btn { background: var(--white); white-space: nowrap; }
.faq-list__empty { color: var(--muted); padding: 18px 16px; }
.faq-list__empty a { color: var(--green-dark); text-decoration: underline; }

@media (max-width: 760px) { .faq-q__a { padding-left: 16px; } }

/* ---------- Modal (poslat odpověď na e-mail) ---------- */
.modal { position: fixed; inset: 0; z-index: 200; background: rgba(15,20,17,.62); display: none; align-items: flex-start; justify-content: center; padding: 40px 20px; overflow-y: auto; }
.modal.open { display: flex; }
.modal__box { position: relative; width: 100%; max-width: 640px; background: var(--white); border-radius: 16px; box-shadow: 0 24px 70px rgba(0,0,0,.35); }
.modal__close { position: absolute; top: 14px; right: 14px; width: 44px; height: 44px; border: 0; border-radius: 999px; background: transparent; color: var(--ink); cursor: pointer; font-size: 1.3rem; display: grid; place-items: center; transition: background .15s; }
.modal__close:hover { background: var(--bg-alt); }
.modal__body { padding: 30px 34px 34px; }
.modal__title { font-size: clamp(1.4rem, 3vw, 1.7rem); font-weight: 700; color: var(--ink); margin: 0 40px 22px 0; }
.modal__label { display: block; font-weight: 600; color: var(--ink); margin-bottom: 8px; }
.modal__input { width: 100%; padding: 12px 14px; border: 1px solid var(--border); border-radius: 10px; font: inherit; background: var(--white); }
.modal__input:focus { outline: 2px solid var(--green); border-color: var(--green); }
.modal__qlabel { margin: 22px 0 6px; color: var(--muted); }
.modal__q { margin: 0; font-weight: 700; color: var(--ink); line-height: 1.4; }
.modal__check { display: flex; align-items: flex-start; gap: 10px; color: var(--ink); cursor: pointer; }
.modal__check input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--green); flex: none; }
.modal__submit { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 18px 28px; margin-top: 24px; }
.modal__submit .btn { flex: none; }
.modal__note { flex: 1 1 280px; font-size: .85rem; color: var(--muted); line-height: 1.5; margin: 0; }
.modal__note a { color: var(--green-dark); text-decoration: underline; }
.modal .form-msg { margin-top: 18px; }
.modal__box--wide { max-width: 880px; }
.modal__grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 6px 40px; }
.modal__field { margin-bottom: 16px; }
.modal__textarea { min-height: 130px; resize: vertical; }
.modal__check + .modal__check { margin-top: 12px; }
@media (max-width: 640px) { .modal__grid { grid-template-columns: 1fr; gap: 6px; } }
@media (max-width: 560px) { .modal__body { padding: 26px 22px 28px; } }

@media (max-width: 760px) {
  .poradna-hero__lead { text-align: left; max-width: none; }
  /* piluly zůstávají v řádku a zalamují se (stejně jako na homepage), jen menší */
  .poradna-switch { gap: 8px; }
  .poradna-switch__btn { padding: 8px 14px; font-size: .86rem; }
}

.form-lead { font-size: clamp(1.35rem, 2.4vw, 1.7rem); font-weight: 700; color: var(--ink); line-height: 1.35; }
.req { color: var(--green-dark); }
.opt { font-weight: 400; color: var(--muted); }

.form-fieldset { border: 0; padding: 0; margin: 0; }
.form-fieldset legend { font-size: .9rem; font-weight: 600; color: var(--ink); padding: 0; margin-bottom: 12px; }
.form-radios { display: grid; gap: 10px; }
.form-radio { display: flex; align-items: center; gap: 12px; padding: 12px 16px; border: 1px solid var(--border); border-radius: 12px; cursor: pointer; transition: border-color .15s, background .15s; }
.form-radio:hover { border-color: var(--green); }
.form-radio input { width: 18px; height: 18px; accent-color: var(--green); flex: none; }
.form-radio:has(input:checked) { border-color: var(--green); background: var(--green-light); }
.form-radio:has(input:focus-visible) { outline: 2px solid var(--green); outline-offset: 2px; }

.form-submit { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 26px; }
.form-note { font-size: .85rem; color: var(--muted); line-height: 1.5; }
.form-note a { color: var(--green-dark); text-decoration: underline; }

/* stav poděkování za poptávku */
.thanks { max-width: 640px; }
.thanks__icon { width: 60px; height: 60px; display: grid; place-items: center; border-radius: 999px; background: var(--green-light); color: var(--green-dark); margin-bottom: 22px; }
.thanks__lead { margin-top: 12px; font-size: 1.15rem; color: var(--muted); }
.thanks__subtitle { margin-top: 32px; font-size: 1.2rem; color: var(--green-dark); }
.thanks__steps { margin: 16px 0 0; padding-left: 22px; display: grid; gap: 10px; color: var(--ink); }
.thanks__note { margin-top: 26px; padding: 18px 20px; background: var(--bg-alt); border-radius: 12px; color: var(--ink); }
.thanks__note a { color: var(--green-dark); text-decoration: underline; }
.thanks .btn { margin-top: 30px; }

/* ---------- Stránka „Kontakty" — Kde nás najdete ---------- */
.findus { display: grid; grid-template-columns: minmax(220px, 320px) 1fr; gap: 40px; align-items: start; margin-top: 24px; }
.findus__block + .findus__block { margin-top: 32px; }
.findus__label { font-weight: 700; color: var(--ink); margin-bottom: 10px; }
.findus__list { margin: 0; padding-left: 20px; color: var(--ink); line-height: 1.9; }
.findus__addr { font-style: normal; color: var(--ink); line-height: 1.8; }
.findus__map { border-radius: 14px; overflow: hidden; border: 1px solid var(--border); box-shadow: var(--shadow); }
.findus__map iframe { display: block; width: 100%; height: 460px; border: 0; }

@media (max-width: 760px) {
  .findus { grid-template-columns: 1fr; gap: 28px; }
  .findus__map iframe { height: 320px; }
}

/* Kde u nás zaparkovat */
.parking { display: grid; grid-template-columns: 1.4fr 1fr; gap: 44px; align-items: center; margin-top: 24px; }
.parking__map { margin: 0; border-radius: 14px; overflow: hidden; border: 1px solid var(--border); box-shadow: var(--shadow); }
.parking__map img { display: block; width: 100%; height: auto; }
.parking__ph { aspect-ratio: 618 / 366; display: grid; place-items: center; background: var(--white); color: var(--muted); font-size: .9rem; }
.parking__title { font-size: 1.2rem; color: var(--green-dark); margin-bottom: 14px; }
.parking__list { margin: 0; padding-left: 20px; color: var(--ink); line-height: 1.8; display: grid; gap: 12px; }
.parking__list strong { color: var(--green-dark); }

@media (max-width: 760px) {
  .parking { grid-template-columns: 1fr; gap: 24px; }
}

/* Fakturační údaje */
.billing { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; max-width: 860px; margin-top: 28px; }
.billing__head { font-size: 1.1rem; color: var(--green-dark); margin-bottom: 16px; }
.billing__org { font-weight: 700; color: var(--ink); margin-bottom: 8px; }
.billing__addr { font-style: normal; color: var(--ink); line-height: 1.8; }
.billing__email { margin-top: 16px; color: var(--ink); }
.billing__email a { color: var(--green-dark); text-decoration: underline; }

@media (max-width: 560px) {
  .billing { grid-template-columns: 1fr; gap: 32px; }
}

/* ---------- Obchodní podmínky (legal obsah) ---------- */
.section--legal { max-width: 880px; }
.legal { color: var(--ink); line-height: 1.7; }
.legal h2, .legal h3, .legal h4 { color: var(--green-dark); line-height: 1.3; }
.legal h3 { font-size: 1.3rem; margin: 30px 0 12px; }
.legal h3:first-child { margin-top: 0; }
.legal h2 { font-size: 1.5rem; margin: 32px 0 14px; }
.legal h4 { font-size: 1.1rem; margin: 22px 0 10px; }
.legal p { margin: 0 0 14px; }
.legal ul, .legal ol { margin: 0 0 16px; padding-left: 24px; }
.legal ul ul, .legal ol ol, .legal ul ol, .legal ol ul { margin: 8px 0; }
.legal li { margin-bottom: 8px; }
.legal a { color: var(--green-dark); text-decoration: underline; }
.legal [align="center"] { text-align: center; }
.legal table { border-collapse: collapse; margin: 10px 0 20px; width: 100%; }
.legal td, .legal th { border: 1px solid var(--border); padding: 8px 12px; vertical-align: top; text-align: left; }
.op-back { margin-top: 36px; }
.op-back a { color: var(--green-dark); font-weight: 600; text-decoration: none; }
.op-back a:hover { text-decoration: underline; }
.legal__subject { color: var(--muted); margin-bottom: 18px; }
.op-pdf { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 18px; margin-bottom: 28px; }
.op-pdf__note { color: var(--muted); font-size: .9rem; }

/* ---------- Footer ---------- */
.footer { background: #e8edea; color: var(--ink); padding: 60px 0 0; border-top: 1px solid var(--border); }
.footer__inner { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 44px; }
.footer__col { display: flex; flex-direction: column; }
.footer__label { font-weight: 700; font-size: .82rem; text-transform: uppercase; letter-spacing: .8px; color: var(--muted); margin-bottom: 10px; }
.footer__block + .footer__block { margin-top: 28px; }
.footer__org { font-weight: 700; color: var(--ink); margin-bottom: 6px; }
.footer__addr { font-style: normal; color: var(--muted); line-height: 1.75; }
.footer__text { color: var(--muted); margin-bottom: 18px; max-width: 320px; }
.footer__poradna { align-self: flex-start; background: var(--white); white-space: nowrap; }
.footer__email { margin-top: 18px; color: var(--muted); }
.footer__email a { color: var(--green-dark); text-decoration: underline; }
.footer__logins { display: flex; flex-direction: column; margin-top: 22px; }
.footer__logins a { color: var(--green-dark); padding: 6px 0; font-weight: 500; font-size: .9rem; }
.footer__logins a:hover { text-decoration: underline; }
.footer__links a { color: var(--green-dark); padding: 6px 0; font-weight: 500; font-size: .9rem; }
.footer__links a:hover { color: var(--green-dark); text-decoration: underline; }
.footer__sublabel { margin-top: 8px; color: var(--muted); font-size: .9rem; font-weight: 600; }
/* odrážka jako grafický prvek, ne pomlčka v textu */
.footer__sublink { position: relative; padding-left: 16px !important; white-space: nowrap; }
.footer__sublink::before { content: "•"; position: absolute; left: 2px; color: var(--muted); }
.footer__bottom { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-top: 52px; padding-top: 22px; padding-bottom: 28px; border-top: 1px solid var(--border); font-size: .85rem; color: var(--muted); }
.footer__platform { display: inline-flex; align-items: center; gap: 12px; color: var(--ink); transition: opacity .15s; }
.footer__platform span { font-size: .85rem; color: var(--muted); }
.footer__platform-logo { height: 42px; width: auto; }
.footer__platform:hover { opacity: .75; }

/* ---------- Responzivita ---------- */
@media (max-width: 1000px) and (min-width: 821px) {
  .services, .philo, .howwe { grid-template-columns: repeat(2, 1fr); }
  /* 3sloupcové mřížky -> 2 sloupce: osamocenou poslední dlaždici (lichý počet) vycentrujeme.
     Dlaždice ZŮSTÁVÁ ve svém sloupci (tam má správnou velikost) a posune se na střed jen
     vizuálně přes transform. (grid-column:1/-1 + max-width by u fotek s aspect-ratio
     v Chrome srazilo výšku — proto translateX místo roztažení přes oba sloupce.) */
  .services > :last-child:nth-child(odd),
  .philo > :last-child:nth-child(odd) { transform: translateX(calc(50% + 16px)); }
  .howwe > :last-child:nth-child(odd) { transform: translateX(calc(50% + 20px)); }
}

/* Hamburger se objevuje už v tabletu (jako na webu fantovi) — hranice = tabletový breakpoint mřížek */
@media (max-width: 1000px) {
  .header__nav { display: none; }
  .header__cta { display: none; }
  .menu-toggle { display: flex; }
}

@media (max-width: 820px) {
  .form-row { grid-template-columns: 1fr; }
  .footer__inner { grid-template-columns: 1fr; gap: 28px; }
  .services, .philo, .howwe { grid-template-columns: 1fr; max-width: 440px; margin-left: auto; margin-right: auto; }
  .philo__cta .btn { min-width: 0; width: 100%; }

  .servicepanel { padding: 32px 24px; border-radius: 18px; }
  .servicepanel__search { flex-direction: column; }
  .servicepanel__submit { width: 100%; justify-content: center; }
  .servicepanel__link { flex: 1 1 100%; justify-content: center; }

  .gallery__arrow { width: 40px; height: 40px; }
  .gallery__thumb { width: 120px; }
  .lightbox__nav { width: 44px; height: 44px; }
  .lightbox__nav--prev { left: 10px; }
  .lightbox__nav--next { right: 10px; }
  .lightbox__close { top: 14px; right: 16px; }

  .whychoose { grid-template-columns: 1fr; gap: 30px; }
  .whychoose__media { order: -1; }
  .whychoose__lead { max-width: none; }
  .whychoose__cta, .practice__cta { width: 100%; justify-content: center; }

  .coop { grid-template-columns: 1fr; gap: 30px; max-width: 460px; margin-left: auto; margin-right: auto; }
  .coop__step:last-child:nth-child(odd) { grid-column: auto; max-width: none; justify-self: stretch; }
  .coop__btn { width: 100%; justify-content: center; }

  .tabs--ondark .tabs__nav { gap: 4px; }
  .tabs--ondark .tabs__tab { flex: 1 1 45%; text-align: center; padding: 12px 10px; }
  .tabs--ondark .tabs__panel { padding: 22px 18px; }
  .faq__btn { width: 100%; justify-content: center; }

  .step { gap: 16px; padding-bottom: 40px; }
  .step__icon { width: 56px; height: 56px; border-radius: 14px; }
  .step__icon svg { width: 28px; height: 28px; }
  .step:not(:last-child)::after { left: 28px; top: 64px; height: calc(100% - 64px); }
  .step:not(:last-child)::before { left: 28px; }
  .step__title { font-size: 1.15rem; }

  .cta-banner::before { background: linear-gradient(90deg, rgba(20,28,23,.82), rgba(20,28,23,.6)); }
  .cta-banner__inner { padding-top: 60px; padding-bottom: 60px; }
  .cta-banner__content { max-width: none; }

  .advisor__title { font-size: .98rem; }
  .advisor__row { flex-direction: column; align-items: stretch; gap: 12px; }
  .advisor__btn { min-width: 0; width: 100%; }
  .hero { height: auto; min-height: 80vh; }
  .hero__inner { min-height: 80vh; }
  /* Bannery podstránek se na tablet nesmí roztáhnout na 80vh — není co zobrazovat,
     jen by odsunuly obsah pod okraj obrazovky. Výška zůstává jednotná (viz .hero--onphoto). */
  .hero--onphoto { min-height: 0; height: clamp(380px, 52vh, 440px); }
  .hero--onphoto .hero__inner { min-height: 0; }
  .hero__box { max-width: none; width: 100%; margin: 0 0 32px; padding: 26px 22px; }
  .hero__title span { white-space: normal; }
  .hero__actions { flex-direction: column; }
  .hero__actions .btn { width: 100%; justify-content: center; }
  .hero__arrow { width: 42px; height: 42px; }
  .hero__arrow--prev { left: 12px; }
  .hero__arrow--next { right: 12px; }
}

/* Hero na tabletu (641–1000px): CTA na šířku obsahu, ne přes celý box — roztažené tlačítko
   působí divně, když text (a fotka) končí dřív. Platí pro všechna hero (homepage i podstránky),
   telefon (≤640) zůstává full-width, tam je široké tlačítko naopak lépe trefitelné palcem. */
@media (min-width: 641px) and (max-width: 1000px) {
  .hero .hero__actions { flex-direction: row; }
  .hero .hero__actions .btn { width: auto; }
}

/* Pozn.: dřívější mobilní režim „banner nahoře + bílá karta pod ním" (.hero--photocard)
   odpadl — všechna hero jsou sjednocená do stylu „text na fotce" (.hero--onphoto),
   takže fotku už žádná karta nezakrývá a banner není potřeba. Historie v gitu. */

/* Bannery podstránek na mobilu — zmenšit výšku, ať fotka není roztažená přes celou
   obrazovku (jinak ji přebíjí obecné .hero min-height:80vh). Výška zůstává jednotná. */
@media (max-width: 640px) {
  .hero--onphoto { min-height: 0; height: clamp(400px, 58vh, 450px); }
  .hero--onphoto .hero__inner { min-height: 0; }
  /* poradna má text nahoře a piluly dole, na nižším banneru jim stačí menší odstup */
  .hero--poradna .hero__inner { padding-top: 40px; padding-bottom: 30px; }
  /* audience hero na mobilu — fotka na výšku, text čitelný na gradientu, dost místa nad pilulemi */
  /* Vyšší banner a větší odstup pod textem: tři piluly se na mobilu lámou do dvou řádků
     a na 96 px se nevešly — tlačítko se jich dotýkalo. */
  .hero--audience { min-height: 0; height: clamp(500px, 74vh, 610px); }
  .hero--audience .hero__inner { min-height: 0; }
  .hero--audience .hero__box { margin: 0 0 124px; padding: 0; }
  .hero--audience .hero__title { font-size: clamp(1.7rem, 6.6vw, 2.2rem); }
  .hero--audience .hero__lead { font-size: 1.05rem; }
  .hero--audience .hero__dots { bottom: 22px; gap: 8px; padding: 0 14px; }
  .hero--audience .hero__dot { padding: 8px 14px; font-size: .86rem; }
  /* U nižšího hero by šipky padly doprostřed textu — na mobilu je nahrazují piluly. */
  .hero__arrow { display: none; }
  /* podstránky ve stejném stylu jako homepage — text na fotce, bez pilulí dole, tak menší
     odsazení. Výška je jednotná pro všechny podstránky, řeší ji `.hero--onphoto` výš. */
  .hero--onphoto .hero__inner { min-height: 0; }
  .hero--onphoto .hero__box { margin: 0 0 34px; padding: 0; }
  .hero--onphoto .hero__title { font-size: clamp(1.7rem, 6.6vw, 2.2rem); }
  .hero--onphoto .hero__lead { font-size: 1.02rem; }
  .hero--onphoto .hero__title span { white-space: normal; }

  /* Fotka na mobilu: `cover` by při vysokém úzkém výřezu ukázal celou výšku snímku —
     nahoře pak zbyde jen strop a police. Zvětšením na 128 % výšky vznikne svislý přesah,
     který se ustřihne shora (background-position Y), takže strop zmizí a lidé zůstanou
     celí. X posun míří výřez tam, kde na dané fotce lidé jsou. */
  .hero--audience .hero__slide,
  .hero--onphoto:not(.hero--poradna) .hero__slide { background-size: auto 128%; background-position: center 88%; }
  body.aud-skoly .hero--onphoto:not(.hero--poradna) .hero__slide { background-position: 34% 88%; }
  body.aud-jednotlivci .hero--onphoto:not(.hero--poradna) .hero__slide { background-position: 44% 88%; }
  /* Poradna má text nahoře a piluly dole — fotka je vidět prostředkem, proto mírnější posun. */
  .hero--poradna .hero__slide { background-size: auto 120%; background-position: center 72%; }
  .hero__badge { margin-top: 14px; font-size: .82rem; padding: 7px 12px 7px 10px; }
}

@media (max-width: 520px) {
  .whychoose__values { grid-template-columns: 1fr; gap: 16px; }
}
