/* COVERAGE: legal-page, legal-wrap, legal-hero, legal-kicker, legal-hero-grid, legal-title, legal-lead, legal-actions, legal-btn, legal-btn--primary, legal-status, legal-stat-row, legal-stat, legal-summary, legal-summary-grid, legal-summary-card, legal-main, legal-layout, legal-side, legal-doc, legal-doc-head, legal-doc__body, legal-support */

/* =====================================================================
   askaide.com — pages juridiques (CGU / charte / confidentialité / cookies)
   akmk 3D reskin (2026)
   Scope  : everything inside main.legal-page (.legal-wrap family)
   Views  : confidentialite.blade.php + legal-info.blade.php (markup frozen)
   Theme  : light tokens on .legal-page/.legal-wrap, dark under
            html[data-theme="dark"] AND prefers-color-scheme guarded by
            html:not([data-theme="light"])
   Cascade: loaded after legal-pages-2026.css. Also has to beat
            public-pages-unified-2026.min.css which forces !important
            Fraunces/forest/coral rules on .legal-page at (0,2,0)–(0,3,0);
            every counter uses `html body .legal-page …` + !important and
            is flagged "UNIFIED" in a comment.
   ===================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@10..48,600;10..48,700;10..48,800&family=Figtree:wght@400;500;600;700&display=swap');

/* ── 1. TOKENS ── */
.legal-page, .legal-wrap {
  --ground:#FAF7F2; --surface:#FFFFFF; --surface-2:#F4F0E8; --raise:#FBF9F5;
  --ink:#191C26; --ink-soft:#565B6B; --ink-faint:#8B8F9C; --line:#ECE6DC; --line-2:#DED7C9;
  --primary:#2B4CF0; --primary-ink:#FFFFFF; --primary-soft:#EAEEFF; --primary-line:#CFD8FF; --violet:#6A4BF2;
  --accent:#FF6A45; --accent-soft:#FFEDE7; --accent-ink:#B33A1E;
  --trust:#0FA968; --trust-soft:#E3F6ED; --trust-ink:#0A7A4B; --gold:#F5A623; --danger:#E5484D; --danger-soft:#FDECEC;
  --shadow:0 1px 1px rgba(25,28,38,.05),0 4px 8px -3px rgba(25,28,38,.10),0 16px 30px -12px rgba(25,28,38,.16);
  --lift:0 24px 44px -14px rgba(25,28,38,.24),0 46px 100px -30px rgba(43,76,240,.28);
  --edge:inset 0 1.5px 0 rgba(255,255,255,.9),inset 0 -1px 0 rgba(25,28,38,.03);
  --r:26px; --r-sm:15px; --r-pill:999px;
  --display:'Bricolage Grotesque','Figtree',system-ui,sans-serif;
  --body:'Figtree',system-ui,-apple-system,'Segoe UI',sans-serif;
  --br:8px;               /* focus-ring radius, see §13 */
  --sticky-top:96px;      /* header .akh (sticky) + breathing room */
  --measure:72ch;         /* reading column */
  color-scheme:light;
}

html[data-theme="dark"] .legal-page,
html[data-theme="dark"] .legal-wrap {
  --ground:#0E1017; --surface:#171A22; --surface-2:#1E2230; --raise:#1B1F29;
  --ink:#F1EFEA; --ink-soft:#A7ABB8; --ink-faint:#767B8B; --line:#272B37; --line-2:#353B4B;
  --primary:#6B84FF; --primary-ink:#0C1024; --primary-soft:#1A2242; --primary-line:#2C3768; --violet:#8B78FF;
  --accent:#FF7E5C; --accent-soft:#39241D; --accent-ink:#FFB59F;
  --trust:#34D399; --trust-soft:#122A20; --trust-ink:#7EE9BE; --gold:#FBBF52; --danger:#FF7B80; --danger-soft:#3A1F22;
  --shadow:0 1px 1px rgba(0,0,0,.5),0 6px 14px -6px rgba(0,0,0,.6),0 20px 40px -16px rgba(0,0,0,.72);
  --lift:0 28px 54px -16px rgba(0,0,0,.8),0 56px 116px -34px rgba(107,132,255,.42);
  --edge:inset 0 1.5px 0 rgba(255,255,255,.09),inset 0 -1px 0 rgba(0,0,0,.35);
  color-scheme:dark;
}

@media (prefers-color-scheme: dark) {
  html:not([data-theme="light"]) .legal-page,
  html:not([data-theme="light"]) .legal-wrap {
    --ground:#0E1017; --surface:#171A22; --surface-2:#1E2230; --raise:#1B1F29;
    --ink:#F1EFEA; --ink-soft:#A7ABB8; --ink-faint:#767B8B; --line:#272B37; --line-2:#353B4B;
    --primary:#6B84FF; --primary-ink:#0C1024; --primary-soft:#1A2242; --primary-line:#2C3768; --violet:#8B78FF;
    --accent:#FF7E5C; --accent-soft:#39241D; --accent-ink:#FFB59F;
    --trust:#34D399; --trust-soft:#122A20; --trust-ink:#7EE9BE; --gold:#FBBF52; --danger:#FF7B80; --danger-soft:#3A1F22;
    --shadow:0 1px 1px rgba(0,0,0,.5),0 6px 14px -6px rgba(0,0,0,.6),0 20px 40px -16px rgba(0,0,0,.72);
    --lift:0 28px 54px -16px rgba(0,0,0,.8),0 56px 116px -34px rgba(107,132,255,.42);
    --edge:inset 0 1.5px 0 rgba(255,255,255,.09),inset 0 -1px 0 rgba(0,0,0,.35);
    color-scheme:dark;
  }
}

