/* ==========================================================================
   Legal — footer legal line, Cookie settings dialog, and the privacy notice
   page (/privacy/). Uses the v3 tokens; see inc/legal.php and page-privacy.php.
   ========================================================================== */

/* ---- Footer legal line (sits in Kadence's footer, outside .ch-v3) ---- */
.site-footer .ch-legal-line { display: block; }
.site-footer .ch-legal-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 20px; margin-top: 8px; }
/* Kadence paints footer links gold, which is unreadable on the white footer. */
.site-footer .ch-legal-links a { color: #067a3d; text-decoration: underline; text-underline-offset: 3px; }
.site-footer .ch-legal-links a:hover { color: #14201b; }

/* ---- Cookie settings dialog ---- */
dialog.ch-cookies {
  width: min(520px, calc(100vw - 32px));
  border: 1px solid var(--v3-line);
  border-radius: var(--v3-r-card);
  box-shadow: var(--v3-shadow-lg);
  padding: var(--v3-s4);
  color: var(--v3-ink);
  background: var(--v3-bg);
  font-family: var(--v3-font-text);
}
dialog.ch-cookies::backdrop { background: rgba(20, 32, 27, .45); }
dialog.ch-cookies h2 { font-family: var(--v3-font-display); font-size: var(--v3-t-h3); margin: 0 0 var(--v3-s2); }
.ch-cookies-row {
  display: grid; grid-template-columns: 1fr auto; gap: var(--v3-s2); align-items: start;
  padding: var(--v3-s2) 0; border-top: 1px solid var(--v3-line);
}
.ch-cookies-row strong { display: block; font-weight: 600; margin-bottom: 2px; }
.ch-cookies-row p { margin: 0; font-size: var(--v3-t-small); color: var(--v3-ink-soft); line-height: 1.5; }
.ch-cookies-row a { color: var(--v3-green-ink); }
.ch-cookies-always { font-size: 12px; font-weight: 600; color: var(--v3-muted); white-space: nowrap; padding-top: 3px; }
.ch-cookies-status { min-height: 1.4em; margin: var(--v3-s1) 0 0; font-size: var(--v3-t-small); color: var(--v3-green-ink); font-weight: 500; }
.ch-cookies-actions { display: flex; justify-content: flex-end; gap: var(--v3-s1); margin-top: var(--v3-s2); flex-wrap: wrap; }
.ch-cookies-actions .v3-btn { padding: 10px 20px; font-size: var(--v3-t-small); }

.ch-switch { position: relative; display: inline-block; width: 46px; height: 26px; }
.ch-switch input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; z-index: 1; }
.ch-switch span { position: absolute; inset: 0; border-radius: 999px; background: #c8d0cc; transition: background .15s; }
.ch-switch span::after {
  content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%;
  background: #fff; box-shadow: 0 1px 2px rgba(0,0,0,.2); transition: transform .15s;
}
.ch-switch input:checked + span { background: var(--v3-green); }
.ch-switch input:checked + span::after { transform: translateX(20px); }
.ch-switch input:disabled { cursor: not-allowed; }
.ch-switch input:disabled + span { opacity: .5; }
.ch-switch input:focus-visible + span { outline: 3px solid var(--v3-gold); outline-offset: 2px; }

/* ---- Privacy notice page ---- */
.ch-legal { font-size: var(--v3-t-body); line-height: 1.65; color: var(--v3-ink-soft); }
.ch-legal h2 {
  font-family: var(--v3-font-display); font-size: var(--v3-t-h3); color: var(--v3-ink);
  margin: var(--v3-s6) 0 var(--v3-s2); scroll-margin-top: 96px; text-wrap: balance;
}
.ch-legal h3 { font-family: var(--v3-font-display); font-size: 1.15rem; color: var(--v3-ink); margin: var(--v3-s4) 0 var(--v3-s1); }
.ch-legal p { margin: 0 0 var(--v3-s2); }
.ch-legal strong { color: var(--v3-ink); font-weight: 600; }
.ch-legal a { color: var(--v3-green-ink); }
.ch-legal ul { margin: 0 0 var(--v3-s2); padding-left: 1.2em; }
.ch-legal li { margin-bottom: 6px; }
.ch-legal code { font-size: .88em; background: var(--v3-bg-soft); border: 1px solid var(--v3-line); border-radius: 4px; padding: 1px 5px; }
.ch-legal .ch-table-wrap { overflow-x: auto; margin: 0 0 var(--v3-s3); }
.ch-legal table { width: 100%; border-collapse: collapse; font-size: var(--v3-t-small); }
.ch-legal th { text-align: left; font-weight: 600; color: var(--v3-ink); background: var(--v3-green-tint); padding: 10px 12px; }
.ch-legal td { padding: 10px 12px; border-top: 1px solid var(--v3-line); vertical-align: top; }

.ch-legal-toc {
  background: var(--v3-bg-soft); border: 1px solid var(--v3-line); border-radius: var(--v3-r-card);
  padding: var(--v3-s3); margin-bottom: var(--v3-s4);
}
.ch-legal-toc .v3-eyebrow { display: block; margin-bottom: var(--v3-s1); }
.ch-legal-toc ol { margin: 0; padding-left: 1.2em; columns: 2; column-gap: var(--v3-s4); font-size: var(--v3-t-small); }
.ch-legal-toc li { margin-bottom: 4px; break-inside: avoid; }
.ch-legal-toc a { color: var(--v3-ink); text-decoration: none; }
.ch-legal-toc a:hover { color: var(--v3-green-ink); text-decoration: underline; }
@media (max-width: 640px) { .ch-legal-toc ol { columns: 1; } }
