.legal-page { color: #17253a; background: #f4f7fa; }
.legal-hero { position: relative; overflow: hidden; padding: clamp(76px, 10vw, 128px) 24px; color: #fff; text-align: center; background: radial-gradient(circle at 18% 10%, rgba(44,132,190,.28), transparent 35%), linear-gradient(145deg, #020b18, #06254a 56%, #03142d); }
.legal-hero::after { content: ""; position: absolute; inset: 22px; border: 1px solid rgba(231,198,109,.3); border-radius: 18px; pointer-events: none; }
.legal-hero__inner { position: relative; z-index: 1; width: min(100%, 880px); margin: auto; }
.legal-kicker { margin: 0 0 15px; color: var(--gold-light); font-size: var(--text-xs); font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.legal-hero h1 { margin: 0; font: 500 clamp(42px, 7vw, 72px)/1 Georgia, serif; letter-spacing: -.025em; }
.legal-hero p:last-child { max-width: 720px; margin: 24px auto 0; color: rgba(255,255,255,.88); font-size: clamp(1.125rem, 2vw, 1.25rem); line-height: 1.75; }
.legal-layout { width: min(calc(100% - 48px), 1240px); margin: 0 auto; padding: 64px 0 90px; display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: clamp(38px, 6vw, 78px); align-items: start; }
.legal-index { position: sticky; top: calc(var(--header-height) + 24px); padding: 24px; border: 1px solid #d9e1ea; border-radius: 16px; background: #fff; box-shadow: 0 16px 38px rgba(2,20,45,.07); }
.legal-index h2 { margin: 0 0 14px; color: #06254a; font-size: var(--text-sm); letter-spacing: .14em; text-transform: uppercase; }
.legal-index ol { margin: 0; padding: 0; display: grid; gap: 7px; list-style: none; counter-reset: legal; }
.legal-index li { counter-increment: legal; }
.legal-index a { display: block; padding: 7px 0; color: #354a61; font-size: var(--text-sm); line-height: 1.45; text-decoration: none; }
.legal-index a::before { content: counter(legal, decimal-leading-zero) "  "; color: #a27c20; font-weight: 800; }
.legal-index a:hover, .legal-index a:focus-visible { color: #052c58; }
.legal-index a:focus-visible, .legal-content a:focus-visible { outline: 2px solid #a27c20; outline-offset: 3px; border-radius: 2px; }
.legal-actions { margin-top: 22px; display: grid; gap: 8px; }
.legal-actions a { min-height: 52px; padding: 10px 14px; display: grid; place-items: center; border: 1px solid #d5b65f; border-radius: 999px; color: #06254a; font-size: var(--text-sm); font-weight: 800; letter-spacing: .08em; line-height: 1.2; text-align: center; text-decoration: none; text-transform: uppercase; }
.legal-content { min-width: 0; max-width: 78ch; }
.legal-summary { margin-bottom: 32px; padding: clamp(24px, 4vw, 38px); border-top: 3px solid #d5b65f; border-radius: 16px; background: #fff; box-shadow: 0 18px 44px rgba(2,20,45,.08); }
.legal-summary h2 { margin: 0 0 20px; color: #06254a; font: 500 var(--heading-sm)/1.2 Georgia, serif; }
.legal-details { margin: 0; display: grid; grid-template-columns: minmax(155px, .45fr) 1fr; gap: 12px 22px; }
.legal-details dt { color: #46586d; font-size: var(--text-sm); font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.legal-details dd { margin: 0; color: #17253a; font-size: var(--text-base); line-height: 1.7; overflow-wrap: anywhere; }
.legal-content a { color: #0759a0; text-underline-offset: 3px; }
.legal-section { scroll-margin-top: calc(var(--header-height) + 24px); margin-top: 18px; padding: clamp(25px, 4vw, 42px); border: 1px solid #dde4eb; border-radius: 16px; background: #fff; }
.legal-section h2 { margin: 0 0 22px; color: #06254a; font: 500 clamp(24px, 3vw, 31px)/1.2 Georgia, serif; }
.legal-section h3 { margin: 28px 0 10px; color: #173c63; font-size: clamp(1.625rem,2.3vw,2rem); line-height: 1.25; }
.legal-section p, .legal-section li { color: #2f4257; font-size: var(--text-base); line-height: 1.75; }
.legal-section p { margin: 0 0 17px; }
.legal-section p:last-child { margin-bottom: 0; }
.legal-section ul { margin: 12px 0 0; padding-left: 22px; }
.legal-table { width: 100%; border-collapse: collapse; font-size: var(--text-sm); }
.legal-table th, .legal-table td { padding: 16px; border-bottom: 1px solid #dfe6ed; vertical-align: top; line-height: 1.6; text-align: left; }
.legal-table th { color: #06254a; background: #eef4f8; font-size: var(--text-sm); letter-spacing: .07em; text-transform: uppercase; }
.legal-table td:first-child { width: 46%; color: #173c63; font-weight: 700; }
.legal-updated { margin: 34px 0 0; color: #46586d; font-size: var(--text-sm); font-weight: 750; text-align: right; }
.cookies-page .legal-content { max-width: 86ch; }
.cookies-page .legal-table { font-size: var(--text-base); }
.cookies-page .legal-section code { overflow-wrap: anywhere; color: #173c63; font-size: .95em; }
@media (max-width: 900px) { .legal-layout { grid-template-columns: 1fr; padding-top: 42px; } .legal-index { position: static; } .legal-index ol { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 600px) { .legal-hero { padding: 66px 22px; } .legal-hero::after { inset: 12px; } .legal-layout { width: min(calc(100% - 30px), 1240px); padding-bottom: 64px; gap: 28px; } .legal-index ol { grid-template-columns: 1fr; } .legal-details { grid-template-columns: 1fr; gap: 5px; } .legal-details dd + dt { margin-top: 10px; } .legal-section { padding: 24px 20px; } .legal-table, .legal-table tbody, .legal-table tr, .legal-table th, .legal-table td { display: block; } .legal-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); } .legal-table tr { padding: 15px 0; border-bottom: 1px solid #dfe6ed; } .legal-table td { width: 100% !important; padding: 7px 0; border: 0; } .legal-table td::before { content: attr(data-label); display: block; margin-bottom: 3px; color: #53667a; font-size: var(--text-sm); font-weight: 800; letter-spacing: .07em; text-transform: uppercase; } }