/* ── 2. PAGE GROUND — aurora + dot grid, base typography ── */
/* `html body` prefix: beats old `.legal-page{background;overflow:hidden}` (0,1,0) and
   UNIFIED `:is(…,.legal-page){color;background}` (0,1,0) whatever the load order.
   overflow:clip (not hidden) keeps the sticky sidebar alive. */
html body .legal-page {
  position:relative; isolation:isolate; min-height:100vh; margin:0; padding:0;
  background:var(--ground); color:var(--ink); font-family:var(--body); font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased; overflow:visible; overflow:clip; box-sizing:border-box;
}
.legal-page *, .legal-page *::before, .legal-page *::after { box-sizing:border-box; }
.legal-page::before, .legal-page::after {
  content:""; position:absolute; inset:0; pointer-events:none; z-index:-1;
}
.legal-page::before {
  background:
    radial-gradient(48% 34% at 6% 0%,color-mix(in srgb,var(--primary) 18%,transparent),transparent 70%),
    radial-gradient(36% 28% at 30% 8%,color-mix(in srgb,var(--violet) 12%,transparent),transparent 72%),
    radial-gradient(40% 26% at 96% 4%,color-mix(in srgb,var(--gold) 12%,transparent),transparent 72%),
    radial-gradient(44% 30% at 92% 100%,color-mix(in srgb,var(--accent) 12%,transparent),transparent 70%);
  filter:blur(6px);
}
.legal-page::after {
  background-image:radial-gradient(color-mix(in srgb,var(--ink) 18%,transparent) .6px,transparent .7px);
  background-size:22px 22px; opacity:.45;
  -webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.9),transparent 42%);
  mask-image:linear-gradient(180deg,rgba(0,0,0,.9),transparent 42%);
}
/* fonts — UNIFIED sets Manrope on these at (0,1,1) (no !important) and Fraunces !important on h1/h2 at (0,1,1) */
html body .legal-page :is(p, a, span, small, strong, em, b, li, td, th, blockquote, label, button) { font-family:var(--body); }
html body .legal-page :is(h1, h2, h3, h4) {
  font-family:var(--display) !important; letter-spacing:-.02em !important; /* UNIFIED counter */
  color:var(--ink); font-weight:800; text-wrap:balance;
}

/* ── 3. WRAP ── */
/* (0,2,2) beats old `.legal-page .legal-wrap` (0,2,0) in every media block */
html body .legal-page .legal-wrap { width:min(1200px,100% - 40px); margin-inline:auto; }

/* ── 4. HERO — kicker, title, lead, pill actions ── */
/* UNIFIED forces forest background / white text / overflow:hidden / padding at (0,2,0) !important */
html body .legal-page .legal-hero {
  position:relative; isolation:isolate; overflow:visible;
  padding:clamp(48px,7vw,92px) 0 clamp(26px,4vw,40px) !important;
  background:transparent !important; color:var(--ink) !important; border:0 !important;
}
.legal-page .legal-hero::before {
  content:""; position:absolute; z-index:-1; inset:auto; top:-8%; inset-inline-start:46%;
  width:min(560px,60vw); height:280px; border-radius:50%; pointer-events:none;
  background:radial-gradient(closest-side,color-mix(in srgb,var(--primary) 16%,transparent),transparent);
  filter:blur(18px);
}
html body .legal-page .legal-hero::after { content:none; } /* UNIFIED coral ring removed */
.legal-page .legal-kicker,
html body .legal-page .legal-kicker {
  display:inline-flex; align-items:center; gap:8px; min-height:34px; padding:0 14px 0 12px;
  border-radius:var(--r-pill); background:var(--primary-soft); border:1px solid var(--primary-line);
  color:var(--primary) !important; font-family:var(--body); font-size:.74rem; font-weight:700 !important;
  letter-spacing:.08em !important; text-transform:uppercase; line-height:1; box-shadow:var(--edge);
}
.legal-page .legal-kicker::before {
  content:""; width:7px; height:7px; border-radius:50%; background:var(--primary);
  box-shadow:0 0 0 3px var(--primary-line);
}
.legal-page .legal-hero-grid {
  display:grid; grid-template-columns:minmax(0,1.15fr) minmax(300px,360px); gap:36px; align-items:end;
  margin-top:24px;
}
.legal-page .legal-hero-grid > div { min-width:0; }
html body .legal-page .legal-title {
  max-width:16ch; margin:0; color:var(--ink) !important; font-family:var(--display) !important;
  font-size:clamp(2.35rem,5.2vw,4.4rem) !important; font-weight:800 !important; line-height:1.02 !important;
  letter-spacing:-.03em !important; text-wrap:balance;
}
html body .legal-page .legal-lead {
  max-width:var(--measure); margin:20px 0 0; color:var(--ink-soft) !important;
  font-size:clamp(1.05rem,1.4vw,1.2rem) !important; line-height:1.65 !important; text-wrap:pretty;
}
.legal-page .legal-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:26px; }

