/* Legal pages: terms, DPA, privacy, subprocessors. Layout rules kept from the earlier stylesheet;
   colours and type come from the tokens in site.css. */

.hero__label { font-weight: 600; color: var(--accent-text); margin-bottom: 14px; }
.section__title { font-family: var(--serif); font-weight: 800; font-size: clamp(2.5rem, 5vw, 4.25rem); letter-spacing: -.018em; line-height: 1.04; }
.section__lede { font-size: 1.125rem; line-height: 1.6; color: var(--ink-2); }

/* ---------- Privacy page ---------- */

.page-short { display: flex; flex-direction: column; min-height: 100vh; }
.page-short main { flex: 1 0 auto; }
.site-header__actions--solo { margin-left: auto; }
.site-footer--short { padding-block: 8px 8px; }
.doc-page { padding-block: clamp(56px, 8vw, 120px) clamp(80px, 12vw, 176px); }
.doc-page__body { display: flex; flex-direction: column; gap: 18px; max-width: 40em; }
.doc-page .section__title { margin-bottom: 24px; }

/* ==========================================================================
   Legal page: privacy.html (Πολιτική απορρήτου)
   Appended block; every selector is scoped to .privacy-doc or a privacy-* class.
   ========================================================================== */

.privacy-doc .doc-page__body { max-width: 48em; gap: 22px; }
.privacy-doc .doc-page__body > *,
.privacy-article > * { min-width: 0; }
.privacy-doc { overflow-wrap: break-word; }

.privacy-draft {
  padding: 14px 18px;
  border: 1px solid var(--accent-text);
  border-radius: 4px;
  background: var(--white);
  color: var(--accent-text);
  font-weight: 600;
}

.privacy-meta { display: flex; flex-wrap: wrap; gap: 6px 28px; font-size: .9375rem; color: var(--muted); }
.privacy-meta div { display: flex; gap: 6px; }
.privacy-meta dt::after { content: ":"; }
.privacy-meta dd { margin: 0; color: var(--ink); }

.privacy-summary,
.privacy-toc {
  padding: 22px 24px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--white);
}
.privacy-summary h2,
.privacy-toc h2 { font-size: 1.1875rem; line-height: 1.3; font-weight: 600; margin-bottom: 12px; }

.privacy-toc ol { list-style: decimal; padding-left: 1.6em; columns: 2 18em; column-gap: 36px; }
.privacy-toc li { padding-block: 3px; break-inside: avoid; }
.privacy-toc a { text-decoration: none; }
.privacy-toc a:hover { text-decoration: underline; text-underline-offset: .22em; }

.privacy-article { padding-top: 36px; border-top: 1px solid var(--line); scroll-margin-top: 16px; }
.privacy-article > * + * { margin-top: 14px; }
.privacy-article h2 {
  font-size: clamp(1.375rem, 2.2vw, 1.75rem);
  line-height: 1.2;
  font-weight: 600;
  font-variation-settings: var(--display-axes);
  letter-spacing: -0.01em;
  margin-bottom: 18px;
}
.privacy-article h3 { font-size: 1.0625rem; line-height: 1.35; font-weight: 600; margin-top: 26px; }
.privacy-article__num { color: var(--accent-text); }
.privacy-p { font-weight: 600; color: var(--muted); margin-right: .35em; font-variant-numeric: tabular-nums; }

.privacy-list li { position: relative; padding: 3px 0 3px 22px; }
.privacy-list li::before {
  content: "";
  position: absolute;
  left: 2px;
  top: .95em;
  width: 10px;
  height: 2px;
  background: var(--accent);
}

.privacy-facts { border-top: 1px solid var(--line); }
.privacy-facts div {
  display: grid;
  grid-template-columns: minmax(0, 15em) minmax(0, 1fr);
  gap: 4px 20px;
  padding-block: 8px;
  border-bottom: 1px solid var(--line);
}
.privacy-facts dt { color: var(--muted); }
.privacy-facts dd { margin: 0; }

.privacy-table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 6px; background: var(--white); }
.privacy-table { width: 100%; min-width: 34em; border-collapse: collapse; font-size: .9375rem; line-height: 1.5; }
.privacy-table th,
.privacy-table td { padding: 12px 14px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); }
.privacy-table thead th { font-weight: 600; background: var(--paper); }
.privacy-table tbody tr:last-child td { border-bottom: 0; }
.privacy-muted { font-size: .8125rem; color: var(--muted); }

