/* Section layout for apps.pages templates.
   Tokens are defined in variables.css (PLAN-REDESIGN §2). This file is
   component-only and loaded after variables.css + global.css.

   Phase C note: /degustacje/ and /kontakt/ now ship full-bleed sections
   with per-section backgrounds. Their section-level styling lives in
   degustacje.css / kontakt.css respectively. The `.degustacje-page`
   and `.kontakt-page` wrappers no longer constrain width here — instead
   each inner `.container` handles that. Only `.polityka-page` keeps
   the narrow article layout (max-width: 70ch). */


/* -------------------------------------------------- Polityka Prywatności */

.polityka-page {
  color: var(--color-text-primary);
}

.polityka-page__hero {
  padding-block: var(--space-7) var(--space-5);
  background: var(--color-surface-light);
  border-bottom: 1px solid var(--color-border);
}

.polityka-page__hero-inner {
  max-width: 70ch;
  margin: 0 auto;
  padding-inline: var(--container-padding);
}

.polityka-page__eyebrow {
  margin: 0 0 var(--space-2);
  font-family: var(--font-sans);
  font-size: var(--font-small);
  font-weight: var(--fw-bold);
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--color-secondary);
}

.polityka-page__hero h1 {
  margin: 0 0 var(--space-3);
  color: var(--color-primary);
  font-size: clamp(2rem, 4vw, 2.75rem);
  text-wrap: balance;
}

.polityka-page__lead {
  margin: 0;
  font-size: clamp(1.05rem, 1.4vw, 1.2rem);
  line-height: var(--lh-relaxed);
  color: var(--color-text-secondary);
  text-wrap: pretty;
  max-width: 60ch;
}

.polityka-page__body {
  max-width: 70ch;
  margin: 0 auto;
  padding: var(--space-6) var(--container-padding) var(--space-8);
  line-height: var(--lh-relaxed);
  font-size: clamp(1rem, 1.1vw, 1.05rem);
  color: var(--color-text-primary);
}

.polityka-page__body p {
  margin: 0 0 var(--space-3);
  text-wrap: pretty;
}

.polityka-page__body h2 {
  margin: var(--space-6) 0 var(--space-3);
  font-family: var(--font-serif);
  font-size: calc(var(--font-h3) + 0.3rem);
  color: var(--color-primary);
}

.polityka-page__body h3 {
  margin: var(--space-5) 0 var(--space-2);
  font-family: var(--font-serif);
  color: var(--color-primary);
}

.polityka-page__body a {
  color: var(--color-primary);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.polityka-page__body a:hover,
.polityka-page__body a:focus-visible {
  color: var(--color-primary-dark);
}


/* ------------------------------- Legacy fallbacks used by older markup ---
   Some callers may still reference these class names; keep them harmless
   visually so there is no regression if the template is reverted mid-flight. */

.degustacje-page,
.kontakt-page {
  color: var(--color-text-primary);
}

/* ---------------------------------------------------------------------------
   GEO — blok answer-first (F2/T2.3).
   Zwięzła, cytowalna odpowiedź na pytanie strony, renderowana na górze treści
   w każdym języku; pojawia się TYLKO gdy redakcja wypełni pole geo_intro.
   --------------------------------------------------------------------------- */
.geo-intro {
  padding: var(--space-5) 0 0;
}

.geo-intro__text {
  max-width: 68ch;
  margin: 0 auto;
  padding-left: var(--space-3);
  border-left: 3px solid var(--color-secondary);
  font-family: var(--font-serif);
  font-size: clamp(1rem, 1.2vw, 1.125rem);
  line-height: 1.65;
  color: var(--color-text-secondary);
}

/* Wersja klauzuli informacyjnej w nagłówku dokumentu (RODO art. 13). */
.polityka-page__version {
  margin-top: 0.75rem;
  font-size: 0.9rem;
  opacity: 0.78;
}

/* Tabele klauzuli: cele/podstawy/okresy przechowywania oraz inwentarz cookies. */
.polityka-page__table {
  width: 100%;
  border-collapse: collapse;
  margin: 1rem 0 1.5rem;
  font-size: 0.95rem;
}
.polityka-page__table th,
.polityka-page__table td {
  border: 1px solid rgba(0, 0, 0, 0.12);
  padding: 0.5rem 0.65rem;
  text-align: left;
  vertical-align: top;
}
.polityka-page__table th {
  background: rgba(0, 0, 0, 0.04);
  font-weight: 600;
}
.polityka-page__table code {
  font-size: 0.9em;
  white-space: nowrap;
}
@media (max-width: 640px) {
  .polityka-page__table tr {
    border-top: 1px solid rgba(0, 0, 0, 0.12);
    padding: 0.35rem 0;
  }
  .polityka-page__table td {
    display: block;
    border: 0;
    padding: 0.2rem 0;
  }
  .polityka-page__table thead {
    display: none;
  }
}