/* buttons — pill; UNIFIED coral primary at (0,2,0) and white-ghost secondary at (0,3,0), both !important */
.legal-page .legal-btn {
  --br:var(--r-pill); position:relative; display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:48px; padding:0 22px; border:1.5px solid var(--line-2); border-radius:var(--r-pill);
  background:var(--surface); color:var(--ink); font-family:var(--display); font-size:.98rem; font-weight:700;
  letter-spacing:-.01em; line-height:1.2; text-decoration:none; white-space:nowrap; cursor:pointer;
  box-shadow:var(--edge),0 2px 6px -2px rgba(25,28,38,.14); overflow:hidden; isolation:isolate;
  transition:transform .25s cubic-bezier(.2,.8,.3,1.1),box-shadow .25s,border-color .2s,background .2s,color .2s,filter .2s;
}
html body .legal-page .legal-btn:not(.legal-btn--primary) {
  color:var(--ink) !important; border:1.5px solid var(--line-2) !important; border-radius:var(--r-pill) !important;
  background:var(--surface) !important;
}
html body .legal-page .legal-btn:not(.legal-btn--primary):hover {
  color:var(--primary) !important; border-color:var(--primary-line) !important;
  background:var(--primary-soft) !important; transform:translateY(-2px); box-shadow:var(--shadow),var(--edge);
}
html body .legal-page .legal-btn--primary {
  border-color:transparent !important; border-radius:var(--r-pill) !important;
  background:linear-gradient(135deg,var(--primary),var(--violet)) !important; color:var(--primary-ink) !important;
  box-shadow:var(--shadow),0 8px 20px -8px color-mix(in srgb,var(--primary) 70%,transparent),inset 0 1.5px 0 rgba(255,255,255,.28) !important;
}
.legal-page .legal-btn--primary::after {
  content:""; position:absolute; top:-20%; left:-70%; width:45%; height:140%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.38),transparent); transform:skewX(-18deg);
  transition:left .6s cubic-bezier(.2,.8,.2,1); pointer-events:none;
}
html body .legal-page .legal-btn--primary:hover {
  transform:translateY(-2px); filter:brightness(1.06); color:var(--primary-ink) !important;
  box-shadow:var(--lift),inset 0 1.5px 0 rgba(255,255,255,.28) !important;
}
.legal-page .legal-btn--primary:hover::after { left:130%; }
.legal-page .legal-btn:active { transform:translateY(0) scale(.99); }

/* ── 5. STATUS ASIDE — glass card + stat tiles ── */
.legal-page .legal-status {
  position:relative; padding:22px 24px; border-radius:var(--r); border:1px solid var(--line);
  background:color-mix(in srgb,var(--surface) 84%,transparent); box-shadow:var(--shadow),var(--edge);
  -webkit-backdrop-filter:blur(14px) saturate(1.15); backdrop-filter:blur(14px) saturate(1.15);
  color:var(--ink); overflow:hidden;
}
.legal-page .legal-status::before {
  content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(70% 60% at 100% 0%,color-mix(in srgb,var(--primary) 12%,transparent),transparent 70%);
}
.legal-page .legal-status > * { position:relative; }
.legal-page .legal-status strong {
  display:flex; align-items:center; gap:10px; font-family:var(--display); font-size:1.08rem; font-weight:800;
  letter-spacing:-.01em; color:var(--ink);
}
.legal-page .legal-status strong::before {
  content:""; flex:0 0 auto; width:10px; height:10px; border-radius:50%; background:var(--trust);
  box-shadow:0 0 0 4px var(--trust-soft);
}
.legal-page .legal-status p { margin:8px 0 0; color:var(--ink-soft); font-size:.95rem; line-height:1.55; }
/* privacy/cookies: link to the terms */
html body .legal-page .legal-status > a {
  display:inline-flex; align-items:center; gap:8px; min-height:44px; margin-top:12px; padding:0 14px;
  border-radius:var(--r-pill); background:var(--surface-2); border:1px solid var(--line-2);
  color:var(--primary) !important; font-weight:700; font-size:.92rem; text-decoration:none; box-shadow:var(--edge);
  transition:background .2s,border-color .2s,transform .2s;
}
html body .legal-page .legal-status > a:hover { background:var(--primary-soft); border-color:var(--primary-line); transform:translateY(-1px); }
.legal-page .legal-status > a span { display:inline-block; transition:transform .2s; }
.legal-page .legal-status > a:hover span { transform:translateX(3px); }
.legal-page .legal-stat-row { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:16px; }
.legal-page .legal-stat {
  padding:14px 14px 12px; border-radius:var(--r-sm); background:var(--surface-2); border:1px solid var(--line);
  box-shadow:var(--edge); min-width:0;
}
.legal-page .legal-stat b {
  display:block; font-family:var(--display); font-size:1.15rem; font-weight:800; letter-spacing:-.01em;
  color:var(--ink); line-height:1.2; overflow-wrap:anywhere;
}
.legal-page .legal-stat span {
  display:block; margin-top:4px; color:var(--ink-soft); font-size:.78rem; font-weight:600; letter-spacing:.04em;
  text-transform:uppercase;
}

