/* ============================================================
   PHYSIOPLUS 2A — komponenty (verné prototypu 2a-physioplus.html)
   ============================================================ */

/* ---------- Layout ---------- */
.pp-container {
  max-width: var(--container-max);
  margin: 0 auto;
  padding-left: var(--container-pad);
  padding-right: var(--container-pad);
}
.pp-main { animation: fadeIn var(--t-base) var(--ease); }

/* ---------- Tlačidlá (pill) ---------- */
.btn {
  display: inline-block;
  font-size: 14px;
  font-weight: 500;
  padding: 13px 24px;
  border-radius: 999px;
  cursor: pointer;
  border: none;
  white-space: nowrap;
  text-decoration: none;
  line-height: normal;
  transition: background var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
}
.btn:hover { text-decoration: none; }
.btn--ink { background: var(--ink); color: var(--paper); }
.btn--ink:hover { background: var(--brand-hover); color: var(--paper); }
.btn--accent { background: var(--accent); color: var(--accent-ink); }
.btn--accent:hover { background: var(--accent-hover); color: var(--accent-ink); }
.btn--outline { background: transparent; color: var(--fg-1); border: 1px solid var(--rule-strong); }
.btn--outline:hover { background: var(--bg-recessed); color: var(--fg-1); }
.btn--cyan { background: var(--accent-on-ink); color: var(--ink); }
.btn--cyan:hover { background: var(--accent-on-ink-hover); color: var(--ink); }
.btn--sm { padding: 11px 18px; }

/* ---------- Label / chip ---------- */
.pp-label {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--fg-3);
}
.pp-chip {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 5px 12px;
  border-radius: 999px;
}
.pp-chip--positive { color: var(--positive); background: var(--positive-faint); }
.pp-chip--warning { color: var(--warning); background: var(--warning-faint); }

.pp-mono { font-family: var(--mono); }

/* ---------- Hlavička ---------- */
.site-header {
  position: sticky;
  top: 0;
  z-index: 10;
  height: var(--nav-h);
  background: rgb(251 253 253 / 0.9);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--rule);
}
.site-header__inner {
  max-width: var(--container-max);
  height: 100%;
  margin: 0 auto;
  padding: 0 24px;
  display: flex;
  align-items: center;
  gap: 24px;
}
.pp-logo {
  text-decoration: none;
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex-shrink: 0;
}
.pp-logo:hover { text-decoration: none; }
.pp-logo__name {
  font-family: var(--serif-display);
  font-size: 24px;
  letter-spacing: -0.02em;
  color: var(--ink);
  line-height: 1;
}
.pp-logo__name em { font-style: normal; color: var(--accent); }
.pp-logo__tag {
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--fg-3);
}
.pp-nav { display: flex; gap: 2px; flex: 1; min-width: 0; }
.pp-nav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 2px; }
.pp-nav li a {
  display: inline-block;
  font-size: 14px;
  padding: 8px 13px;
  white-space: nowrap;
  color: var(--fg-3);
  font-weight: 400;
  text-decoration: none;
  border-bottom: 2px solid transparent;
  transition: color var(--t-fast) var(--ease);
}
.pp-nav li a:hover { color: var(--fg-1); text-decoration: none; }
.pp-nav li.current-menu-item > a,
.pp-nav li.current_page_item > a,
.pp-nav li.current-menu-ancestor > a,
.pp-nav li.current_page_parent > a {
  color: var(--fg-1);
  font-weight: 500;
  border-bottom-color: var(--accent);
}
.site-header .btn { padding: 12px 22px; flex-shrink: 0; }
.pp-nav-toggle {
  display: none;
  background: none;
  border: 1px solid var(--rule-strong);
  border-radius: 4px;
  padding: 8px 10px;
  cursor: pointer;
  color: var(--fg-1);
  font-size: 16px;
  line-height: 1;
}

