/* ============================================================
   Academyship — legal document suite (privacy, terms, AUP, DPA,
   accessibility, cookies). Editorial "statute book" treatment:
   Anek Bangla display + Newsreader serif body on the site dark.
   Shared by all /legal pages. Footer/navbar styling untouched.
   ============================================================ */

/* ── Skip to main content (keyboard accessibility) ─────────── */
.lp-skip-link {
  position: fixed;
  top: 8px;
  left: 8px;
  z-index: 100000;
  transform: translateY(-160%);
  padding: 10px 18px;
  border-radius: 8px;
  background: #101010;
  color: #fff;
  font: 700 0.95rem/1 AnekBangla, Inter, system-ui, sans-serif;
  text-decoration: none;
  box-shadow: 0 6px 20px rgba(0, 0, 0, .28);
  transition: transform .18s ease;
}
.lp-skip-link:focus {
  transform: translateY(0);
  outline: 3px solid #2f67ff;
  outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
  .lp-skip-link { transition: none; }
}

/* Local brand fonts (paths relative to /style → ../Fonts). NibPro = body,
   AnekBangla = display + table of contents. */
@font-face {
  font-family: 'NibPro';
  src: url('../Fonts/NibPro.woff2') format('woff2');
  font-weight: 400 600;
  font-display: swap;
}
@font-face {
  font-family: 'NibPro';
  src: url('../Fonts/NibPro-Bold.woff2') format('woff2');
  font-weight: 700 900;
  font-display: swap;
}
@font-face {
  font-family: 'AnekBangla';
  src: url('../Fonts/AnekBangla.woff2') format('woff2');
  font-weight: 400 600;
  font-display: swap;
}
@font-face {
  font-family: 'AnekBangla';
  src: url('../Fonts/AnekBangla-Bold.woff2') format('woff2');
  font-weight: 700 900;
  font-display: swap;
}

:root {
  --lp-bg: #1a2a42;
  --lp-bg-raise: #213352;
  --lp-text: #f0f3f7;
  --lp-body: #d3dae4;
  --lp-muted: #a7b2c2;
  --lp-accent: #d7fc51;
  --lp-accent-dim: rgba(215, 252, 81, .6);
  --lp-line: rgba(255, 255, 255, .11);
  --lp-line-strong: rgba(255, 255, 255, .2);
  --lp-display: "AnekBangla", "Segoe UI", system-ui, sans-serif;
  --lp-serif: "NibPro", "Segoe UI", system-ui, sans-serif;
}

/* ============================================================
   Legal Centre — document discovery hub.
   Colourful "index board" treatment: multi-accent category system,
   flat sharp corners (no border-radius anywhere), softened off-white
   text (no vivid pure white). Multi-tenant colour tokens below.
   ============================================================ */
:root {
  --c-lime:   #d8f25d;
  --c-blue:   #8ec5ee;
  --c-pink:   #f472b6;
  --c-amber:  #fbbf24;
  --c-purple: #a78bfa;
  --c-green:  #34d399;
  /* light tints — used for box-header text so it reads bright, not dark */
  --cl-lime:   #f1fabf;
  --cl-blue:   #d6ecfb;
  --cl-pink:   #fccce6;
  --cl-amber:  #fde6ad;
  --cl-purple: #ddd2fe;
  --cl-green:  #b3f1da;
  --lc-ink:   #0d1420;   /* dark text for use on colour blocks */
  --lc-panel: #182740;   /* raised panel */
  --lc-panel-2: #101b2e;
}

.lc-shell { position: relative; z-index: 1; max-width: 78rem; margin: 0 auto; padding: 5rem 1.4rem 6rem; }

