/*
 * PPP / ZCELA FIT – společné proporce, 2026-09-09.
 * Načítat za původními styly. Texty, fotografie a struktura zůstávají zachované.
 * Hodnoty níže řídí všechny stránky; velikosti jsou podle role prvku.
 */
:root {
  --ppp-content-max: 1360px;
  --ppp-gutter: clamp(20px, 2.5vw, 40px);
  --ppp-font-body: 'Inter', Arial, sans-serif;
  --ppp-font-heading: 'Playfair Display', Georgia, serif;
  --ppp-text: 1rem;
  --ppp-text-small: .875rem;
  --ppp-text-lead: 1.125rem;
  --ppp-h1: clamp(2.25rem, 4vw, 3.4375rem);
  --ppp-h2: 2.375rem;
  --ppp-h3: 1.375rem;
  --ppp-cta-title: 2rem;
  --ppp-line-body: 1.75;
  --ppp-line-heading: 1.3;
  --ppp-section-space: 56px;
  --ppp-heading-space: 20px;
  --ppp-grid-gap: 24px;
  --ppp-card-padding: 24px;
  --ppp-icon-size: 60px;
  --ppp-icon-glyph: 24px;
  --ppp-icon-compact: 42px;
  --ppp-icon-compact-glyph: 18px;
}

body.ppp-site {
  font-family: var(--ppp-font-body);
  font-size: var(--ppp-text);
  line-height: var(--ppp-line-body);
}
body.ppp-site .container {
  width: min(var(--ppp-content-max), calc(100% - 2 * var(--ppp-gutter))) !important;
  max-width: none !important;
  margin-inline: auto !important;
  padding-inline: 0 !important;
}
body.ppp-site :is(.hero-content, .inner-hero-copy, .page-main, .zf-card-body,
  .rozcestnik-premium-content, .team-bio, .form-zf-card, .footer-brand, .footer-col) {
  min-width: 0;
}

/* Typografie: společný základ, zachovaná původní dvojice písem. */
body.ppp-site :is(h1, h2, h3, h4) {
  font-family: var(--ppp-font-heading) !important;
  font-weight: 600 !important;
  letter-spacing: -.015em;
  overflow-wrap: break-word;
}
body.ppp-site :is(.hero-content, .inner-hero) h1 {
  font-size: var(--ppp-h1) !important;
  line-height: 1.2 !important;
  margin-bottom: var(--ppp-heading-space) !important;
}
body.ppp-site :is(section, .page-main) h2,
body.ppp-site #rozcestnik .zf-title-flex h2 {
  font-size: var(--ppp-h2) !important;
  line-height: var(--ppp-line-heading) !important;
  font-weight: 600 !important;
  letter-spacing: -.02em;
}
body.ppp-site .page-main h2 {
  margin-bottom: var(--ppp-heading-space) !important;
}
body.ppp-site :is(section, .page-main) h3,
body.ppp-site #rozcestnik .zf-card h3 {
  font-size: var(--ppp-h3) !important;
  line-height: var(--ppp-line-heading) !important;
  font-weight: 600 !important;
}
body.ppp-site :is(section, .page-main) p,
body.ppp-site .page-main li,
body.ppp-site #rozcestnik .zf-card p {
  font-size: var(--ppp-text) !important;
  line-height: var(--ppp-line-body) !important;
}
body.ppp-site .page-main {
  font-family: var(--ppp-font-body);
}
body.ppp-site .page-main :is(p, li) {
  font-family: var(--ppp-font-body);
}
body.ppp-site :is(.hero-content, .inner-hero-copy) > p,
body.ppp-site .page-main .intro-card p {
  font-size: var(--ppp-text-lead) !important;
  line-height: 1.65 !important;
}
body.ppp-site .hero-content > p { font-weight: 400; }
body.ppp-site :is(.quote-panel, .group-quote) p,
body.ppp-site p.hero-glass-quote {
  font-family: var(--ppp-font-heading) !important;
  font-size: 1.25rem !important;
  line-height: 1.6 !important;
}
body.ppp-site .page-main :is(.myth-title, .fact-title) {
  font-family: var(--ppp-font-body) !important;
  font-size: 1.125rem !important;
  line-height: 1.5 !important;
  font-weight: 600 !important;
  letter-spacing: 0;
}
body.ppp-site .zf-tag,
body.ppp-site .lecture-kicker {
  font-family: var(--ppp-font-body);
  font-size: var(--ppp-text-small) !important;
  line-height: 1.5;
  font-weight: 700 !important;
  letter-spacing: .08em !important;
}
body.ppp-site :is(.btn-zf-green, .btn-zf-outline) {
  font-family: var(--ppp-font-body);
  font-size: var(--ppp-text) !important;
  font-weight: 600;
  line-height: 1.5 !important;
  min-height: 48px;
  justify-content: center;
  text-align: center;
}
body.ppp-site :is(.zf-card-link, .rozcestnik-premium-link) {
  font-family: var(--ppp-font-body);
  font-size: var(--ppp-text) !important;
  line-height: 1.5 !important;
  font-weight: 600 !important;
}
body.ppp-site .section-jumpbar-inner a {
  font-size: var(--ppp-text-small) !important;
  font-weight: 600;
  line-height: 1.5;
  min-height: 48px;
  padding: 10px 14px;
}
body.ppp-site .breadcrumbs {
  font-size: var(--ppp-text-small);
  line-height: 1.5;
}
body.ppp-site .zf-title-flex h2 {
  white-space: normal !important;
  min-width: 0;
  margin: 0 !important;
}
body.ppp-site .zf-title-flex .zf-line { min-width: 32px; }

