    :root {
      color-scheme: light;
      --logo: url("data:image/png;base64,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");
      /* Palette : drapeau du Québec (bleu Pantone 293 C + blanc) */
      --blue: #003DA5;          /* remplissages (boutons, bandes) */
      --blue-d: #00297a;
      --link: #003DA5;          /* texte d'accent */
      --band: #003DA5;
      --bg: #ffffff;
      --surface: #ffffff;
      --tint: #f3f6fc;
      --tint-2: #e7eefb;
      --line: #dde5f2;
      --btn-line: #c5d1e8;
      --ink: #0a1633;
      --text: #33405a;
      --muted: #4a5873;
      --faint: #5b6882;
      --header-bg: rgba(255,255,255,.92);
      --grid: rgba(0,61,165,.07);
      --halo: rgba(0,61,165,.10);
      --shadow-blue: rgba(0,61,165,.14);
      --t1: #e7eefb; --t2: #cfdcf6; --t3: #003DA5; --t3-text: #fff;
      --chart: #003DA5;
      --radius: 24px;
      --font-head: 'Fraunces', Georgia, 'Times New Roman', serif;
      --font-body: 'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
      --gutter: clamp(16px, 4vw, 32px);
    }
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    html { scroll-behavior: smooth; scroll-padding-top: 88px; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
    body { font-family: var(--font-body); background: var(--bg); color: var(--ink); line-height: 1.6; -webkit-font-smoothing: antialiased; overflow-x: hidden; transition: background .25s, color .25s; }
    a { color: inherit; text-decoration: none; }
    svg { flex-shrink: 0; max-width: 100%; }
    :focus-visible { outline: 3px solid #5b8def; outline-offset: 3px; border-radius: 8px; }
    .skip { position: absolute; left: -999px; top: 8px; background: var(--blue); color: #fff; padding: 10px 16px; border-radius: 999px; z-index: 300; font-weight: 700; }
    .skip:focus { left: 8px; }

    .wrap { width: 100%; max-width: 1200px; margin-inline: auto; padding-inline: var(--gutter); }
    .section { padding-block: clamp(56px, 8vw, 104px); }

/* header */
    .header { position: sticky; top: 0; z-index: 200; background: var(--header-bg); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-bottom: 1px solid var(--line); }
    .header-inner { display: flex; align-items: center; justify-content: space-between; gap: 12px; height: 72px; }
    .logo { display: inline-flex; align-items: center; gap: 10px; font-weight: 800; font-size: 1.15rem; letter-spacing: -.015em; white-space: nowrap; min-width: 0; }
    .logo-badge { display: grid; place-items: center; width: 38px; height: 38px; background: var(--logo) center / cover no-repeat, #003DA5; color: #fff; border-radius: 12px; font-size: .82rem; font-weight: 800; letter-spacing: .03em; box-shadow: 0 6px 16px rgba(0,61,165,.28); }
    .logo b { color: var(--link); font-weight: 800; }
    .header-right { display: flex; align-items: center; gap: 8px; }
    .nav { display: flex; align-items: center; gap: 2px; }
    .nav a { padding: 9px 14px; border-radius: 999px; font-size: .94rem; font-weight: 600; color: var(--muted); transition: background .15s, color .15s; }
    .nav a:hover { background: var(--tint-2); color: var(--ink); }
    .nav a:last-child { background: var(--blue); color: #fff; margin-left: 6px; padding-inline: 20px; }
    .nav a:last-child:hover { background: var(--blue-d); }
    .icon-btn { display: inline-grid; place-items: center; width: 42px; height: 42px; background: var(--surface); border: 1px solid var(--btn-line); color: var(--ink); border-radius: 999px; cursor: pointer; transition: border-color .15s, background .15s; }
    .icon-btn:hover { border-color: var(--blue); }
    .nav-toggle { display: none; }
    .mobile-nav { display: none; flex-direction: column; gap: 4px; padding: 10px var(--gutter) 18px; border-top: 1px solid var(--line); background: var(--bg); }
    .mobile-nav.open { display: flex; }
    .mobile-nav a { padding: 14px 16px; border-radius: 14px; font-weight: 600; font-size: 1.02rem; }
    .mobile-nav a:hover { background: var(--tint); }
    .mobile-nav a.mobile-cta { background: var(--blue); color: #fff; text-align: center; border-radius: 999px; margin-top: 6px; }
    @media (max-width: 840px) { .nav { display: none; } .nav-toggle { display: inline-grid; } }
    @media (max-width: 360px) { .logo { font-size: 1.02rem; gap: 8px; } .logo-badge { width: 34px; height: 34px; } .icon-btn { width: 38px; height: 38px; } }

/* footer */
    .footer { background: #001b4f; color: #c9d6f2; padding: clamp(48px, 7vw, 80px) var(--gutter) 28px; }
    .footer a { transition: color .15s; }
    .footer-grid { max-width: 1200px; margin: 0 auto 48px; display: grid; grid-template-columns: 1.3fr 2fr 1fr; gap: 48px; }
    @media (max-width: 960px) { .footer-grid { grid-template-columns: 1fr 1fr; gap: 36px 32px; } .footer-grid > :nth-child(2) { grid-column: 1 / -1; order: 3; } }
    @media (max-width: 520px) { .footer-grid { grid-template-columns: 1fr; } }
    .footer-logo { display: flex; align-items: center; gap: 10px; font-weight: 800; font-size: 1.15rem; color: #fff; margin-bottom: 14px; }
    .footer-logo .logo-badge { box-shadow: 0 0 0 1px rgba(255,255,255,.28); }
    .footer-logo b { color: #9db9f0; font-weight: 800; }
    .footer-tag { font-size: .93rem; line-height: 1.65; max-width: 320px; color: #c9d6f2; }
    .footer h4 { font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; color: #9fb3dc; margin-bottom: 14px; }
    .footer-links { columns: 2; column-gap: 28px; }
    @media (max-width: 520px) { .footer-links { columns: 1; } }
    .footer-links a, .footer-col a { display: block; break-inside: avoid; font-size: .94rem; padding: 5px 0; color: #e2e9f8; }
    .footer-links a:hover, .footer-col a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
    .footer-bottom { max-width: 1200px; margin: 0 auto; border-top: 1px solid rgba(255,255,255,.14); padding-top: 24px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 24px; font-size: .86rem; color: #9fb3dc; }
    .footer-legal { display: flex; flex-wrap: wrap; gap: 8px 20px; }
    .footer-legal a { color: #b8c8ea; }
    .footer-legal a:hover { color: #fff; }

    @media (prefers-reduced-motion: reduce) {
      html { scroll-behavior: auto; }
      *, *::before, *::after { transition: none !important; animation: none !important; }
    }
    /* ================= PAGES INTÉRIEURES ================= */
    .btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 15px 28px; border-radius: 999px; font: inherit; font-weight: 700; font-size: 1rem; border: 0; cursor: pointer; transition: transform .2s, background .2s, box-shadow .2s; }
    .btn-primary { background: var(--blue); color: #fff; }
    .btn-primary:hover { background: var(--blue-d); transform: translateY(-2px); box-shadow: 0 10px 26px var(--shadow-blue); }
    .nav a[aria-current="page"]:not(:last-child) { color: var(--ink); background: var(--tint-2); }
    .mobile-nav a[aria-current="page"] { background: var(--tint-2); }
    .mobile-nav a.mobile-cta[aria-current="page"] { background: var(--blue); }
    section[id], aside[id] { scroll-margin-top: 92px; }

    /* ---- Hero de page ---- */
    .page-hero { position: relative; overflow: hidden; text-align: center; padding-block: clamp(48px, 8vw, 104px) clamp(40px, 6vw, 72px); background:
        radial-gradient(640px 320px at 8% 0%, var(--halo), transparent 70%),
        radial-gradient(520px 300px at 100% 30%, var(--halo), transparent 70%),
        var(--bg); border-bottom: 1px solid var(--line); }
    .page-hero::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px); background-size: 44px 44px; -webkit-mask-image: radial-gradient(ellipse 80% 100% at 50% 0%, #000 10%, transparent 75%); mask-image: radial-gradient(ellipse 80% 100% at 50% 0%, #000 10%, transparent 75%); pointer-events: none; }
    .page-hero .wrap { position: relative; }
    .eyebrow { display: inline-flex; align-items: center; gap: 8px; color: var(--link); font-size: .8rem; font-weight: 700; margin-bottom: 18px; letter-spacing: .14em; text-transform: uppercase; }
    .page-hero h1 { font-weight: 800; font-size: clamp(2.1rem, 5.4vw, 3.9rem); line-height: 1.06; letter-spacing: -.03em; color: var(--ink); max-width: 18ch; margin: 0 auto 16px; text-wrap: balance; }
    .page-hero .lead { color: var(--muted); font-size: clamp(1.02rem, 1.5vw, 1.2rem); max-width: 660px; margin: 0 auto; }
    .pill { display: inline-flex; align-items: center; gap: 8px; background: var(--tint-2); color: var(--link); font-size: .82rem; font-weight: 700; padding: 7px 14px; border-radius: 999px; }
    .page-hero .pill { margin-top: 22px; }
.nav a[aria-current="page"]:not(:last-child) { color: var(--ink); background: var(--tint-2); }
    .mobile-nav a[aria-current="page"] { background: var(--tint-2); }
    .faq-item { background: #fff; border: 1.5px solid var(--line); border-radius: 18px; margin-bottom: 10px; transition: border-color .2s; }
    .faq-item[open] { border-color: var(--blue); }
    .faq-item summary { list-style: none; cursor: pointer; padding: 18px 54px 18px 22px; font-weight: 700; color: var(--ink); position: relative; }
    .faq-item summary::-webkit-details-marker { display: none; }
    .faq-item summary::after { content: ""; position: absolute; right: 20px; top: 50%; width: 18px; height: 18px; transform: translateY(-50%); background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23003DA5' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat; transition: transform .2s; }
    .faq-item[open] summary::after { transform: translateY(-50%) rotate(180deg); }
    .faq-a { padding: 0 22px 20px; color: var(--muted); line-height: 1.75; font-size: .96rem; }
    table { border-collapse: collapse; }
    th { text-align: left; font-size: .74rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--faint); padding: 14px 18px; border-bottom: 1.5px solid var(--line); }
    td { padding: 14px 18px; border-bottom: 1px solid var(--line); color: var(--text); }
    tbody tr:last-child td { border-bottom: 0; }
    .table-wrap { background: #fff; border-radius: 18px; border: 1px solid var(--line); }
    section[id], h2[id] { scroll-margin-top: 92px; }

    /* ================= BLOGUE ================= */
    .crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; font-size: .84rem; color: var(--faint); margin-bottom: 18px; }
    .crumbs a { color: var(--muted); font-weight: 600; }
    .crumbs a:hover { color: var(--link); }
    .crumbs span[aria-hidden] { color: #b6c2d9; }
    .art-hero { text-align: left; padding-block: clamp(36px, 6vw, 72px) clamp(28px, 4vw, 48px); }
    .art-hero .wrap { max-width: 1180px; }
    .art-hero h1 { max-width: 28ch; margin: 0 0 18px; font-size: clamp(1.9rem, 4.6vw, 3.2rem); }
    .art-hero::before { -webkit-mask-image: radial-gradient(ellipse 80% 100% at 30% 0%, #000 10%, transparent 75%); mask-image: radial-gradient(ellipse 80% 100% at 30% 0%, #000 10%, transparent 75%); }
    .art-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; font-size: .88rem; color: var(--muted); }
    .art-meta .chip { display: inline-flex; align-items: center; gap: 6px; background: var(--blue); color: #fff; font-weight: 700; font-size: .78rem; letter-spacing: .04em; padding: 6px 14px; border-radius: 999px; }
    .art-meta .m { display: inline-flex; align-items: center; gap: 6px; }
    .art-meta .m svg { color: var(--link); }

    .art-layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: clamp(24px, 3.5vw, 44px); max-width: 1180px; margin-inline: auto; padding-block: clamp(32px, 5vw, 64px) clamp(56px, 8vw, 96px); align-items: start; }
    @media (max-width: 1040px) { .art-layout { grid-template-columns: minmax(0, 1fr); } }
    .art { min-width: 0; font-size: 1.04rem; }
    .art > *:first-child { margin-top: 0; }
    .art h2 { font-size: clamp(1.45rem, 2.6vw, 1.85rem); font-weight: 800; letter-spacing: -.025em; line-height: 1.2; margin: 2.2em 0 .6em; color: var(--ink); text-wrap: balance; scroll-margin-top: 92px; }
    .art h3 { font-size: 1.22rem; font-weight: 700; letter-spacing: -.01em; margin: 1.8em 0 .5em; color: var(--ink); }
    .art h4 { font-size: 1.05rem; font-weight: 700; margin: 1.4em 0 .4em; color: var(--ink); }
    .art p { color: var(--text); line-height: 1.85; margin-bottom: 1.1em; }
    .art .lead { font-size: 1.16rem; font-weight: 500; color: var(--muted); line-height: 1.75; padding-bottom: 1.4em; margin-bottom: 1.6em; border-bottom: 1px solid var(--line); }
    .art ul, .art ol { margin: 0 0 1.3em; padding-left: 1.4em; }
    .art li { color: var(--text); line-height: 1.8; margin-bottom: .55em; padding-left: 4px; }
    .art li::marker { color: var(--link); font-weight: 700; }
    .art strong { color: var(--ink); }
    .art a { color: var(--link); font-weight: 600; text-decoration: underline; text-decoration-color: rgba(0,61,165,.3); text-underline-offset: 3px; overflow-wrap: anywhere; }
    .art a:hover { text-decoration-color: var(--link); }
    .art .table-wrap { margin: 1.8em 0; overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: 18px; border: 1px solid var(--line); background: #fff; scrollbar-width: thin; scrollbar-color: var(--btn-line) var(--tint); box-shadow: 0 4px 16px rgba(0,61,165,.04); }
    .art .table-wrap::-webkit-scrollbar { height: 6px; }
    .art .table-wrap::-webkit-scrollbar-track { background: var(--tint); border-radius: 999px; }
    .art .table-wrap::-webkit-scrollbar-thumb { background: var(--btn-line); border-radius: 999px; }
    .art .table-wrap::-webkit-scrollbar-thumb:hover { background: var(--muted); }
    .art table { width: 100%; border-collapse: collapse; font-size: .88rem; line-height: 1.45; }
    .art th { background: var(--tint); color: var(--ink); white-space: normal; word-break: normal; padding: 12px 14px; font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; border-bottom: 1.5px solid var(--line); vertical-align: bottom; }
    .art td { vertical-align: top; padding: 12px 14px; border-bottom: 1px solid var(--line); font-size: .88rem; line-height: 1.5; color: var(--text); }
    .art td:first-child { font-weight: 600; color: var(--ink); }
    .art tbody tr:last-child td { border-bottom: 0; }
    .art tbody tr:hover td { background: rgba(243,246,252,.5); }
    .art .formula { text-align: center; font-size: 1.3rem; font-weight: 800; color: var(--ink); background: var(--tint); border-radius: 18px; padding: 18px; }
    .callout { border-radius: 0 20px 20px 0; border-left: 4px solid var(--blue); background: var(--tint); padding: 20px 24px; margin: 1.6em 0; line-height: 1.75; font-size: .98rem; color: var(--text); }
    .callout > :last-child { margin-bottom: 0; }
    .callout p { margin-bottom: .7em; }
    .callout.c-green { border-left-color: #16a34a; background: #f0fdf4; }
    .callout.c-gold { border-left-color: #d97706; background: #fffbeb; }
    .box { background: var(--tint); border-radius: 22px; padding: 20px 24px; margin: 1.6em 0; }
    .box > :last-child { margin-bottom: 0; }
    .cta-box { background: var(--blue); color: #dbe6fb; border-radius: 26px; padding: clamp(22px, 4vw, 36px); margin: 2em 0; }
    .cta-box h2, .cta-box h3, .cta-box strong { color: #fff; margin-top: 0; }
    .cta-box p { color: #dbe6fb; }
    .art .cta-btn, .art a.cta-btn { display: inline-flex; background: #fff; color: var(--blue); padding: 13px 26px; border-radius: 999px; font-weight: 700; text-decoration: none; margin-top: 6px; }
    .art .faq-item summary { font-size: 1rem; line-height: 1.5; }
    .art .faq-a { padding-top: 0; }
    .art .faq-a p { margin-bottom: .8em; font-size: .96rem; line-height: 1.75; }
    .art .faq-a > :last-child { margin-bottom: 0; }
    .author { display: flex; align-items: center; gap: 16px; margin-top: 3em; padding: 22px 26px; background: var(--tint); border-radius: 24px; }
    .avatar { border-radius: 50%; background: var(--blue); color: #fff; display: grid; place-items: center; font-family: var(--font-head); font-weight: 600; }
    .author .avatar { width: 56px; height: 56px; font-size: 1.15rem; flex-shrink: 0; box-shadow: 0 0 0 4px #fff; }
    .author p { margin: 0; line-height: 1.6; }
    .author .n { font-weight: 700; color: var(--ink); }
    .author .n a { color: inherit; text-decoration: none; }
    .author .n span { font-weight: 500; color: var(--muted); }
    .author .d { font-size: .9rem; color: var(--muted); margin-top: 4px; }
    .art-side { position: sticky; top: 92px; display: flex; flex-direction: column; gap: 18px; }
    @media (max-width: 960px) { .art-side { position: static; } }
    .side-card { background: var(--tint); border-radius: 24px; padding: 22px; }
    .side-card h3 { font-size: .78rem; text-transform: uppercase; letter-spacing: .12em; color: var(--faint); font-weight: 700; margin-bottom: 12px; }
    .side-card .tool { display: flex; align-items: center; gap: 12px; background: #fff; border-radius: 16px; padding: 12px 14px; font-weight: 700; color: var(--ink); font-size: .95rem; margin-bottom: 8px; transition: transform .15s, box-shadow .15s; }
    .side-card .tool:last-child { margin-bottom: 0; }
    .side-card .tool:hover { transform: translateY(-2px); box-shadow: 0 8px 20px var(--shadow-blue); }
    .side-card .tool .ic { width: 34px; height: 34px; border-radius: 10px; background: var(--tint-2); color: var(--link); display: grid; place-items: center; flex-shrink: 0; }
    .side-card ul { list-style: none; padding: 0; margin: 0; }
    .side-card li a { display: block; padding: 9px 4px; font-weight: 600; font-size: .94rem; color: var(--text); border-bottom: 1px solid var(--line); }
    .side-card li:last-child a { border-bottom: 0; }
    .side-card li a:hover { color: var(--link); }

    /* ---- listes d'articles ---- */
    .listing { padding-block: clamp(32px, 5vw, 56px) clamp(56px, 8vw, 96px); }
    .filters { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 28px; }
    .filters button, .filters a { display: inline-flex; align-items: center; gap: 8px; font: inherit; font-weight: 700; font-size: .92rem; color: var(--muted); background: #fff; border: 1.5px solid var(--btn-line); padding: 9px 18px; border-radius: 999px; cursor: pointer; transition: all .15s; }
    .filters button:hover, .filters a:hover { border-color: var(--blue); color: var(--link); }
    .filters button.on { background: var(--blue); border-color: var(--blue); color: #fff; }
    .filters .n { font-size: .75rem; opacity: .7; }
    .posts { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 20px; }
    .post { display: flex; flex-direction: column; background: var(--tint); border-radius: 26px; padding: 24px; transition: transform .2s, box-shadow .2s, background .2s; }
    .post:hover { transform: translateY(-4px); background: #fff; box-shadow: 0 18px 44px var(--shadow-blue); }
    .post[hidden] { display: none; }
    .post .tag { align-self: flex-start; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--link); background: #fff; padding: 5px 12px; border-radius: 999px; margin-bottom: 14px; }
    .post:hover .tag { background: var(--tint-2); }
    .post h2 { font-size: 1.15rem; font-weight: 800; letter-spacing: -.015em; line-height: 1.3; margin-bottom: 10px; }
    .post h2 a { color: var(--ink); }
    .post h2 a::after { content: ""; position: absolute; inset: 0; border-radius: 26px; }
    .post { position: relative; }
    .post p { color: var(--muted); font-size: .94rem; line-height: 1.65; margin-bottom: 16px; }
    .post .foot { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: .84rem; color: var(--faint); }
    .post .foot .d { display: inline-flex; align-items: center; gap: 6px; }
    .post .foot .go { display: inline-flex; align-items: center; gap: 6px; color: var(--link); font-weight: 700; }
    .empty { display: none; text-align: center; color: var(--muted); padding: 40px 0; }

/* =====================================================================
   BANNIÈRE DE CONSENTEMENT AUX TÉMOINS
   ===================================================================== */
#cqc-consent-banner {
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 9000;
  background: #fff;
  border-top: 1px solid var(--line);
  box-shadow: 0 -8px 40px rgba(0,61,165,.12);
  transform: translateY(100%);
  transition: transform .4s cubic-bezier(.16,1,.3,1);
  font-family: var(--font-body);
}
#cqc-consent-banner.cqc-cb-visible  { transform: translateY(0); }
#cqc-consent-banner.cqc-cb-hiding   { transform: translateY(100%); }
.cqc-cb-inner {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 16px;
  max-width: 1200px;
  margin-inline: auto;
  padding: 18px clamp(16px,4vw,32px);
}
.cqc-cb-icon { color: var(--link); flex-shrink: 0; }
.cqc-cb-text strong { display: block; font-size: .97rem; font-weight: 700; color: var(--ink); margin-bottom: 4px; }
.cqc-cb-text p { font-size: .87rem; color: var(--muted); line-height: 1.55; margin: 0; }
.cqc-cb-link { font-size: .84rem; color: var(--link); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; margin-top: 4px; display: inline-block; }
.cqc-cb-actions { display: flex; flex-wrap: wrap; gap: 8px; flex-shrink: 0; }
.cqc-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; border: none; border-radius: 999px; font: inherit; font-size: .88rem; font-weight: 700; cursor: pointer; padding: 10px 20px; transition: background .2s, transform .15s, box-shadow .2s; }
.cqc-btn-primary  { background: var(--blue); color: #fff; }
.cqc-btn-primary:hover { background: var(--blue-d); transform: translateY(-1px); box-shadow: 0 6px 18px rgba(0,61,165,.28); }
.cqc-btn-secondary { background: var(--tint-2); color: var(--ink); border: 1.5px solid var(--btn-line); }
.cqc-btn-secondary:hover { background: var(--tint); border-color: var(--blue); }
.cqc-btn-ghost { background: transparent; color: var(--muted); }
.cqc-btn-ghost:hover { color: var(--ink); text-decoration: underline; }
@media (max-width: 900px) {
  .cqc-cb-inner { grid-template-columns: auto 1fr; row-gap: 12px; }
  .cqc-cb-actions { grid-column: 1 / -1; }
}
@media (max-width: 480px) {
  .cqc-cb-icon { display: none; }
  .cqc-cb-inner { grid-template-columns: 1fr; }
  .cqc-btn { width: 100%; }
}

/* =====================================================================
   MODAL DE PERSONNALISATION DES PRÉFÉRENCES
   ===================================================================== */
#cqc-consent-modal {
  position: fixed; inset: 0; z-index: 9100;
  background: rgba(10,22,51,.55);
  backdrop-filter: blur(4px);
  display: flex; align-items: flex-end; justify-content: center;
  opacity: 0; transition: opacity .3s;
  padding-bottom: 0;
}
@media (min-width: 640px) { #cqc-consent-modal { align-items: center; } }
#cqc-consent-modal.cqc-modal-visible { opacity: 1; }
.cqc-modal-box {
  background: #fff; border-radius: 28px 28px 0 0;
  width: 100%; max-width: 560px;
  box-shadow: 0 24px 80px rgba(0,61,165,.24);
  transform: translateY(40px); transition: transform .3s cubic-bezier(.16,1,.3,1);
  overflow: hidden;
}
@media (min-width: 640px) { .cqc-modal-box { border-radius: 28px; transform: scale(.96); } }
#cqc-consent-modal.cqc-modal-visible .cqc-modal-box { transform: translateY(0); }
@media (min-width: 640px) { #cqc-consent-modal.cqc-modal-visible .cqc-modal-box { transform: scale(1); } }
.cqc-modal-hdr { display: flex; align-items: center; justify-content: space-between; padding: 22px 24px 18px; border-bottom: 1px solid var(--line); }
.cqc-modal-hdr h2 { font-family: var(--font-head); font-size: 1.2rem; font-weight: 600; color: var(--ink); margin: 0; }
.cqc-modal-close { background: var(--tint); border: none; border-radius: 50%; width: 34px; height: 34px; display: grid; place-items: center; cursor: pointer; color: var(--muted); transition: background .2s, color .2s; }
.cqc-modal-close:hover { background: var(--tint-2); color: var(--ink); }
.cqc-modal-body { padding: 8px 24px; }
.cqc-pref-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.cqc-pref-row:last-child { border-bottom: 0; }
.cqc-pref-req { opacity: .7; }
.cqc-pref-info strong { display: block; font-size: .94rem; font-weight: 700; color: var(--ink); margin-bottom: 3px; }
.cqc-pref-info p { font-size: .84rem; color: var(--muted); margin: 0; line-height: 1.5; }
.cqc-pref-badge { font-size: .76rem; font-weight: 700; color: var(--link); background: var(--tint-2); padding: 5px 12px; border-radius: 999px; white-space: nowrap; flex-shrink: 0; }
/* Toggle switch */
.cqc-toggle { position: relative; display: inline-block; width: 48px; height: 28px; flex-shrink: 0; cursor: pointer; }
.cqc-toggle input { opacity: 0; width: 0; height: 0; position: absolute; }
.cqc-tog-slider {
  position: absolute; inset: 0; background: #dde5f2; border-radius: 999px;
  transition: background .25s;
}
.cqc-tog-slider::before {
  content: ''; position: absolute; left: 4px; top: 4px;
  width: 20px; height: 20px; border-radius: 50%; background: #fff;
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
  transition: transform .25s cubic-bezier(.16,1,.3,1);
}
.cqc-toggle input:checked + .cqc-tog-slider { background: var(--blue); }
.cqc-toggle input:checked + .cqc-tog-slider::before { transform: translateX(20px); }
.cqc-toggle input:focus-visible + .cqc-tog-slider { outline: 3px solid #5b8def; outline-offset: 2px; }
.cqc-modal-ftr { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 24px; border-top: 1px solid var(--line); }

/* Bouton pied de page */
.cqc-prefs-btn {
  background: none; border: none; cursor: pointer; font: inherit;
  font-size: .84rem; color: inherit; padding: 0;
  text-decoration: underline; text-underline-offset: 2px;
  opacity: .7; transition: opacity .2s;
}
.cqc-prefs-btn:hover { opacity: 1; }

/* =====================================================================
   WIDGET INFOLETTRE (mince, intégré au thème)
   ===================================================================== */
.cqc-nl {
  background: #f8fafc;
  border-top: 1px solid #dde5f2;
  border-bottom: 1px solid #dde5f2;
  color: #0a1633;
  padding: 20px 0;
  font-family: var(--font-body);
}
.cqc-nl-wrap {
  max-width: 1200px;
  margin: 0 auto;
  padding-inline: clamp(16px, 4vw, 32px);
}
.cqc-nl-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}
.cqc-nl-lead {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 0 1 auto;
}
.cqc-nl-icon {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: #e7eefb;
  color: #003da5;
  display: grid;
  place-items: center;
  flex-shrink: 0;
}
.cqc-nl-title {
  font-family: var(--font-head);
  font-size: 1.12rem;
  font-weight: 700;
  color: #0a1633;
  margin: 0;
  line-height: 1.25;
}
.cqc-nl-desc {
  font-size: 0.82rem;
  color: #5b6882;
  margin: 2px 0 0;
}
.cqc-nl-form {
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex: 1 1 540px;
  max-width: 640px;
}
.cqc-nl-inputs {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.cqc-nl-input {
  flex: 1 1 200px;
  min-width: 180px;
  padding: 9px 14px;
  border: 1.5px solid #c5d1e8;
  border-radius: 999px;
  background: #ffffff;
  color: #0a1633;
  font: inherit;
  font-size: 0.88rem;
  transition: border-color .15s, box-shadow .15s;
  outline: none;
  box-sizing: border-box;
}
.cqc-nl-input:focus {
  border-color: #003da5;
  box-shadow: 0 0 0 3px rgba(0, 61, 165, 0.12);
}
.cqc-nl-select {
  flex: 0 1 190px;
  min-width: 170px;
  padding: 9px 34px 9px 14px;
  border: 1.5px solid #c5d1e8;
  border-radius: 999px;
  background: #ffffff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23003DA5' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center;
  color: #0a1633;
  font: inherit;
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  outline: none;
  transition: border-color .15s, box-shadow .15s;
  box-sizing: border-box;
}
.cqc-nl-select:focus {
  border-color: #003da5;
  box-shadow: 0 0 0 3px rgba(0, 61, 165, 0.12);
}
.cqc-nl-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  background: #003da5;
  color: #ffffff;
  border: none;
  border-radius: 999px;
  font: inherit;
  font-size: 0.88rem;
  font-weight: 700;
  padding: 9px 20px;
  cursor: pointer;
  white-space: nowrap;
  transition: background .15s, transform .1s, box-shadow .15s;
}
.cqc-nl-btn:hover:not(:disabled) {
  background: #00297a;
  transform: translateY(-1px);
  box-shadow: 0 3px 10px rgba(0, 61, 165, 0.25);
}
.cqc-nl-btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.cqc-nl-legal {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.77rem;
  color: #5b6882;
  cursor: pointer;
  line-height: 1.3;
  margin: 0;
}
.cqc-nl-legal input[type="checkbox"] {
  width: 14px;
  height: 14px;
  accent-color: #003da5;
  margin: 0;
  cursor: pointer;
}
.cqc-nl-legal a {
  color: #003da5;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.cqc-hp { display: none !important; visibility: hidden !important; }
.cqc-nl-msg {
  display: none;
  font-size: 0.82rem;
  padding: 4px 10px;
  border-radius: 6px;
}
.cqc-nl-msg:not(:empty) { display: block; }
.cqc-nl-msg-err {
  color: #b91c1c;
  background: #fef2f2;
  border: 1px solid #fecaca;
}
.cqc-nl-ok {
  display: flex;
  align-items: center;
  gap: 10px;
  background: #ecfdf3;
  border: 1px solid #86efac;
  border-radius: 999px;
  padding: 8px 18px;
  color: #166534;
  font-size: 0.86rem;
  font-weight: 600;
}
.cqc-nl-ok svg {
  color: #166534;
  flex-shrink: 0;
}
@media (max-width: 860px) {
  .cqc-nl-row { flex-direction: column; align-items: stretch; gap: 12px; }
  .cqc-nl-form { max-width: 100%; }
}
@media (max-width: 520px) {
  .cqc-nl-inputs { flex-direction: column; align-items: stretch; }
  .cqc-nl-input, .cqc-nl-select, .cqc-nl-btn { width: 100%; }
}