/* ── Hero: compact, flat, colour-blocked ─────────────────── */
.lc-hero {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--lp-line-strong);
  border-left: 6px solid var(--c-lime);
  background:
    linear-gradient(135deg, var(--lc-panel) 0%, var(--lc-panel-2) 100%);
  padding: clamp(1.8rem, 4vw, 3.2rem) clamp(20rem, 35%, 28rem) clamp(1.8rem, 4vw, 3.2rem) clamp(1.8rem, 4vw, 3.2rem);
}
.lc-hero-content { position: relative; z-index: 1; min-width: 0; }
.lc-hero-image {
  position: absolute;
  inset: 0 0 0 auto;
  z-index: 0;
  display: block;
  width: clamp(18rem, 34%, 27rem);
  height: 100%;
  max-height: none;
  object-fit: cover;
  object-position: center;
}
/* colour bar strip across the top of the hero */
.lc-hero::before {
  content: "";
  position: absolute; z-index: 2; inset: 0 0 auto 0; height: 5px;
  background: linear-gradient(90deg,
    var(--c-lime) 0 20%, var(--c-blue) 20% 40%, var(--c-pink) 40% 60%,
    var(--c-amber) 60% 80%, var(--c-purple) 80% 100%);
}
.lc-hero h1, .lc-section h2, .lc-help h2, .lc-governance h2 { font-family: var(--lp-display); line-height: 1.02; letter-spacing: -.025em; margin: .5rem 0 1rem; }
.lc-hero h1 { max-width: 18ch; font-size: clamp(2.1rem, 4.6vw, 3.9rem); color: #ff75ff; }
.lc-hero h1 em { font-style: normal; color: var(--c-lime); }
.lc-section h2, .lc-help h2, .lc-governance h2 { color: #f9b062; }
.lc-lede { max-width: 46rem; color: var(--lp-body); font-size: clamp(1rem, 1.6vw, 1.18rem); }

.lc-search-wrap { margin-top: 1.9rem; max-width: 44rem; }
.lc-search-wrap label { display: block; margin-bottom: .5rem; font: 700 .78rem/1 var(--lp-display); letter-spacing: .16em; text-transform: uppercase; color: var(--lp-muted); }
.lc-search-wrap input {
  box-sizing: border-box; width: 100%; min-height: 3.1rem;
  border: 1px solid var(--lp-line-strong); border-left: 4px solid var(--c-blue);
  padding: .7rem 1rem; background: rgba(255,255,255,.04);
  color: var(--lp-text); font: 600 1rem/1.4 var(--lp-serif);
}
.lc-search-wrap input::placeholder { color: var(--lp-muted); }
.lc-search-wrap input:hover { background: rgba(255,255,255,.06); }
.lc-search-wrap input:focus-visible, .lc-filter button:focus-visible, .lc-card:focus-visible, .lc-help-links a:focus-visible, .lc-framework-list a:focus-visible, .lc-rights-links a:focus-visible, .lc-empty button:focus-visible { outline: 3px solid var(--c-blue); outline-offset: 3px; }
.lc-results { min-height: 1.5rem; margin: .6rem 0 0; color: var(--lp-muted); font-size: .9rem; }
.lc-empty { margin: .8rem 0 0; color: var(--cl-amber); font: 700 .9rem/1.45 var(--lp-display); }
.lc-empty button { margin-left: .35rem; border: 1px solid var(--c-amber); padding: .35rem .55rem; background: transparent; color: var(--cl-amber); cursor: pointer; font: inherit; }
.lc-empty button:hover { background: var(--c-amber); color: var(--lc-ink); }

/* ── Filter chips: flat, colour on active ────────────────── */
.lc-filter { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem; margin: 2.6rem 0 .75rem; }
.lc-filter-label { margin-right: .2rem; color: var(--lp-muted); font: 700 .76rem/1 var(--lp-display); letter-spacing: .11em; text-transform: uppercase; }
.lc-filter button { min-height: 2.7rem; border: 1px solid var(--lp-line-strong); padding: .5rem 1.05rem; background: transparent; color: var(--lp-body); cursor: pointer; font: 700 .8rem/1 var(--lp-display); letter-spacing: .04em; transition: background-color .18s ease, color .18s ease, border-color .18s ease; }
.lc-filter button:hover { border-color: var(--c-lime); color: var(--lp-text); }
.lc-filter button.is-active { background: var(--c-lime); border-color: var(--c-lime); color: var(--lc-ink); }
.lc-filter-summary { margin: 0 0 2.8rem; color: var(--cl-lime); font: 700 .9rem/1.4 var(--lp-display); }

/* per-section kicker colours so the small labels aren't all one accent */
.lc-hero .lp-kicker { color: var(--c-lime); }
.lc-shell section:nth-of-type(1) .lp-kicker { color: var(--c-lime); }
.lc-shell section:nth-of-type(2) .lp-kicker { color: var(--c-pink); }
.lc-shell section:nth-of-type(3) .lp-kicker { color: var(--c-blue); }
.lc-shell section:nth-of-type(4) .lp-kicker { color: var(--c-amber); }
.lc-shell section:nth-of-type(5) .lp-kicker { color: var(--c-purple); }

.lc-section { margin: 4rem 0; }
.lc-section-head { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 1.4rem; padding-bottom: .9rem; border-bottom: 1px solid var(--lp-line-strong); }
.lc-section-head .lp-kicker { margin-bottom: .55rem; }
.lc-section h2 { font-size: clamp(1.7rem, 3.2vw, 2.7rem); }

.lc-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: 1rem; }
.lc-grid-featured { grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); }

