.legal-page { background: var(--paper); }
.legal-header { color: var(--navy); }
.legal-back { justify-self: center; color: var(--muted); font-size: 12px; font-weight: 700; transition: color .2s; }
.legal-back:hover { color: var(--blue); }
.legal-main { padding-top: 58px; }
.legal-hero { position: relative; padding: 110px 0 95px; overflow: hidden; color: white; background: var(--navy); }
.legal-hero::after { position: absolute; top: -260px; right: -180px; width: 720px; height: 720px; background: radial-gradient(circle, rgba(169,234,208,.24), transparent 66%); content: ""; }
.legal-hero-inner { position: relative; z-index: 1; width: var(--content); margin: auto; }
.legal-hero h1 { max-width: 980px; margin: 0; font-size: clamp(58px, 7.2vw, 108px); line-height: .91; letter-spacing: -.068em; }
.legal-hero h1 span { color: var(--mint); }
.legal-intro { max-width: 700px; margin: 34px 0 0; color: rgba(255,255,255,.62); font-size: clamp(18px, 2vw, 24px); line-height: 1.5; }
.legal-meta { display: flex; margin-top: 50px; flex-wrap: wrap; gap: 9px; }
.legal-meta span { padding: 10px 14px; color: rgba(255,255,255,.72); background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.1); border-radius: 999px; font-size: 11px; font-weight: 700; }
.legal-hero .mobile-language-switch { display: none; }
.legal-layout { display: grid; width: var(--content); margin: 0 auto; padding: 120px 0 150px; grid-template-columns: 250px minmax(0, 820px); justify-content: space-between; gap: 90px; }
.legal-aside { position: sticky; top: 105px; display: flex; padding-top: 22px; align-self: start; flex-direction: column; border-top: 2px solid var(--coral); }
.legal-aside > span { color: var(--coral); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.legal-aside strong { margin-top: 18px; color: var(--navy); font-size: 25px; line-height: 1.12; letter-spacing: -.04em; }
.legal-aside p { margin: 16px 0 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.aszf-body { counter-reset: legal-section; }
.aszf-section { padding: 0 0 55px; counter-increment: legal-section; }
.aszf-section + .aszf-section { padding-top: 55px; border-top: 1px solid rgba(16,38,56,.14); }
.aszf-section h2 { margin: 0 0 24px; color: var(--navy); font-size: clamp(26px, 3vw, 38px); line-height: 1.1; letter-spacing: -.045em; }
.aszf-num { display: block; margin-bottom: 13px; color: var(--coral); font-size: 12px; font-weight: 800; letter-spacing: .08em; }
.aszf-section p, .aszf-section li { color: #4f5e68; font-size: 16px; line-height: 1.75; }
.aszf-section p { margin: 0 0 17px; }
.aszf-section p:last-child { margin-bottom: 0; }
.aszf-list { margin: 0; padding-left: 21px; }
.aszf-list li + li { margin-top: 11px; }
.aszf-data-table { overflow: hidden; background: white; border: 1px solid rgba(16,38,56,.1); border-radius: 22px; }
.adt-row { display: grid; padding: 16px 20px; grid-template-columns: minmax(130px, .75fr) 1.25fr; gap: 20px; }
.adt-row + .adt-row { border-top: 1px solid rgba(16,38,56,.09); }
.adt-label { color: var(--muted); font-size: 12px; font-weight: 700; }
.adt-value { color: var(--navy); font-size: 14px; font-weight: 650; overflow-wrap: anywhere; }
.aszf-link { color: var(--blue); }
.contact-reveal { display: inline-flex; padding: 7px 11px; align-items: center; background: rgba(49,88,216,.08); border-radius: 999px; transition: color .2s, background .2s; }
.contact-reveal:hover { color: white; background: var(--blue); }
.contact-reveal:focus-visible { outline: 3px solid rgba(49,88,216,.25); outline-offset: 3px; }

@media (max-width: 900px) {
  .legal-layout { grid-template-columns: 1fr; gap: 55px; }
  .legal-aside { position: static; max-width: 420px; }
}

@media (max-width: 560px) {
  .legal-back { display: none; }
  .legal-hero { padding: 85px 0 70px; }
  .legal-hero h1 { font-size: clamp(49px, 14vw, 65px); }
  .legal-meta { align-items: flex-start; flex-direction: column; }
  .legal-hero .mobile-language-switch { display: inline-flex; margin-top: 28px; }
  .legal-layout { padding: 85px 0 105px; }
  .aszf-section { padding-bottom: 42px; }
  .aszf-section + .aszf-section { padding-top: 42px; }
  .aszf-section p, .aszf-section li { font-size: 15px; }
  .adt-row { grid-template-columns: 1fr; gap: 5px; }
}
