/* =====================================================================
   Digital Concept — page-theme.css
   Surcharge claire pour les pages de service et légales (chrome
   legal-page de styles.css). Chargée APRÈS styles.css. Aligne ces pages
   sur l'accueil : verre liquide, halos, une couleur (vert profond), Manrope.
   ===================================================================== */

body.legal-page {
  --bg: #F6FBF8; --bg-soft: rgba(255,255,255,.55); --bg-card: rgba(255,255,255,.6);
  --border: #E1E7E4; --border-soft: #EDF1EF;
  --text: #2F4858; --text-muted: #4E6470;
  --primary: #2F4858; --primary-2: #223A48; --accent: #2F4858; --accent-ink: #2F4858;
  --danger: #C0392B;
  --header-bg: rgba(255,255,255,.86); --header-bg-scrolled: rgba(255,255,255,.92);
  --btn-secondary-bg: #FFFFFF;
  --shadow: 0 24px 50px -36px rgba(47,72,88,.35);
  --shadow-glow: 0 10px 24px -14px rgba(47,72,88,.6);
  --font-display: "Manrope", "Segoe UI", system-ui, sans-serif;
  --font-body: "Manrope", "Segoe UI", system-ui, sans-serif;
  --font-mono: "Spline Sans Mono", ui-monospace, monospace;
  --f-display: var(--font-display); --f-body: var(--font-body); --f-mono: var(--font-mono);

  background: var(--bg) !important;
  color: var(--text) !important;
  font-family: var(--font-body) !important;
  -webkit-font-smoothing: antialiased;
}
/* Halos fixes derrière le verre */
body.legal-page::before {
  content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background:
    radial-gradient(48vw 48vw at -8vw -10vw, #DDFBEF 0%, transparent 65%),
    radial-gradient(42vw 42vw at 104vw 12vh, #BFEFD9 0%, transparent 65%),
    radial-gradient(40vw 40vw at 45vw 78vh, #D6E4EA 0%, transparent 65%),
    radial-gradient(56vw 56vw at 108vw 110vh, #DDFBEF 0%, transparent 68%);
  filter: blur(40px); opacity: .85;
}
body.legal-page ::selection { background: #DDFBEF; color: var(--text); }
body.legal-page :focus-visible { outline: 2px solid var(--primary); outline-offset: 3px; }

/* Typo */
body.legal-page h1, body.legal-page h2, body.legal-page h3, body.legal-page h4 { font-family: var(--font-display) !important; color: var(--text) !important; letter-spacing: -0.03em; font-weight: 800; }
body.legal-page p, body.legal-page li { color: var(--text-muted); }
body.legal-page strong { color: var(--text); }
body.legal-page a { color: var(--primary); }
body.legal-page a:hover { color: var(--primary-2); }

/* En-tête */
body.legal-page .legal-nav { background: var(--header-bg) !important; -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border-bottom: 1px solid var(--border) !important; }
body.legal-page .legal-nav__brand { color: var(--text) !important; font-family: var(--font-display); font-weight: 800; }
body.legal-page .legal-nav__brand .lw, body.legal-page .lw { color: var(--primary) !important; }
body.legal-page .legal-nav__back { color: var(--text-muted) !important; }
body.legal-page .legal-nav__back:hover { color: var(--primary) !important; }

/* Hero : blanc, filet bas, aucun décor */
body.legal-page .legal-hero { background: #fff !important; border-bottom: 1px solid var(--border); }
body.legal-page .legal-hero::before { content: none; }
body.legal-page .local-breadcrumb, body.legal-page .local-breadcrumb a { color: var(--text-muted) !important; }
body.legal-page .local-breadcrumb a:hover { color: var(--primary) !important; }
body.legal-page .eyebrow { color: var(--primary) !important; font-family: var(--font-mono); letter-spacing: .14em; }
body.legal-page .eyebrow::before { background: var(--primary); }
body.legal-page .gradient-text { color: var(--primary) !important; -webkit-text-fill-color: var(--primary) !important; background: none !important; text-shadow: none; }
body.legal-page .lead { color: var(--text-muted) !important; }
body.legal-page .hero-note { color: var(--text-muted) !important; }
body.legal-page .hero-note strong { color: var(--primary); }

/* Sections */
body.legal-page .section { border-color: var(--border) !important; }
body.legal-page .section-title { color: var(--text) !important; }
body.legal-page .legal-section h2 .num { color: var(--text-muted) !important; }

/* Boutons */
body.legal-page .btn-primary { color: #DDFBEF !important; border: none !important; background: var(--primary) !important; box-shadow: var(--shadow-glow) !important; }
body.legal-page .btn-primary::after { display: none; }
body.legal-page .btn-primary:hover { background: var(--primary-2) !important; transform: translateY(-1px); }
body.legal-page .btn-secondary { color: var(--text) !important; background: #fff !important; border: 1px solid var(--border) !important; }
body.legal-page .btn-secondary:hover { border-color: var(--primary) !important; color: var(--primary) !important; }

/* Cartes */
body.legal-page .highlight, body.legal-page .legal-card, body.legal-page .local-steps > *, body.legal-page .local-faq {
  background: #fff !important; border: 1px solid var(--border) !important; color: var(--text-muted) !important; box-shadow: var(--shadow);
}
body.legal-page .highlight:hover, body.legal-page .legal-card:hover { border-color: #cfd9d4 !important; }
body.legal-page .highlight h3, body.legal-page .legal-card h3, body.legal-page .local-steps h3, body.legal-page .local-faq summary, body.legal-page .highlight strong, body.legal-page .legal-card b { color: var(--text) !important; }
body.legal-page .highlight p, body.legal-page .legal-card p, body.legal-page .local-steps p, body.legal-page .local-faq p, body.legal-page .highlight span { color: var(--text-muted) !important; }
body.legal-page .highlight-ic { color: var(--primary) !important; background: #DDFBEF !important; border: 1px solid #BFEFD9 !important; }

/* FAQ */
body.legal-page .local-faq summary { cursor: pointer; background: transparent !important; font-weight: 700; }
body.legal-page .local-faq p { background: transparent !important; border: none !important; box-shadow: none !important; }
body.legal-page .local-faq summary::marker, body.legal-page .local-faq summary::-webkit-details-marker { color: var(--primary); }

/* Maillage interne */
body.legal-page .cross-links { border-color: var(--border) !important; }
body.legal-page .cross-links a { background: #fff !important; border: 1px solid var(--border) !important; color: var(--text) !important; }
body.legal-page .cross-links a span { color: var(--text-muted) !important; }
body.legal-page .cross-links a:hover { border-color: var(--primary) !important; color: var(--primary) !important; }

/* Pied de page */
body.legal-page .legal-footer { background: var(--bg-soft) !important; border-top: 1px solid var(--border) !important; color: var(--text-muted) !important; }
body.legal-page .legal-footer__copy, body.legal-page .legal-footer__links a, body.legal-page .legal-footer__links button { color: var(--text-muted) !important; }
body.legal-page .legal-footer__copy a { text-decoration: underline; text-underline-offset: 3px; }
body.legal-page .legal-footer__links a:hover { color: var(--primary) !important; }
body.legal-page .legal-footer .sep { color: var(--border) !important; }

/* Cookies */
body.legal-page .cookie-consent { background: #fff !important; border: 1px solid var(--border) !important; color: var(--text) !important; box-shadow: 0 24px 60px -24px rgba(47,72,88,.4) !important; }
body.legal-page .cookie-consent h3 { color: var(--text) !important; }
body.legal-page .cookie-consent p { color: var(--text-muted) !important; }
body.legal-page .cookie-consent .c-accept { color: #DDFBEF !important; background: var(--primary) !important; border: none !important; }
body.legal-page .cookie-consent .c-refuse { color: var(--text) !important; background: #fff !important; border: 1px solid var(--border) !important; }


/* ---------- Verre : surfaces communes ---------- */
body.legal-page .legal-nav, body.legal-page .highlight, body.legal-page .legal-card, body.legal-page .local-steps > *,
body.legal-page .local-faq, body.legal-page .cross-links a, body.legal-page .legal-footer, body.legal-page .cookie-consent, body.legal-page .btn-secondary {
  background: linear-gradient(135deg, rgba(255,255,255,.72), rgba(255,255,255,.55) 55%, rgba(255,255,255,.62)) !important;
  -webkit-backdrop-filter: blur(24px) saturate(170%); backdrop-filter: blur(24px) saturate(170%);
  border: 1px solid rgba(255,255,255,.85) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.95), 0 24px 60px -34px rgba(47,72,88,.45) !important;
}
body.legal-page .legal-nav { border-width: 0 0 1px !important; }
body.legal-page .legal-hero { background: transparent !important; border-bottom: 1px solid rgba(255,255,255,.7); }
body.legal-page .gradient-text { position: relative; }
body.legal-page .highlight, body.legal-page .legal-card, body.legal-page .local-steps > *, body.legal-page .local-faq, body.legal-page .cross-links a { border-radius: 20px !important; transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s !important; }
body.legal-page .highlight:hover, body.legal-page .legal-card:hover, body.legal-page .cross-links a:hover { transform: translateY(-3px); border-color: rgba(255,255,255,.95) !important; box-shadow: inset 0 1px 0 rgba(255,255,255,.95), 0 30px 64px -30px rgba(47,72,88,.55) !important; }
body.legal-page .btn-primary {
  position: relative; overflow: hidden; border-radius: 999px !important; border: 1px solid rgba(255,255,255,.35) !important;
  background: linear-gradient(160deg, #3D5B6D, var(--primary) 55%, var(--primary-2)) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.45), inset 0 -2px 6px rgba(0,0,0,.18), 0 16px 34px -16px rgba(47,72,88,.75) !important;
}
body.legal-page .btn-primary:hover { transform: translateY(-2px); box-shadow: inset 0 1px 0 rgba(255,255,255,.5), inset 0 -2px 6px rgba(0,0,0,.18), 0 22px 44px -16px rgba(47,72,88,.8), 0 0 0 8px rgba(47,72,88,.10) !important; }
body.legal-page .btn-secondary { border-radius: 999px !important; }
body.legal-page .legal-section h2 .num { color: var(--text-muted) !important; }
@media (prefers-reduced-motion: reduce) { body.legal-page .highlight, body.legal-page .legal-card, body.legal-page .cross-links a { transition: none !important; } }

/* Transitions de page (View Transitions API) — sobres */
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: vtOut .2s ease both; }
::view-transition-new(root) { animation: vtIn .28s ease both; }
@keyframes vtOut { to { opacity: 0; } }
@keyframes vtIn { from { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { ::view-transition-old(root), ::view-transition-new(root) { animation: none; } }