/* ---------- Hero (Domov) ---------- */
.pp-hero {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 96px 32px 88px;
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  gap: 48px;
  align-items: center;
}
.pp-hero__copy { display: grid; gap: 32px; min-width: 0; }
.pp-hero h1 {
  font-family: var(--serif-display);
  font-size: 72px;
  line-height: 1.08;
  letter-spacing: -0.02em;
  font-weight: 400;
  color: var(--fg-1);
  margin: 0;
}
.pp-hero h1 em { font-style: normal; color: var(--accent); }
.pp-hero__lead {
  max-width: 540px;
  font-size: 18px;
  color: var(--fg-2);
  line-height: 1.55;
  margin: 0;
}
.pp-hero__actions { display: flex; gap: 12px; flex-wrap: wrap; }
.pp-hero__media { height: 420px; position: relative; min-width: 0; }

/* ---------- Obrázkový slot ---------- */
.pp-imgslot {
  width: 100%;
  height: 100%;
  border-radius: 6px;
  overflow: hidden;
  background: var(--paper-2);
  border: 1px dashed var(--rule-strong);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--fg-4);
  font-size: 13px;
  text-align: center;
  padding: 12px;
}
.pp-imgslot--filled { border: none; padding: 0; }
.pp-imgslot img, .pp-imgslot iframe {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border: 0;
}

/* ---------- Piliere ---------- */
.pp-pillars {
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  background: var(--paper-2);
}
.pp-pillars__inner { max-width: var(--container-max); margin: 0 auto; padding: 64px 32px; }
.pp-pillars__label { margin-bottom: 40px; }
.pp-pillars__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; }
.pp-pillar { padding: 4px 24px; border-left: 1px solid var(--rule); text-decoration: none; display: block; color: inherit; }
.pp-pillar:hover { text-decoration: none; color: inherit; }
.pp-pillar:first-child { border-left: none; padding-left: 0; }
.pp-pillar__n { font-family: var(--mono); font-size: 12px; color: var(--accent); margin-bottom: 16px; }
.pp-pillar h4 {
  font-family: var(--serif-display);
  font-size: 22px;
  font-weight: 400;
  letter-spacing: -0.01em;
  margin: 0 0 12px;
  color: var(--fg-1);
}
.pp-pillar p { font-size: 14px; color: var(--fg-2); line-height: 1.55; margin: 0; }

/* ---------- Zoznam článkov (riadky) ---------- */
.pp-articles { max-width: var(--container-max); margin: 0 auto; padding: 88px 32px; }
.pp-articles__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 40px;
}
.pp-articles__head h2 {
  font-family: var(--serif-display);
  font-size: 44px;
  letter-spacing: -0.02em;
  font-weight: 400;
  color: var(--fg-1);
  margin: 0;
}
.pp-articles__more { font-size: 14px; color: var(--accent); }
.pp-article-list { border-top: 1px solid var(--rule-strong); }
.pp-article-row {
  display: grid;
  grid-template-columns: 110px 1fr auto;
  gap: 24px;
  align-items: baseline;
  padding: 24px 12px 24px 0;
  border-bottom: 1px solid var(--rule);
  text-decoration: none;
  color: var(--fg-1);
  transition: background var(--t-fast) var(--ease), padding-left var(--t-fast) var(--ease);
}
.pp-article-row:hover { background: var(--paper-2); padding-left: 12px; text-decoration: none; color: var(--fg-1); }
.pp-article-row__date { font-family: var(--mono); font-size: 12px; color: var(--fg-3); }
.pp-article-row__title {
  font-family: var(--serif-display);
  font-size: 24px;
  letter-spacing: -0.02em;
  display: block;
  margin-bottom: 4px;
}
.pp-article-row__teaser { font-size: 14px; color: var(--fg-3); }
.pp-article-row__meta { font-family: var(--mono); font-size: 12px; color: var(--fg-3); text-align: right; }
.pp-article-row__arrow { font-size: 18px; color: var(--fg-3); text-align: right; }