/* Jednotný vertikální rytmus. Sekce zůstávají ve svém původním pořadí. */
body.ppp-site .section-padding,
body.ppp-site .page-main .section-padding,
body.ppp-site .rozcestnik-section,
body.ppp-site .contact-booking-combined-section {
  padding-top: var(--ppp-section-space) !important;
  padding-bottom: var(--ppp-section-space) !important;
}
body.ppp-site .page-main .intro-section {
  padding-top: 40px !important;
  padding-bottom: 40px !important;
}
body.ppp-site .zf-header-block,
body.ppp-site .rozcestnik-section .zf-header-block { margin-bottom: 32px; }
body.ppp-site .zf-header-block .zf-tag { margin-bottom: 10px; }
body.ppp-site .page-main :is(.intro-card, .content-panel) > :first-child,
body.ppp-site .prose > h2:first-child { margin-top: 0 !important; }
body.ppp-site .page-main :is(.intro-card, .content-panel, .mini-card,
  .ppp-type-card, .first-step-card, .sport-card, .experience-card,
  .sign-card, .communication-card, .therapy-item, .school-audience-card,
  .expert-topic-card, .doc-row) > p:last-child { margin-bottom: 0 !important; }
body.ppp-site .prose p { margin-bottom: 16px; }
body.ppp-site .prose h3 { margin-bottom: 12px; }
body.ppp-site .intro-card { padding: var(--ppp-card-padding); }
body.ppp-site :is(.mini-grid, .rozcestnik-premium-grid, .ppp-types-grid,
  .first-step-grid, .experience-grid, .signs-grid, .communication-grid,
  .therapy-grid, .school-audience-grid, .team-grid-cards, .team-detail-grid) {
  gap: var(--ppp-grid-gap);
}
body.ppp-site :is(.mini-card, .ppp-type-card, .first-step-card,
  .sport-card, .experience-card, .school-audience-card, .expert-topic-card) {
  padding: var(--ppp-card-padding);
}
body.ppp-site :is(.zf-card-body, .rozcestnik-premium-content) {
  padding: var(--ppp-card-padding) !important;
}
body.ppp-site :is(.zf-card-body, .rozcestnik-premium-content,
  .mini-card, .ppp-type-card, .first-step-card, .experience-card,
  .school-audience-card, .expert-topic-card) h3 { margin-bottom: 12px; }
body.ppp-site .page-main :is(.check-list, .standard-bullets, .school-topic-list,
  .guidance-list, .communication-list) { row-gap: 12px; }
body.ppp-site .page-main :is(.check-list, .standard-bullets, .school-topic-list,
  .guidance-list, .communication-list) li { line-height: 1.6 !important; }
