/* Miracle v3 — privacy page styles. OWNER: MCL-V3-001-T15. Do not edit css/base.css.
   A compliance document that nobody can read is not a compliance document.
   The whole page is one prose column (.wrap--prose, 680px) so the measure stays
   readable, with a numbered contents list because the page is long.
   Every size here is a step from the base.css type scale (README §5). */

/* ---------- intro ---------------------------------------------------------- */
.pv-intro .lead { max-width:58ch; }

/* the at-a-glance facts: date, consent version, scope */
.pv-meta {
  width:100%; min-width:0; margin:0;
  display:grid; gap:var(--s4);
  background:var(--surface); border:1px solid var(--line);
  border-radius:var(--r-md); padding:clamp(18px,2.4vw,26px);
}
.pv-meta > div { display:grid; gap:4px; min-width:0; }
.pv-meta dt {
  font-family:var(--heading); font-size:.6875rem; font-weight:800;
  letter-spacing:.14em; text-transform:uppercase; color:var(--muted);
}
.pv-meta dd { margin:0; min-width:0; font-size:.875rem; line-height:1.7; color:var(--ink-2); }
.pv-meta code {
  font-size:.8125rem; background:var(--surface-3); color:var(--deep);
  padding:2px 8px; border-radius:var(--r-xs);
}

/* ---------- contents ------------------------------------------------------- */
.pv-toc {
  width:100%; min-width:0;
  background:var(--surface-2); border-left:3px solid var(--teal);
  border-radius:0 var(--r-md) var(--r-md) 0;
  padding:clamp(18px,2.4vw,26px);
}
.pv-toc__heading {
  font-family:var(--heading); font-size:.6875rem; font-weight:800;
  letter-spacing:.14em; text-transform:uppercase; color:var(--teal);
  margin-bottom:var(--s3);
}
.pv-toc ol { list-style:none; counter-reset:pvtoc; display:grid; gap:10px; padding:0; }
.pv-toc li { counter-increment:pvtoc; display:flex; gap:var(--s3); min-width:0; }
.pv-toc li::before {
  content:counter(pvtoc); flex:none; width:1.4em; padding-top:1px;
  font-family:var(--heading); font-size:.75rem; font-weight:800; color:var(--muted);
  font-variant-numeric:tabular-nums;
}
.pv-toc a {
  font-size:.9375rem; line-height:1.55; color:var(--deep); min-width:0;
  border-bottom:1px solid transparent;
  transition:color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.pv-toc a:hover { color:var(--teal); border-bottom-color:var(--teal); }

/* ---------- the notice itself ---------------------------------------------- */
.pv-body { counter-reset:pvsec; }

.pv-body h2 {
  counter-increment:pvsec;
  display:flex; align-items:baseline; gap:var(--s3); min-width:0;
  margin-top:clamp(44px,5.4vw,72px); margin-bottom:var(--s4);
  padding-top:clamp(24px,3vw,36px); border-top:1px solid var(--line);
  scroll-margin-top:calc(var(--header-h) + 24px);
}
.pv-body h2:first-of-type { margin-top:0; padding-top:0; border-top:0; }
.pv-body h2::before {
  content:counter(pvsec); flex:none;
  font-size:.62em; color:var(--teal); font-variant-numeric:tabular-nums;
}
.pv-body h3 { margin-top:var(--s6); margin-bottom:var(--s3); color:var(--ink); }

.pv-body p { font-size:.9375rem; line-height:1.85; color:var(--ink-2); max-width:64ch; margin-bottom:var(--s4); }
.pv-body p:last-child { margin-bottom:0; }
.pv-body p.note { font-size:.875rem; max-width:none; }
.pv-body p.fine-print { font-size:.75rem; color:var(--muted); max-width:72ch; margin-top:var(--s7); padding-top:var(--s5); border-top:1px solid var(--line); }
.pv-body strong { color:var(--ink); }

.pv-body ul:not(.list-check) { list-style:none; padding:0; margin-bottom:var(--s5); display:flex; flex-direction:column; gap:var(--s3); }
.pv-body ul:not(.list-check) > li {
  position:relative; padding-left:22px; min-width:0;
  font-size:.9375rem; line-height:1.8; color:var(--ink-2);
}
.pv-body ul:not(.list-check) > li::before {
  content:""; position:absolute; left:2px; top:.72em;
  width:6px; height:6px; border-radius:50%; background:var(--teal);
}
.pv-body .list-check { margin-bottom:var(--s5); }

.pv-body a { color:var(--deep); text-decoration:underline; text-underline-offset:3px; }
.pv-body a:hover { color:var(--teal); }
.pv-body a.text-link { text-decoration:none; }
.pv-back { margin-top:var(--s7); }

/* ---------- 621px and up --------------------------------------------------- */
@media (min-width:621px) {
  .pv-meta { grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--s5); }
}

/* ---------- 851px and up --------------------------------------------------- */
@media (min-width:851px) {
  .pv-toc ol { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px var(--s5); }
}

/* ---------- print ---------------------------------------------------------- */
@media print {
  .pv-toc { display:none; }
  .pv-body h2 { break-after:avoid; }
  .pv-body p, .pv-body li { break-inside:avoid; }
}