/* ---------- Termíny kurzov (Domov) ---------- */
.pp-terms { border-top: 1px solid var(--rule); background: var(--bg-raised); }
.pp-terms__inner {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 88px 32px;
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 64px;
  align-items: start;
}
.pp-terms__copy { display: grid; gap: 20px; }
.pp-terms__copy h2 {
  font-family: var(--serif-display);
  font-size: 40px;
  letter-spacing: -0.02em;
  font-weight: 400;
  color: var(--fg-1);
  margin: 0;
}
.pp-terms__copy p { font-size: 15px; color: var(--fg-2); line-height: 1.55; margin: 0; }
.pp-terms__copy .btn { justify-self: start; }
.pp-terms__list { border-top: 1px solid var(--rule-strong); }
.pp-term-row {
  display: grid;
  grid-template-columns: 150px 1fr auto;
  gap: 24px;
  align-items: baseline;
  padding: 20px 0;
  border-bottom: 1px solid var(--rule);
}
.pp-term-row__date { font-family: var(--mono); font-size: 13px; color: var(--fg-1); }
.pp-term-row__name { font-size: 16px; color: var(--fg-1); }

/* ---------- Kniha (Domov + Knihy) ---------- */
.pp-book { border-top: 1px solid var(--rule); }
.pp-book__inner {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 88px 32px;
  display: grid;
  grid-template-columns: minmax(260px, 340px) minmax(0, 1fr);
  gap: 64px;
  align-items: center;
}
.pp-book__inner--top { align-items: start; padding: 80px 32px; }
.pp-book__cover { height: 440px; min-width: 0; }
.pp-book__cover--tall { height: 460px; }
.pp-book__copy { display: grid; gap: 24px; }
.pp-book__copy h1, .pp-book__copy h2 {
  font-family: var(--serif-display);
  letter-spacing: -0.02em;
  font-weight: 400;
  color: var(--fg-1);
  margin: 0;
}
.pp-book__copy h2 { font-size: 40px; }
.pp-book__copy h1 { font-size: 52px; }
.pp-book__copy > p { max-width: 560px; font-size: 16px; color: var(--fg-2); line-height: 1.6; margin: 0; }
.pp-book__price { display: flex; align-items: baseline; gap: 12px; }
.pp-book__price-main { font-family: var(--mono); font-size: 30px; color: var(--fg-1); }
.pp-book__price-note { font-size: 13px; color: var(--fg-3); }
.pp-book__actions { display: flex; gap: 12px; flex-wrap: wrap; }
.pp-book__order-note { font-size: 15px; color: var(--fg-2); margin: 0; }

/* ---------- Záverečné CTA (navy) ---------- */
.pp-closing { background: var(--ink); }
.pp-closing__inner {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 96px 32px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: end;
}
.pp-closing h2 {
  font-family: var(--serif-display);
  font-size: 52px;
  letter-spacing: -0.02em;
  font-weight: 400;
  color: var(--paper);
  margin: 0;
  max-width: 520px;
}
.pp-closing h2 em { font-style: normal; color: var(--accent-on-ink); }
.pp-closing__side { display: grid; gap: 24px; justify-items: start; }
.pp-closing__side p { color: var(--n-2); font-size: 16px; line-height: 1.6; margin: 0; }

/* ---------- Hlavička podstránky ---------- */
.pp-page-head {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 80px 32px 64px;
  display: grid;
  gap: 24px;
}
.pp-page-head--tight { padding-bottom: 56px; }
.pp-page-head h1 {
  font-family: var(--serif-display);
  font-size: 56px;
  letter-spacing: -0.02em;
  font-weight: 400;
  color: var(--fg-1);
  margin: 0;
}
.pp-page-head p { max-width: 640px; font-size: 17px; color: var(--fg-2); line-height: 1.6; margin: 0; }

/* ---------- Ambulancia: info pásy ---------- */
.pp-infobar { border-top: 1px solid var(--rule); background: var(--paper-2); }
.pp-infobar__inner {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 56px 32px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}
.pp-infocard { border-left: 2px solid var(--accent); padding-left: 20px; }
.pp-infocard .pp-label { display: block; margin-bottom: 12px; }
.pp-infocard p { font-size: 15px; color: var(--fg-1); line-height: 1.6; margin: 0; }
.pp-infocard a { color: var(--fg-1); }
.pp-infocard a:hover { color: var(--accent); }

