/* ==========================================================================
   Jogi aloldalak — impresszum, ÁSZF, adatkezelés, cookie, panasz, elállás
   Hosszú, sűrű szöveg: a cél az olvashatóság, nem a látvány.
   ========================================================================== */

.legal-page {
  background: var(--color-bg-light, #faf7f0);
  color: var(--color-text-primary, #171b18);
}

.skip-link {
  position: absolute; left: -9999px;
  background: var(--color-accent, #1a5c3d); color: #fff;
  padding: .6rem 1rem; border-radius: 0 0 8px 0; z-index: 100;
}
.skip-link:focus { left: 0; top: 0; }

/* ---- fejléc ---- */
.legal-nav {
  background: var(--color-bg-dark, #0c100d);
  color: var(--color-text-on-dark, #f4f1ea);
  position: sticky; top: 0; z-index: 50;
}
.legal-nav__inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; padding-block: 1rem; min-height: 60px;
}
.legal-nav__brand {
  font-weight: 600; font-size: 1.02rem; letter-spacing: -.01em;
  color: var(--color-text-on-dark, #f4f1ea); text-decoration: none;
}
.legal-nav__brand span {
  display: block; font-size: .68rem; font-weight: 400; letter-spacing: .08em;
  text-transform: uppercase; color: var(--color-text-on-dark-muted, #a8a89e);
}
.legal-nav__back {
  font-size: .86rem; color: var(--color-text-on-dark-muted, #a8a89e);
  text-decoration: none; white-space: nowrap;
}
.legal-nav__back:hover { color: var(--color-text-on-dark, #f4f1ea); }

/* ---- hero ---- */
.doc__hero { padding: 3rem 0 2rem; border-bottom: 1px solid var(--color-border-light, rgba(23,27,24,.1)); }
.doc__eyebrow {
  margin: 0 0 .5rem; font-size: .72rem; letter-spacing: .14em;
  text-transform: uppercase; color: var(--color-accent, #1a5c3d); font-weight: 600;
}
.doc__hero h1 {
  margin: 0 0 .6rem; font-size: clamp(1.7rem, 3.4vw, 2.5rem);
  line-height: 1.15; letter-spacing: -.02em; text-wrap: balance;
}
.doc__meta { margin: 0; font-size: .85rem; color: var(--color-text-secondary, #5b5a52); }

/* ---- elrendezés ---- */
.doc__layout {
  display: grid; grid-template-columns: 15rem minmax(0, 1fr);
  gap: 3rem; align-items: start; padding: 2.5rem 0 4rem;
  min-width: 0;
}

.doc__side { position: sticky; top: 5.5rem; min-width: 0; }
.doc__sidehead {
  margin: 0 0 .7rem; font-size: .72rem; letter-spacing: .12em;
  text-transform: uppercase; color: var(--color-text-secondary, #5b5a52); font-weight: 600;
}
.doc__side nav { display: flex; flex-direction: column; gap: .1rem; }
.doc__side a {
  font-size: .87rem; line-height: 1.35; padding: .45rem .7rem;
  border-radius: 7px; text-decoration: none;
  color: var(--color-text-secondary, #5b5a52);
  border-left: 2px solid transparent;
}
.doc__side a:hover { background: rgba(23,27,24,.04); color: var(--color-text-primary, #171b18); }
.doc__side a.is-active {
  color: var(--color-accent, #1a5c3d); font-weight: 600;
  border-left-color: var(--color-accent, #1a5c3d);
  background: rgba(26,92,61,.06);
}

/* ---- törzs ---- */
.doc__body { max-width: 46rem; min-width: 0; font-size: .945rem; line-height: 1.68; }
.doc__body > *:first-child { margin-top: 0; }

.doc__body h2 {
  margin: 2.6rem 0 .9rem; font-size: 1.32rem; line-height: 1.25;
  letter-spacing: -.01em; scroll-margin-top: 5.5rem; text-wrap: balance;
  padding-bottom: .45rem;
  border-bottom: 1px solid var(--color-border-light, rgba(23,27,24,.1));
}
.doc__body h3 { margin: 1.9rem 0 .6rem; font-size: 1.08rem; scroll-margin-top: 5.5rem; }
.doc__body h4 { margin: 1.5rem 0 .5rem; font-size: .965rem; scroll-margin-top: 5.5rem; }

.doc__body p { margin: 0 0 .95rem; overflow-wrap: anywhere; }
/* A base.css globálisan kikapcsolja a felsorolásjeleket (a kártyák és a
   navigációk miatt). A jogi szövegekben viszont kellenek: enélkül a
   felsorolás csak behúzott bekezdéseknek látszik, és nem látszik, hol
   ér véget az egyik pont és hol kezdődik a másik. */
.doc__body ul, .doc__body ol { margin: 0 0 1.05rem; padding-left: 1.35rem; }
.doc__body ul { list-style: disc; }
/* A saját betűjelet hozó felsorolások („a) …") ne kapjanak második jelet. */
.doc__body ul.doc__list--own { list-style: none; padding-left: 1.1rem; }
.doc__body ol { list-style: decimal; }
.doc__body li::marker { color: var(--color-text-secondary, #5b5a52); }
/* A tájékoztatókban csupasz URL-ek is szerepelnek (böngésző-súgó linkek).
   A bekezdésnél már volt tördelés, a listaelemeknél és a linkeknél nem —
   emiatt telefonon az egész oldal oldalra csúszott. */
.doc__body li { margin-bottom: .42rem; overflow-wrap: anywhere; }
.doc__body a { overflow-wrap: anywhere; }
.doc__body dd, .doc__body dt { overflow-wrap: anywhere; }
.doc__body a { color: var(--color-accent, #1a5c3d); text-underline-offset: 2px; }
.doc__body code {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: .86em; background: rgba(23,27,24,.055);
  padding: .1em .38em; border-radius: 4px;
}
.doc__body hr {
  border: 0; height: 1px; margin: 2.4rem 0;
  background: var(--color-border-light, rgba(23,27,24,.12));
}

/* ---- kiemelt doboz ---- */
.doc__note {
  margin: 1.2rem 0; padding: .95rem 1.1rem;
  background: rgba(26,92,61,.055);
  border-left: 3px solid var(--color-accent, #1a5c3d);
  border-radius: 0 8px 8px 0;
}
.doc__note p { margin: 0; font-size: .9rem; line-height: 1.6; overflow-wrap: anywhere; }
.doc__note--warn {
  background: rgba(176,124,26,.075);
  border-left-color: var(--color-gold, #b07c1a);
}

/* ---- táblázat ---- */
.doc__tablewrap { overflow-x: auto; margin: 1.2rem 0 1.5rem; }
.doc__table {
  width: 100%; border-collapse: collapse; font-size: .875rem;
  min-width: 30rem;
}
.doc__table th, .doc__table td {
  text-align: left; vertical-align: top;
  padding: .6rem .75rem;
  border-bottom: 1px solid var(--color-border-light, rgba(23,27,24,.1));
}
.doc__table th {
  background: rgba(23,27,24,.04); font-weight: 600;
  font-size: .82rem; letter-spacing: .01em;
}
.doc__table tbody tr:last-child td { border-bottom: 0; }
.doc__table td:first-child { font-weight: 500; }

/* ---- lábléc ---- */
.legal-foot {
  background: var(--color-bg-dark, #0c100d);
  color: var(--color-text-on-dark-muted, #a8a89e);
  padding: 1.6rem 0; font-size: .84rem;
}
.legal-foot__inner {
  display: flex; flex-wrap: wrap; align-items: center;
  justify-content: space-between; gap: .8rem 1.5rem;
}
.legal-foot__links { display: flex; flex-wrap: wrap; gap: 1.2rem; }
.legal-foot a { color: var(--color-text-on-dark-muted, #a8a89e); text-decoration: none; }
.legal-foot a:hover { color: var(--color-text-on-dark, #f4f1ea); text-decoration: underline; }

/* ---- mobil ---- */
@media (max-width: 900px) {
  .doc__layout { grid-template-columns: minmax(0, 1fr); gap: 1.8rem; padding-top: 1.8rem; }
  .doc__side {
    position: static; border-bottom: 1px solid var(--color-border-light, rgba(23,27,24,.1));
    padding-bottom: 1.2rem;
  }
  .doc__side nav { flex-direction: row; flex-wrap: wrap; gap: .35rem; }
  .doc__side a { border-left: 0; border: 1px solid var(--color-border-light, rgba(23,27,24,.14)); }
  .doc__side a.is-active { border-color: var(--color-accent, #1a5c3d); }
}

@media print {
  .legal-nav, .doc__side, .legal-foot, .cq-cc { display: none !important; }
  .doc__layout { grid-template-columns: 1fr; padding: 0; }
  .doc__body { max-width: none; font-size: 10.5pt; }
  .doc__body h2 { page-break-after: avoid; }
  .doc__tablewrap { overflow: visible; }
}