/* ── Cards: each carries a --c category colour ───────────── */
.lc-card {
  --c: var(--c-lime);
  --cl: var(--cl-lime);
  position: relative; display: flex; min-height: 13.5rem; flex-direction: column; align-items: flex-start;
  border: 1px solid var(--lp-line-strong); border-top: 4px solid var(--c);
  padding: 1.3rem; background: var(--lc-panel-2); color: var(--lp-text);
  text-decoration: none; transition: transform .18s ease, background-color .18s ease, box-shadow .18s ease;
}
/* the JS filter sets card.hidden — this author rule must beat `.lc-card { display:flex }`,
   otherwise the [hidden] attribute is ignored and filtering does nothing */
.lc-card[hidden] { display: none !important; }
.lc-card:hover { transform: translateY(-4px); background: var(--lc-panel); box-shadow: 8px 8px 0 var(--c); }
.lc-card:hover .lc-open { color: var(--c); }
/* featured accent card — solid colour block */
.lc-card-accent { background: var(--c-lime); border-color: var(--c-lime); color: var(--lc-ink); }
.lc-card-accent:hover { background: var(--c-lime); box-shadow: 8px 8px 0 rgba(255,255,255,.22); }
.lc-card-accent .lc-meta, .lc-card-accent:hover .lc-open { color: #2f3a12; }
.lc-card-accent .lc-badge { background: var(--lc-ink); color: var(--c-lime); border-color: var(--lc-ink); }

.lc-badge { display: inline-block; border: 1px solid var(--c); background: var(--c); color: var(--lc-ink); padding: .28rem .6rem; font: 700 .66rem/1 var(--lp-display); letter-spacing: .1em; text-transform: uppercase; }
.lc-card h3, .lc-card h4 { margin: 1.1rem 0 .45rem; font: 700 clamp(1.25rem, 1.8vw, 1.55rem)/1.08 var(--lp-display); color: var(--cl); }
/* featured lime card sits on a lime block — keep its title dark for contrast */
.lc-card-accent h3, .lc-card-accent h4 { color: var(--lc-ink); }
.lc-card p { margin: 0; color: inherit; opacity: .92; line-height: 1.5; font-size: .95rem; }
.lc-meta { margin-top: auto; padding-top: 1.1rem; color: var(--lp-muted); font: 600 .78rem/1.3 var(--lp-display); }
.lc-open { margin-top: .85rem; font: 700 .88rem/1.2 var(--lp-display); color: var(--lp-text); transition: color .18s ease; }
.lc-open b { margin-left: .25rem; font-size: 1.2em; }

/* category colour classes */
.c-lime   { --c: var(--c-lime);   --cl: var(--cl-lime); }
.c-blue   { --c: var(--c-blue);   --cl: var(--cl-blue); }
.c-pink   { --c: var(--c-pink);   --cl: var(--cl-pink); }
.c-amber  { --c: var(--c-amber);  --cl: var(--cl-amber); }
.c-purple { --c: var(--c-purple); --cl: var(--cl-purple); }
.c-green  { --c: var(--c-green);  --cl: var(--cl-green); }

/* ── All documents: a complete, immediately-visible directory ─ */
.lc-document-directory { margin-top: 0; }
.lc-directory { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1rem; align-items: start; }
.lc-directory-group > h3 { min-height: 2.4rem; margin: 0 0 .7rem; padding: .35rem .6rem; border-left: 3px solid var(--mc, var(--c-lime)); background: var(--lc-panel); color: var(--lp-text); font: 700 .78rem/1.25 var(--lp-display); letter-spacing: .07em; text-transform: uppercase; }
.lc-directory-group:nth-child(1) > h3 { --mc: var(--c-lime); }
.lc-directory-group:nth-child(2) > h3 { --mc: var(--c-blue); }
.lc-directory-group:nth-child(3) > h3 { --mc: var(--c-pink); }
.lc-directory-group:nth-child(4) > h3 { --mc: var(--c-amber); }
.lc-directory-group:nth-child(5) > h3 { --mc: var(--c-purple); }
.lc-directory-list { display: grid; gap: .7rem; }
.lc-directory--filtered { grid-template-columns: minmax(0, 1fr); }
.lc-directory--filtered .lc-directory-list { grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); }
.lc-directory-card { min-height: 0; padding: .9rem; }
.lc-directory-card h4 { margin: .7rem 0 0; font-size: 1.05rem; }
.lc-directory-card .lc-meta { padding-top: .7rem; }
.lc-directory-card .lc-open { margin-top: .55rem; font-size: .78rem; }