/* ── 6. SUMMARY CARDS — numbered gradient tiles ── */
/* UNIFIED forces paper bg / 20px radius / shadow at (0,2,0) !important on .legal-summary(-card) */
html body .legal-page .legal-summary { padding:clamp(18px,3vw,30px) 0 10px; background:transparent !important; }
.legal-page .legal-summary-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
html body .legal-page .legal-summary-card {
  position:relative; padding:22px 22px 24px; border:1px solid var(--line) !important; border-radius:var(--r) !important;
  background:color-mix(in srgb,var(--surface) 90%,transparent) !important; box-shadow:var(--shadow),var(--edge) !important;
  overflow:hidden; isolation:isolate; min-width:0;
  transition:transform .28s cubic-bezier(.2,.8,.3,1.1),box-shadow .28s,border-color .2s;
}
.legal-page .legal-summary-card::before {
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; opacity:0; transition:opacity .3s;
  background:radial-gradient(60% 70% at 0% 0%,color-mix(in srgb,var(--primary) 12%,transparent),transparent 70%);
}
html body .legal-page .legal-summary-card:hover {
  transform:translateY(-4px); border-color:var(--primary-line) !important; box-shadow:var(--lift),var(--edge) !important;
}
.legal-page .legal-summary-card:hover::before { opacity:1; }
.legal-page .legal-summary-card span {
  display:inline-grid; place-items:center; width:42px; height:42px; border-radius:13px;
  background:linear-gradient(135deg,var(--primary),var(--violet)); color:var(--primary-ink);
  font-family:var(--display); font-size:1.05rem; font-weight:800;
  box-shadow:var(--edge),0 10px 22px -10px color-mix(in srgb,var(--primary) 60%,transparent);
}
.legal-page .legal-summary-card h2 {
  margin:14px 0 6px; font-size:1.12rem; line-height:1.25; font-weight:800; color:var(--ink);
}
.legal-page .legal-summary-card p { margin:0; color:var(--ink-soft); font-size:.95rem; line-height:1.6; }

/* ── 7. MAIN LAYOUT + STICKY SIDE NAV ── */
html body .legal-page .legal-main { padding:14px 0 clamp(56px,7vw,88px); background:transparent !important; }
.legal-page .legal-layout {
  display:grid; grid-template-columns:280px minmax(0,1fr); gap:28px; align-items:start;
}
.legal-page .legal-layout > div { min-width:0; }
/* display + columns set explicitly: old ≤980px rule turns .legal-side into a 3-col grid */
.legal-page .legal-side {
  position:sticky; top:var(--sticky-top); display:flex; flex-direction:column; gap:2px;
  padding:16px; border-radius:var(--r); border:1px solid var(--line);
  background:color-mix(in srgb,var(--surface) 86%,transparent); box-shadow:var(--shadow),var(--edge);
  -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px);
  max-height:calc(100vh - var(--sticky-top) - 24px); overflow:auto; overscroll-behavior:contain;
}
.legal-page .legal-side h2 {
  margin:2px 0 10px; padding:0 12px; font-family:var(--body) !important; font-size:.72rem; font-weight:700;
  letter-spacing:.09em !important; text-transform:uppercase; color:var(--ink-soft);
}
html body .legal-page .legal-side a {
  --br:12px; display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:44px;
  padding:8px 12px; border-radius:12px; color:var(--ink) !important; font-size:.94rem; font-weight:600 !important;
  line-height:1.3; text-decoration:none; position:relative; transition:background .2s,color .2s,padding .2s;
}
html body .legal-page .legal-side a::before {
  content:""; position:absolute; inset-block:10px; inset-inline-start:0; width:3px; border-radius:3px;
  background:linear-gradient(180deg,var(--primary),var(--violet)); opacity:0; transition:opacity .2s;
}
html body .legal-page .legal-side a:hover { background:var(--primary-soft); color:var(--primary) !important; padding-inline-start:16px; }
html body .legal-page .legal-side a:hover::before { opacity:1; }
.legal-page .legal-side a span {
  flex:0 0 auto; color:var(--ink-faint); font-weight:700; transition:transform .2s,color .2s;
}
.legal-page .legal-side a:hover span { color:var(--primary); transform:translateX(3px); }
.legal-page .legal-side small {
  display:block; margin-top:12px; padding:12px 12px 4px; border-top:1px dashed var(--line-2);
  color:var(--ink-soft); font-size:.82rem; line-height:1.5;
}

/* ── 8. DOCUMENT CARD — head + reading body ── */
.legal-page .legal-doc {
  position:relative; border-radius:var(--r); border:1px solid var(--line);
  background:color-mix(in srgb,var(--surface) 92%,transparent); box-shadow:var(--shadow),var(--edge);
  overflow:hidden; scroll-margin-top:calc(var(--sticky-top) - 8px);
}
.legal-page .legal-doc-head {
  position:relative; display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
  padding:20px clamp(20px,4vw,40px); border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,color-mix(in srgb,var(--primary-soft) 55%,var(--surface)),var(--surface));
}
.legal-page .legal-doc-head::before {
  content:""; position:absolute; inset:0 0 auto 0; height:3px;
  background:linear-gradient(90deg,var(--primary),var(--violet) 55%,var(--accent));
}
.legal-page .legal-doc-head h2 {
  margin:0; font-size:1.25rem; line-height:1.25; font-weight:800; color:var(--ink);
}
.legal-page .legal-doc-head span {
  display:inline-flex; align-items:center; gap:6px; min-height:32px; padding:0 12px; border-radius:var(--r-pill);
  background:var(--trust-soft); border:1px solid color-mix(in srgb,var(--trust) 35%,transparent);
  color:var(--trust-ink); font-family:var(--body); font-size:.78rem; font-weight:700; white-space:nowrap;
}
.legal-page .legal-doc-head span::before {
  content:""; width:6px; height:6px; border-radius:50%; background:var(--trust); box-shadow:0 0 0 3px color-mix(in srgb,var(--trust) 25%,transparent);
}

