/* Responsive legal reader; corporate and product layouts remain independent. */
body.policy-body {
  --bg:#120b20; --ink:#faf7ff; --muted:#c2b4d1; --cyan:#c7aaff; --line:#3a294b; --reader-top:28px;
  min-width:0; background:var(--bg); color:var(--ink); font-size:16px; line-height:1.8;
}
.policy-body ::selection { background:#694593; color:#fff; }
.policy-site-header { border-bottom:1px solid var(--line); background:#170e26; }
.policy-header-inner { max-width:1180px; min-height:76px; padding:12px 32px; margin:auto; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.policy-wordmark { display:inline-flex; align-items:center; gap:5px; min-height:44px; font-size:28px; font-weight:650; letter-spacing:-.03em; }
.policy-wordmark span { width:7px; height:7px; border-radius:50%; background:#b697ff; }
.policy-header-links { display:flex; gap:24px; font-size:14px; color:#dbd3e5; }
.policy-header-links a { display:inline-flex; align-items:center; min-height:44px; padding:0 8px; }
.policy-header-links a:hover { color:#fff; }
.policy-back, .policy-mobile-title, .policy-mobile-contents { display:none; }
.policy-page { flex:1; width:100%; max-width:1180px; padding:24px 32px 72px; margin:0 auto; }
.policy-breadcrumb { display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin:0 0 24px; color:var(--muted); font-size:13px; min-height:24px; }
.policy-breadcrumb a { color:#e3d8f0; }
.policy-breadcrumb a:hover { text-decoration:underline; text-underline-offset:4px; }
.policy-layout { display:grid; grid-template-columns:224px minmax(0,1fr); gap:32px; align-items:start; }
.policy-toc { position:sticky; top:28px; max-height:calc(100vh - 56px); overflow-y:auto; padding:12px 8px 16px 0; scrollbar-width:thin; scrollbar-color:#59426d transparent; }
.policy-toc h2 { margin:0 0 14px 14px; color:#b5a0cb; font-size:12px; line-height:1.5; letter-spacing:.13em; text-transform:uppercase; }
.policy-toc ol, .policy-contents-menu ol { list-style:none; padding:0; margin:0; }
.policy-toc li + li { margin-top:4px; }
.policy-toc a, .policy-contents-menu nav a { display:flex; gap:14px; align-items:baseline; min-height:44px; padding:10px 12px; border-left:2px solid transparent; border-radius:5px; font-size:14px; line-height:1.65; color:#dbd3e5; }
.toc-number { min-width:22px; flex:none; font-variant-numeric:tabular-nums; color:#ae9bc3; }
.policy-toc a:hover, .policy-contents-menu nav a:hover { background:#241732; color:#fff; }
.policy-toc a[aria-current="location"], .policy-contents-menu nav a[aria-current="location"] { border-left-color:#b697ff; background:#30203f; color:#faf7ff; }
.policy-toc a[aria-current] .toc-number, .policy-contents-menu a[aria-current] .toc-number { color:#e2d5f3; }
.policy-content { min-width:0; padding:34px 36px 28px; background:#1c132a; border:1px solid var(--line); border-radius:10px; }
.policy-heading { margin-bottom:24px; }
.policy-heading h1 { margin:0 0 12px; font-size:clamp(32px,3.8vw,46px); line-height:1.2; font-weight:650; letter-spacing:-.035em; overflow-wrap:anywhere; }
.policy-heading p { margin:0 0 6px; font-size:14px; color:var(--muted); }
.policy-heading .policy-updated strong { font-weight:400; }
.policy-heading .policy-operator { color:#d4c8e0; font-size:13px; letter-spacing:.02em; }
.policy-contact { display:flex; align-items:center; gap:12px; padding:11px 16px; margin-top:20px; min-height:48px; border:1px solid #76559c; border-radius:6px; font-size:14px; line-height:1.6; color:var(--cyan); overflow-wrap:anywhere; }
.policy-contact:hover { background:#2a1b3a; }
.contact-label { color:#d4c8e0; }
.policy-contact svg, .policy-back svg, .policy-contents-menu svg, .back-to-top svg { width:22px; height:22px; flex:none; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.policy-section { padding:28px 0 10px; border-top:1px solid var(--line); color:#dbd3e5; font-size:16px; line-height:1.8; overflow-wrap:anywhere; scroll-margin-top:var(--reader-top); }
.policy-section h2, .policy-section h3, .policy-section h4 { color:#faf7ff; line-height:1.45; letter-spacing:-.02em; font-weight:600; scroll-margin-top:var(--reader-top); }
.policy-section h2 { font-size:24px; margin:0 0 18px; }
.policy-section h3 { font-size:19px; margin:26px 0 14px; }
.policy-section h4 { font-size:17px; margin:22px 0 12px; }
.policy-section p { margin:0 0 18px; color:inherit; }
.policy-section ul, .policy-section ol { padding-left:23px; margin:0 0 20px; }
.policy-section li { margin-bottom:12px; padding-left:2px; }
.policy-section strong { color:#f0e7f8; font-weight:600; }
.policy-section a:not(.button), .policy-return { color:var(--cyan); text-decoration:underline; text-underline-offset:4px; text-decoration-thickness:1px; overflow-wrap:anywhere; }
.policy-section a:hover { color:#e5d6ff; }
.policy-section .button { background:#352247; color:#f1e8ff; border-color:#74539a; font-size:15px; line-height:1.5; max-width:100%; text-align:center; padding:13px 18px; letter-spacing:0; }
.policy-section .button:hover { transform:none; background:#45305b; }
.policy-introduction { border-top:0; padding-top:0; display:flex; flex-direction:column; }
.policy-introduction p:first-child { order:2; font-size:13px; color:var(--muted); }
.policy-note, .policy-callout { padding:18px 20px; border-left:2px solid #b697ff; background:#2a1c39; margin:20px 0; }
.policy-body .table-wrap { overflow-x:auto; max-width:100%; border:1px solid var(--line); border-radius:6px; margin:24px 0; }
.policy-body table { border-collapse:collapse; width:100%; font-size:14px; line-height:1.7; }
.policy-body th, .policy-body td { padding:14px; text-align:left; vertical-align:top; border-bottom:1px solid var(--line); overflow-wrap:anywhere; }
.policy-body th { color:#f0e7f8; background:#281b37; }
.back-to-top { position:fixed; right:max(20px,env(safe-area-inset-right)); bottom:calc(20px + env(safe-area-inset-bottom)); z-index:35; display:grid; place-items:center; width:44px; height:44px; border:1px solid #644982; border-radius:50%; background:#2c1c3e; color:#e4d4f8; box-shadow:0 4px 16px #0003; }
.back-to-top:hover { background:#402a56; }
.policy-footer { width:calc(100% - 64px); max-width:1116px; margin:auto auto 0; padding:24px 0 32px; border-top:1px solid var(--line); display:flex; justify-content:space-between; flex-wrap:wrap; gap:14px 24px; color:var(--muted); font-size:12px; }
.policy-footer p { margin:0; color:inherit; }
.policy-footer nav { display:flex; gap:20px; flex-wrap:wrap; }
.policy-footer a { display:inline-flex; align-items:center; min-height:32px; }
.policy-footer a:hover { color:#faf7ff; text-decoration:underline; }
.deletion-page { max-width:900px; }
.deletion-page .policy-section { padding-top:0; border:0; }
.deletion-page .policy-section > h3:first-child { margin-top:0; }
.policy-return { display:inline-block; padding-block:12px; font-size:15px; }

@media(max-width:900px) {
  body.policy-body { --reader-top:calc(152px + env(safe-area-inset-top)); }
  .policy-site-header { position:sticky; top:0; z-index:40; padding-top:env(safe-area-inset-top); }
  .policy-header-inner { min-height:64px; padding:8px 20px; position:relative; justify-content:center; }
  .policy-wordmark, .policy-header-links, .policy-toc { display:none; }
  .policy-back { position:absolute; left:max(12px,env(safe-area-inset-left)); display:grid; place-items:center; width:44px; height:44px; color:#f4eaff; }
  .policy-mobile-title { display:block; padding:0 40px; text-align:center; font-size:16px; line-height:1.4; font-weight:500; }
  .policy-page { padding:16px max(20px,env(safe-area-inset-right)) 52px max(20px,env(safe-area-inset-left)); }
  .policy-breadcrumb { margin-bottom:16px; }
  .policy-layout { display:block; }
  .policy-mobile-contents { display:block; position:sticky; top:calc(64px + env(safe-area-inset-top)); z-index:30; padding:8px 0; margin:-8px 0 18px; background:var(--bg); }
  .policy-contents-menu { position:relative; }
  .policy-contents-menu summary { min-height:48px; display:flex; align-items:center; gap:12px; padding:11px 14px; border:1px solid #503863; border-radius:6px; color:#e5daef; background:#2b1c3a; font-size:14px; line-height:1.65; cursor:pointer; list-style:none; }
  .policy-contents-menu summary::-webkit-details-marker { display:none; }
  .policy-contents-menu summary > span { min-width:0; }
  .contents-count { color:#c2afd5; }
  .policy-contents-menu .contents-chevron { width:18px; height:18px; margin-left:auto; }
  .policy-contents-menu[open] .contents-chevron { transform:rotate(180deg); }
  .policy-contents-menu nav { position:absolute; top:calc(100% + 6px); left:0; right:0; padding:8px; background:#21162e; border:1px solid #503863; border-radius:8px; box-shadow:0 14px 36px #0006; max-height:min(65vh,calc(100vh - 200px)); max-height:min(65dvh,calc(100dvh - 200px - env(safe-area-inset-top))); overflow-y:auto; overscroll-behavior:contain; }
  .policy-contents-menu nav a { min-height:46px; }
  .policy-content { background:transparent; border:0; border-radius:0; padding:0; }
  .policy-heading { margin:0 0 22px; }
  .policy-heading h1 { font-size:32px; line-height:1.25; margin-bottom:10px; }
  .policy-heading .policy-updated { font-size:13px; }
  .policy-heading .policy-operator { font-size:12px; }
  .policy-contact { border:0; padding:6px 0; margin-top:12px; font-size:15px; gap:10px; }
  .policy-contact:hover { background:transparent; }
  .policy-contact > span { text-decoration:underline; text-underline-offset:4px; }
  .contact-label { display:none; }
  .policy-contact svg { width:20px; height:20px; }
  .policy-section { font-size:16px; line-height:1.8; padding-top:24px; }
  .policy-introduction { padding-top:0; }
  .policy-section h2 { font-size:22px; }
  .policy-section h3 { font-size:18px; }
  .policy-section h4 { font-size:16px; }
  .policy-section p { margin-bottom:18px; }
  .policy-section .policy-section { padding-top:24px; }
  .policy-footer { width:auto; margin:0 max(20px,env(safe-area-inset-right)) 0 max(20px,env(safe-area-inset-left)); padding:22px 0 calc(76px + env(safe-area-inset-bottom)); display:block; }
  .policy-footer nav { margin-top:10px; gap:12px 24px; }
  .back-to-top { right:max(12px,env(safe-area-inset-right)); bottom:calc(16px + env(safe-area-inset-bottom)); }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
@media print {
  body.policy-body { background:#fff; color:#000; font-size:11pt; --line:#ccc; --reader-top:0px; }
  .policy-site-header, .policy-breadcrumb, .policy-toc, .policy-mobile-contents, .back-to-top, .policy-footer, .skip-link { display:none!important; }
  .policy-page, .deletion-page { max-width:none; padding:0; }
  .policy-layout { display:block; }
  .policy-content { background:none; padding:0; border:0; }
  .policy-heading h1 { font-size:26pt; }
  .policy-heading p, .policy-section, .policy-section p, .policy-section h2, .policy-section h3, .policy-section h4, .policy-section strong, .policy-introduction p:first-child { color:#000; }
  .policy-section { font-size:11pt; line-height:1.6; }
  .policy-section h2, .policy-section h3, .policy-section h4 { break-after:avoid; }
  .policy-contact, .policy-section a, .policy-return { color:#000!important; border:0; }
  .policy-contact { padding:0; }
  .policy-section .button { background:none; border:1px solid #888; color:#000; }
  @page { margin:18mm; }
}

/* October 18 policy additions use the existing purple reader. */
.policy-body .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.policy-anchor,#controller{scroll-margin-top:var(--reader-top)}
.policy-anchor{display:block}
.policy-intro{border-top:0;padding-top:0}
.policy-quick-links{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0}
.policy-quick-links a{padding:10px 13px;border:1px solid #644982;border-radius:6px;background:#2a1b3a;font-size:14px;line-height:1.7}
.provider-list{display:grid;gap:18px;margin:24px 0}
.provider-card{padding:22px;border:1px solid var(--line);border-radius:8px;background:#241831}
.provider-card h4{margin:0 0 18px;font-size:18px}
.provider-card dl{margin:0;font-size:15px;line-height:1.8}
.provider-card dt{color:#f0e7f8;font-weight:600;margin:15px 0 5px}
.provider-card dt:first-child{margin-top:0}
.provider-card dd{margin:0;color:#dbd3e5}
.provider-card>a{display:inline-block;margin-top:18px;font-size:14px}
@media(max-width:900px){.provider-card{padding:20px 17px}.policy-quick-links{display:grid;grid-template-columns:1fr}.policy-quick-links a{padding:12px 14px}}
@media print{.policy-quick-links{display:none}.provider-card{background:none}.provider-card dt,.provider-card dd{color:#000}}

/* All legal routes share the same readable language controls and RTL layout. */
.policy-languages{display:flex;flex-wrap:wrap;gap:8px;margin-block:18px}
.policy-languages a{display:inline-flex;align-items:center;min-height:44px;padding:7px 14px;border:1px solid var(--line);border-radius:6px;font-size:14px}
.policy-languages a[aria-current="page"]{border-color:#b697ff;background:#30203f;color:#fff}
.provider-card{margin-block:18px}
.provider-card p:last-child{margin-bottom:0}
.policy-contact bdi{overflow-wrap:anywhere}
[dir="rtl"] .policy-section ul,[dir="rtl"] .policy-section ol{padding-left:0;padding-right:23px}
[dir="rtl"] .policy-toc a,[dir="rtl"] .policy-contents-menu nav a{border-left:0;border-right:2px solid transparent}
[dir="rtl"] .policy-toc a[aria-current="location"],[dir="rtl"] .policy-contents-menu nav a[aria-current="location"]{border-right-color:#b697ff}
[dir="rtl"] .policy-contents-menu .contents-chevron{margin-left:0;margin-right:auto}
[dir="rtl"] .policy-toc h2{margin-left:0;margin-right:14px;letter-spacing:normal}
[dir="rtl"] .policy-body a[href^="https:"],[dir="rtl"] .policy-body a[href^="mailto:"]{unicode-bidi:isolate}
@media(max-width:900px){[dir="rtl"] .policy-back{left:auto;right:max(12px,env(safe-area-inset-right));transform:rotate(180deg)}}
@media print{.policy-languages{display:none}}
