body { background: #f6f8fc; color: #132642; }
.legal-nav { background: #fff; border-bottom: 1px solid #dce5ef; padding: 16px 0; }
.legal-nav .wrap { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.legal-back { color: #0d528d; font-weight: 700; text-decoration: none; }
.legal { max-width: 940px; margin: 48px auto 76px; padding: 0 24px; }
.legal-kicker { color: #0d528d!important; font-size: .76rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; margin-bottom: 10px; }
.legal h1 { font-size: clamp(2.2rem, 5vw, 3.7rem); line-height: 1.07; margin-bottom: 10px; max-width: 16ch; }
.legal h2 { font-size: clamp(1.2rem, 2.5vw, 1.5rem); line-height: 1.3; margin: 42px 0 12px; }
.legal p, .legal li { color: #485c75; line-height: 1.78; }
.legal p + p { margin-top: 12px; }
.legal ul, .legal ol { padding-left: 24px; }
.legal li { margin: 5px 0; }
.legal .updated { color: #6b7c90; font-size: .9rem; margin-bottom: 26px; }
.legal .notice { background: #ecf4ff; border: 1px solid #cadcf5; border-left: 4px solid #1065ad; border-radius: 14px; padding: 20px 22px; color: #244569; }
.legal a { color: #0d528d; text-underline-offset: 3px; }
.legal-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 18px 0 34px; }
.legal-summary > div { background: #fff; border: 1px solid #dce5ef; border-radius: 14px; padding: 16px 18px; }
.legal-summary strong { display: block; font-size: .86rem; color: #132642; margin-bottom: 4px; }
.legal-summary span { font-size: .86rem; color: #485c75; }
.legal-table-wrap { max-width: 100%; overflow-x: auto; border: 1px solid #dce5ef; border-radius: 14px; background: #fff; margin: 16px 0 20px; }
.legal table { width: 100%; border-collapse: collapse; min-width: 600px; font-size: .9rem; }
.legal th { text-align: left; background: #edf3fa; color: #173d67; }
.legal th, .legal td { padding: 13px 15px; vertical-align: top; border-bottom: 1px solid #e7edf4; }
.legal tr:last-child td { border-bottom: 0; }
.legal td { color: #485c75; }
.legal-footer { border-top: 1px solid #dce5ef; padding: 24px; text-align: center; color: #6b7c90; font-size: .88rem; display: flex; justify-content: center; gap: 8px 14px; flex-wrap: wrap; }
.legal-footer a { color: #0d528d; }
@media (max-width: 660px) { .legal { margin-top: 34px; padding-inline: 20px; } .legal-summary { grid-template-columns: 1fr; } .legal-nav .brand-logo { width: 145px; } .legal-back { font-size: .88rem; } }