/* body — 17px / 1.7, 72ch measure. `html body` beats old `.legal-page .legal-doc__body` (0,2,0) in all media blocks */
html body .legal-page .legal-doc__body {
  padding:clamp(24px,4vw,44px) clamp(20px,4.5vw,52px) clamp(32px,5vw,56px);
  color:var(--ink); font-size:1.0625rem; line-height:1.7; text-wrap:pretty;
}
html body .legal-page .legal-doc__body :is(p, ul, ol, blockquote, h1, h2, h3, h4, dl, figure, pre) { max-width:var(--measure); }
.legal-page .legal-doc__body > :first-child, .legal-page .legal-doc__body > section:first-child > :first-child { margin-top:0; }
.legal-page .legal-doc__body > :last-child { margin-bottom:0; }
.legal-page .legal-doc__body > section { scroll-margin-top:var(--sticky-top); }
.legal-page .legal-doc__body > section + section { margin-top:2.2rem; padding-top:2rem; border-top:1px solid var(--line); }
html body .legal-page .legal-doc__body :is(h1, h2, h3, h4) {
  margin:2.2em 0 .6em; color:var(--ink); line-height:1.2; scroll-margin-top:var(--sticky-top);
}
html body .legal-page .legal-doc__body h1 { font-size:clamp(1.7rem,2.8vw,2.25rem); margin-top:0; letter-spacing:-.03em !important; }
html body .legal-page .legal-doc__body h2 { font-size:clamp(1.32rem,2vw,1.6rem); }
.legal-page .legal-doc__body > h2:not(:first-child) { padding-top:2rem; border-top:1px solid var(--line); }
.legal-page .legal-doc__body > section > h2 { margin-top:0; }
html body .legal-page .legal-doc__body h3 { font-size:1.15rem; margin-top:1.8em; }
html body .legal-page .legal-doc__body h4 { font-size:1rem; margin-top:1.6em; }
.legal-page .legal-doc__body p { margin:.9em 0; color:var(--ink); }
.legal-page .legal-doc__body p + p { margin-top:1em; }
.legal-page .legal-doc__body :is(p, li) > strong { color:var(--ink); font-weight:700; }
.legal-page .legal-doc__body em { font-style:italic; }
.legal-page .legal-doc__body small { color:var(--ink-soft); font-size:.9em; }
/* links — UNIFIED `.legal-page .legal-main a` forces forest at (0,2,1) !important */
html body .legal-page .legal-doc__body a {
  color:var(--primary) !important; font-weight:600 !important; text-decoration:underline;
  text-decoration-thickness:1.5px; text-underline-offset:3px; text-decoration-color:color-mix(in srgb,var(--primary) 45%,transparent);
  border-radius:4px; transition:text-decoration-color .2s,color .2s;
}
html body .legal-page .legal-doc__body a:hover { text-decoration-color:var(--primary); color:var(--violet) !important; }
/* lists */
.legal-page .legal-doc__body :is(ul, ol) { margin:1rem 0 1.2rem; padding-inline-start:1.5rem; }
.legal-page .legal-doc__body li { margin:.45rem 0; padding-inline-start:.2rem; }
.legal-page .legal-doc__body li::marker { color:var(--primary); font-weight:700; }
.legal-page .legal-doc__body li > :is(ul, ol) { margin:.4rem 0 .4rem; }
/* definition lists */
.legal-page .legal-doc__body dl { margin:1rem 0; display:grid; grid-template-columns:max-content 1fr; gap:.4rem 1.2rem; }
.legal-page .legal-doc__body dt { font-weight:700; color:var(--ink); }
.legal-page .legal-doc__body dd { margin:0; color:var(--ink-soft); }
/* callout / avertissement (blockquote) */
.legal-page .legal-doc__body blockquote {
  position:relative; margin:1.6rem 0; padding:18px 22px 18px 24px; border-radius:var(--r-sm);
  background:color-mix(in srgb,var(--primary-soft) 55%,var(--surface)); border:1px solid var(--primary-line);
  border-inline-start:4px solid var(--primary); color:var(--ink); box-shadow:var(--edge); overflow:hidden;
}
.legal-page .legal-doc__body blockquote::before {
  content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(60% 80% at 100% 0%,color-mix(in srgb,var(--violet) 10%,transparent),transparent 70%);
}
.legal-page .legal-doc__body blockquote > * { position:relative; }
.legal-page .legal-doc__body blockquote p { margin:.5em 0; }
.legal-page .legal-doc__body blockquote > :first-child { margin-top:0; }
.legal-page .legal-doc__body blockquote > :last-child { margin-bottom:0; }
.legal-page .legal-doc__body blockquote > strong:first-child {
  display:block; margin-bottom:6px; font-family:var(--display); font-size:1.02rem; font-weight:800; letter-spacing:-.01em; color:var(--primary);
}
.legal-page .legal-doc__body blockquote > strong:first-child + br { display:none; } /* strong is already a block */
/* tables */
.legal-page .legal-doc__body table {
  width:100%; margin:1.4rem 0; border-collapse:separate; border-spacing:0; border:1px solid var(--line);
  border-radius:16px; overflow:hidden; font-size:.95rem; line-height:1.5; background:var(--surface); box-shadow:var(--edge);
}
.legal-page .legal-doc__body caption { caption-side:top; text-align:start; padding:0 0 8px; color:var(--ink-soft); font-size:.86rem; font-weight:600; }
.legal-page .legal-doc__body th {
  padding:12px 16px; background:var(--surface-2); color:var(--ink-soft); font-size:.76rem; font-weight:700;
  letter-spacing:.06em; text-transform:uppercase; text-align:start; vertical-align:bottom; border-bottom:1px solid var(--line-2);
}
.legal-page .legal-doc__body td { padding:12px 16px; text-align:start; vertical-align:top; border-bottom:1px solid var(--line); color:var(--ink); }
.legal-page .legal-doc__body td:first-child { font-weight:600; }
.legal-page .legal-doc__body tbody tr:nth-child(even) td { background:color-mix(in srgb,var(--surface-2) 45%,transparent); }
.legal-page .legal-doc__body tr:last-child :is(th, td) { border-bottom:0; }
/* misc inline + media */
.legal-page .legal-doc__body hr {
  height:1px; margin:2.2rem 0; border:0; background:linear-gradient(90deg,var(--line-2),transparent);
}
.legal-page .legal-doc__body code {
  padding:2px 7px; border-radius:7px; background:var(--surface-2); border:1px solid var(--line);
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:.88em; color:var(--ink);
}
.legal-page .legal-doc__body pre {
  padding:16px 18px; border-radius:var(--r-sm); background:var(--surface-2); border:1px solid var(--line);
  overflow-x:auto; font-size:.9rem; line-height:1.55;
}
.legal-page .legal-doc__body pre code { padding:0; border:0; background:none; }
.legal-page .legal-doc__body img { max-width:100%; height:auto; border-radius:var(--r-sm); }
.legal-page .legal-doc__body figure { margin:1.4rem 0; }
.legal-page .legal-doc__body figcaption { margin-top:8px; color:var(--ink-soft); font-size:.86rem; }