/* ---------- Ambulancia: cenník + objednávka ---------- */
.pp-amb {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 80px 32px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 64px;
  align-items: start;
}
.pp-amb__left { min-width: 0; }
.pp-amb__left h2 {
  font-family: var(--serif-display);
  font-size: 36px;
  letter-spacing: -0.02em;
  font-weight: 400;
  color: var(--fg-1);
  margin: 0 0 32px;
}
.pp-pricing { border-top: 1px solid var(--rule-strong); }
.pp-price-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 24px;
  align-items: baseline;
  padding: 18px 0;
  border-bottom: 1px solid var(--rule);
}
.pp-price-row__name { font-size: 15px; color: var(--fg-1); }
.pp-price-row__price { font-family: var(--mono); font-size: 15px; color: var(--fg-1); }
.pp-pricing-note { font-size: 13px; color: var(--fg-3); margin: 16px 0 0; line-height: 1.5; }
.pp-amb__photos {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-top: 48px;
}
.pp-amb__photos > div { height: 200px; }

/* ---------- Karta objednávky / formulár ---------- */
.pp-booking-card {
  background: var(--bg-raised);
  border: 1px solid var(--rule);
  border-radius: 24px;
  padding: 32px;
  min-width: 0;
}
.pp-form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; }
.pp-form h3 {
  font-family: var(--serif-display);
  font-size: 28px;
  font-weight: 400;
  letter-spacing: -0.01em;
  color: var(--fg-1);
  margin: 0 0 8px;
}
.pp-form__intro { font-size: 14px; color: var(--fg-3); margin: 0; }
.pp-form label { display: grid; gap: 6px; min-width: 0; }
.pp-form label > span { font-size: 12px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; color: var(--fg-3); }
.pp-form__row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
.pp-form input[type="text"],
.pp-form input[type="tel"],
.pp-form input[type="email"],
.pp-form select,
.pp-form textarea {
  min-width: 0;
  width: 100%;
  padding: 11px 14px;
  font-size: 15px;
  border: 1px solid var(--border-field);
  border-radius: 4px;
  background: var(--paper);
  color: var(--fg-1);
}
.pp-form textarea { resize: vertical; }
.pp-form__gdpr { font-size: 12px; color: var(--fg-4); margin: 0; line-height: 1.5; }
.pp-form .btn { justify-self: stretch; }

/* CF7 integrácia v karte */
.pp-booking-card .wpcf7-form p { margin: 0; }
.pp-booking-card .wpcf7-spinner { display: none; }
.pp-booking-card .wpcf7-not-valid { border-color: var(--warning) !important; }
.pp-booking-card .wpcf7-not-valid-tip { font-size: 12px; color: var(--warning); margin-top: 4px; letter-spacing: 0; text-transform: none; }
.pp-booking-card .wpcf7-response-output { display: none !important; }

/* Success stav */
.pp-booking-success { display: none; gap: 16px; padding: 24px 0; text-align: center; }
.pp-booking-success.is-visible { display: grid; }
.pp-booking-success__check { font-family: var(--serif-display); font-size: 32px; color: var(--positive); }
.pp-booking-success h3 { font-family: var(--serif-display); font-size: 28px; font-weight: 400; color: var(--fg-1); margin: 0; }
.pp-booking-success p { font-size: 15px; color: var(--fg-2); margin: 0; line-height: 1.6; }
.pp-booking-success a { font-size: 14px; color: var(--accent); }

/* Telefonický režim (bez online objednávky) */
.pp-phone-steps { display: grid; gap: 20px; }
.pp-phone-steps h3 {
  font-family: var(--serif-display);
  font-size: 28px;
  font-weight: 400;
  letter-spacing: -0.01em;
  color: var(--fg-1);
  margin: 0 0 8px;
}
.pp-phone-steps__list { border-top: 1px solid var(--rule); }
.pp-phone-step {
  display: grid;
  grid-template-columns: 32px 1fr;
  gap: 16px;
  align-items: baseline;
  padding: 18px 0;
  border-bottom: 1px solid var(--rule);
}
.pp-phone-step__n { font-family: var(--mono); font-size: 12px; color: var(--accent); }
.pp-phone-step__text { font-size: 15px; color: var(--fg-1); line-height: 1.55; }
.pp-phone-steps__note { font-size: 13px; color: var(--fg-3); margin: 0; line-height: 1.5; }