/* Placeholders for facts that are not known yet: visible on purpose. */
.privacy-ph { padding: 0 .3em; border-radius: 3px; background: #FDE8D7; color: #7C2D12; font-weight: 600; }

/* Drafting notes for the reviewing lawyer; remove before publication. */
.privacy-drafting {
  padding: 10px 14px;
  border: 1px dashed var(--line-strong);
  border-radius: 4px;
  font-size: .875rem;
  color: var(--ink-2);
}

.privacy-address { font-style: normal; padding: 14px 18px; border: 1px solid var(--line-strong); border-radius: 4px; }

@media (max-width: 640px) {
  .privacy-summary, .privacy-toc { padding: 18px; }
  .privacy-facts div { grid-template-columns: minmax(0, 1fr); }
}
/* ---------- end Legal page: privacy.html ---------- */

/* ---------- Subprocessors page (subprocessors.html) ----------
   Legal typography for the sub-processor list. Every class is prefixed .sp-
   so it cannot collide with the other legal pages. */

.sp-doc .wrap > * { max-width: 52rem; }
.sp-doc .section__title { margin-bottom: 20px; }
.sp-lede { margin-block: 8px 32px; }

.sp-draft {
  margin-bottom: 20px;
  padding: 14px 18px;
  border: 1px solid var(--accent);
  border-radius: 6px;
  background: var(--white);
  color: var(--ink);
  font-size: .9375rem;
}

.sp-meta { display: flex; flex-wrap: wrap; gap: 6px 28px; margin-bottom: 24px; font-size: .9375rem; color: var(--muted); }
.sp-meta div { display: flex; gap: 6px; }
.sp-meta dt::after { content: ":"; }
.sp-meta dd { margin: 0; color: var(--ink); font-weight: 500; }

.sp-toc { margin-bottom: 48px; padding: 20px 24px; border: 1px solid var(--line); border-radius: 6px; background: var(--white); }
.sp-toc__title { margin-bottom: 10px; font-size: 1rem; font-weight: 600; }
.sp-toc ol { list-style: decimal; padding-left: 1.5em; columns: 2 18rem; column-gap: 32px; }
.sp-toc li { padding-block: 3px; break-inside: avoid; }
.sp-toc a { text-decoration: none; }
.sp-toc a:hover { text-decoration: underline; text-underline-offset: .22em; }

.sp-article { padding-top: 40px; margin-top: 40px; border-top: 1px solid var(--line); scroll-margin-top: 16px; }
.sp-article h2 { margin-bottom: 18px; font-size: clamp(1.375rem, 2.2vw, 1.75rem); line-height: 1.2; font-weight: 600; letter-spacing: -0.01em; }
.sp-article h3 { margin-bottom: 14px; font-size: 1.1875rem; line-height: 1.3; font-weight: 600; }
.sp-article > p + p,
.sp-article > p + .sp-list,
.sp-article > p + .sp-table-wrap,
.sp-article > .sp-list + p { margin-top: 14px; }
.sp-num { color: var(--accent-text); }

.sp-clauses { display: flex; flex-direction: column; gap: 14px; }
.sp-clauses > li { position: relative; padding-left: 2.75em; }
.sp-cl { font-weight: 600; font-variant-numeric: tabular-nums; }
.sp-clauses > li > .sp-cl:first-child { position: absolute; left: 0; top: 0; }
.sp-article h3 .sp-cl { margin-right: .4em; color: var(--accent-text); }

.sp-list { list-style: disc; padding-left: 1.25em; display: flex; flex-direction: column; gap: 6px; }
.sp-clauses .sp-list { margin-block: 8px; }
.sp-links { display: flex; flex-direction: column; gap: 4px; }

.sp-provider { margin-top: 32px; padding: 24px; border: 1px solid var(--line); border-radius: 6px; background: var(--white); scroll-margin-top: 16px; }
.sp-provider:first-of-type { margin-top: 8px; }

.sp-facts { display: grid; grid-template-columns: minmax(0, 13rem) minmax(0, 1fr); border-top: 1px solid var(--line); }
.sp-facts > div { display: contents; }
.sp-facts dt,
.sp-facts dd { margin: 0; padding: 12px 0; border-bottom: 1px solid var(--line); }
.sp-facts dt { padding-right: 20px; font-weight: 600; font-size: .9375rem; }
.sp-article > p + .sp-facts { margin-top: 16px; }

.sp-callout { margin-bottom: 16px; padding: 12px 16px; border: 1px solid var(--line-strong); border-radius: 4px; background: var(--white); }
.sp-note { margin-top: 14px; font-size: .9375rem; color: var(--ink-2); }

.sp-table-wrap { overflow-x: auto; margin-top: 16px; border: 1px solid var(--line); border-radius: 6px; background: var(--white); }
.sp-table { width: 100%; min-width: 40rem; border-collapse: collapse; font-size: .9375rem; line-height: 1.5; }
.sp-table th,
.sp-table td { padding: 12px 14px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.sp-table thead th { background: var(--paper); font-weight: 600; border-bottom-color: var(--line-strong); }
.sp-table tbody tr:last-child > * { border-bottom: 0; }
.sp-table tbody th { font-weight: 600; }
.sp-table--log { min-width: 32rem; }
.sp-sub { display: inline-block; margin-top: 2px; font-size: .8125rem; font-weight: 400; color: var(--muted); }

.sp-ph { padding: 0 .25em; border-radius: 3px; background: #EFEDE7; font-weight: 600; white-space: nowrap; }
.sp-todo { padding: 0 .25em; border-radius: 3px; background: #FDEBDD; color: var(--accent-text); font-weight: 500; }

.sp-back { margin-top: 48px; }

@media (max-width: 640px) {
  .sp-provider { padding: 18px 16px; }
  .sp-facts { grid-template-columns: minmax(0, 1fr); }
  .sp-facts dt { padding-bottom: 2px; border-bottom: 0; }
  .sp-facts dd { padding-top: 0; }
  .sp-ph { white-space: normal; }
}

@media print {
  .site-header, .site-footer, .skip-link { display: none; }
  .sp-table-wrap { overflow: visible; }
}
/* ---------- End of subprocessors page ---------- */

/* ==========================================================================
   Legal page: dpa.html (Σύμβαση Επεξεργασίας Δεδομένων)
   Appended block. Every selector is prefixed .dpa / .page-dpa so it affects
   only this page and never overrides the shared rules above.
   ========================================================================== */

.page-dpa .doc-page .section__title { margin-bottom: 20px; }
.dpa { max-width: 46em; }
.dpa :target { scroll-margin-top: 24px; }

.dpa-draft {
  margin-bottom: 20px;
  padding: 12px 16px;
  border: 1px solid var(--accent-text);
  border-radius: 4px;
  background: var(--white);
  color: var(--accent-text);
  font-weight: 600;
}
.dpa-subtitle { font-size: 1.125rem; line-height: 1.55; color: var(--ink-2); }

.dpa-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 32px;
  margin-top: 20px;
  padding-block: 14px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  font-size: .9375rem;
}
.dpa-meta dt { color: var(--muted); font-size: .8125rem; }
.dpa-meta dd { margin: 0; font-weight: 500; }

.dpa-summary {
  margin-top: 32px;
  padding: 22px 24px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--white);
}
.dpa-summary h2 { font-size: 1.125rem; font-weight: 600; margin-bottom: 12px; }
.dpa-summary__note { margin-top: 14px; font-size: .875rem; color: var(--muted); }

.dpa-toc { margin-top: 32px; padding-top: 18px; border-top: 2px solid var(--ink); }
.dpa-toc h2 { font-size: 1.125rem; font-weight: 600; margin-bottom: 10px; }
.dpa-toc ol { display: grid; gap: 4px; }
.dpa-toc a { text-decoration: none; color: var(--ink-2); }
.dpa-toc a:hover { color: var(--ink); text-decoration: underline; text-underline-offset: .22em; }

.dpa-article { margin-top: 44px; padding-top: 32px; border-top: 1px solid var(--line); }
.dpa-article > * + * { margin-top: 12px; }
.dpa-article h2 {
  font-size: clamp(1.375rem, 2.2vw, 1.75rem);
  line-height: 1.2;
  font-weight: 600;
  letter-spacing: -0.01em;
  font-variation-settings: var(--display-axes);
  margin-bottom: 18px;
}
.dpa-article h3 { margin-top: 28px; font-size: 1.1875rem; font-weight: 600; line-height: 1.35; }
.dpa-article h4 { margin-top: 24px; font-size: 1.0625rem; font-weight: 600; line-height: 1.4; }
.dpa-annex { border-top: 2px solid var(--ink); }

.dpa-n { font-weight: 600; margin-right: .3em; font-variant-numeric: tabular-nums; }
.dpa-ph {
  padding: 0 .25em;
  border-radius: 3px;
  background: #FCE9DC;
  color: var(--accent-text);
  font-weight: 600;
}

.dpa-list { display: flex; flex-direction: column; gap: 8px; padding-left: 1.25em; }
.dpa-list--bullets { list-style: disc; padding-left: 1.4em; }
.dpa-list--bullets li::marker { color: var(--muted); }

.dpa-defs dt { margin-top: 12px; font-weight: 600; }
.dpa-defs dd { margin: 2px 0 0; color: var(--ink-2); }

.dpa-review {
  padding: 12px 16px;
  border: 1px solid var(--line-strong);
  border-radius: 4px;
  background: var(--white);
  font-size: .9375rem;
  color: var(--ink-2);
}

.dpa-table-wrap { overflow-x: auto; }
.dpa-table { width: 100%; border-collapse: collapse; font-size: .9375rem; line-height: 1.5; }
.dpa-table th,
.dpa-table td { padding: 10px 14px 10px 0; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); }
.dpa-table th { font-weight: 600; border-bottom: 2px solid var(--ink); }
.dpa-table td:first-child { font-weight: 500; min-width: 9em; }

.dpa-legend,
.dpa-measures { display: flex; flex-direction: column; gap: 10px; }
.dpa-status {
  display: inline-block;
  margin-right: .5em;
  padding: 1px 8px;
  border: 1px solid currentColor;
  border-radius: 999px;
  font-size: .75rem;
  font-weight: 600;
  line-height: 1.6;
  white-space: nowrap;
  vertical-align: .1em;
}
.dpa-status--live { color: var(--ink); background: var(--white); }
.dpa-status--launch { color: var(--accent-text); background: var(--white); }
.dpa-status--planned { color: var(--muted); border-style: dashed; }

.dpa-end { margin-top: 48px; padding-top: 16px; border-top: 1px solid var(--line); font-size: .875rem; color: var(--muted); }

@media (max-width: 640px) {
  .dpa-summary { padding: 18px 16px; }
  .dpa-table { font-size: .875rem; }
}

@media print {
  .page-dpa .site-header,
  .page-dpa .site-footer,
  .page-dpa .skip-link { display: none; }
  .page-dpa .doc-page { padding-block: 0; }
  .dpa-article { break-inside: auto; }
  .dpa-article h2, .dpa-article h3, .dpa-article h4 { break-after: avoid; }
}
.dpa-review > * + * { margin-top: 10px; }
.dpa-review code { font-size: .875em; }
/* ---------- end dpa.html ---------- */

/* ==========================================================================
   Legal page: terms.html (Όροι Χρήσης)
   Appended block; every selector is scoped to .page-terms or a terms-* class.
   ========================================================================== */

.terms-intro { display: flex; flex-direction: column; gap: 16px; max-width: 46rem; margin-bottom: clamp(40px, 5vw, 64px); }
.terms-intro .hero__label,
.terms-intro .section__title { margin-bottom: 0; }

.terms-draft {
  padding: 14px 18px;
  border: 1px solid var(--accent-text);
  border-radius: 4px;
  background: var(--white);
  color: var(--accent-text);
  font-weight: 600;
}
.terms-draft > span { display: block; margin-top: 4px; font-size: .9375rem; font-weight: 400; color: var(--ink-2); }

.terms-meta { font-size: .9375rem; color: var(--muted); }
.terms-meta strong { color: var(--ink); }
.terms-meta--end { margin-top: 28px; }

/* Placeholders for company details still to be filled in */
.terms-ph { padding: 0 .25em; border-radius: 3px; background: #FBE3D2; color: var(--ink); font-weight: 500; }

.terms-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px; }
.terms-body { min-width: 0; max-width: 46rem; overflow-wrap: break-word; }

.terms-toc { font-size: .9375rem; }
.terms-toc__title { font-weight: 600; margin-bottom: 10px; }
.terms-toc ol { border-top: 1px solid var(--line); }
.terms-toc li { border-bottom: 1px solid var(--line); }
.terms-toc a { display: flex; gap: .6em; padding: 7px 0; line-height: 1.35; color: var(--ink-2); text-decoration: none; }
.terms-toc a:hover { color: var(--ink); text-decoration: underline; text-underline-offset: .22em; }
.terms-toc__num { flex: none; min-width: 1.6em; color: var(--accent-text); font-weight: 600; font-variant-numeric: tabular-nums; }

.terms-summary { margin-bottom: 8px; scroll-margin-top: 16px; }
.terms-summary .points { margin-block: 12px 14px; }

.terms-article { margin-top: 40px; padding-top: 32px; border-top: 1px solid var(--line); scroll-margin-top: 16px; }
.terms-article h2 {
  margin-bottom: 14px;
  font-size: clamp(1.25rem, 2vw, 1.5rem);
  line-height: 1.25;
  font-weight: 600;
  font-variation-settings: var(--display-axes);
  letter-spacing: -0.01em;
}
.terms-art { display: block; margin-bottom: 4px; font-size: .875rem; font-weight: 600; color: var(--accent-text); letter-spacing: .02em; font-variation-settings: 'FLAR' 0, 'VOLM' 0; }

/* Numbered clause: the number hangs in the left gutter */
.terms-clause { position: relative; margin-top: 12px; padding-left: 3.25em; }
.terms-n { position: absolute; left: 0; top: .1em; font-size: .9375rem; color: var(--muted); font-variant-numeric: tabular-nums; }
.terms-clause--cont { margin-top: 8px; }

.terms-list { margin: 8px 0 0 3.25em; padding-left: 1.15em; list-style: disc; }
.terms-list li { margin-top: 6px; padding-left: .2em; }
.terms-list li::marker { color: var(--accent); }
.terms-list--plain { padding-left: 0; list-style: none; }
.terms-list--plain li { padding-left: 0; }

.terms-defs { margin: 10px 0 0 3.25em; }
.terms-defs dt { margin-top: 12px; font-weight: 600; }
.terms-defs dd { margin: 2px 0 0; color: var(--ink-2); }

.terms-table-wrap { margin: 14px 0 4px 3.25em; overflow-x: auto; }
.terms-table { width: 100%; border-collapse: collapse; font-size: .9375rem; line-height: 1.45; background: var(--white); }
.terms-table caption { padding-bottom: 8px; text-align: left; font-size: .875rem; color: var(--muted); }
.terms-table th,
.terms-table td { padding: 10px 12px; border: 1px solid var(--line); text-align: left; vertical-align: top; }
.terms-table thead th { background: var(--paper); font-weight: 600; }
.terms-table tbody th { font-weight: 600; }

.terms-contact { margin-top: 12px; font-style: normal; line-height: 1.8; }

/* Drafting notes for the lawyer and the product team; removed before publication. */
.terms-note { margin: 10px 0 0 3.25em; padding: 8px 12px; border: 1px solid var(--line-strong); border-radius: 4px; background: var(--white); font-size: .875rem; line-height: 1.5; color: var(--ink-2); }
.terms-note strong { color: var(--accent-text); }

@media (min-width: 1024px) {
  .terms-layout { grid-template-columns: 17rem minmax(0, 46rem); column-gap: clamp(40px, 5vw, 80px); align-items: start; }
  .terms-toc { position: sticky; top: 24px; max-height: calc(100vh - 48px); overflow-y: auto; padding-right: 8px; }
}

@media (max-width: 640px) {
  .terms-clause { padding-left: 2.75em; }
  .terms-list,
  .terms-defs,
  .terms-table-wrap,
  .terms-note { margin-left: 0; }
}

@media print {
  .page-terms .site-header,
  .page-terms .site-footer,
  .page-terms .skip-link,
  .page-terms .terms-toc { display: none; }
  .page-terms .doc-page { padding-block: 0; }
  .terms-layout { display: block; }
  .terms-article { break-inside: auto; }
  .terms-article h2 { break-after: avoid; }
}
/* ---------- end terms.html ---------- */

/* ---------- Subprocessors page (subprocessors.html): additions ---------- */
.sp-list--plain { list-style: none; padding-left: 0; }
/* ---------- end subprocessors.html additions ---------- */