/* ── Help panel ──────────────────────────────────────────── */
.lc-help { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 2rem; align-items: center; margin: 4.5rem 0; border: 1px solid var(--lp-line-strong); border-left: 6px solid var(--c-pink); padding: clamp(1.5rem, 4vw, 3rem); background: var(--lc-panel-2); }
.lc-help h2 { font-size: clamp(1.7rem, 3vw, 2.6rem); }
.lc-help p { color: var(--lp-body); }
.lc-help-links { display: flex; flex-wrap: wrap; gap: .6rem; }
.lc-help-links a { min-height: 2.7rem; box-sizing: border-box; display: inline-flex; align-items: center; border: 1px solid var(--lp-line-strong); padding: .55rem .85rem; color: var(--lp-text); font: 700 .82rem/1 var(--lp-display); text-decoration: none; transition: background-color .18s ease, color .18s ease, border-color .18s ease; }
.lc-help-links a:nth-child(6n+1):hover { background: var(--c-lime); border-color: var(--c-lime); color: var(--lc-ink); }
.lc-help-links a:nth-child(6n+2):hover { background: var(--c-blue); border-color: var(--c-blue); color: var(--lc-ink); }
.lc-help-links a:nth-child(6n+3):hover { background: var(--c-pink); border-color: var(--c-pink); color: var(--lc-ink); }
.lc-help-links a:nth-child(6n+4):hover { background: var(--c-amber); border-color: var(--c-amber); color: var(--lc-ink); }
.lc-help-links a:nth-child(6n+5):hover { background: var(--c-purple); border-color: var(--c-purple); color: var(--lc-ink); }
.lc-help-links a:nth-child(6n+6):hover { background: var(--c-green); border-color: var(--c-green); color: var(--lc-ink); }

.lc-governance { max-width: 66rem; border-top: 1px solid var(--lp-line-strong); padding-top: 2.6rem; }
.lc-governance h2 { font-size: clamp(1.6rem, 3vw, 2.4rem); }
.lc-governance a { color: var(--c-blue); }

