.legal-body { background: #f5f7fa; color: #243244; }
.legal-header { position: sticky; top: 0; z-index: 30; }
.legal-hero { padding: 64px 0 54px; background: linear-gradient(135deg,#071b31,#123b66); color: white; }
.legal-hero-inner { display: flex; justify-content: space-between; gap: 36px; align-items: flex-end; }
.legal-hero h1 { max-width: 760px; margin: 8px 0 14px; font-size: clamp(2.2rem,4vw,4rem); line-height: 1.04; }
.legal-hero p { max-width: 760px; margin: 0; color: #d5e3f2; font-size: 1.05rem; }
.legal-version { min-width: 220px; padding: 18px; border: 1px solid rgba(255,255,255,.22); border-radius: 14px; background: rgba(255,255,255,.08); }
.legal-version strong,.legal-version span,.legal-version small { display:block; }
.legal-version span { margin-top: 5px; color:#dce9f6; }
.legal-version small { margin-top: 9px; color:#ffda8a; font-weight:800; }
.legal-layout { display: grid; grid-template-columns: 250px minmax(0,1fr); gap: 30px; align-items: start; padding-top: 34px; padding-bottom: 70px; }
.legal-sidebar { position: sticky; top: 100px; }
.legal-sidebar nav { display:grid; padding: 8px; border:1px solid var(--line); border-radius: 14px; background:white; box-shadow:0 10px 30px rgba(16,35,56,.05); }
.legal-sidebar nav a { padding: 11px 12px; border-radius:9px; color:#536479; font-weight:800; font-size:.84rem; }
.legal-sidebar nav a:hover,.legal-sidebar nav a.active { background:#eaf3ff; color:var(--blue); }
.legal-help { margin-top:16px; padding:16px; border:1px solid var(--line); border-radius:14px; background:white; }
.legal-help strong,.legal-help a,.legal-help small { display:block; }
.legal-help a { margin-top:8px; color:var(--blue); font-weight:800; }
.legal-help small { margin-top:8px; color:var(--muted); line-height:1.4; }
.legal-content { min-width:0; }
.legal-draft-banner { margin-bottom:18px; padding:15px 18px; border:1px solid #efc86d; border-radius:12px; background:#fff7df; color:#6d4a03; line-height:1.5; }
.legal-section { scroll-margin-top: 105px; margin-bottom: 24px; padding: clamp(24px,4vw,48px); border:1px solid var(--line); border-radius:18px; background:white; box-shadow:0 14px 35px rgba(15,34,55,.055); }
.legal-kicker { color:var(--blue); font-size:.72rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.legal-section h2 { margin:7px 0 12px; color:var(--navy); font-size:clamp(1.8rem,3vw,2.6rem); }
.legal-section .lead { margin:0 0 28px; color:#52647a; font-size:1.03rem; line-height:1.7; }
.legal-section h3 { margin:28px 0 8px; color:#102f50; font-size:1.08rem; }
.legal-section p,.legal-section li { color:#4f6074; line-height:1.72; }
.legal-section ol { padding-left:22px; }
.legal-section li + li { margin-top:8px; }
.legal-callout { margin:24px 0; padding:17px 19px; border-radius:12px; line-height:1.55; }
.legal-callout.danger { border:1px solid #f0b7b1; background:#fff2f1; color:#85251b; }
.legal-callout.warning { border:1px solid #efc86d; background:#fff8e6; color:#6d4b06; }
.policy-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:13px; margin:24px 0; }
.policy-grid article { padding:18px; border:1px solid #d8e2ee; border-radius:13px; background:#f8fbff; }
.policy-grid span { display:block; color:var(--blue); font-size:1.7rem; font-weight:900; }
.policy-grid strong { display:block; margin:3px 0 6px; color:var(--navy); }
.policy-grid p { margin:0; font-size:.82rem; line-height:1.5; }
.assurance-flow { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin:25px 0; }
.assurance-flow > div { display:flex; gap:10px; padding:15px; border:1px solid #d8e2ee; border-radius:12px; background:#f8fbff; }
.assurance-flow b { display:grid; place-items:center; flex:0 0 29px; height:29px; border-radius:50%; background:var(--blue); color:white; }
.assurance-flow strong,.assurance-flow small { display:block; }
.assurance-flow small { margin-top:4px; color:var(--muted); line-height:1.4; }
.legal-contact { padding:30px; border-radius:18px; background:#0d2846; color:white; }
.legal-contact h2 { margin-top:0; }
.legal-contact p { color:#cfdeec; line-height:1.6; }
.legal-contact div { display:grid; gap:5px; margin-top:20px; }
@media (max-width: 980px) { .legal-layout { grid-template-columns:1fr; } .legal-sidebar { position:static; } .legal-sidebar nav { grid-template-columns:repeat(3,1fr); } .assurance-flow { grid-template-columns:1fr 1fr; } }
@media (max-width: 720px) { .legal-hero-inner { display:block; } .legal-version { margin-top:24px; } .legal-sidebar nav { display:flex; overflow-x:auto; } .legal-sidebar nav a { white-space:nowrap; } .policy-grid,.assurance-flow { grid-template-columns:1fr; } }
@media print { .site-header,.legal-sidebar,.site-footer,#printPolicyButton,.legal-draft-banner { display:none !important; } .legal-hero { padding:20px 0; background:white; color:black; } .legal-hero p { color:#333; } .legal-layout { display:block; padding:0; } .legal-section { break-inside:avoid; box-shadow:none; border-color:#bbb; } }