/* ── 9. SUPPORT CALLOUT ── */
/* UNIFIED forces forest bg / white text (0,2,0) !important, border-color (0,2,0) !important */
html body .legal-page .legal-support {
  position:relative; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:20px; align-items:center;
  margin-top:20px; padding:24px 26px; border-radius:var(--r); overflow:hidden; isolation:isolate;
  border:1px solid color-mix(in srgb,var(--trust) 35%,transparent) !important;
  background:linear-gradient(135deg,var(--trust-soft),color-mix(in srgb,var(--trust-soft) 40%,var(--surface))) !important;
  color:var(--ink) !important; box-shadow:var(--shadow),var(--edge); scroll-margin-top:var(--sticky-top);
}
.legal-page .legal-support::before {
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:radial-gradient(55% 90% at 100% 50%,color-mix(in srgb,var(--trust) 16%,transparent),transparent 70%);
}
.legal-page .legal-support > div { min-width:0; }
html body .legal-page .legal-support h2 {
  margin:0; font-size:1.22rem; line-height:1.25; font-weight:800; color:var(--ink) !important;
}
.legal-page .legal-support p { margin:6px 0 0; max-width:60ch; color:var(--ink-soft); font-size:.96rem; line-height:1.55; }
html body .legal-page .legal-support .legal-btn {
  color:var(--trust-ink) !important; border-color:color-mix(in srgb,var(--trust) 45%,transparent) !important;
  background:var(--surface) !important;
}
html body .legal-page .legal-support .legal-btn:hover {
  color:var(--trust-ink) !important; background:var(--trust-soft) !important; border-color:var(--trust) !important;
}

/* ── 10. KEYFRAMES ── */
@keyframes legalFadeUp { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:none; } }
.legal-page .legal-status, .legal-page .legal-summary-card, .legal-page .legal-doc, .legal-page .legal-side, .legal-page .legal-support {
  animation:legalFadeUp .55s cubic-bezier(.2,.8,.2,1) both;
}
.legal-page .legal-summary-card:nth-child(2) { animation-delay:.06s; }
.legal-page .legal-summary-card:nth-child(3) { animation-delay:.12s; }
.legal-page .legal-doc { animation-delay:.1s; }
.legal-page .legal-support { animation-delay:.16s; }