/* Legal Centre additions: concise pathways without changing document-card discovery. */
.lc-commitment-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.lc-card--commitment { min-height: 12rem; background: linear-gradient(145deg, var(--lc-panel), var(--lc-panel-2)); }
.lc-card--audience { min-height: 11.25rem; }
.lc-framework { border: 1px solid var(--lp-line-strong); border-left: 6px solid var(--c-blue); padding: clamp(1.4rem, 3vw, 2.4rem); background: var(--lc-panel-2); }
.lc-framework .lc-section-head { margin-bottom: 1.1rem; }
.lc-framework-list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .8rem; margin: 0; padding: 0; list-style: none; counter-reset: framework; }
.lc-framework-list li { counter-increment: framework; }
.lc-framework-list a { display: block; min-height: 100%; border: 1px solid var(--lp-line-strong); border-left: 4px solid var(--c-blue); padding: 1rem; color: var(--lp-text); text-decoration: none; background: var(--lc-panel); }
.lc-framework-list a::before { content: "0" counter(framework); display: block; margin-bottom: .7rem; color: var(--c-blue); font: 800 .72rem/1 var(--lp-display); letter-spacing: .12em; }
.lc-framework-list strong, .lc-framework-list span { display: block; }
.lc-framework-list strong { font: 800 1rem/1.2 var(--lp-display); color: var(--cl-blue); }
.lc-framework-list li:nth-child(1) strong { color: var(--cl-lime); }
.lc-framework-list li:nth-child(2) strong { color: var(--cl-blue); }
.lc-framework-list li:nth-child(3) strong { color: var(--cl-pink); }
.lc-framework-list li:nth-child(4) strong { color: var(--cl-amber); }
.lc-framework-list li:nth-child(5) strong { color: var(--cl-purple); }
.lc-framework-list span { margin-top: .45rem; color: var(--lp-body); font-size: .9rem; line-height: 1.45; }
.lc-framework-list a:hover { border-color: var(--c-blue); box-shadow: 6px 6px 0 rgba(142,197,238,.22); }
.lc-rights { border-top: 1px solid var(--lp-line-strong); padding-top: 2.6rem; }
.lc-rights-links { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: .75rem; }
.lc-rights-links a { display: block; min-height: 8rem; border: 1px solid var(--lp-line-strong); border-top: 4px solid var(--c-green); padding: 1rem; color: var(--lp-text); text-decoration: none; background: var(--lc-panel-2); }
.lc-rights-links a:nth-child(6n+2) { border-top-color: var(--c-blue); }
.lc-rights-links a:nth-child(6n+3) { border-top-color: var(--c-pink); }
.lc-rights-links a:nth-child(6n+4) { border-top-color: var(--c-amber); }
.lc-rights-links a:nth-child(6n+5) { border-top-color: var(--c-purple); }
.lc-rights-links a:nth-child(6n+6) { border-top-color: var(--c-lime); }
.lc-rights-links strong, .lc-rights-links span { display: block; }
.lc-rights-links strong { font: 800 1rem/1.2 var(--lp-display); }
.lc-rights-links span { margin-top: .5rem; color: var(--lp-body); font-size: .9rem; line-height: 1.45; }
.lc-rights-links a:hover { background: var(--lc-panel); transform: translateY(-2px); }
[data-card-group][hidden] { display: none !important; }
[data-card-section][hidden] { display: none !important; }

@media (max-width: 900px) { .lc-hero { display: grid; grid-template-columns: 1fr; gap: 1.5rem; padding: clamp(1.8rem, 4vw, 3.2rem); } .lc-hero-image { position: relative; inset: auto; width: min(100%, 22rem); height: auto; margin: 0 auto; object-fit: contain; } .lc-directory, .lc-framework-list { grid-template-columns: 1fr; } }
@media (max-width: 760px) { .lc-commitment-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 680px) { .lc-shell { padding-top: 3.5rem; } .lc-hero { padding: 1.4rem; } .lc-filter { flex-wrap: nowrap; overflow-x: auto; padding-bottom: .4rem; } .lc-filter-label, .lc-filter button { flex: 0 0 auto; } .lc-help { grid-template-columns: 1fr; } .lc-section-head { display: block; } .lc-framework { padding: 1.25rem; } }
@media (max-width: 480px) { .lc-commitment-grid { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .lc-filter button, .lc-card, .lc-help-links a { transition: none; } .lc-card:hover { transform: none; } }

body.lp-body {
  margin: 0;
  background: var(--lp-bg);
  color: var(--lp-text);
  font-family: var(--lp-serif);
  letter-spacing: .012em;
  line-height: 1.8;
  -webkit-font-smoothing: antialiased;
}
/* Keep the compact display type unchanged; the tracking above is for NibPro copy. */
.lc-card h3, .lc-card h4, .lc-meta, .lc-open, .lc-help-links a, .lc-framework-list strong, .lc-rights-links strong { letter-spacing: normal; }

/* faint atmosphere — barely-there lime glow top-left, vignette bottom */
body.lp-body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background:
    radial-gradient(60rem 30rem at 12% -8%, rgba(215, 252, 81, .045), transparent 60%),
    radial-gradient(50rem 26rem at 100% 110%, rgba(142, 197, 238, .035), transparent 65%);
}

