/* =====================================================================
   LEGAL — układ stron prawnych (czytelny, token-driven).
   Wymaga: primitives.css + semantic.css + typography.css.
   ===================================================================== */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--font-sans);
  font-size: var(--scale-03);
  line-height: 1.75;
  color: var(--text-default);
  background: var(--bg-default);
  -webkit-font-smoothing: antialiased;
}

/* skip link */
.skip-to-content {
  position: absolute; left: var(--space-400); top: var(--space-400);
  transform: translateY(-150%);
  z-index: 1000;
  padding: var(--space-200) var(--space-400);
  background: var(--bg-brand); color: var(--text-on-brand);
  border-radius: var(--radius-200);
  font-size: var(--scale-02); font-weight: var(--weight-medium);
  text-decoration: none; transition: transform .2s ease;
}
.skip-to-content:focus { transform: translateY(0); }

/* header */
.legal-header {
  position: sticky; top: 0; z-index: 100;
  height: 72px;
  background: color-mix(in srgb, var(--bg-default) 88%, transparent);
  backdrop-filter: blur(20px);
  border-bottom: var(--stroke-border) solid var(--border-default);
}
.legal-header-inner {
  display: flex; align-items: center; justify-content: space-between;
  position: relative;
  width: 100%; max-width: var(--bp-desktop); height: 100%;
  margin-inline: auto;
  padding-inline: clamp(var(--space-400), 5vw, var(--space-800));
}
.legal-logo { display: inline-flex; align-items: center; }
.legal-logo img { height: 28px; width: auto; }
.legal-header-title {
  position: absolute; left: 50%; transform: translateX(-50%);
  font-size: var(--scale-01); font-weight: var(--weight-medium);
  letter-spacing: .1em; text-transform: uppercase;
  color: var(--text-tertiary); white-space: nowrap;
}
.legal-back {
  display: inline-flex; align-items: center; gap: var(--space-200);
  font-size: var(--scale-02); font-weight: var(--weight-medium);
  color: var(--text-brand); text-decoration: none;
  padding: var(--space-200) var(--space-500);
  border: var(--stroke-border) solid var(--border-brand);
  border-radius: var(--radius-full);
  transition: background-color .25s ease, color .25s ease, transform .25s ease;
}
.legal-back:hover { background: var(--bg-brand); color: var(--text-on-brand); transform: translateY(-1px); }
.legal-back svg { width: 14px; height: 14px; }

/* main / prose */
.legal-main { max-width: 760px; margin-inline: auto; padding: clamp(var(--space-1200), 5vw, var(--space-2400)) clamp(var(--space-400), 5vw, var(--space-800)) var(--space-4000); }
.legal-main h1 {
  font-family: var(--font-serif);
  font-size: clamp(var(--scale-07), 4.5vw, var(--scale-08));
  font-weight: var(--weight-bold);
  line-height: 1.15; letter-spacing: -0.02em;
  color: var(--text-default);
  margin-bottom: var(--space-300);
}
.legal-meta {
  font-size: var(--scale-02); color: var(--text-secondary);
  margin-bottom: var(--space-1200);
  padding-bottom: var(--space-600);
  border-bottom: var(--stroke-border) solid var(--border-default);
}
.legal-main h2 {
  font-family: var(--font-serif);
  font-size: var(--scale-05); font-weight: var(--weight-semibold);
  line-height: 1.3; letter-spacing: -0.01em;
  color: var(--text-default);
  margin-top: var(--space-1200); margin-bottom: var(--space-400);
}
.legal-main h3 {
  font-size: var(--scale-03); font-weight: var(--weight-semibold);
  color: var(--text-default);
  margin-top: var(--space-600); margin-bottom: var(--space-200);
}
.legal-main p { margin-bottom: var(--space-300); color: var(--text-secondary); text-align: justify; hyphens: auto; -webkit-hyphens: auto; }
.legal-main ul, .legal-main ol { margin: var(--space-300) 0 var(--space-400); padding-left: var(--space-600); color: var(--text-secondary); }
.legal-main li { hyphens: auto; -webkit-hyphens: auto; }
.legal-main ul { list-style: none; padding-left: 0; }
.legal-main ul li { position: relative; padding-left: var(--space-600); margin-bottom: var(--space-150); }
.legal-main ul li::before { content: ""; position: absolute; left: 0; top: .65em; width: 6px; height: 6px; border-radius: var(--radius-full); background: var(--bg-brand); }
.legal-main ol li { margin-bottom: var(--space-150); padding-left: var(--space-100); }
.legal-main strong { color: var(--text-default); font-weight: var(--weight-semibold); }
.legal-main a { color: var(--text-brand); text-decoration: underline; text-underline-offset: 2px; }
.legal-main a:hover { color: var(--text-brand-secondary); }

