/* ============================================================
   RANGELIGHT - Privacy Policy (long-form legal reading page)
   Homepage masthead + footer + hex throughput background.
   Readability + trust first. D4 Signal & Smoke · Teal Law
   (teal = interactive glow only; H2 headings are amber, not teal).
   ============================================================ */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--rl-smoke);color:var(--rl-bone);overflow-x:hidden}
.shell{max-width:1140px;margin:0 auto;padding:0 32px}
@media(max-width:600px){.shell{padding:0 22px}}

.skip-link{position:absolute;left:-9999px;top:0;z-index:100;background:var(--rl-amber);
  color:var(--rl-amber-ink);padding:10px 16px;border-radius:0 0 8px 0;
  font-family:var(--rl-font-display);font-weight:600}
.skip-link:focus{left:0}

/* ---- reusable interior masthead (reuses homepage look; no email CTA) ---- */
.site-header{position:sticky;top:0;z-index:40;
  background:rgba(14,13,12,.78);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--rl-line)}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;height:68px;gap:18px}
.site-header__brand{display:flex;align-items:center;gap:14px;text-decoration:none}
.site-nav{display:flex;align-items:center;gap:24px}
.site-nav__link{background:none;border:0;cursor:pointer;padding:6px 2px;text-decoration:none;
  font-family:var(--rl-font-body);font-size:14.5px;color:var(--rl-dim);
  transition:color .3s var(--rl-ease)}
.site-nav__link:hover{color:var(--rl-bone)}
.site-header__right{display:flex;align-items:center;gap:14px}
@media(max-width:820px){.site-nav__link{display:none}}

/* ============================================================
   PAGE HERO - heading over the hex/caustic field
   ============================================================ */
.legal-hero{position:relative;overflow:hidden;border-bottom:1px solid var(--rl-line)}
.legal-hero__field{position:absolute;inset:0;z-index:0;overflow:hidden;opacity:.42}
.legal-hero__water{position:absolute;inset:-12%;
  background:
    radial-gradient(42% 55% at 26% 28%, rgba(245,165,35,.15), transparent 60%),
    radial-gradient(46% 50% at 80% 64%, rgba(232,116,44,.13), transparent 62%),
    var(--rl-smoke);
  animation:legal-water 38s var(--rl-ease-inout) infinite alternate;will-change:transform}
@keyframes legal-water{0%{transform:translate3d(-2%,-1%,0) scale(1.05)}
  100%{transform:translate3d(2.5%,2%,0) scale(1.12)}}
canvas.rl-caustics{position:absolute;inset:0;width:100%;height:100%;display:block;
  mix-blend-mode:screen}
.legal-hero__scrim{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(180deg, rgba(14,13,12,.6) 0%, rgba(14,13,12,.5) 50%, var(--rl-smoke) 100%),
    radial-gradient(120% 90% at 20% 10%, rgba(14,13,12,.25), rgba(14,13,12,.55) 70%)}
.legal-hero__inner{position:relative;z-index:2;padding:72px 0 56px}
@media(max-width:600px){.legal-hero__inner{padding:48px 0 40px}}
.legal-hero__col{max-width:720px}
.legal-eyebrow{font-family:var(--rl-font-mono);font-size:12px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--rl-amber);margin:0 0 14px}
.legal-title{font-family:var(--rl-font-display);font-weight:500;
  font-size:clamp(34px,5vw,52px);letter-spacing:-.015em;line-height:1.05;
  color:var(--rl-bone);margin:0;text-shadow:0 1px 18px rgba(14,13,12,.6)}
.legal-dates{font-family:var(--rl-font-mono);font-size:13px;line-height:1.6;
  color:var(--rl-dim);margin:18px 0 0}
.legal-entity{font-size:14.5px;line-height:1.6;color:var(--rl-faint);margin:6px 0 0}
.legal-entity a{color:var(--rl-faint);text-decoration:underline;text-underline-offset:2px;
  text-decoration-color:var(--rl-line-2)}
.legal-entity a:hover{color:var(--rl-dim)}

/* ============================================================
   READING TOOLBAR - accessibility controls (S/M/L + high contrast)
   ============================================================ */
.reading-bar{position:sticky;top:68px;z-index:30;
  background:rgba(14,13,12,.86);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--rl-line)}
.reading-bar__inner{display:flex;align-items:center;justify-content:space-between;gap:18px;
  max-width:720px;margin:0 auto;padding:11px 0}
.reading-bar__group{display:flex;align-items:center;gap:11px}
.reading-bar__label{font-family:var(--rl-font-mono);font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--rl-faint)}
/* segmented text-size control */
.sizeseg{display:inline-flex;border:1px solid var(--rl-line-2);border-radius:8px;overflow:hidden}
.sizeseg button{appearance:none;border:0;cursor:pointer;background:transparent;
  font-family:var(--rl-font-display);font-weight:600;color:var(--rl-dim);
  padding:6px 12px;line-height:1;transition:background var(--rl-transition),color var(--rl-transition)}
.sizeseg button + button{border-left:1px solid var(--rl-line-2)}
.sizeseg button:hover{color:var(--rl-bone)}
.sizeseg button[aria-pressed="true"]{background:rgba(245,165,35,.14);color:var(--rl-amber-soft)}
.sizeseg button:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--rl-teal-lite)}
.sizeseg button.s{font-size:12px}
.sizeseg button.m{font-size:14px}
.sizeseg button.l{font-size:16px}
/* high-contrast toggle */
.hc-toggle{display:inline-flex;align-items:center;gap:9px;cursor:pointer;
  font-family:var(--rl-font-body);font-size:13px;color:var(--rl-dim);
  background:none;border:0;padding:6px 4px}