::selection { background: var(--lp-accent); color: #10130a; }

/* ---- reading progress ---- */
.lp-progress {
  position: fixed;
  top: 0; left: 0;
  width: 100%;
  height: 2px;
  z-index: 90;
  pointer-events: none;
  background: transparent;
}
.lp-progress > i {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, var(--lp-accent), #aef2c3);
  transform-origin: 0 50%;
  transform: scaleX(0);
}

/* ---- page shell ---- */
.lp-shell {
  position: relative;
  z-index: 1;
  max-width: 74rem;
  margin: 0 auto;
  padding: 5.25rem 1.4rem 6rem;
}

/* ---- document header ---- */
.lp-head { border-bottom: 1px solid var(--lp-line-strong); padding-bottom: 2.2rem; }
.lp-kicker {
  font-family: var(--lp-display);
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .34em;
  text-transform: uppercase;
  color: var(--lp-accent);
}
.lp-head h1 {
  font-family: var(--lp-display);
  font-weight: 600;
  font-size: clamp(2.5rem, 6.5vw, 4.4rem);
  line-height: 1.04;
  letter-spacing: -.015em;
  text-transform: capitalize;
  margin: .45rem 0 .9rem;
}
.lp-updated {
  color: var(--lp-muted);
  font-style: italic;
  font-size: .98rem;
  margin: 0 0 1.6rem;
}
.lp-updated a { color: var(--lp-accent); }

/* suite chips — the six documents */
.lp-suite { display: flex; flex-wrap: wrap; gap: .5rem; }
.lp-suite a {
  font-family: var(--lp-display);
  font-size: .8rem;
  font-weight: 500;
  letter-spacing: .04em;
  text-decoration: none;
  color: var(--lp-muted);
  border: 1px solid var(--lp-line-strong);
  border-radius: 999px;
  padding: .34rem 1rem .42rem;
  transition: color .18s, border-color .18s, background .18s;
}
.lp-suite a:hover { color: var(--lp-text); border-color: var(--lp-accent-dim); }
.lp-suite a[aria-current="page"] {
  color: #10130a;
  background: var(--lp-accent);
  border-color: var(--lp-accent);
  font-weight: 600;
}

/* ---- columns: sticky TOC rail + document ---- */
.lp-cols { display: grid; grid-template-columns: 1fr; gap: 0 4.5rem; }
@media (min-width: 1100px) {
  .lp-cols { grid-template-columns: 17rem minmax(0, 1fr); }
}

.lp-toc-rail { padding-top: 2.4rem; }
@media (min-width: 1100px) {
  .lp-toc-rail > .lp-toc {
    position: sticky;
    top: 6.5rem;
    max-height: calc(100vh - 8rem);
    overflow-y: auto;
    overflow-x: hidden;
    /* pointy corners on the scrollable rail so the scrollbar track sits flush
       to the edge — no rounded-corner notch clipping the bar */
    border-radius: 0;
    /* Firefox */
    scrollbar-width: thin;
    scrollbar-color: var(--lp-accent-dim) transparent;
  }
  /* premium scrollbar (WebKit / Chromium / Edge) — a floating accent pill */
  .lp-toc-rail > .lp-toc::-webkit-scrollbar { width: 11px; }
  .lp-toc-rail > .lp-toc::-webkit-scrollbar-track {
    background: rgba(255, 255, 255, .04);
    border-left: 1px solid var(--lp-line);
  }
  .lp-toc-rail > .lp-toc::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, .22);
    border-radius: 999px;
    border: 3px solid transparent;       /* insets the pill, so it floats in the track */
    background-clip: content-box;
    min-height: 44px;
    transition: background-color .18s;
  }
  .lp-toc-rail > .lp-toc::-webkit-scrollbar-thumb:hover {
    background: var(--lp-accent);
    border-width: 2px;                   /* pill grows a touch on hover */
  }
  .lp-toc-rail > .lp-toc::-webkit-scrollbar-thumb:active {
    background: var(--lp-accent);
  }
}