body.ppp-site .page-main :is(.mini-card, .ppp-type-card, .first-step-card,
  .sport-card, .experience-card, .sign-card, .communication-card, .therapy-item,
  .school-audience-card, .expert-topic-card, .help-card) p,
body.ppp-site :is(.zf-card-body, .rozcestnik-premium-content) p {
  line-height: 1.65 !important;
}

/* CTA mají vlastní, všude shodnou úroveň nadpisu. */
body.ppp-site .page-main :is(.cta-strip, .final-cta) h2,
body.ppp-site .cta-strip h2 {
  font-size: var(--ppp-cta-title) !important;
  line-height: var(--ppp-line-heading) !important;
  margin-bottom: 12px !important;
}
body.ppp-site .cta-strip { gap: 32px; }
body.ppp-site .cta-strip > :first-child { min-width: 0; }
body.ppp-site .cta-strip p { margin-bottom: 0; }

/* Ikony: jeden rozměr pro karty a jeden pro kompaktní řádky. */
body.ppp-site :is(.sport-card-icon, .support-card-icon, .ppp-type-icon,
  .first-step-icon, .experience-icon, .school-audience-icon,
  .mini-card .icon) {
  width: var(--ppp-icon-size);
  height: var(--ppp-icon-size);
  min-width: var(--ppp-icon-size);
  flex: 0 0 var(--ppp-icon-size);
  font-size: var(--ppp-icon-glyph);
  line-height: 1;
  margin-bottom: 20px;
}
body.ppp-site :is(.sport-card-icon, .support-card-icon, .ppp-type-icon,
  .first-step-icon, .experience-icon, .school-audience-icon,
  .mini-card .icon) i {
  font-size: var(--ppp-icon-glyph);
  line-height: 1;
}
body.ppp-site :is(.sign-icon, .comm-icon, .help-icon, .expert-topic-icon, .help-point > i,
  .therapy-item > i, .guidance-heading > i) {
  width: var(--ppp-icon-compact);
  height: var(--ppp-icon-compact);
  min-width: var(--ppp-icon-compact);
  flex: 0 0 var(--ppp-icon-compact);
  font-size: var(--ppp-icon-compact-glyph);
  line-height: 1;
}
body.ppp-site :is(.sign-icon, .comm-icon, .help-icon, .expert-topic-icon) i {
  font-size: var(--ppp-icon-compact-glyph);
  line-height: 1;
}
body.ppp-site :is(.check-list .check, .school-topic-check, .guidance-check,
  .help-okay-list .check) {
  width: 20px;
  height: auto;
  min-height: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: #82c843 !important;
  font-family: var(--ppp-font-body);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.75;
  margin-top: 0;
}
body.ppp-site .problem-content .standard-bullets li::before {
  width: 20px;
  height: auto;
  border-radius: 0;
  background: transparent;
  color: #82c843;
  font-size: 1rem;
  line-height: 1.75;
  margin-top: 0;
}

