/* Document pages share the marketing palette, navigation and focus treatments.
   The current layout follows below, with the original base kept as fallback. */
.legal-main, .legal-footer { width: min(1120px, 100%); margin-inline: auto; padding-inline: var(--gutter); }
.legal-main { padding-block: 36px 88px; }
.page-back { display: inline-block; margin-bottom: 52px; color: var(--muted); text-decoration: none; font-size: 13px; }
.page-back::before { content: '‹'; margin-right: 12px; font-size: 20px; vertical-align: -1px; }
.page-back:hover { color: var(--ink); }
.legal-main .eyebrow { color: var(--ice); font-size: 14px; margin: 0 0 17px; letter-spacing: 0; }
.legal-main h1 { max-width: 850px; font-size: clamp(43px, 6.2vw, 78px); font-weight: 500; line-height: 1.06; letter-spacing: -.055em; text-wrap: balance; }
.legal-main .lede { max-width: 68ch; margin-top: 26px; color: var(--muted); font-size: clamp(17px, 1.8vw, 20px); line-height: 1.75; }
.legal-main .updated { color: var(--muted); font-size: 12px; margin: 26px 0 50px; padding-bottom: 28px; border-bottom: 1px solid var(--line); }
.legal-main > section { padding-block: 29px; border-bottom: 1px solid var(--line); }
.legal-main > section > :first-child { margin-top: 0; }
.legal-main h2 { max-width: 35ch; font-size: 26px; line-height: 1.3; letter-spacing: -.025em; margin: 0 0 19px; }
.legal-main h3 { font-size: 19px; margin: 28px 0 12px; }
.legal-main section p, .legal-main section li { color: var(--muted); font-size: 15px; line-height: 1.85; }
.legal-main section p + p { margin-top: 17px; }
.legal-main section a, .legal-main .release-notice a { color: var(--ice); overflow-wrap: anywhere; }
.legal-main section a:hover { color: var(--ink); }
.legal-main section strong { color: var(--ink); font-weight: 600; }
.legal-main ul, .legal-main ol { padding-left: 24px; margin-block: 16px 24px; }
.legal-main li { padding-left: 5px; margin-block: 12px; }
.legal-main li::marker { color: var(--ice); }
.legal-main code { background: var(--panel); padding: 3px 7px; border: 1px solid var(--line); border-radius: 4px; font-size: 13px; overflow-wrap: anywhere; }
.legal-main .contact-card { background: var(--panel); border: 1px solid var(--line); border-radius: 14px; padding: clamp(24px, 4vw, 38px); margin-block: 28px; }
.legal-nav { display: flex; flex-wrap: wrap; gap: 12px 26px; margin-top: 40px; }
.legal-nav a { display: inline-flex; align-items: center; min-height: 44px; color: var(--muted); font-size: 13px; text-decoration: none; }
.legal-nav a:hover { color: var(--ink); }
.legal-footer { padding-block: 24px 36px; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; }
.release-notice { display: flex; align-items: center; gap: 30px; padding: 25px 28px; border: 1px solid var(--line); border-radius: 12px; background: var(--panel); margin-bottom: 50px; font-size: 14px; }
.release-notice p { color: var(--muted); max-width: 64ch; }
.release-notice strong { display: block; color: var(--ink); margin-bottom: 5px; font-weight: 500; font-size: 18px; }
.release-notice a { flex-shrink: 0; font-size: 13px; }
.downloads-page .legal-main { width: min(1260px, 100%); }
.downloads-page .legal-main > section > p { max-width: 85ch; }
.downloads-page .eyebrow { color: var(--gold); }
.downloads-page .legal-main .platform-downloads { display: grid; grid-template-columns: 1fr 1fr; padding: 0; margin: 30px 0; list-style: none; gap: 0 40px; }
.downloads-page .platform-downloads li { padding: 27px 0; margin: 0; border-top: 1px solid var(--line); }
.downloads-page .platform-downloads li > strong:first-child { display: block; margin-bottom: 14px; font-size: 22px; letter-spacing: -.025em; }
.legal-main details { border-top: 1px solid var(--line); }
.legal-main summary { position: relative; list-style: none; padding: 20px 36px 20px 0; font-size: 16px; }
.legal-main summary::after { content: '+'; position: absolute; right: 5px; top: 16px; color: var(--muted); font-size: 24px; }
.legal-main details[open] summary::after { content: '−'; }
.legal-main details p { padding: 0 30px 22px 0; }
@media (max-width: 760px) {
  .legal-main { padding-top: 25px; padding-bottom: 65px; }
  .page-back { margin-bottom: 38px; }
  .legal-main h1 { font-size: clamp(42px, 9vw, 64px); }
  .legal-main .updated { margin-bottom: 20px; }
  .legal-main h2 { font-size: 23px; }
  .legal-main section p, .legal-main section li { font-size: 15px; }
  .release-notice { flex-direction: column; align-items: start; gap: 16px; padding: 23px; margin-bottom: 35px; }
  .downloads-page .legal-main .platform-downloads { grid-template-columns: 1fr; }
}