/* ── 11. RESPONSIVE ── */
@media (max-width: 1023px) {
  .legal-page .legal-hero-grid { grid-template-columns:1fr; gap:24px; align-items:start; }
  html body .legal-page .legal-title { max-width:20ch; }
  .legal-page .legal-layout { grid-template-columns:1fr; gap:20px; }
  .legal-page .legal-side { position:relative; top:auto; max-height:none; overflow:visible; display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:4px 10px; }
  .legal-page .legal-side h2, .legal-page .legal-side small { grid-column:1 / -1; }
}
@media (max-width: 767px) {
  .legal-page .legal-summary-grid { grid-template-columns:1fr; gap:12px; }
  html body .legal-page .legal-summary-card { padding:18px 18px 20px; display:grid; grid-template-columns:42px 1fr; column-gap:14px; align-items:start; }
  .legal-page .legal-summary-card span { grid-row:1 / span 2; }
  .legal-page .legal-summary-card h2 { margin:4px 0 4px; font-size:1.05rem; }
  .legal-page .legal-side { grid-template-columns:1fr; }
  html body .legal-page .legal-support { grid-template-columns:1fr; padding:20px; }
}
@media (max-width: 640px) {
  html body .legal-page .legal-wrap { width:min(1200px,100% - 28px); }
  html body .legal-page .legal-hero { padding-top:36px !important; padding-bottom:18px !important; }
  html body .legal-page .legal-title { font-size:clamp(2rem,10vw,2.8rem) !important; }
  html body .legal-page .legal-lead { margin-top:14px; font-size:1.02rem !important; }
  .legal-page .legal-actions { display:grid; grid-template-columns:1fr; gap:10px; }
  .legal-page .legal-actions .legal-btn, .legal-page .legal-support .legal-btn { width:100%; white-space:normal; text-align:center; }
  .legal-page .legal-status { padding:18px; border-radius:20px; }
  .legal-page .legal-stat-row { gap:8px; }
  .legal-page .legal-stat { padding:12px; }
  .legal-page .legal-doc { border-radius:20px; }
  .legal-page .legal-doc-head { align-items:flex-start; flex-direction:column; gap:10px; padding:18px; }
  html body .legal-page .legal-doc__body { padding:22px 18px 28px; font-size:1rem; line-height:1.68; }
  html body .legal-page .legal-doc__body h2 { font-size:1.3rem; }
  .legal-page .legal-doc__body blockquote { padding:16px 16px 16px 18px; }
  /* wide tables scroll inside the card, never the page */
  .legal-page .legal-doc__body table { display:block; overflow-x:auto; -webkit-overflow-scrolling:touch; white-space:nowrap; }
  .legal-page .legal-doc__body :is(th, td) { padding:10px 12px; }
  .legal-page .legal-doc__body dl { grid-template-columns:1fr; gap:.15rem 0; }
  .legal-page .legal-doc__body dd { margin-bottom:.6rem; }
  .legal-page .legal-side { padding:12px; border-radius:20px; }
}
@media (max-width: 380px) {
  .legal-page .legal-stat-row { grid-template-columns:1fr; }
  .legal-page .legal-summary-card span { width:38px; height:38px; }
  html body .legal-page .legal-summary-card { grid-template-columns:38px 1fr; }
}

/* ── 12. RTL — html[dir] OR dir on <main> (legal-info.blade.php sets it there) ── */
html[dir="rtl"] .legal-page, .legal-page[dir="rtl"] { text-align:start; }
html[dir="rtl"] .legal-page .legal-hero::before, .legal-page[dir="rtl"] .legal-hero::before { inset-inline-start:auto; inset-inline-end:46%; }
html[dir="rtl"] .legal-page .legal-kicker, .legal-page[dir="rtl"] .legal-kicker { padding:0 12px 0 14px; }
html[dir="rtl"] .legal-page .legal-btn--primary::after, .legal-page[dir="rtl"] .legal-btn--primary::after { transform:skewX(18deg); }
html[dir="rtl"] .legal-page :is(.legal-side a span, .legal-status > a span),
.legal-page[dir="rtl"] :is(.legal-side a span, .legal-status > a span) { transform:scaleX(-1); }
html[dir="rtl"] .legal-page :is(.legal-side a:hover span, .legal-status > a:hover span),
.legal-page[dir="rtl"] :is(.legal-side a:hover span, .legal-status > a:hover span) { transform:scaleX(-1) translateX(3px); }
html[dir="rtl"] .legal-page .legal-doc-head::before, .legal-page[dir="rtl"] .legal-doc-head::before { background:linear-gradient(270deg,var(--primary),var(--violet) 55%,var(--accent)); }
html[dir="rtl"] .legal-page .legal-doc__body hr, .legal-page[dir="rtl"] .legal-doc__body hr { background:linear-gradient(270deg,var(--line-2),transparent); }
html[dir="rtl"] .legal-page .legal-doc__body blockquote, .legal-page[dir="rtl"] .legal-doc__body blockquote { padding:18px 24px 18px 22px; }
html[dir="rtl"] .legal-page .legal-support::before, .legal-page[dir="rtl"] .legal-support::before { background:radial-gradient(55% 90% at 0% 50%,color-mix(in srgb,var(--trust) 16%,transparent),transparent 70%); }
html[dir="rtl"] .legal-page .legal-status::before, .legal-page[dir="rtl"] .legal-status::before { background:radial-gradient(70% 60% at 0% 0%,color-mix(in srgb,var(--primary) 12%,transparent),transparent 70%); }