/* Patička má na každé stránce stejné metriky včetně homepage. */
body.ppp-site footer { padding: 56px 0 24px; }
body.ppp-site footer .footer-grid {
  grid-template-columns: 1.3fr 1fr 1fr 1.1fr;
  gap: 40px !important;
  margin-bottom: 36px;
}
body.ppp-site footer :is(.footer-brand h3, .footer-col h4) {
  font-size: 1.25rem !important;
  line-height: var(--ppp-line-heading) !important;
  font-weight: 600 !important;
  margin-bottom: 18px;
}
body.ppp-site footer :is(p, li, a, .footer-bottom) {
  font-size: var(--ppp-text-small) !important;
  line-height: 1.75 !important;
}
body.ppp-site footer .footer-col li { margin-bottom: 10px; }
body.ppp-site footer .footer-zcela-fit {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
body.ppp-site footer .footer-zcela-fit-logo {
  display: block;
  padding: 0 !important;
  margin: 2px 0 12px !important;
}
body.ppp-site footer .footer-zcela-fit-logo img {
  display: block;
  width: 128px;
  height: auto;
  margin: 0 !important;
}
body.ppp-site footer .footer-zcela-fit-link {
  width: auto;
  text-align: left;
  padding: 0 !important;
  margin: 0 0 16px !important;
}

/* Obnovení čitelnosti lišty, kterou původně přebila plošná černá barva textu. */
body.ppp-site .cookie-consent {
  padding-inline: var(--ppp-gutter);
}
body.ppp-site .cookie-consent__inner {
  width: min(var(--ppp-content-max), 100%);
}
body.ppp-site .cookie-consent :is(strong, p, a, button) { color: #fff !important; }
body.ppp-site .cookie-consent .cookie-consent__text { color: #e2ece8 !important; }
body.ppp-site .cookie-consent .cookie-consent__text a { color: #bde892 !important; }
body.ppp-site .cookie-consent .cookie-consent__button--accept { color: #1e3029 !important; }

@media (max-width: 1100px) {
  :root { --ppp-card-padding: 24px; --ppp-grid-gap: 20px; }
  body.ppp-site footer .footer-grid { gap: 28px !important; }
}
@media (max-width: 980px) {
  :root { --ppp-section-space: 48px; --ppp-h2: 2rem; }
  body.ppp-site :is(.ppp-types-grid, .therapy-grid) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 760px) {
  :root {
    --ppp-gutter: 20px;
    --ppp-h1: clamp(2rem, 8vw, 2.5rem);
    --ppp-h2: 1.875rem;
    --ppp-h3: 1.25rem;
    --ppp-cta-title: 1.75rem;
    --ppp-section-space: 40px;
    --ppp-heading-space: 16px;
    --ppp-grid-gap: 18px;
    --ppp-card-padding: 24px;
  }
  body.ppp-site .page-main .intro-section { padding-block: 32px !important; }
  body.ppp-site .zf-header-block,
  body.ppp-site .rozcestnik-section .zf-header-block { margin-bottom: 24px; }
  body.ppp-site .zf-title-flex .zf-line { display: none; }
  body.ppp-site :is(.hero-content, .inner-hero-copy) > p,
  body.ppp-site .page-main .intro-card p { font-size: var(--ppp-text) !important; }
  body.ppp-site .section-jumpbar-inner a { min-height: 46px; }
  body.ppp-site .section-jumpbar-inner {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    overflow: visible;
    padding-bottom: 0;
  }
  body.ppp-site .section-jumpbar-inner a { min-width: 0; width: auto; }
  body.ppp-site .section-jumpbar-inner a:last-child:nth-child(odd) { grid-column: 1 / -1; }
  body.ppp-site .rozcestnik-premium-grid {
    display: grid;
    grid-template-columns: 1fr;
    overflow: visible;
    padding: 0;
  }
  body.ppp-site .rozcestnik-premium-card {
    width: auto;
    min-width: 0;
    max-width: 100%;
    flex: initial;
  }
  body.ppp-site .cta-strip { flex-direction: column; align-items: flex-start; gap: 24px; }
  body.ppp-site .cta-strip > .btn-zf-green { width: 100%; }
  body.ppp-site footer { padding: 40px 0 24px; }
  body.ppp-site footer .footer-grid { grid-template-columns: 1fr !important; gap: 28px !important; }
  body.ppp-site .nav-menu.mobile-nav-open .dropdown-menu { overflow: visible !important; }
  body.ppp-site .nav-menu.mobile-nav-open .dropdown-menu a {
    white-space: normal !important;
    overflow-wrap: break-word;
    font-size: var(--ppp-text-small) !important;
    line-height: 1.5 !important;
  }
  body.ppp-site :is(.ppp-types-grid, .first-step-grid, .experience-grid,
    .signs-grid, .communication-grid, .therapy-grid) { grid-template-columns: 1fr !important; }
}

/* Ikona v textovém řádku se řídí kompaktní kategorií. */
body.ppp-site .expert-topic-icon { margin-bottom: 0; }
body.ppp-site .expert-topic-card { grid-template-columns: 42px minmax(0, 1fr); gap: 16px; }

/* Ikony praktických nástrojů měly rozměry přímo v HTML. */
body.ppp-site .ppp-tool-icon {
  width: var(--ppp-icon-size) !important;
  height: var(--ppp-icon-size) !important;
  font-size: var(--ppp-icon-glyph) !important;
  margin-bottom: 20px !important;
  flex: 0 0 var(--ppp-icon-size);
  line-height: 1;
}