/* Odyssey 2026 document design. Policy wording and download links are untouched. */
body:has(.legal-main) { background: radial-gradient(ellipse at 95% 0, #23364525, transparent 43%), var(--night); }
.legal-main, .legal-footer { width: min(1320px, 100%); margin-inline: auto; padding-inline: var(--gutter); }
.legal-main { padding-block: 32px 84px; }
.page-back { display: inline-flex; align-items: center; gap: 11px; min-height: 44px; margin-bottom: 40px; color: var(--muted); text-decoration: none; font-size: 12px; }
.page-back::before { content: '←'; color: var(--coral); font-size: 17px; margin: 0; }
.page-back:hover { color: var(--ink); }
.legal-main .eyebrow { display: flex; align-items: center; gap: 12px; color: var(--coral); font-size: 10px; font-weight: 600; margin: 0 0 24px; letter-spacing: .15em; text-transform: uppercase; }
.legal-main > .eyebrow::before, .support-heading .eyebrow::before { content: ''; width: 23px; height: 1px; background: var(--coral); }
.legal-main h1 { max-width: 960px; font-size: clamp(47px, 6.3vw, 80px); font-weight: 500; line-height: 1.07; letter-spacing: -.06em; text-wrap: balance; }
.legal-main .lede { max-width: 67ch; margin-top: 26px; color: var(--muted); font-size: clamp(17px, 1.7vw, 20px); line-height: 1.85; }
.legal-main .updated { display: flex; align-items: center; gap: 12px; color: #9da6b3; font-size: 11px; margin: 30px 0 18px; padding-bottom: 34px; border-bottom: 1px solid var(--line); }
.legal-main .updated::before { content: ''; flex-shrink: 0; width: 5px; height: 5px; border-radius: 50%; background: var(--coral); }
.legal-main > section { padding-block: 34px; border-bottom: 1px solid var(--line); scroll-margin-top: 115px; }
.legal-main > section > :first-child { margin-top: 0; }
.legal-main h2 { max-width: 40ch; font-size: 27px; font-weight: 500; line-height: 1.3; letter-spacing: -.035em; margin: 0 0 20px; }
.legal-main h3 { color: var(--ink); font-size: 20px; font-weight: 500; margin: 28px 0 12px; }
.legal-main section p, .legal-main section li { color: #adb5bf; font-size: 15px; line-height: 1.9; overflow-wrap: anywhere; }
.legal-main section p + p { margin-top: 18px; }
.legal-main section a, .legal-main .release-notice a:not(.button) { color: var(--ice); text-decoration-color: #bccedf55; text-underline-offset: .25em; overflow-wrap: anywhere; }
.legal-main section a:hover { color: var(--coral); text-decoration-color: var(--coral); }
.legal-main section strong { color: var(--ink); font-weight: 600; }
.legal-main ul, .legal-main ol { padding-left: 21px; margin-block: 10px 24px; }
.legal-main li { padding-left: 6px; margin-block: 15px; }
.legal-main li::marker { color: var(--coral); }
.legal-main code { background: #19232d; color: #dce7f2; padding: 3px 7px; border: 1px solid var(--line); border-radius: 5px; font-size: .86em; overflow-wrap: anywhere; }
.legal-main .contact-card { background: linear-gradient(120deg, #1d2834, var(--panel)); border: 1px solid #bccedf29; border-radius: 15px; padding: clamp(24px, 3vw, 38px); margin-block: 30px; }
.legal-main .contact-card h2 { color: var(--ink); }
.legal-main .contact-card p { color: #bbc4cf; }
.legal-nav { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 38px; }
.legal-nav a { display: inline-flex; align-items: center; min-height: 44px; padding: 10px 16px; border: 1px solid var(--line); border-radius: 100px; background: #ffffff02; color: #b6bfca; font-size: 12px; text-decoration: none; }
.legal-nav a:hover { color: var(--ink); border-color: #ffffff40; background: #ffffff06; }
.legal-footer { padding-block: 25px 36px; border-top: 1px solid var(--line); color: #929eac; font-size: 11px; }

/* Legal text keeps its original wording and a comfortable line length. */
body:not(.support-page):not(.downloads-page) .legal-main > section { display: grid; grid-template-columns: minmax(190px, .65fr) minmax(0, 1.65fr); gap: 0 48px; }
body:not(.support-page):not(.downloads-page) .legal-main > section > h2 { grid-column: 1; grid-row: 1 / span 6; font-size: 24px; }
body:not(.support-page):not(.downloads-page) .legal-main > section > :not(h2) { grid-column: 2; }
body:not(.support-page):not(.downloads-page) .legal-main > section > :is(ul, ol) { margin-top: 0; }
body:not(.support-page):not(.downloads-page) .legal-main > section > :last-child { margin-bottom: 0; }

/* Download platforms are real, complete release cards. */
.downloads-page .legal-main { width: min(1390px, 100%); }
.downloads-page .legal-main > section > p { max-width: 88ch; }
.release-notice { display: flex; align-items: center; gap: 30px; padding: 24px 28px; border: 1px solid #ff866638; border-radius: 13px; background: linear-gradient(110deg, #ff86660a, #11171e 70%); margin-bottom: 48px; font-size: 13px; }
.release-notice p { color: var(--muted); max-width: 69ch; line-height: 1.75; }
.release-notice strong { display: block; color: var(--ink); margin-bottom: 6px; font-weight: 500; font-size: 19px; letter-spacing: -.02em; }
.release-notice a { flex-shrink: 0; margin-left: auto; }
.downloads-page .legal-main .platform-downloads { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 0; margin: 32px 0; list-style: none; gap: 18px; }
.downloads-page .platform-downloads li { position: relative; padding: 28px; margin: 0; border: 1px solid var(--line); border-radius: 14px; background: linear-gradient(145deg, #ffffff03, transparent 70%), var(--panel); color: #aab4c1; font-size: 13px; line-height: 1.9; }
.downloads-page .platform-downloads li::before { display: block; width: 39px; height: 39px; margin-bottom: 23px; border: 1px solid #ff86663b; border-radius: 10px; background: #ff86660a; color: var(--coral); font-size: 12px; font-weight: 600; line-height: 37px; text-align: center; }
.downloads-page .platform-downloads li:nth-child(1)::before { content: 'WIN'; font-size: 9px; }
.downloads-page .platform-downloads li:nth-child(2)::before { content: 'MAC'; font-size: 9px; }
.downloads-page .platform-downloads li:nth-child(3)::before { content: '>_'; }
.downloads-page .platform-downloads li:nth-child(4)::before { content: '▦'; font-size: 23px; }
.downloads-page .platform-downloads li > strong:first-child { display: block; padding-right: 12px; margin-bottom: 17px; color: var(--ink); font-size: 24px; font-weight: 500; letter-spacing: -.035em; line-height: 1.35; }
.downloads-page .platform-downloads li > a:first-of-type { display: inline-flex; width: fit-content; align-items: center; justify-content: space-between; gap: 18px; min-height: 44px; padding: 9px 13px; margin: 0 3px 10px 0; border: 1px solid #ff86664b; border-radius: 7px; color: #ffad97; background: #ff866607; font-size: 12px; text-decoration: none; }
.downloads-page .platform-downloads li > a:first-of-type::after { content: '↓'; color: var(--coral); font-size: 16px; }
.downloads-page .platform-downloads li > a:first-of-type:hover { background: #ff866613; border-color: #ff866680; }
.downloads-page .platform-downloads li > a:not(:first-of-type) { color: #c8d7e7; }
.downloads-page .legal-main > section:has(#older-sources-title) { margin-top: 10px; padding: 28px; border: 1px solid var(--line); border-radius: 14px; background: #ffffff02; }
.downloads-page .legal-main > section:has(#older-sources-title) h2 { font-size: 22px; }
.downloads-page .legal-main > section:has(#older-sources-title) p { font-size: 13px; }

/* Native details preserve keyboard and screen-reader behaviour. */
.legal-main details { border-top: 1px solid var(--line); }
.legal-main details:last-child { border-bottom: 1px solid var(--line); }
.legal-main summary { position: relative; list-style: none; min-height: 66px; padding: 21px 42px 21px 0; color: #e3e5e8; font-size: 15px; line-height: 1.6; cursor: pointer; }
.legal-main summary::-webkit-details-marker { display: none; }
.legal-main summary::after { content: '+'; position: absolute; right: 7px; top: 16px; color: var(--coral); font-size: 25px; font-weight: 300; }
.legal-main details[open] summary::after { content: '−'; }
.legal-main details[open] summary { color: var(--ink); }
.legal-main details p { max-width: 86ch; padding: 0 36px 22px 0; font-size: 14px; }
.legal-main details p + p { margin-top: -8px; }

/* Support starts with useful destinations, followed by concise guidance. */
.support-page .legal-main { width: min(1390px, 100%); }
.support-page .support-heading { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); align-items: end; gap: 48px; margin-bottom: 44px; }
.support-page .support-heading h1 { max-width: 700px; }
.support-page .support-heading .lede { max-width: 38ch; margin: 0 0 5px; font-size: 17px; }
.support-page .support-shortcuts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; padding: 0; border: 0; margin: 0 0 30px; }
.support-page .support-shortcut { position: relative; display: flex; flex-direction: column; align-items: flex-start; padding: 27px; border: 1px solid var(--line); border-radius: 13px; background: linear-gradient(140deg, #ffffff03, transparent), var(--panel); text-decoration: none; min-width: 0; transition: background 160ms, border-color 160ms; }
.support-page .support-shortcut:hover { border-color: #ff866656; background: #192029; }
.support-page .support-shortcut > span:first-child { width: 36px; height: 36px; display: grid; place-items: center; margin-bottom: 32px; border: 1px solid #ff86662c; border-radius: 9px; background: #ff866608; color: var(--coral); font-size: 17px; }
.support-page .support-shortcut strong { color: var(--ink); font-size: 21px; line-height: 1.3; letter-spacing: -.025em; font-weight: 500; }
.support-page .support-shortcut p { margin: 12px 0 21px; color: var(--muted); font-size: 13px; line-height: 1.85; }
.support-page .support-shortcut .support-card-link { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 15px; margin-top: auto; color: #d6dfe9; font-size: 12px; }
.support-page .support-card-link > span { color: var(--coral); font-size: 21px; }
.support-page .support-jump-links { display: flex; flex-wrap: wrap; gap: 9px; margin: 0 0 38px; }
.support-page .support-jump-links a { display: inline-flex; align-items: center; min-height: 42px; padding: 8px 16px; border: 1px solid var(--line); border-radius: 100px; text-decoration: none; color: #b4bfcc; font-size: 12px; }
.support-page .support-jump-links a:hover { color: var(--coral); border-color: #ff866643; }
.support-page .support-guidance { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 52px; padding-block: 38px; }
.support-page .support-guidance > div:first-child > p { max-width: 37ch; font-size: 14px; }
.support-page .support-guidance h2 { font-size: 31px; }
.support-page .support-guidance ol { margin-top: 0; }
.support-page .support-guidance li:first-child { margin-top: 0; }
.support-page .support-checks { margin: 0; padding-left: 24px; }
.support-page .support-checks li { padding-left: 11px; padding-bottom: 16px; margin: 0 0 16px; border-bottom: 1px solid var(--line); font-size: 14px; }
.support-page .support-checks li:last-child { padding-bottom: 0; margin-bottom: 0; border: 0; }
.support-page .support-faq { padding: 40px 0; }
.support-page .support-faq-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 24px; margin-bottom: 14px; }
.support-page .support-faq-heading h2 { font-size: 31px; }
.support-page .support-faq-heading p { font-size: 13px; }
.support-page .support-contact { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 48px; padding: 32px; }
.support-page .support-contact .eyebrow { margin-bottom: 15px; }
.support-page .support-contact h2 { margin-bottom: 18px; font-size: 31px; }
.support-page .support-contact .support-email { color: var(--ice); font-size: clamp(14px, 1.4vw, 18px); text-decoration-thickness: 1px; }
.support-page .support-contact > div > p:not(.eyebrow) { font-size: 13px; line-height: 1.85; }
.support-page .support-contact .support-privacy-note { margin-top: 16px; color: #c8b3a7; }
.support-page .support-meta { margin-top: 24px; color: #8f9ba9; font-size: 11px; }

@media (max-width: 1050px) {
  .support-page .support-heading { gap: 35px; }
  .support-page .support-shortcut { padding: 23px; }
  .support-page .support-shortcut strong { font-size: 19px; }
  .support-page .support-guidance, .support-page .support-contact { gap: 32px; }
  body:not(.support-page):not(.downloads-page) .legal-main > section { gap: 0 32px; grid-template-columns: minmax(170px, .7fr) minmax(0, 1.5fr); }
}
@media (max-width: 760px) {
  .legal-main { padding-top: 22px; padding-bottom: 62px; }
  .page-back { margin-bottom: 30px; }
  .legal-main h1 { font-size: clamp(43px, 8.2vw, 63px); letter-spacing: -.055em; }
  .legal-main .eyebrow { font-size: 9px; margin-bottom: 19px; }
  .legal-main .lede { font-size: 17px; line-height: 1.8; margin-top: 24px; }
  .legal-main .updated { margin: 25px 0 8px; padding-bottom: 26px; font-size: 10px; }
  .legal-main > section { padding-block: 27px; }
  .legal-main h2 { font-size: 25px; margin-bottom: 17px; }
  .legal-main section p, .legal-main section li { font-size: 14px; line-height: 1.9; }
  body:not(.support-page):not(.downloads-page) .legal-main > section { display: block; }
  body:not(.support-page):not(.downloads-page) .legal-main > section > h2 { font-size: 24px; margin-bottom: 18px; }
  .legal-main .contact-card { padding: 24px; margin-block: 25px; }
  .legal-nav { gap: 9px; margin-top: 30px; }
  .legal-nav a { padding: 8px 13px; font-size: 11px; }
  .legal-footer { padding-block: 22px 30px; font-size: 10px; }
  .release-notice { flex-direction: column; align-items: flex-start; gap: 19px; padding: 24px; margin-bottom: 34px; }
  .release-notice strong { font-size: 18px; }
  .release-notice a { margin-left: 0; }
  .downloads-page .legal-main .platform-downloads { grid-template-columns: minmax(0, 1fr); margin-block: 24px; gap: 15px; }
  .downloads-page .platform-downloads li { padding: 25px; font-size: 13px; }
  .downloads-page .platform-downloads li::before { margin-bottom: 20px; }
  .downloads-page .platform-downloads li > strong:first-child { font-size: 24px; }
  .downloads-page .legal-main > section:has(#older-sources-title) { padding: 24px; }
  .legal-main summary { padding-right: 33px; font-size: 14px; }
  .legal-main details p { padding-right: 12px; font-size: 13px; }
  .support-page .support-heading { grid-template-columns: minmax(0, 1fr); gap: 25px; margin-bottom: 32px; }
  .support-page .support-heading .lede { max-width: 50ch; font-size: 16px; }
  .support-page .support-shortcuts { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .support-page .support-shortcut { display: grid; grid-template-columns: 42px minmax(0, 1fr); align-items: start; gap: 0 17px; padding: 23px; }
  .support-page .support-shortcut > span:first-child { grid-column: 1; grid-row: 1 / span 3; margin: 0; }
  .support-page .support-shortcut strong { grid-column: 2; font-size: 21px; }
  .support-page .support-shortcut p { grid-column: 2; font-size: 13px; margin-block: 9px 14px; }
  .support-page .support-shortcut .support-card-link { grid-column: 2; font-size: 12px; }
  .support-page .support-jump-links { margin-bottom: 20px; gap: 8px; }
  .support-page .support-jump-links a { font-size: 11px; padding: 8px 13px; }
  .support-page .support-guidance { grid-template-columns: minmax(0, 1fr); gap: 25px; padding-block: 30px; }
  .support-page .support-guidance > div:first-child > p { max-width: 50ch; }
  .support-page .support-guidance h2, .support-page .support-faq-heading h2, .support-page .support-contact h2 { font-size: 28px; }
  .support-page .support-checks li { font-size: 14px; }
  .support-page .support-faq { padding-block: 32px; }
  .support-page .support-faq-heading { display: block; margin-bottom: 22px; }
  .support-page .support-faq-heading h2 { margin-bottom: 8px; }
  .support-page .support-contact { grid-template-columns: minmax(0, 1fr); gap: 24px; padding: 26px 24px; }
  .support-page .support-contact .support-email { font-size: 17px; }
}
@media (prefers-reduced-motion: reduce) {
  .legal-main *, .legal-main *::before, .legal-main *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