.lp-toc { border: 1px solid var(--lp-line); border-radius: .9rem; background: rgba(255, 255, 255, .025); }
.lp-toc summary {
  font-family: var(--lp-display);
  font-weight: 600;
  font-size: .82rem;
  letter-spacing: .12em;
  text-transform: capitalize;
  color: var(--lp-muted);
  padding: .95rem 1.2rem;
  cursor: pointer;
  list-style: none;
  user-select: none;
}
.lp-toc summary::-webkit-details-marker { display: none; }
.lp-toc summary::after { content: "+"; float: right; color: var(--lp-accent); font-family: var(--lp-display); }
.lp-toc[open] summary::after { content: "–"; }
@media (min-width: 1100px) {
  .lp-toc summary { pointer-events: none; }
  .lp-toc summary::after { display: none; }
}

.lp-toc ol {
  margin: 0;
  padding: .2rem 0 1rem;
  list-style: none;
  counter-reset: toc;
}
.lp-toc li { counter-increment: toc; }
.lp-toc ol a {
  display: flex;
  gap: .65rem;
  align-items: baseline;
  padding: .26rem 1.2rem .26rem 1.05rem;
  font-family: var(--lp-display);
  font-size: .865rem;
  font-weight: 400;
  line-height: 1.45;
  text-transform: capitalize;
  color: var(--lp-muted);
  text-decoration: none;
  border-left: 2px solid transparent;
  transition: color .15s, border-color .15s;
}
.lp-toc ol a::before {
  content: counter(toc, decimal-leading-zero);
  font-size: .72rem;
  font-weight: 600;
  color: rgba(255, 255, 255, .28);
  min-width: 1.45em;
}
.lp-toc ol a:hover { color: var(--lp-text); }
.lp-toc ol a.is-active {
  color: var(--lp-accent);
  border-left-color: var(--lp-accent);
}
.lp-toc ol a.is-active::before { color: var(--lp-accent-dim); }

/* ---- the document ---- */
.lp-doc { max-width: 46rem; padding-top: 1rem; min-width: 0; }

.lp-doc h2 {
  font-family: var(--lp-display);
  font-weight: 600;
  font-size: 1.5rem;
  line-height: 1.25;
  letter-spacing: -.01em;
  text-transform: capitalize;
  color: #a4fff7;
  margin: 3.4rem 0 1rem;
  padding-top: 2rem;
  border-top: 1px solid var(--lp-line);
  position: relative;
  scroll-margin-top: 6.5rem;
}
.lp-doc h2 .n {
  display: block;
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .26em;
  color: var(--lp-accent);
  margin-bottom: .3rem;
}
/* hover anchor */
.lp-doc h2 .a {
  position: absolute;
  right: 100%;
  bottom: .1em;
  padding-right: .45rem;
  font-size: 1.05rem;
  font-weight: 400;
  color: var(--lp-accent-dim);
  text-decoration: none;
  opacity: 0;
  transition: opacity .15s;
}
.lp-doc h2:hover .a { opacity: 1; }

.lp-doc p, .lp-doc li { color: var(--lp-body); font-size: .95rem; }
.lp-doc strong { color: var(--lp-text); font-weight: 600; }
.lp-doc a { color: var(--lp-accent); text-decoration-thickness: 1px; text-underline-offset: 3px; }
.lp-doc a:hover { text-decoration-thickness: 2px; }
.lp-doc ul { padding-left: 1.25rem; }
.lp-doc li { margin: .45rem 0; }
.lp-doc li::marker { color: var(--lp-accent-dim); }