/* ── 13. MOTION + FOCUS (scoped to .legal-page only) ── */
@media (prefers-reduced-motion: reduce) {
  .legal-page *, .legal-page *::before, .legal-page *::after {
    animation-duration:.01ms !important; animation-delay:0s !important; animation-iteration-count:1 !important;
    transition-duration:.01ms !important; scroll-behavior:auto !important;
  }
  .legal-page .legal-status, .legal-page .legal-summary-card, .legal-page .legal-doc, .legal-page .legal-side, .legal-page .legal-support { animation:none; opacity:1; transform:none; }
}
/* solid --primary ring: ≥3:1 on --ground in both themes; !important beats any global reset of outline */
html body .legal-page :is(a, button, summary, [tabindex]):focus-visible {
  outline:3px solid var(--primary) !important; outline-offset:3px !important; border-radius:var(--br,8px);
}
html body .legal-page .legal-doc__body a:focus-visible { outline-offset:2px !important; }

/* ── 14. GUARD — neutralise public-pages-unified-2026.min.css ──
   That shared sheet loads on legal/privacy/cookies pages and forces, WITH !important, a light Fraunces/forest/coral/
   paper reskin on this page's containers, cards, sections, hero, kicker, buttons and links — at (0,2,0)–(0,2,1) via
   `:is(.search-next,…,.legal-page) :is(…,.legal-hook)`. Its --pp-* tokens DO NOT flip in dark mode, so in dark the
   forced backgrounds stay LIGHT while akmk text goes WHITE → illegible (the diagnosed production bug). deep-pages
   sheet has NO legal-* hooks (verified). Every counter below is `html body .legal-page …` = (0,3,x)+ and !important,
   so it beats the shared (0,2,x) !important whatever the load order; values reuse akmk tokens (which flip in dark).
   These mirror the inline rules in §2–§9 (kept in sync) and stand as the single audited neutralisation block. */

/* sections forced background:var(--pp-paper) -> transparent (reveals the akmk ground: light in light, dark in dark) */
html body .legal-page .legal-summary { background:transparent !important; }
html body .legal-page .legal-main    { background:transparent !important; }

/* hero forced --pp-forest bg / #fffefa text / border:0 / tall padding -> transparent akmk hero */
html body .legal-page .legal-hero {
  background:transparent !important; color:var(--ink) !important; border:0 !important;
}

/* cards forced --pp-paper-2 bg / --pp-line border / 20px radius / green shadow -> akmk surface card */
html body .legal-page .legal-summary-card {
  background:color-mix(in srgb,var(--surface) 90%,transparent) !important;
  border:1px solid var(--line) !important; border-radius:var(--r) !important;
  box-shadow:var(--shadow),var(--edge) !important;
}
html body .legal-page .legal-summary-card:hover {
  border-color:var(--primary-line) !important; box-shadow:var(--lift),var(--edge) !important;
}

/* support forced --pp-forest bg / #fffefa text / --pp-line border -> akmk trust callout (flips in dark) */
html body .legal-page .legal-support {
  background:linear-gradient(135deg,var(--trust-soft),color-mix(in srgb,var(--trust-soft) 40%,var(--surface))) !important;
  border:1px solid color-mix(in srgb,var(--trust) 35%,transparent) !important; color:var(--ink) !important;
}
html body .legal-page .legal-support :is(h2, h3) { color:var(--ink) !important; }

/* kicker forced color:var(--pp-yellow) -> akmk primary pill text */
html body .legal-page .legal-kicker { color:var(--primary) !important; }

/* every anchor in .legal-main forced color:var(--pp-forest) -> restore akmk link colour per context */
html body .legal-page .legal-side a               { color:var(--ink) !important; }
html body .legal-page .legal-doc__body a          { color:var(--primary) !important; }
html body .legal-page .legal-support .legal-btn   { color:var(--trust-ink) !important; }

/* h1/h2 (and all headings) forced Fraunces -> akmk Bricolage display */
html body .legal-page :is(h1, h2, h3, h4) { font-family:var(--display) !important; }

/* buttons forced --pp-coral (primary) and white-glass (secondary) -> akmk pills (bg+border restored; full paint in §4) */
html body .legal-page .legal-btn--primary {
  background:linear-gradient(135deg,var(--primary),var(--violet)) !important;
  border-color:transparent !important; color:var(--primary-ink) !important;
}
html body .legal-page .legal-btn:not(.legal-btn--primary) {
  background:var(--surface) !important; border:1.5px solid var(--line-2) !important; color:var(--ink) !important;
}

/* ── GUARD-2: hero title contrast fix ────────────────────────────────────
   public-pages-unified forces  :is(.legal-page) :is(.sn-hero .sn-title,…,.legal-title)
   { color:#fffefa !important; font-family:Fraunces serif !important; … }
   The `.sn-hero .sn-title` argument inflates that :is() to specificity (0,3,0),
   beating our (0,2,3) title guard → white serif title on the light akmk hero.
   Reclaim with a repeated-class (0,4,3) selector so akmk ink+display win. */
html body .legal-page.legal-page .legal-hero .legal-title{
  color:var(--ink) !important;
  font-family:var(--display) !important;
  font-size:clamp(2.35rem,5.2vw,4.4rem) !important;
  font-weight:800 !important;
  line-height:1.02 !important;
  letter-spacing:-.03em !important;
}
