
/* ===== cookie consent banner ===== */
.cookie-banner { position: fixed; left: 0; right: 0; bottom: 0; z-index: 300; background: var(--color-surface); border-top: 1px solid var(--color-border); box-shadow: var(--shadow-lg); padding: var(--space-5) var(--space-6); transform: translateY(120%); transition: transform 320ms cubic-bezier(0.16,1,0.3,1); }
.cookie-banner.open { transform: translateY(0); }
.cookie-banner-inner { max-width: var(--content-wide); margin-inline: auto; display: flex; align-items: center; justify-content: space-between; gap: var(--space-6); flex-wrap: wrap; }
.cookie-banner-inner p { font-size: var(--text-sm); color: var(--color-text-muted); max-width: 62ch; margin: 0; }
.cookie-banner-inner a { color: var(--color-primary); text-decoration: underline; text-underline-offset: 2px; }
.cookie-banner-actions { display: flex; gap: var(--space-3); flex-wrap: wrap; flex-shrink: 0; }
@media (max-width: 640px) {
  .cookie-banner-inner { flex-direction: column; align-items: stretch; }
  .cookie-banner-actions { width: 100%; }
  .cookie-banner-actions .btn { flex: 1; }
}

/* ===== consent checkbox in forms ===== */
.field-consent { display: flex; align-items: flex-start; gap: var(--space-3); margin-bottom: var(--space-5); }
.field-consent input[type="checkbox"] { width: 18px; height: 18px; flex-shrink: 0; margin-top: 2px; accent-color: var(--color-primary); }
.field-consent label { font-size: var(--text-xs); color: var(--color-text-muted); line-height: 1.5; }
.field-consent label a { color: var(--color-primary); text-decoration: underline; text-underline-offset: 2px; }

/* ===== legal pages (terms.html / privacy.html) ===== */
.legal-page { padding-block: clamp(var(--space-12), 6vw, var(--space-20)); }
.legal-page .wrap { max-width: 860px; }
.legal-page h1 { font-size: var(--text-xl); margin-bottom: var(--space-3); }
.legal-page .legal-updated { font-size: var(--text-xs); color: var(--color-text-faint); margin-bottom: var(--space-10); }
.legal-page h2 { font-family: var(--font-display); font-size: var(--text-lg); margin-top: var(--space-10); margin-bottom: var(--space-4); }
.legal-page h2:first-of-type { margin-top: 0; }
.legal-page p { color: var(--color-text-muted); margin-bottom: var(--space-4); }
.legal-page ul, .legal-page ol { color: var(--color-text-muted); margin: 0 0 var(--space-4); padding-left: 1.4em; display: flex; flex-direction: column; gap: var(--space-2); }
.legal-page strong { color: var(--color-text); }
.legal-page .legal-req-box { background: var(--color-surface-2); border-radius: var(--radius-lg); padding: var(--space-6); margin-top: var(--space-8); font-size: var(--text-sm); color: var(--color-text-muted); line-height: 1.7; }
.legal-page .legal-req-box a { color: var(--color-text); text-decoration: none; font-weight: 600; }
.legal-page .legal-req-box a:hover { color: var(--color-primary); }
.legal-back { display: inline-flex; align-items: center; gap: var(--space-2); font-size: var(--text-sm); color: var(--color-text-muted); font-weight: 500; margin-bottom: var(--space-8); text-decoration: none; }
.legal-back:hover { color: var(--color-primary); }