/* ---------- Kurzy ---------- */
.pp-courses {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 32px 80px;
  display: grid;
  gap: 24px;
}
.pp-course-card {
  border: 1px solid var(--rule);
  border-radius: 24px;
  background: var(--bg-raised);
  padding: 32px;
  display: grid;
  grid-template-columns: 1fr 260px;
  gap: 48px;
  align-items: start;
  transition: border-color var(--t-fast) var(--ease);
}
.pp-course-card:hover { border-color: var(--rule-strong); }
.pp-course-card__main { display: grid; gap: 12px; }
.pp-course-card__meta { display: flex; align-items: center; gap: 12px; }
.pp-course-card__n { font-family: var(--mono); font-size: 12px; color: var(--accent); }
.pp-course-card h3 {
  font-family: var(--serif-display);
  font-size: 30px;
  font-weight: 400;
  letter-spacing: -0.01em;
  color: var(--fg-1);
  margin: 0;
}
.pp-course-card__desc { font-size: 15px; color: var(--fg-2); line-height: 1.6; margin: 0; max-width: 640px; }
.pp-course-card__side {
  display: grid;
  gap: 16px;
  border-left: 1px solid var(--rule);
  padding-left: 32px;
}
.pp-course-card__side .pp-label { font-size: 11px; margin-bottom: 6px; display: block; }
.pp-course-card__date { font-family: var(--mono); font-size: 15px; color: var(--fg-1); }
.pp-course-card__side .btn { justify-self: start; }

.pp-course-info { border-top: 1px solid var(--rule); background: var(--paper-2); }
.pp-course-info__inner {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 64px 32px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
}
.pp-course-info__col { display: grid; gap: 16px; align-content: start; }
.pp-course-info__col p { font-size: 15px; color: var(--fg-2); line-height: 1.6; margin: 0; }
.pp-course-info__col blockquote {
  font-family: var(--serif-display);
  font-size: 20px;
  line-height: 1.45;
  color: var(--fg-1);
  margin: 0;
  border-left: 2px solid var(--accent);
  padding-left: 20px;
}
.pp-course-info__cite { font-size: 13px; color: var(--fg-3); }

/* ---------- Knihy: publikácie ---------- */
.pp-pubs { border-top: 1px solid var(--rule); }
.pp-pubs__inner { max-width: var(--container-max); margin: 0 auto; padding: 72px 32px; }
.pp-pubs__inner h2 {
  font-family: var(--serif-display);
  font-size: 36px;
  letter-spacing: -0.02em;
  font-weight: 400;
  color: var(--fg-1);
  margin: 0 0 40px;
}
.pp-pub-list { border-top: 1px solid var(--rule-strong); }
.pp-pub-row {
  display: grid;
  grid-template-columns: 120px 1fr auto;
  gap: 24px;
  align-items: baseline;
  padding: 22px 0;
  border-bottom: 1px solid var(--rule);
}
.pp-pub-row__type { font-size: 11px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; color: var(--fg-3); }
.pp-pub-row__title { font-size: 16px; color: var(--fg-1); }
.pp-pub-row__link { font-size: 14px; color: var(--accent); }