.hc-toggle:hover{color:var(--rl-bone)}
.hc-switch{position:relative;width:38px;height:21px;border-radius:999px;flex:none;
  background:var(--rl-smoke-3);border:1px solid var(--rl-line-2);
  transition:background var(--rl-transition),border-color var(--rl-transition)}
.hc-switch::after{content:"";position:absolute;top:2px;left:2px;width:15px;height:15px;
  border-radius:50%;background:var(--rl-faint);transition:transform var(--rl-transition),
    background var(--rl-transition)}
.hc-toggle[aria-pressed="true"] .hc-switch{background:rgba(245,165,35,.22);
  border-color:rgba(245,165,35,.5)}
.hc-toggle[aria-pressed="true"] .hc-switch::after{transform:translateX(17px);
  background:var(--rl-amber)}
.hc-toggle:focus-visible{outline:none}
.hc-toggle:focus-visible .hc-switch{box-shadow:var(--rl-glow-teal)}

/* ============================================================
   THE ARTICLE
   ============================================================ */
.legal-body{padding:56px 0 40px}
.legal-col{max-width:720px;margin:0 auto;padding:0 32px}
@media(max-width:600px){.legal-col{padding:0 22px}}

/* text-size scale (set on .legal-article via data-size) */
.legal-article{--legal-fs:17px}
.legal-article[data-size="s"]{--legal-fs:15.5px}
.legal-article[data-size="m"]{--legal-fs:17px}
.legal-article[data-size="l"]{--legal-fs:19.5px}

.legal-article h2{font-family:var(--rl-font-display);font-weight:600;
  font-size:calc(var(--legal-fs) * 1.42);line-height:1.18;letter-spacing:-.005em;
  color:var(--rl-amber);margin:0 0 16px;scroll-margin-top:130px}
.legal-article h3{font-family:var(--rl-font-display);font-weight:600;
  font-size:calc(var(--legal-fs) * 1.12);line-height:1.3;
  color:var(--rl-bone);margin:26px 0 10px}
.legal-article p{font-family:var(--rl-font-body);font-size:var(--legal-fs);
  line-height:1.68;color:var(--rl-dim);margin:0 0 15px;max-width:68ch;text-wrap:pretty}
.legal-article p strong,.legal-article li strong{color:var(--rl-bone);font-weight:600}
/* all-caps disclaimer / liability blocks - kept verbatim, set quieter */
.legal-article p.legal-allcaps{font-size:calc(var(--legal-fs) * .86);line-height:1.66;
  letter-spacing:.02em;color:var(--rl-dim);border-left:2px solid var(--rl-line-2);
  padding-left:16px;margin-bottom:15px}
.legal-article ul{margin:0 0 15px;padding-left:22px}
.legal-article li{font-family:var(--rl-font-body);font-size:var(--legal-fs);line-height:1.6;
  color:var(--rl-dim);margin:0 0 7px;max-width:66ch}
.legal-article li::marker{color:var(--rl-faint)}
.legal-article a{color:var(--rl-amber);text-decoration:none;
  border-bottom:1px solid rgba(245,165,35,.42);border-radius:2px;
  transition:color var(--rl-transition),border-color var(--rl-transition),
    text-shadow var(--rl-transition)}
.legal-article a:hover,.legal-article a:focus-visible{outline:none;color:var(--rl-amber-soft);
  border-color:rgba(111,196,210,.7);text-shadow:0 0 16px rgba(111,196,210,.55)}

/* section block + hairline divider between ## sections */
.legal-section{padding:0 0 4px}
.legal-section + .legal-section{margin-top:30px;padding-top:34px;
  border-top:1px solid var(--rl-line)}
.legal-lead{margin-bottom:30px}

/* contact block */
.legal-contact{font-family:var(--rl-font-mono);font-size:14px;line-height:1.8;
  color:var(--rl-dim);margin:0}
.legal-contact a{font-family:var(--rl-font-mono)}

/* ============================================================
   FOOTER (homepage footer + locked OGC disclaimer)
   ============================================================ */
.site-footer{border-top:1px solid var(--rl-line);padding:54px 0 64px;margin-top:40px}
.site-footer__top{display:flex;align-items:flex-start;justify-content:space-between;gap:32px;flex-wrap:wrap}
.site-footer__tag{font-family:var(--rl-font-mono);font-size:12px;color:var(--rl-faint);margin:14px 0 0}
.site-footer__nav{display:flex;gap:26px;flex-wrap:wrap}
.site-footer__nav a{color:var(--rl-dim);font-size:14px;text-decoration:none}
.site-footer__nav a:hover{color:var(--rl-bone)}
.site-footer__rule{height:1px;background:var(--rl-line);margin:34px 0 26px}
.site-footer__legal{display:flex;align-items:flex-start;justify-content:space-between;gap:28px;flex-wrap:wrap}
.site-footer__disclaimer{font-size:13px;line-height:1.6;color:var(--rl-faint);max-width:74ch;margin:0}
.site-footer__meta{font-family:var(--rl-font-mono);font-size:12px;color:var(--rl-faint);white-space:nowrap}

/* ============================================================
   HIGH-CONTRAST MODE - lift secondary text + borders for AA+
   (kept warm; no teal introduced)
   ============================================================ */
.hc{--rl-dim:#D8D2C8;--rl-faint:#C4BCB0;--rl-line:#3A352F;--rl-line-2:#4A443C}
.hc .legal-hero__field{opacity:.22}
.hc .legal-hero__scrim{background:
  linear-gradient(180deg, rgba(14,13,12,.78) 0%, rgba(14,13,12,.7) 50%, var(--rl-smoke) 100%)}
.hc .site-footer__disclaimer,.hc .legal-entity{color:#C4BCB0}

@media (prefers-reduced-motion: reduce){
  .legal-hero__water{animation:none}
}