/* tabele (np. cookies, kategorie danych) */
.legal-table-wrap { overflow-x: auto; margin: var(--space-600) 0; border: var(--stroke-border) solid var(--border-default); border-radius: var(--radius-400); }
.legal-table { width: 100%; border-collapse: collapse; font-size: var(--scale-02); }
.legal-table th, .legal-table td { padding: var(--space-300) var(--space-400); text-align: left; vertical-align: top; border-bottom: var(--stroke-border) solid var(--border-default); }
.legal-table th { background: var(--bg-secondary); color: var(--text-default); font-weight: var(--weight-semibold); }
.legal-table tr:last-child td { border-bottom: none; }
.legal-table td { color: var(--text-secondary); }

/* blok danych spółki — kanoniczny, identyczny na każdej stronie prawnej */
.legal-info-block {
  display: grid;
  grid-template-columns: minmax(140px, 22%) 1fr;
  column-gap: var(--space-600);
  row-gap: var(--space-200);
  background: var(--bg-brand-tertiary);
  border: var(--stroke-border) solid var(--border-brand-secondary);
  border-radius: var(--radius-400);
  padding: var(--space-600) var(--space-800);
  margin: var(--space-600) 0;
}
.legal-info-block dt {
  font-family: var(--font-sans);
  font-size: var(--scale-01);
  font-weight: var(--weight-semibold);
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--text-brand-secondary);
  align-self: center;
}
.legal-info-block dd {
  font-family: var(--font-sans);
  font-size: var(--scale-03);
  font-weight: var(--weight-medium);
  color: var(--text-default);
  margin: 0;
}
.legal-info-block dd a { color: var(--text-brand); }
@media (max-width: 600px) {
  .legal-info-block { grid-template-columns: 1fr; row-gap: var(--space-100); padding: var(--space-600); }
  .legal-info-block dd { margin-bottom: var(--space-200); }
  .legal-info-block dd:last-child { margin-bottom: 0; }
}

/* footer */
.legal-footer {
  border-top: var(--stroke-border) solid var(--border-default);
  padding: var(--space-800) var(--space-600);
  text-align: center;
  font-size: var(--scale-02); color: var(--text-secondary);
}
.legal-footer a { color: var(--text-brand); text-decoration: none; }
.legal-footer a:hover { text-decoration: underline; }

:focus-visible { outline: var(--stroke-focus-ring) solid var(--border-focus); outline-offset: 2px; }

@media (max-width: 600px) {
  /* dwa wiersze: (logo | back) + (tytuł regulaminu) — sticky razem */
  .legal-header { height: auto; padding-block: var(--space-300); }
  .legal-header-inner {
    display: grid;
    grid-template-areas: "logo back" "title title";
    grid-template-columns: 1fr auto;
    align-items: center;
    row-gap: var(--space-200);
  }
  .legal-logo { grid-area: logo; }
  .legal-back { grid-area: back; padding: var(--space-150) var(--space-300); }
  .legal-back span { display: none; }
  .legal-header-title {
    grid-area: title;
    position: static; transform: none;
    text-align: center;
    padding-top: var(--space-200);
    border-top: var(--stroke-border) solid var(--border-default);
    font-size: var(--scale-02);
    color: var(--text-brand);
    letter-spacing: .04em;
  }
}

@media print {
  .legal-header { position: static; backdrop-filter: none; border-bottom: 2px solid #000; height: auto; padding: 16px 0; }
  .legal-back, .skip-to-content { display: none; }
  .legal-main { max-width: 100%; }
  a { color: #000; }
}
