/* Shared styles for the privacy, terms, and accessibility pages.
   Tokens and header/footer rules mirror the inline styles in index.html. */
:root{
  --navy:#0a3161;
  --paper:#eef3fa;
  --paper-2:#ffffff;
  --red:#b31942;
  --ink:var(--navy);
  --ink-70:rgba(10,49,97,.74);
  --rule:rgba(10,49,97,.18);
  --rule-paper:rgba(255,255,255,.22);
  --display:"Big Shoulders Display","Saira Condensed","Archivo Narrow",Impact,sans-serif;
  --body:"Archivo","Helvetica Neue",Arial,sans-serif;
  --mono:"IBM Plex Mono","SFMono-Regular",Menlo,Consolas,monospace;
  --gutter:20px;
  --max:1180px;
  --radius:2px;
}
@media (min-width:720px){ :root{ --gutter:40px; } }
@media (min-width:1100px){ :root{ --gutter:56px; } }

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-padding-top:96px; }
body{
  margin:0; background:var(--paper-2); color:var(--ink);
  font-family:var(--body); font-size:17px; line-height:1.5;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
@media (min-width:900px){ body{ font-size:18px; } }
img{ display:block; max-width:100%; }
a{ color:inherit; }
p{ margin:0 0 1em; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3{ margin:0; font-weight:800; }
.wrap{ width:100%; max-width:var(--max); margin:0 auto; padding-left:var(--gutter); padding-right:var(--gutter); }

.display{ font-family:var(--display); font-weight:800; text-transform:uppercase; line-height:.95; letter-spacing:-.01em; }
.mono{ font-family:var(--mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; font-weight:500; }
.accent{ color:var(--red); }
.kicker-stars{ color:var(--red); font-size:18px; letter-spacing:.45em; line-height:1; margin:0 0 16px; display:block; }

.skip{ position:absolute; left:-9999px; top:8px; background:var(--paper); color:var(--navy); padding:8px 12px; z-index:100; }
.skip:focus{ left:8px; }
a:focus-visible{ outline:2px solid currentColor; outline-offset:3px; }

/* buttons */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:48px; padding:0 26px;
  font-family:var(--mono); font-size:12px; letter-spacing:.16em; text-transform:uppercase; font-weight:500;
  text-decoration:none; border-radius:var(--radius); border:1.5px solid transparent;
  transition:background-color .15s, color .15s, border-color .15s;
}
.btn-solid{ background:var(--red); border-color:var(--red); color:var(--paper-2); }
.btn-solid:hover{ background:#971436; border-color:#971436; }
.btn-paper{ background:var(--paper-2); border-color:var(--paper-2); color:var(--red); }
.btn-paper:hover{ background:var(--paper); border-color:var(--paper); }
.btn-outline-paper{ border-color:var(--paper-2); color:var(--paper-2); background:transparent; }
.btn-outline-paper:hover{ background:rgba(255,255,255,.1); }
.btn-row{ display:flex; gap:12px; flex-wrap:wrap; }

/* header */
.header{ background:var(--navy); color:var(--paper); border-bottom:4px solid var(--red); position:sticky; top:0; z-index:40; }
.header .wrap{ display:flex; align-items:center; justify-content:space-between; min-height:60px; }
.brand{ display:inline-flex; align-items:center; gap:12px; text-decoration:none; min-height:44px; }
.brand-logo{ height:44px; width:auto; }
.header-cta{ display:inline-flex; min-height:44px; padding:0 14px; }
.header-cta-num{ font-family:var(--display); font-weight:700; font-size:20px; letter-spacing:0; text-transform:none; line-height:1; }
@media (min-width:900px){ .header-cta{ padding:0 20px; } }
@media (max-width:899px){ .brand-logo{ height:38px; } .header-cta-num{ font-size:18px; } }

.ribbon{ height:18px; background:linear-gradient(180deg, var(--red) 0 33.4%, #fff 33.4% 66.7%, var(--navy) 66.7% 100%); }

/* page title */
.legal-head{ background:var(--paper); padding:56px 0 48px; }
@media (min-width:900px){ .legal-head{ padding:96px 0 72px; } }
.legal-head h1{ font-size:clamp(52px,9vw,112px); }
.legal-head .updated{ display:block; color:var(--ink-70); margin:24px 0 0; }
.legal-head .lede{ font-size:clamp(19px,2.2vw,26px); line-height:1.4; margin:16px 0 0; }

/* body: page nav + sections */
.legal{ padding:48px 0 56px; }
@media (min-width:900px){ .legal{ padding:80px 0 112px; } }
.legal-grid{ display:grid; gap:40px; }
@media (min-width:900px){ .legal-grid{ grid-template-columns:240px 1fr; gap:80px; align-items:start; } }

.legal-nav .mono{ display:block; color:var(--ink-70); margin-bottom:12px; }
.legal-nav ul{ border-top:3px solid var(--red); }
.legal-nav a{
  display:flex; align-items:center; min-height:52px; padding:0 2px;
  font-family:var(--display); font-weight:700; text-transform:uppercase; font-size:24px; line-height:1;
  text-decoration:none; border-bottom:1px solid var(--rule);
}
.legal-nav a:hover{ text-decoration:underline; text-underline-offset:5px; text-decoration-thickness:1.5px; }
.legal-nav a[aria-current="page"]{ color:var(--red); }
.legal-nav a[aria-current="page"]::before{ content:"\2605"; margin-right:10px; font-size:.6em; }
@media (min-width:900px){ .legal-nav{ position:sticky; top:104px; } }

.legal-body section{ padding:0 0 36px; margin:0 0 36px; border-bottom:1px solid var(--rule); }
.legal-body section:last-child{ border-bottom:0; margin-bottom:0; padding-bottom:0; }
.legal-body h2{ font-family:var(--display); font-weight:700; text-transform:uppercase; line-height:1; font-size:clamp(26px,3vw,34px); margin:0 0 16px; }
.legal-body p{ font-size:clamp(17px,1.5vw,20px); line-height:1.55; }
.legal-body p:last-child{ margin-bottom:0; }
.legal-body a{ color:var(--red); font-weight:600; text-underline-offset:3px; }
.legal-body ul{ margin:0 0 1em; }
.legal-body ul:last-child{ margin-bottom:0; }
.legal-body li{ position:relative; padding:0 0 0 28px; margin:0 0 12px; font-size:clamp(17px,1.5vw,20px); line-height:1.5; }
.legal-body li::before{ content:"\2605"; position:absolute; left:0; top:.28em; color:var(--red); font-size:.7em; }
.legal-body strong{ font-weight:600; }

/* closing call strip */
.legal-cta{ background:var(--red); color:var(--paper-2); padding:56px 0; }
@media (min-width:900px){ .legal-cta{ padding:96px 0; } }
.legal-cta .kicker-stars{ color:#fff; }
.legal-cta h2{ font-size:clamp(40px,6vw,64px); color:#fff; margin:0 0 20px; }
.legal-cta p{ font-size:clamp(19px,2.2vw,26px); line-height:1.4; margin:0 0 36px; color:#fff; }
.legal-cta .btn{ min-height:56px; padding:0 40px; font-size:13px; }
@media (max-width:899px){ .legal-cta .btn-row{ display:grid; grid-template-columns:1fr 1fr; } }

/* footer */
.footer{ background:var(--navy); color:#fff; padding:48px 0 40px; }
.footer-grid{ display:grid; gap:40px; padding-bottom:32px; border-bottom:1px solid var(--rule-paper); }
@media (min-width:800px){ .footer-grid{ grid-template-columns:1fr 1fr; gap:64px; } }
.footer-brand{ display:flex; flex-direction:column; align-items:flex-start; gap:14px; }
.footer-logo{ height:84px; width:auto; }
.footer-phone{ font-family:var(--display); font-weight:700; font-size:30px; line-height:1; color:#fff; text-decoration:none; padding:6px 0; }
.footer-phone:hover{ text-decoration:underline; text-underline-offset:5px; }
.footer-h{ display:block; color:rgba(255,255,255,.7); margin-bottom:14px; }
.footer-cos li{ display:flex; flex-direction:column; gap:2px; margin:0 0 6px; }
.footer-cos .kind{ font-size:14px; color:rgba(255,255,255,.7); }
.footer-cos a{ font-family:var(--display); font-weight:700; text-transform:uppercase; font-size:24px; line-height:1.1; color:#fff; text-decoration:none; padding:6px 0 10px; min-height:44px; display:inline-flex; align-items:center; }
.footer-cos a:hover{ text-decoration:underline; text-underline-offset:5px; text-decoration-thickness:1.5px; }
.footer .mono{ color:rgba(255,255,255,.8); }
.footer .disclaimer{ font-size:16px; line-height:1.5; max-width:70ch; margin:28px 0 0; color:#fff; }
.footer .fine{ margin-top:24px; display:flex; flex-wrap:wrap; gap:8px 28px; }
.footer-legal{ display:flex; flex-wrap:wrap; gap:4px 28px; margin-top:20px; }
.footer-legal a{ display:inline-flex; align-items:center; min-height:44px; color:#fff; text-underline-offset:4px; }
