/* Sprint 185 — legal.css
 * Extracted from privacy/index.html + terms/index.html inline <style> blocks.
 * Inline <style> was blocked by Caddy CSP (style-src 'self' only).
 * External CSS files are permitted under style-src 'self'.
 */

.legal-page { max-width: 800px; margin: 0 auto; padding: 120px var(--space-6) var(--space-20,5rem); }
.legal-page h1 { font-size: clamp(1.8rem,3vw,2.8rem); font-weight: var(--font-extrabold); margin-bottom: var(--space-2); }
.legal-meta { color: var(--text-dim); font-size: var(--text-sm); margin-bottom: var(--space-12); }
.legal-page h2 { font-size: 1.25rem; font-weight: var(--font-bold); margin: var(--space-10) 0 var(--space-3); color: var(--text-primary); }
.legal-page p, .legal-page li { color: var(--text-muted); font-size: var(--text-base,1rem); line-height: var(--leading-relaxed); margin-bottom: var(--space-4); }
.legal-page ul { padding-left: var(--space-6); margin-bottom: var(--space-4); }
.legal-page li { margin-bottom: var(--space-2); }
.legal-page a { color: var(--brand-highlight,#06B6D4); }
.legal-divider { border: none; border-top: 1px solid var(--border-muted); margin: var(--space-8) 0; }

/* Sprint 185 a11y fix: --brand-accent (#4A43D1 purple) fails WCAG AA on dark bg (2:1 ratio).
 * Override .qmc-tag in legal pages to use brand-correct cyan (#22D3EE) which gives ~11.9:1. */
.legal-page .qmc-tag {
    color: #22D3EE;
    border-color: rgba(34,211,238,0.22);
    background: rgba(34,211,238,0.06);
}

/* Sprint 185 a11y fix: links in body text rely on color only (link-in-text-block axe rule).
 * Adding underline makes them visually distinguishable from surrounding text. */
.legal-page a {
    text-decoration: underline;
}

/* Sprint 185 a11y fix: .qmc-footer-bottom copyright text rgba(255,255,255,0.4) = 4.1:1 on
 * #0A0E27 — below WCAG AA 4.5:1. Raise to 0.65 opacity → ~8.7:1. */
.qmc-footer-bottom,
.qmc-footer-bottom address {
    color: rgba(255,255,255,0.65);
}
.qmc-footer-legal a {
    color: rgba(255,255,255,0.65);
}

/* Sprint 186 — Cookie Policy table (from cookies/index.html inline <style>) */
.cookie-table { width: 100%; border-collapse: collapse; margin: var(--space-4,1rem) 0; font-size: var(--text-sm,0.875rem); }
.cookie-table th, .cookie-table td { padding: var(--space-3,0.75rem) var(--space-4,1rem); border-bottom: 1px solid var(--border-muted,rgba(255,255,255,0.1)); text-align: left; color: var(--text-muted,rgba(255,255,255,0.6)); }
.cookie-table th { color: var(--text-secondary,rgba(255,255,255,0.75)); font-weight: var(--font-semibold,600); }
/* Sprint 187 — WCAG AA fix: browser UA adds light bg to <code>; override with dark-theme palette.
 * #e2e8f0 on #1a1f2e background = 9.4:1 contrast ratio (exceeds 4.5:1 AA threshold). */
.cookie-table td code {
    color: #e2e8f0;
    background: rgba(255,255,255,0.08);
    padding: 0.1em 0.35em;
    border-radius: 3px;
    font-size: 0.85em;
}

/* Sprint 186 — GDPR rights grid (from gdpr/index.html inline <style>) */
.rights-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--space-6,1.5rem); margin: var(--space-8,2rem) 0; }
.rights-card { padding: var(--space-6,1.5rem); background: rgba(10,10,18,0.85); border: 1px solid rgba(255,255,255,0.1); border-radius: var(--radius-lg,0.75rem); }
.rights-card h3 { font-size: var(--text-base,1rem); font-weight: var(--font-bold,700); color: var(--brand-highlight,#06B6D4); margin-bottom: var(--space-2,0.5rem); }
.rights-card p { color: var(--text-muted,rgba(255,255,255,0.6)); font-size: var(--text-sm,0.875rem); margin: 0; }

/* Sprint 187 — Touch targets ≥ 48px (WCAG 2.5.5 / Material 48dp) */
@media (max-width: 768px) {
    .nav-link, .nav-cta, .qmc-footer-legal a {
        min-height: 48px;
        min-width: 48px;
        display: inline-flex;
        align-items: center;
        padding-block: 10px;
    }
}

/* Sprint 187 — cookie-table scroll container: prevents horizontal overflow on narrow viewports */
.cookie-table-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: var(--space-4,1rem) 0;
}
.cookie-table-scroll .cookie-table {
    margin: 0;
}

/* Sprint 187 — inline <p> link touch targets: padding-block expands hit area without
 * disrupting text flow. Applies only on mobile (≤ 768px) per WCAG 2.5.5/2.5.8.
 * Sizing: line-height 1.4 × 16px = 22.4px + 2×(0.8em×16px) = 22.4 + 25.6 = 48px exactly. */
@media (max-width: 768px) {
    .legal-page p a, .legal-page li a {
        padding-block: 0.8em;
        display: inline-block;
        line-height: 1.4;
    }
}

/* Sprint 220 — landing page CTA block */
.lp-cta-block {
    margin: var(--space-10, 2.5rem) 0 var(--space-6, 1.5rem);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-3, 0.75rem);
}

.lp-cta-sub {
    font-size: var(--text-sm, 0.875rem);
    color: var(--text-muted, #94a3b8);
    margin: 0;
}