/* ---------- Články a fórum ---------- */
.pp-forum {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 80px 32px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 340px);
  gap: 64px;
  align-items: start;
}
.pp-forum__main { min-width: 0; }
.pp-forum__head { display: grid; gap: 20px; margin-bottom: 48px; }
.pp-forum__head h1 {
  font-family: var(--serif-display);
  font-size: 56px;
  letter-spacing: -0.02em;
  font-weight: 400;
  color: var(--fg-1);
  margin: 0;
}
.pp-forum__aside { display: grid; gap: 24px; position: sticky; top: 96px; }
.pp-aside-card {
  background: var(--bg-raised);
  border: 1px solid var(--rule);
  border-radius: 24px;
  padding: 28px;
  display: grid;
  gap: 14px;
}
.pp-aside-card--plain { background: transparent; gap: 16px; }
.pp-aside-card h3 {
  font-family: var(--serif-display);
  font-size: 24px;
  font-weight: 400;
  color: var(--fg-1);
  margin: 0;
}
.pp-aside-card > p { font-size: 14px; color: var(--fg-2); line-height: 1.55; margin: 0; }
.pp-aside-card .btn { justify-self: start; padding: 12px 20px; }
.pp-comment {
  display: grid;
  gap: 4px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--rule-faint);
}
.pp-comment__who { font-size: 14px; font-weight: 500; color: var(--fg-1); }
.pp-comment__what { font-size: 13px; color: var(--fg-3); }