/* lead paragraph under h1 (optional) */
.lp-doc > p:first-child { font-size: 1.18rem; color: var(--lp-text); }

/* hard-commitment callout */
.lp-callout {
  border: 1px solid rgba(215, 252, 81, .28);
  border-left: 3px solid var(--lp-accent);
  background: rgba(215, 252, 81, .05);
  border-radius: .9rem;
  padding: 1.05rem 1.35rem;
  margin: 1.2rem 0;
}
.lp-callout p, .lp-callout li { color: var(--lp-text); }
ul.lp-callout { padding-left: 2.4rem; }

/* data tables — cookie list, subprocessor list */
.lp-table-wrap {
  overflow-x: auto;
  margin: 1.3rem 0;
  border: 1px solid var(--lp-line-strong);
  border-radius: .5rem;
  scrollbar-width: thin;
  scrollbar-color: var(--lp-accent-dim) transparent;
}
.lp-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .85rem;
  min-width: 34rem;
}
.lp-table th,
.lp-table td {
  text-align: left;
  padding: .68rem .9rem;
  border-bottom: 1px solid var(--lp-line);
  vertical-align: top;
  line-height: 1.5;
}
.lp-table thead th {
  font-family: var(--lp-display);
  font-weight: 600;
  letter-spacing: .015em;
  color: var(--lp-text);
  background: rgba(255, 255, 255, .045);
  text-transform: capitalize;
  white-space: nowrap;
}
.lp-table tbody tr:last-child td { border-bottom: 0; }
.lp-table tbody tr:hover td { background: rgba(255, 255, 255, .02); }
.lp-table td { color: var(--lp-body); }
.lp-table td strong { color: var(--lp-text); }
.lp-table code {
  font-family: ui-monospace, "Cascadia Code", "Consolas", monospace;
  font-size: .8em;
  color: var(--lp-text);
  background: rgba(255, 255, 255, .07);
  padding: .12em .4em;
  border-radius: .25rem;
}

/* related-documents footer row */
.lp-doc .lp-related { display: flex; flex-wrap: wrap; gap: .6rem 1.4rem; }

/* ---- back to top ---- */
.lp-top {
  position: fixed;
  right: 1.4rem;
  bottom: 1.6rem;
  z-index: 80;
  width: 2.9rem;
  height: 2.9rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  border: 1px solid var(--lp-line-strong);
  background: rgba(17, 20, 26, .85);
  backdrop-filter: blur(6px);
  color: var(--lp-accent);
  font-family: var(--lp-display);
  font-size: 1.1rem;
  text-decoration: none;
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity .2s, transform .2s, visibility .2s;
}
.lp-top.is-show { opacity: 1; visibility: visible; transform: none; }
.lp-top:hover { border-color: var(--lp-accent-dim); }

@media (prefers-reduced-motion: reduce) {
  .lp-top, .lp-suite a, .lp-toc ol a { transition: none; }
  html { scroll-behavior: auto !important; }
}
html { scroll-behavior: smooth; }

/* ---- print: a clean white legal document ---- */
@media print {
  body.lp-body { background: #fff; color: #111; }
  body.lp-body::before, .lp-progress, .lp-top, .lp-toc-rail, .lp-suite,
  as-navbar, as-footer { display: none !important; }
  .lp-shell { padding: 0; max-width: 100%; }
  .lp-head h1, .lp-doc h2 { color: #111; }
  .lp-doc { max-width: 100%; }
  .lp-doc p, .lp-doc li { color: #222; font-size: 11pt; }
  .lp-doc strong { color: #000; }
  .lp-doc a { color: #000; text-decoration: underline; }
  .lp-kicker, .lp-doc h2 .n { color: #555; }
  .lp-callout { border-color: #bbb; background: #f5f5f5; }
  .lp-callout p, .lp-callout li { color: #222; }
}