/* ---------- Stránkovanie ---------- */
.pp-pagination { display: flex; gap: 8px; margin-top: 40px; flex-wrap: wrap; }
.pp-pagination .page-numbers {
  font-family: var(--mono);
  font-size: 13px;
  padding: 8px 14px;
  border: 1px solid var(--rule-strong);
  border-radius: 999px;
  color: var(--fg-2);
  text-decoration: none;
}
.pp-pagination .page-numbers.current { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.pp-pagination .page-numbers:hover { background: var(--bg-recessed); text-decoration: none; }

/* ---------- Kontakt ---------- */
.pp-contact {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 80px 32px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 64px;
  align-items: start;
}
.pp-contact__left { display: grid; gap: 32px; min-width: 0; }
.pp-contact__head { display: grid; gap: 20px; }
.pp-contact__head h1 {
  font-family: var(--serif-display);
  font-size: 56px;
  letter-spacing: -0.02em;
  font-weight: 400;
  color: var(--fg-1);
  margin: 0;
}
.pp-contact__table { border-top: 1px solid var(--rule-strong); }
.pp-contact-row {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 24px;
  padding: 20px 0;
  border-bottom: 1px solid var(--rule);
}
.pp-contact-row__value { font-size: 15px; color: var(--fg-1); }
.pp-contact-row a { font-size: 15px; }
.pp-contact__bio { display: grid; gap: 16px; }
.pp-contact__bio p { font-size: 15px; color: var(--fg-2); line-height: 1.6; margin: 0; max-width: 520px; }
.pp-contact__map { height: 520px; min-width: 0; }

/* Mapa: statický podklad hneď, interaktívny Google po súhlase */
.pp-map { height: 100%; display: grid; grid-template-rows: 1fr auto; gap: 8px; }
.pp-map__static {
  position: relative;
  border-radius: 6px;
  overflow: hidden;
  height: 100%;
  min-height: 320px;
}
.pp-map__static > img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pp-map__overlay {
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 12px;
  background: rgb(251 253 253 / 0.95);
  backdrop-filter: blur(8px);
  border: 1px solid var(--rule);
  border-radius: 6px;
  padding: 14px 16px;
  display: grid;
  gap: 10px;
}
.pp-map__overlay p { margin: 0; font-size: 13px; color: var(--fg-2); line-height: 1.5; }
.pp-map__overlay-actions { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }
.pp-map__ext { font-size: 13px; }
.pp-map__attrib {
  position: absolute;
  right: 6px;
  top: 6px;
  font-size: 10px;
  color: var(--fg-3);
  background: rgb(251 253 253 / 0.8);
  padding: 2px 6px;
  border-radius: 3px;
}
.pp-map iframe { width: 100%; height: 100%; min-height: 480px; border: 0; border-radius: 6px; display: block; }
.pp-map__caption { margin: 0; font-size: 12px; color: var(--fg-3); }

.pp-partners { border-top: 1px solid var(--rule); background: var(--paper-2); }
.pp-partners__inner { max-width: var(--container-max); margin: 0 auto; padding: 56px 32px; }
.pp-partners__inner .pp-label { display: block; margin-bottom: 24px; }
.pp-partners__grid { display: flex; gap: 16px; flex-wrap: wrap; }
.pp-partner {
  border: 1px solid var(--rule);
  border-radius: 4px;
  padding: 14px 24px;
  font-size: 14px;
  color: var(--fg-2);
  background: var(--bg-raised);
}

/* ---------- Pätička ---------- */
.site-footer { background: var(--ink); border-top: 1px solid rgb(255 255 255 / 0.08); }
.site-footer__inner {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 56px 32px 40px;
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 48px;
}
.site-footer__brand { display: grid; gap: 16px; align-content: start; }
.site-footer__logo {
  font-family: var(--serif-display);
  font-size: 24px;
  letter-spacing: -0.02em;
  color: var(--paper);
  line-height: 1;
}
.site-footer__logo em { font-style: normal; color: var(--accent-on-ink); }
.site-footer__brand p { color: var(--n-3); font-size: 13px; margin: 0; max-width: 320px; line-height: 1.6; }
.site-footer__col .pp-label { color: var(--n-4); display: block; margin-bottom: 18px; }
.site-footer__col ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.site-footer__col a { color: var(--n-2); font-size: 14px; text-decoration: none; }
.site-footer__col a:hover { color: var(--paper); text-decoration: underline; }
/* Cookie consent lišta */
.pp-cookiebar {
  position: fixed;
  left: 16px;
  right: 16px;
  bottom: 16px;
  z-index: 60;
  display: flex;
  justify-content: center;
  pointer-events: none;
}
.pp-cookiebar[hidden] { display: none; }
.pp-cookiebar__inner {
  pointer-events: auto;
  max-width: 720px;
  background: var(--bg-raised);
  border: 1px solid var(--rule);
  border-radius: 10px;
  box-shadow: 0 12px 32px rgb(0 0 0 / 0.16);
  padding: 18px 22px;
  display: grid;
  gap: 12px;
}
.pp-cookiebar__inner p { margin: 0; font-size: 14px; color: var(--fg-2); line-height: 1.55; }
.pp-cookiebar__inner p strong { color: var(--fg-1); }
.pp-cookiebar__actions { display: flex; gap: 12px; flex-wrap: wrap; }

.site-footer__bottom a { color: var(--n-2); }
.site-footer__bottom a:hover { color: var(--paper); }
.site-footer__bottom {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 24px 32px 32px;
  border-top: 1px solid rgb(255 255 255 / 0.08);
  display: flex;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  font-family: var(--mono);
  font-size: 12px;
  color: var(--n-4);
}

/* ---------- Obsah legacy stránok / článkov ---------- */
.pp-prose-wrap { max-width: 860px; margin: 0 auto; padding: 24px 32px 96px; }
.pp-prose-head { max-width: 860px; margin: 0 auto; padding: 80px 32px 8px; display: grid; gap: 16px; }
.pp-prose-head h1 {
  font-family: var(--serif-display);
  font-size: 48px;
  letter-spacing: -0.02em;
  font-weight: 400;
  color: var(--fg-1);
  margin: 0;
}
.pp-prose-head .pp-article-row__date { font-size: 13px; }
.prose { font-size: 16px; line-height: 1.7; color: var(--fg-2); }
.prose h1, .prose h2, .prose h3, .prose h4, .prose h5, .prose h6 {
  font-family: var(--serif-display);
  font-weight: 400;
  letter-spacing: -0.01em;
  color: var(--fg-1);
  line-height: 1.25;
  margin: 1.6em 0 0.6em;
}
.prose h1 { font-size: 36px; }
.prose h2 { font-size: 30px; }
.prose h3 { font-size: 25px; }
.prose h4 { font-size: 21px; }
.prose h5 { font-size: 18px; }
.prose h6 { font-size: 16px; }
.prose p { margin: 0 0 1.1em; }
.prose img { border-radius: 6px; height: auto; }
.prose a { color: var(--accent); }
.prose ul, .prose ol { padding-left: 1.4em; margin: 0 0 1.1em; }
.prose li { margin-bottom: 0.35em; }
.prose blockquote {
  border-left: 2px solid var(--accent);
  padding-left: 20px;
  margin: 1.4em 0;
  font-family: var(--serif-display);
  color: var(--fg-1);
}
.prose table { border-collapse: collapse; width: 100%; margin: 1.4em 0; font-size: 14px; }
.prose table td, .prose table th { border: 1px solid var(--rule); padding: 10px 14px; text-align: left; }
.prose table th { background: var(--paper-2); font-weight: 600; }
.prose iframe, .prose video { max-width: 100%; }
.prose .wp-caption { max-width: 100%; }
.prose .wp-caption-text { font-size: 13px; color: var(--fg-3); margin-top: 6px; }
.prose .aligncenter { display: block; margin-left: auto; margin-right: auto; }
.prose .alignleft { float: left; margin: 0 20px 12px 0; }
.prose .alignright { float: right; margin: 0 0 12px 20px; }

/* TablePress v prose */
.prose .tablepress { font-size: 14px; }
.prose .tablepress thead th { background: var(--ink); color: var(--paper); }

/* ---------- 404 / vyhľadávanie ---------- */
.pp-404 { max-width: var(--container-max); margin: 0 auto; padding: 120px 32px; display: grid; gap: 24px; }
.pp-404 h1 { font-family: var(--serif-display); font-size: 56px; font-weight: 400; margin: 0; }

/* ---------- Responzivita (prototyp je desktop-only) ---------- */
@media (max-width: 1024px) {
  .pp-hero h1 { font-size: 56px; }
  .pp-page-head h1, .pp-forum__head h1, .pp-contact__head h1 { font-size: 44px; }
  .pp-closing h2 { font-size: 40px; }
  .pp-book__copy h1 { font-size: 40px; }
}

@media (max-width: 900px) {
  .pp-hero,
  .pp-terms__inner,
  .pp-book__inner,
  .pp-closing__inner,
  .pp-amb,
  .pp-course-info__inner,
  .pp-forum,
  .pp-contact { grid-template-columns: 1fr; }
  .pp-pillars__grid { grid-template-columns: 1fr; gap: 32px; }
  .pp-pillar { border-left: none; padding-left: 0; }
  .pp-infobar__inner { grid-template-columns: 1fr; }
  .pp-course-card { grid-template-columns: 1fr; }
  .pp-course-card__side { border-left: none; padding-left: 0; border-top: 1px solid var(--rule); padding-top: 20px; }
  .pp-hero { padding: 56px 24px; }
  .pp-hero h1 { font-size: 44px; }
  .pp-hero__media { height: 300px; }
  .pp-forum__aside { position: static; }
  .pp-contact__map { height: auto; }
  .pp-map__static { height: 360px; min-height: 0; }
  .pp-map iframe { height: 360px; min-height: 0; }
  .pp-article-row { grid-template-columns: 1fr; gap: 6px; }
  .pp-article-row__meta, .pp-article-row__arrow { display: none; }
  .pp-term-row { grid-template-columns: 1fr; gap: 6px; }
  .pp-book__cover, .pp-book__cover--tall { height: 360px; }
  .site-footer__inner { grid-template-columns: 1fr 1fr; }
  .pp-form__row { grid-template-columns: 1fr; }
  .pp-contact-row { grid-template-columns: 1fr; gap: 6px; }

  /* Mobilná navigácia */
  .pp-nav-toggle { display: block; margin-left: auto; }
  .pp-nav {
    display: none;
    position: absolute;
    top: var(--nav-h);
    left: 0;
    right: 0;
    background: var(--paper);
    border-bottom: 1px solid var(--rule);
    padding: 8px 24px 16px;
  }
  .pp-nav.is-open { display: block; }
  .pp-nav ul { flex-direction: column; gap: 0; }
  .pp-nav li a { display: block; padding: 12px 0; font-size: 16px; border-bottom: none; }
  .pp-nav li.current-menu-item > a { color: var(--accent); }
  .site-header .btn { display: none; }
}

@media (max-width: 560px) {
  :root { --container-pad: 20px; }
  .pp-articles, .pp-page-head, .pp-forum, .pp-contact, .pp-amb { padding-left: 20px; padding-right: 20px; }
  .site-footer__inner { grid-template-columns: 1fr; }
  .pp-hero h1 { font-size: 36px; }
}
