/* ==========================================================================
   Politiquement.org — feuille de style consolidée V7
   Socle fonctionnel + direction artistique premium.
   ========================================================================== */

/* SOCLE */
    :root{
      --ink:#0b0b0c;
      --paper:#ffffff;

      /* “canvas” = fond général (très léger) */
      --canvas:#f4f4f6;

      /* Accents sobres (inspiration France, très léger) */
      --accentA:#0055A4;
      --accentB:#EF4135;
      --accent: var(--accentA);
      --franceBlue:#0055A4;
      --franceWhite:#ffffff;
      --franceRed:#EF4135;
      --franceGradient: linear-gradient(90deg, var(--franceBlue) 0%, var(--franceWhite) 50%, var(--franceRed) 100%);
      --tintA: rgba(29,78,216,.12);
      --tintB: rgba(220,38,38,.10);

      --muted: rgba(0,0,0,.66);
      --muted2: rgba(0,0,0,.48);

      --line: rgba(0,0,0,.12);
      --line2: rgba(0,0,0,.08);
      --soft: rgba(0,0,0,.04);

      /* Ombres sobres mais premium */
      --shadow: 0 28px 80px rgba(0,0,0,.10);
      --shadow2: 0 16px 44px rgba(0,0,0,.085);
      --shadow3: 0 8px 22px rgba(0,0,0,.065);

      --r: 28px;
      --r2: 18px;
      --r3: 14px;

      --max: 1360px;
      --heroMax: 1360px;

      --serif: ui-serif, "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
      --sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
      --mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;

      --headerH: 66px;
    }

    *{ box-sizing:border-box; }
    html, body{ height:100%; }
    body{
      margin:0;
      color: var(--ink);
      font-family: var(--sans);
      -webkit-font-smoothing: antialiased;
      text-rendering: geometricPrecision;

      /* Fond clair, sobre et lisible */
      background:
        radial-gradient(circle at 50% -10%, rgba(0,85,164,.075), transparent 34%),
        radial-gradient(circle at 90% 10%, rgba(239,65,53,.055), transparent 30%),
        var(--canvas);
    }

    ::selection{ background: var(--ink); color:#fff; }

    a{ color: inherit; }

    .shell{
      width: min(100%, var(--max));
      margin: 0 auto;
      padding: 0 clamp(16px, 3vw, 34px);
    }

    .skipLink{
      position:absolute;
      left:-999px;
      top: 10px;
      z-index: 999;
      background:#fff;
      color: var(--ink);
      border: 1px solid var(--line);
      border-radius: 999px;
      padding: 10px 14px;
      font-family: var(--mono);
      font-weight: 900;
      font-size: 11px;
      letter-spacing: .14em;
      text-transform: uppercase;
      text-decoration:none;
      box-shadow: var(--shadow3);
    }
    .skipLink:focus{ left: 12px; }

    /* Topbar noir */
    .topbar{
      position: sticky;
      top: 0;
      z-index: 120;
      background: linear-gradient(180deg, #0b0b0c 0%, #09090a 100%);
      color:#fff;
      border-bottom: 1px solid rgba(255,255,255,.08);
    }
    .topbar::after{
      content:"";
      display:block;
      height: 2px;
      background: var(--franceGradient);
      opacity: .9;
    }
    .topbarInner{
      min-height: var(--headerH);
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap: 14px;
      padding: 10px clamp(16px, 3vw, 34px);
      flex-wrap:nowrap;
      position: relative;
    }

    .logo{
      display:flex;
      align-items:center;
      gap: 10px;
      text-decoration:none;
      color:#fff;
      font-weight: 950;
      letter-spacing: .14em;
      text-transform: lowercase;
      font-size: 13px;
      line-height: 1;
      white-space:nowrap;
    }
    .logoMark{
      width: 12px;
      height: 12px;
      border-radius: 3px;
      background:#fff;
      box-shadow: 0 0 0 1px rgba(255,255,255,.32) inset;
      flex: 0 0 auto;
    }
    .logoTag{
      margin-left: 10px;
      font-family: var(--mono);
      font-weight: 900;
      font-size: 10.5px;
      letter-spacing: .18em;
      text-transform: uppercase;
      color: rgba(255,255,255,.62);
    }
    @media (max-width: 760px){ .logoTag{ display:none; } }

    .menuToggle{
      display:none;
      align-items:center;
      justify-content:center;
      width: 42px;
      height: 42px;
      border-radius: 999px;
      border: 1px solid rgba(255,255,255,.22);
      background: rgba(255,255,255,.06);
      color:#fff;
      cursor:pointer;
      padding:0;
      -webkit-tap-highlight-color: transparent;
    }
    .menuToggle:hover{ background: rgba(255,255,255,.10); border-color: rgba(255,255,255,.36); }
    .menuToggleBox{
      width: 18px;
      height: 14px;
      position: relative;
      display:block;
    }
    .menuToggleBox::before,
    .menuToggleBox::after,
    .menuToggleLine{
      content:"";
      position:absolute;
      left:0;
      right:0;
      height: 2px;
      border-radius: 999px;
      background: currentColor;
      transition: transform .16s ease, opacity .16s ease, top .16s ease;
    }
    .menuToggleBox::before{ top:0; }
    .menuToggleLine{ top:6px; }
    .menuToggleBox::after{ top:12px; }
    .menuToggle[aria-expanded="true"] .menuToggleBox::before{ top:6px; transform: rotate(45deg); }
    .menuToggle[aria-expanded="true"] .menuToggleLine{ opacity:0; }
    .menuToggle[aria-expanded="true"] .menuToggleBox::after{ top:6px; transform: rotate(-45deg); }

    .nav{
      display:flex;
      align-items:center;
      gap: 14px;
      flex-wrap:wrap;
    }
    .navLink{
      text-decoration:none;
      color: rgba(255,255,255,.80);
      font-family: var(--mono);
      font-weight: 900;
      font-size: 11px;
      letter-spacing: .18em;
      text-transform: uppercase;
      padding: 8px 2px;
      border-bottom: 1px solid transparent;
    }
    .navLink:hover{ color:#fff; border-bottom-color: rgba(255,255,255,.60); box-shadow: 0 2px 0 0 rgba(29,78,216,.35); }
    .navLink[aria-current="page"]{ color:#fff; border-bottom-color:#fff; }

    .cta{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      text-decoration:none;
      border-radius: 999px;
      padding: 11px 14px;
      font-family: var(--mono);
      font-weight: 950;
      font-size: 11px;
      letter-spacing: .14em;
      text-transform: uppercase;
      border: 1px solid rgba(255,255,255,.22);
      color:#fff;
      background: rgba(255,255,255,.06);
      transition: transform .10s ease, background .14s ease, border-color .14s ease, box-shadow .14s ease;
      white-space:nowrap;
    }
    .cta:hover{
      transform: translateY(-1px);
      background: linear-gradient(90deg, rgba(0,85,164,.22) 0%, rgba(255,255,255,.18) 50%, rgba(239,65,53,.18) 100%);
      border-color: rgba(255,255,255,.34);
      box-shadow: 0 10px 30px rgba(0,0,0,.22);
    }

    main{
      padding: clamp(18px, 2.2vw, 34px) 0 clamp(44px, 4vw, 76px);
    }


    .breadcrumbWrap{
      color: rgba(0,0,0,.58);
    }
    .breadcrumbWrap.isTop{ margin: clamp(12px, 1.8vw, 20px) 0 0; }
    .breadcrumbWrap.isBottom{ margin: 0 0 clamp(20px, 2.4vw, 32px); }
    .breadcrumb{
      display:flex;
      align-items:center;
      gap: 8px;
      flex-wrap:wrap;
      min-height: 28px;
      font-family: var(--mono);
      font-size: 10.5px;
      line-height:1.25;
      font-weight: 950;
      letter-spacing: .12em;
      text-transform: uppercase;
    }
    .breadcrumb a{
      color: rgba(0,0,0,.58);
      text-decoration:none;
      transition: color .14s ease;
    }
    .breadcrumb a:hover{ color: var(--ink); }
    .breadcrumbSep{ color: rgba(0,0,0,.28); }
    .breadcrumbCurrent{ color: rgba(0,0,0,.82); }
    @media (max-width: 640px){
      .breadcrumb{ font-size:9.5px; letter-spacing:.08em; gap:6px; }
      .breadcrumbWrap.isTop{ margin-top: 10px; }
      .breadcrumbWrap.isBottom{ margin-bottom: 18px; }
    }

    /* Hero “magazine” */
    .hero{
      display:grid;
      grid-template-columns: minmax(0, 1.42fr) minmax(280px, .58fr);
      gap: 20px;
      align-items: stretch;
      margin-top: 14px;
      margin-bottom: 22px;
    }
    @media (max-width: 980px){ .hero{ grid-template-columns: 1fr; } }

    .heroCard{
      border: 1px solid var(--line);
      border-radius: var(--r);
      background: rgba(255,255,255,.96);
      box-shadow: var(--shadow2);
      overflow:hidden;
      position: relative;
      min-height:100%;
    }
    .heroCard::before{
      content:"";
      position:absolute;
      left:0; right:0; top:0;
      height: 7px;
      background: var(--franceGradient);
    }
    .heroBody{
      padding: clamp(18px, 2.4vw, 28px);
    }
    .kicker{
      font-family: var(--mono);
      font-weight: 950;
      font-size: 11px;
      letter-spacing: .18em;
      text-transform: uppercase;
      color: rgba(0,0,0,.58);
    }
    .h1{
      margin: 10px 0 0;
      font-family: var(--serif);
      font-weight: 850;
      letter-spacing: -0.035em;
      font-size: clamp(36px, 4.4vw, 58px);
      line-height: .99;
      max-width: 820px;
    }
    .lead{
      margin: 14px 0 0;
      color: var(--muted);
      font-size: 15.5px;
      line-height: 1.72;
      max-width: 78ch;
    }

    .heroCtas{
      margin-top: 18px;
      display:flex;
      gap: 10px;
      flex-wrap:wrap;
      align-items:center;
    }

    .btn{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      text-decoration:none;
      border-radius: 999px;
      padding: 12px 18px;
      font-weight: 950;
      letter-spacing: .01em;
      border: 1px solid rgba(0,0,0,.92);
      background: linear-gradient(180deg, #0b0b0c 0%, #121216 100%);
      color:#fff;
      transition: transform .10s ease, opacity .14s ease, background .14s ease, box-shadow .14s ease;
      box-shadow: 0 18px 60px rgba(0,0,0,.12);
      cursor:pointer;
      user-select:none;
      -webkit-tap-highlight-color: transparent;
      white-space:nowrap;
    }
    .btn:hover{ transform: translateY(-1px); box-shadow: 0 22px 80px rgba(0,0,0,.16), 0 0 0 4px rgba(29,78,216,.10); }
    .btn:active{ transform: translateY(0px); opacity:.92; }
    .btnGhost{
      background:#fff;
      color: var(--ink);
      border-color: rgba(0,0,0,.22);
      box-shadow: none;
    }
    .btnGhost:hover{ background: rgba(29,78,216,.06); border-color: rgba(29,78,216,.26); }

    .metaCard{
      border: 1px solid var(--line);
      border-radius: var(--r);
      background: rgba(255,255,255,.96);
      box-shadow: var(--shadow2);
      overflow:hidden;
      padding: clamp(16px, 2vw, 20px);
      position: relative;
      min-height:100%;
    }
    .metaCard::before{
      content:"";
      position:absolute;
      left:0; right:0; top:0;
      height: 5px;
      background: var(--franceGradient);
      opacity:.85;
      pointer-events:none;
    }

    .metaGrid{
      position: relative;
      display:grid;
      grid-template-columns: 1fr;
      gap: 10px;
    }
    .chip{
      border: 1px solid rgba(0,0,0,.16);
      background: rgba(255,255,255,.86);
      border-radius: 16px;
      padding: 12px;
      display:flex;
      justify-content:space-between;
      gap: 10px;
      align-items:baseline;
    }
    .chip .k{
      font-family: var(--mono);
      font-weight: 950;
      font-size: 10.5px;
      letter-spacing: .18em;
      text-transform: uppercase;
      color: rgba(0,0,0,.55);
      white-space:nowrap;
    }
    .chip .v{
      font-weight: 900;
      font-size: 13px;
      color: var(--ink);
      white-space:nowrap;
    }

    /* Panels */
    .panel{
      margin-top: 22px;
      border: 1px solid var(--line);
      border-radius: var(--r);
      background: rgba(255,255,255,.98);
      box-shadow: var(--shadow2);
      overflow:hidden;
    }
    .panelHead{
      padding: 18px 22px;
      border-bottom: 1px solid var(--line2);
      display:flex;
      justify-content:space-between;
      gap: 14px;
      align-items:flex-end;
      flex-wrap:wrap;
      background:
        linear-gradient(180deg, rgba(0,0,0,.03), transparent 40%),
        #fff;
    }
    .panelHeadDark{
      background: linear-gradient(180deg, #09090a 0%, #111115 100%);
      color:#fff;
      border-bottom: 1px solid rgba(255,255,255,.10);
      position: relative;
      overflow:hidden;
      padding-top: 24px;
    }
    .panelHeadDark::before{
      content:"";
      position:absolute;
      left:0; right:0; top:0;
      height: 4px;
      background: var(--franceGradient);
    }
    .panelHeadDark .panelTitle,
    .panelHeadDark .panelSub{ color:#fff; }
    .panelTitle{
      margin:0;
      font-family: var(--mono);
      font-weight: 950;
      letter-spacing: .18em;
      text-transform: uppercase;
      font-size: 11px;
      color: rgba(0,0,0,.70);
    }
    .panelSub{
      margin: 8px 0 0;
      color: var(--muted);
      font-size: 13.5px;
      line-height: 1.6;
      max-width: 90ch;
    }
    .panelBody{
      padding: clamp(20px, 2.4vw, 30px);
    }

    /* Primary quiz spotlight */
    .spotlight{
      position: relative;
    }
    .spotlight::before{
      content:"";
      position:absolute;
      inset: -1px;
      border-radius: var(--r);
      background: var(--franceGradient);
      opacity:.75;
      z-index: -1;
    }
    .spotlight{
      margin-top: 0;
      border-color: rgba(0,0,0,.08);
    }

    /* Tiny badges */
    .badgeRow{
      display:flex;
      gap: 10px;
      align-items:center;
      flex-wrap:wrap;
    }
    .miniBadge{
      border: 1px solid rgba(0,0,0,.18);
      background: rgba(255,255,255,.88);
      border-radius: 999px;
      padding: 9px 12px;
      font-family: var(--mono);
      font-weight: 950;
      font-size: 11px;
      letter-spacing: .14em;
      text-transform: uppercase;
      color: rgba(0,0,0,.60);
      white-space:nowrap;
    }
    .panelHeadDark .miniBadge{
      border-color: rgba(255,255,255,.20);
      background: rgba(255,255,255,.10);
      color: rgba(255,255,255,.90);
    }


    /* Quiz (stepper + options) */
    .message{
      border: 1px solid rgba(0,0,0,.14);
      border-radius: 18px;
      background: rgba(255,255,255,.92);
      box-shadow: var(--shadow3);
      padding: 12px 14px;
      color: rgba(0,0,0,.78);
      font-size: 13.5px;
      line-height: 1.7;
      margin-bottom: 14px;
    }

    .noscript{
      border: 1px dashed rgba(0,0,0,.28);
      border-radius: 18px;
      padding: 12px 14px;
      background: rgba(255,255,255,.92);
      color: rgba(0,0,0,.66);
      font-size: 13.5px;
      line-height: 1.7;
      margin-bottom: 14px;
    }

    .quizTop{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap: 12px;
      flex-wrap:wrap;
    }

    .progress{
      width: 320px;
      max-width: 70vw;
      height: 10px;
      border-radius: 999px;
      background: rgba(255,255,255,.18);
      border: 1px solid rgba(255,255,255,.20);
      overflow:hidden;
    }
    .progressFill{
      height:100%;
      width:0%;
      background: var(--franceGradient);
      box-shadow: inset 0 0 0 1px rgba(0,0,0,.08);
      transition: width .22s ease;
    }

    .statPills{
      display:flex;
      gap: 8px;
      align-items:center;
      flex-wrap:wrap;
    }
    .statPill{
      border: 1px solid rgba(255,255,255,.20);
      background: rgba(255,255,255,.10);
      color: rgba(255,255,255,.92);
      border-radius: 999px;
      padding: 8px 10px;
      font-family: var(--mono);
      font-weight: 950;
      font-size: 11px;
      letter-spacing: .14em;
      text-transform: uppercase;
      white-space:nowrap;
    }
    .statPill strong{
      font-family: var(--sans);
      letter-spacing: 0;
      text-transform:none;
      font-size: 12px;
      font-weight: 950;
      margin-left: 8px;
      color:#fff;
    }

    .js .step{ display:none; }
    .js .step.active{ display:block; }

    .step{
      margin-top: 16px;
      border: 1px solid rgba(0,0,0,.12);
      border-radius: 22px;
      background: #fff;
      box-shadow: var(--shadow3);
      padding: clamp(18px, 2.2vw, 24px);
    }

    .stepMeta{
      display:flex;
      justify-content:space-between;
      gap: 10px;
      flex-wrap:wrap;
      margin-bottom: 10px;
    }
    .stepMeta .m{
      font-family: var(--mono);
      font-weight: 950;
      font-size: 11px;
      letter-spacing: .18em;
      text-transform: uppercase;
      color: rgba(0,0,0,.55);
    }

    .statement{
      margin: 0;
      font-family: var(--serif);
      font-weight: 850;
      letter-spacing: -0.02em;
      font-size: clamp(24px, 2.4vw, 32px);
      line-height: 1.16;
      max-width: 62ch;
    }

    .scale{
      margin-top: 16px;
      display:grid;
      grid-template-columns: repeat(5, 1fr);
      gap: 10px;
    }
    @media (max-width: 820px){
      .scale{ grid-template-columns: 1fr; }
    }

    .opt{
      position: relative;
      border: 1px solid rgba(0,0,0,.14);
      border-radius: 18px;
      padding: 12px 12px;
      background: #fff;
      cursor: pointer;
      transition: background .14s ease, transform .10s ease, border-color .14s ease, box-shadow .14s ease;
      min-height: 56px;
      display:flex;
      align-items:center;
      gap: 10px;
      user-select:none;
      -webkit-tap-highlight-color: transparent;
    }
    .opt:hover{
      background: rgba(0,0,0,.02);
      border-color: rgba(0,0,0,.22);
      transform: translateY(-1px);
      box-shadow: 0 14px 30px rgba(0,0,0,.08);
    }
    .opt input[type="radio"]{
      position:absolute;
      opacity:0;
      pointer-events:none;
    }
    .optNum{
      width: 34px;
      height: 34px;
      border-radius: 999px;
      border: 1px solid rgba(0,0,0,.18);
      display:flex;
      align-items:center;
      justify-content:center;
      font-family: var(--mono);
      font-weight: 950;
      font-size: 11px;
      letter-spacing: .06em;
      color: rgba(0,0,0,.60);
      flex: 0 0 auto;
      background: rgba(0,0,0,.02);
    }
    .optLabel{
      font-size: 13px;
      line-height: 1.25;
      font-weight: 950;
      color: var(--ink);
    }
    .opt.selected{
      background: var(--ink);
      border-color: var(--ink);
      box-shadow: 0 18px 50px rgba(0,0,0,.16);
    }
    .opt.selected .optNum{
      border-color: rgba(255,255,255,.28);
      color: rgba(255,255,255,.92);
      background: rgba(255,255,255,.08);
    }
    .opt.selected .optLabel{ color:#fff; }

    .navRow{
      margin-top: 16px;
      padding-top: 16px;
      border-top: 1px solid rgba(0,0,0,.10);
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap: 12px;
      flex-wrap:wrap;
    }
    .navBtns{
      display:flex;
      gap: 10px;
      flex-wrap:wrap;
      align-items:center;
    }

    button{
      font: inherit;
    }
    button.btn{
      appearance:none;
      border: 1px solid var(--ink);
    }
    button.btn:disabled{
      opacity:.45;
      cursor:not-allowed;
      transform:none;
      box-shadow:none;
    }

    /* Priorités */
    .prioIntro{
      margin-top: 8px;
      color: rgba(0,0,0,.70);
      font-size: 14px;
      line-height: 1.7;
      max-width: 90ch;
    }

    .prioToolbar{
      margin-top: 14px;
      position: sticky;
      top: calc(var(--headerH) + 12px);
      z-index: 10;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap: 10px;
      flex-wrap:wrap;
      padding: 12px;
      border: 1px solid rgba(0,0,0,.12);
      border-radius: 18px;
      background: rgba(255,255,255,.92);
      box-shadow: var(--shadow3);
      backdrop-filter: blur(6px);
    }
    .prioChips{
      display:flex;
      gap: 8px;
      flex-wrap:wrap;
      align-items:center;
    }
    .prioChip{
      border: 1px solid rgba(0,0,0,.14);
      background:#fff;
      border-radius: 999px;
      padding: 8px 10px;
      font-family: var(--mono);
      font-size: 11px;
      letter-spacing: .14em;
      text-transform: uppercase;
      color: rgba(0,0,0,.60);
      font-weight: 950;
      white-space:nowrap;
    }
    .prioChipStrong{
      border-color: rgba(0,0,0,.22);
      color: var(--ink);
    }
    .prioNotice{
      margin-top: 10px;
      color: rgba(0,0,0,.56);
      font-size: 12.5px;
      line-height: 1.7;
      min-height: 1.2em;
    }

    .prioGrid{
      margin-top: 14px;
      display:grid;
      grid-template-columns: 1fr;
      gap: 14px;
      align-items:start;
    }

    details.prioBlock{
      border: 1px solid rgba(0,0,0,.12);
      border-radius: 20px;
      background:#fff;
      overflow:hidden;
      box-shadow: var(--shadow3);
    }
    details.prioBlock > summary{
      cursor:pointer;
      list-style:none;
      padding: 14px 14px;
      display:flex;
      align-items:baseline;
      justify-content:space-between;
      gap: 10px;
      user-select:none;
      background: rgba(0,0,0,.02);
    }
    details.prioBlock > summary::-webkit-details-marker{ display:none; }

    .prioBlockTitle{
      margin:0;
      font-family: var(--mono);
      font-size: 11px;
      letter-spacing: .18em;
      text-transform: uppercase;
      color: rgba(0,0,0,.58);
      font-weight: 950;
    }
    .prioBlockMeta{
      color: rgba(0,0,0,.45);
      font-family: var(--mono);
      font-size: 11px;
      letter-spacing: .18em;
      text-transform: uppercase;
      font-weight: 950;
      white-space:nowrap;
      display:flex;
      align-items:center;
      gap: 10px;
    }
    .prioArrow{ color: rgba(0,0,0,.46); font-weight: 950; }
    details.prioBlock[open] .prioArrow{ transform: rotate(180deg); }

    .prioItems{
      padding: 12px 12px 14px;
      display:grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px;
    }
    @media (max-width: 900px){ .prioItems{ grid-template-columns: 1fr; } }

    .prioItem{
      border: 1px solid rgba(0,0,0,.14);
      border-radius: 16px;
      padding: 12px;
      background:#fff;
      cursor:pointer;
      display:flex;
      align-items:flex-start;
      gap: 10px;
      min-height: 64px;
      transition: background .14s ease, transform .10s ease, border-color .14s ease, box-shadow .14s ease;
      -webkit-tap-highlight-color: transparent;
    }
    .prioItem:hover{
      background: rgba(0,0,0,.02);
      border-color: rgba(0,0,0,.22);
      transform: translateY(-1px);
      box-shadow: 0 14px 30px rgba(0,0,0,.08);
    }
    .prioItem input{
      margin-top: 3px;
      width: 16px;
      height: 16px;
      accent-color: var(--ink);
      flex: 0 0 auto;
    }
    .prioItem .t{
      font-size: 13px;
      line-height: 1.35;
      color: var(--ink);
      font-weight: 900;
    }
    .prioItem.selected{
      background: var(--ink);
      border-color: var(--ink);
      box-shadow: 0 18px 50px rgba(0,0,0,.16);
    }
    .prioItem.selected .t{ color:#fff; }

    .prioItem input:disabled{ opacity: .45; }
    .prioItem input:disabled ~ .t{ opacity: .55; }

    /* Résultats */
    .resultGrid{
      display:grid;
      grid-template-columns: 1.12fr .88fr;
      gap: 18px;
      align-items: stretch;
    }
    @media (max-width: 980px){ .resultGrid{ grid-template-columns: 1fr; } }

    .resultHero{
      border: 1px solid rgba(0,0,0,.14);
      border-radius: 22px;
      background:#fff;
      padding: 18px;
      box-shadow: var(--shadow2);
      display:flex;
      flex-direction:column;
      justify-content:space-between;
      gap: 14px;
      position: relative;
      overflow:hidden;
    }
    .resultHero::before{
      content:"";
      position:absolute;
      left:0; right:0; top:0;
      height: 7px;
      background: var(--franceGradient);
    }

    .eyebrow{
      color: rgba(0,0,0,.55);
      font-family: var(--mono);
      font-weight: 950;
      font-size: 11px;
      letter-spacing: .18em;
      text-transform: uppercase;
      margin-top: 8px;
    }
    .partyName{
      margin: 10px 0 0;
      font-family: var(--serif);
      font-weight: 850;
      letter-spacing: -0.02em;
      font-size: clamp(26px, 2.6vw, 44px);
      line-height: 1.06;
    }
    .bigIndex{
      margin-top: 10px;
      display:flex;
      align-items:baseline;
      gap: 10px;
      flex-wrap:wrap;
    }
    .bigIndex strong{
      font-size: 48px;
      line-height: 1;
      letter-spacing: -0.02em;
      font-weight: 950;
    }
    .bigIndex span{
      color: rgba(0,0,0,.55);
      font-family: var(--mono);
      font-weight: 950;
      font-size: 11px;
      letter-spacing: .18em;
      text-transform: uppercase;
    }
    .partyHint{
      margin: 10px 0 0;
      color: rgba(0,0,0,.72);
      font-size: 14px;
      line-height: 1.8;
      max-width: 72ch;
    }
    .resultFoot{
      padding-top: 14px;
      border-top: 1px solid rgba(0,0,0,.10);
      color: rgba(0,0,0,.58);
      font-size: 12.5px;
      line-height: 1.75;
    }

    .top3{
      border: 1px solid rgba(0,0,0,.14);
      border-radius: 22px;
      background:#fff;
      padding: 18px;
      box-shadow: var(--shadow2);
    }
    .top3Title{
      margin:0;
      font-family: var(--mono);
      font-weight: 950;
      letter-spacing: .18em;
      text-transform: uppercase;
      font-size: 11px;
      color: rgba(0,0,0,.62);
    }
    .top3Sub{
      margin: 8px 0 0;
      color: rgba(0,0,0,.62);
      font-size: 13px;
      line-height: 1.7;
    }
    .barItem{ margin-top: 14px; }
    .barTop{
      display:flex;
      justify-content:space-between;
      gap: 12px;
      align-items:baseline;
      font-weight: 950;
      font-size: 13.5px;
      line-height: 1.25;
    }
    .barTop .pct{
      color: rgba(0,0,0,.56);
      font-family: var(--mono);
      font-weight: 950;
      font-size: 11px;
      letter-spacing: .14em;
      text-transform: uppercase;
      white-space:nowrap;
    }
    .track{
      margin-top: 10px;
      height: 12px;
      border-radius: 999px;
      background: rgba(0,0,0,.05);
      border: 1px solid rgba(0,0,0,.10);
      overflow:hidden;
    }
    .fill{
      height:100%;
      width:0%;
      background: var(--ink);
      transition: width .55s ease;
    }

    /* Accent discret sur le classement (Top 3) */
    .top3 .fill{ background: var(--franceGradient); box-shadow: inset 0 0 0 1px rgba(0,0,0,.08); }
    .barItem.isBest .fill{ filter: saturate(1.05); }

    .barItem.isBest .track{ height: 14px; }

    details.plus{
      margin-top: 16px;
      border: 1px solid rgba(0,0,0,.14);
      border-radius: 22px;
      background:#fff;
      box-shadow: var(--shadow2);
      overflow:hidden;
    }
    details.plus > summary{
      cursor:pointer;
      list-style:none;
      padding: 14px 16px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap: 12px;
      user-select:none;
      background: rgba(0,0,0,.02);
      border-bottom: 1px solid rgba(0,0,0,.08);
      font-weight: 950;
      font-family: var(--mono);
      letter-spacing: .14em;
      text-transform: uppercase;
      font-size: 11px;
      color: rgba(0,0,0,.72);
    }
    details.plus > summary::-webkit-details-marker{ display:none; }
    .plusBody{
      padding: 14px 16px 16px;
      color: rgba(0,0,0,.74);
      font-size: 13.5px;
      line-height: 1.8;
    }

    .axesGrid{
      margin-top: 12px;
      display:grid;
      grid-template-columns: 1fr 1fr;
      gap: 12px;
      align-items:start;
    }
    @media (max-width: 980px){ .axesGrid{ grid-template-columns: 1fr; } }

    .axis{
      border: 1px solid rgba(0,0,0,.12);
      border-radius: 16px;
      padding: 12px;
      background:#fff;
    }
    .axisTop{
      display:flex;
      justify-content:space-between;
      gap: 10px;
      align-items:baseline;
      font-weight: 950;
      font-size: 12.5px;
      color: var(--ink);
    }
    .axisTop span{
      color: rgba(0,0,0,.55);
      font-family: var(--mono);
      font-weight: 950;
      font-size: 11px;
      letter-spacing: .14em;
      text-transform: uppercase;
      white-space:nowrap;
    }
    .axis .track{ height: 9px; margin-top: 8px; }

    .whyList{
      margin-top: 10px;
      display:flex;
      flex-direction:column;
      gap: 10px;
    }
    .whyItem{
      border: 1px solid rgba(0,0,0,.12);
      border-radius: 16px;
      padding: 12px;
      background:#fff;
    }
    .whyItemTop{
      display:flex;
      justify-content:space-between;
      gap: 10px;
      align-items:baseline;
      flex-wrap:wrap;
      font-weight: 950;
    }
    .whyItemTop .tag{
      font-family: var(--mono);
      font-weight: 950;
      font-size: 10.5px;
      letter-spacing: .18em;
      text-transform: uppercase;
      color: rgba(0,0,0,.55);
    }
    .whyItem p{
      margin: 8px 0 0;
      color: rgba(0,0,0,.70);
      font-size: 13.5px;
      line-height: 1.7;
    }

    /* Footer noir */
    .siteFooter{
      margin-top: 44px;
      background: linear-gradient(180deg, #0b0b0c 0%, #070708 100%);
      color:#fff;
      border-top: 1px solid rgba(255,255,255,.08);
      position: relative;
    }
    .siteFooter::before{
      content:"";
      position:absolute;
      left:0; right:0; top:0;
      height: 2px;
      background: var(--franceGradient);
      opacity: .85;
    }
    .footerInner{
      padding: 36px clamp(16px, 3vw, 34px) 26px;
    }
    .footerGrid{
      display:grid;
      grid-template-columns: 1.4fr .8fr .8fr;
      gap: 18px;
      align-items:start;
    }
    @media (max-width: 980px){ .footerGrid{ grid-template-columns: 1fr; } }

    .footerBrand{
      display:flex;
      align-items:center;
      gap: 10px;
      font-weight: 950;
      letter-spacing: .14em;
      text-transform: lowercase;
      font-size: 13px;
      color: #fff;
      white-space:nowrap;
    }
    .footerText{
      margin: 12px 0 0;
      color: rgba(255,255,255,.72);
      font-size: 13px;
      line-height: 1.75;
      max-width: 72ch;
    }
    .footerColTitle{
      font-family: var(--mono);
      font-weight: 950;
      font-size: 11px;
      letter-spacing: .18em;
      text-transform: uppercase;
      color: rgba(255,255,255,.90);
      margin: 0;
    }
    .footerLink{
      display:block;
      margin-top: 12px;
      color: rgba(255,255,255,.78);
      text-decoration:none;
      font-weight: 900;
      font-size: 13px;
      line-height: 1.35;
      width: fit-content;
      border-bottom: 1px solid rgba(255,255,255,.22);
      padding-bottom: 3px;
    }
    .footerLink:hover{
      color:#fff;
      border-bottom-color: rgba(255,255,255,.60);
    }

    .footerTrustRow{
      margin-top: 26px;
      padding: 15px 16px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap: 12px 22px;
      flex-wrap:wrap;
      border:1px solid rgba(255,255,255,.11);
      border-radius:16px;
      background:rgba(255,255,255,.045);
      color:rgba(255,255,255,.74);
      font-size:12.5px;
      line-height:1.55;
    }
    .footerTrustItem{
      display:flex;
      align-items:baseline;
      gap:8px;
      flex-wrap:wrap;
    }
    .footerTrustKicker{
      font-family:var(--mono);
      font-size:9.5px;
      font-weight:950;
      letter-spacing:.16em;
      text-transform:uppercase;
      color:rgba(255,255,255,.48);
    }
    .footerTrustLink{
      color:#fff;
      font-weight:950;
      text-decoration:none;
      border-bottom:1px solid rgba(255,255,255,.42);
      padding-bottom:1px;
    }
    .footerTrustLink:hover{ border-bottom-color:#fff; }
    .footerAuditItem{ color:rgba(255,255,255,.86); }
    @media (max-width: 680px){
      .footerTrustRow{ align-items:flex-start; }
      .footerTrustItem{ width:100%; }
    }

    .footerBottom{
      margin-top: 26px;
      padding-top: 18px;
      border-top: 1px solid rgba(255,255,255,.10);
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap: 12px;
      flex-wrap:wrap;
      color: rgba(255,255,255,.62);
      font-family: var(--mono);
      font-size: 10.5px;
      letter-spacing: .16em;
      text-transform: uppercase;
      line-height: 1.6;
    }
    .footerBottomLinks{
      display:flex;
      align-items:center;
      gap: 10px;
      flex-wrap:wrap;
    }
    .sep{ color: rgba(255,255,255,.40); }

    /* Prose */
    .grid2{
      display:grid;
      grid-template-columns: minmax(0, 2fr) minmax(320px, 1fr);
      gap: clamp(22px, 3vw, 36px);
      align-items:start;
    }
    @media (max-width: 980px){ .grid2{ grid-template-columns: 1fr; } }

    .prose{
      color: rgba(0,0,0,.78);
      font-size: 15px;
      line-height: 1.85;
    }
    .prose h2{
      margin: 0;
      font-family: var(--serif);
      font-weight: 800;
      letter-spacing: -0.02em;
      font-size: 26px;
      line-height: 1.12;
      color: var(--ink);
    }
    .prose h3{
      margin: 18px 0 0;
      font-family: var(--mono);
      font-weight: 950;
      letter-spacing: .18em;
      text-transform: uppercase;
      font-size: 11px;
      color: rgba(0,0,0,.62);
    }
    .prose p{ margin: 12px 0 0; }
    .prose ul{ margin: 12px 0 0; padding-left: 18px; }
    .prose li{ margin: 6px 0; }

    .callout{
      border: 1px solid rgba(0,0,0,.14);
      border-radius: 18px;
      background: #fff;
      box-shadow: var(--shadow3);
      padding: 14px;
    }
    .callout strong{ color: var(--ink); }
    .callout .small{
      margin-top: 8px;
      color: rgba(0,0,0,.58);
      font-size: 13px;
      line-height: 1.7;
    }



    /* Hubs, tables et fiches politiques */
    .partyPageTitle{
      margin: 8px 0 0;
      font-family: var(--serif);
      font-weight: 850;
      letter-spacing: -0.02em;
      font-size: clamp(30px, 3vw, 48px);
      line-height: 1.05;
      color:#fff;
      max-width: 980px;
    }
    .cardsGrid{
      display:grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 14px;
      align-items:stretch;
    }
    @media (max-width: 1060px){ .cardsGrid{ grid-template-columns: repeat(2, minmax(0, 1fr)); } }
    @media (max-width: 720px){ .cardsGrid{ grid-template-columns: 1fr; } }
    .infoCard{
      border:1px solid rgba(0,0,0,.13);
      border-radius: 20px;
      background:#fff;
      box-shadow: var(--shadow3);
      padding: 16px;
      display:flex;
      flex-direction:column;
      gap: 10px;
      min-height: 100%;
    }
    .infoCard h2,
    .infoCard h3{
      margin:0;
      font-family: var(--serif);
      font-weight: 850;
      letter-spacing: -0.02em;
      font-size: 24px;
      line-height: 1.12;
      color: var(--ink);
    }
    .infoCard p{
      margin:0;
      color: rgba(0,0,0,.66);
      font-size: 13.5px;
      line-height: 1.75;
    }
    .cardTitleLink,
    .cardTitleLink:visited{
      color: inherit;
      text-decoration: none;
    }
    .cardTitleLink:hover{ color: var(--blue); }
    .partyPlainLink,
    .partyPlainLink:visited{
      color: inherit;
      text-decoration: none;
      border-bottom: 0;
      font: inherit;
      letter-spacing: inherit;
      text-transform: inherit;
      font-weight: inherit;
    }
    .partyPlainLink:hover{ color: var(--blue); }
    .infoCard .cardMeta{
      font-family: var(--mono);
      font-size: 10.5px;
      letter-spacing:.16em;
      text-transform:uppercase;
      color: rgba(0,0,0,.52);
      font-weight: 950;
    }
    .cardLink{
      margin-top:auto;
      width:fit-content;
      color: var(--ink);
      text-decoration:none;
      border-bottom: 1px solid rgba(0,0,0,.24);
      padding-bottom:3px;
      font-weight: 950;
      font-size: 13px;
    }
    .cardLink:hover{ border-bottom-color: rgba(29,78,216,.55); }
    .dataTableWrap{
      overflow:auto;
      border: 1px solid rgba(0,0,0,.12);
      border-radius: 18px;
      background:#fff;
      box-shadow: var(--shadow3);
    }
    table.dataTable{
      width:100%;
      border-collapse: collapse;
      min-width: 740px;
      font-size: 13.5px;
      line-height:1.55;
    }
    .dataTable th,
    .dataTable td{
      padding: 12px 14px;
      border-bottom: 1px solid rgba(0,0,0,.08);
      text-align:left;
      vertical-align:top;
    }
    .dataTable th{
      font-family: var(--mono);
      font-size: 10.5px;
      letter-spacing:.16em;
      text-transform:uppercase;
      color: rgba(0,0,0,.56);
      background: rgba(0,0,0,.03);
      font-weight: 950;
      white-space:nowrap;
    }
    .dataTable tr:last-child td{ border-bottom:none; }
    .dataTable a{
      color: var(--ink);
      font-weight: 950;
      text-decoration:none;
      border-bottom:1px solid rgba(0,0,0,.25);
      padding-bottom:2px;
    }
    .factList{
      display:grid;
      gap:10px;
      margin-top:10px;
    }
    .factList div{
      border:1px solid rgba(0,0,0,.10);
      border-radius: 14px;
      padding: 10px;
      background: rgba(0,0,0,.02);
    }
    .factList span{
      display:block;
      font-family: var(--mono);
      font-size: 10px;
      letter-spacing:.16em;
      text-transform:uppercase;
      font-weight:950;
      color: rgba(0,0,0,.48);
    }
    .factList strong{
      display:block;
      margin-top:4px;
      font-size: 13px;
      line-height:1.35;
      color: var(--ink);
    }
    .partyPersonList{
      display:grid;
      gap: 0;
      margin-top: 10px;
      border-top: 1px solid rgba(0,0,0,.08);
    }
    .partyPersonList a{
      display:block;
      padding: 9px 0;
      border-bottom: 1px solid rgba(0,0,0,.08);
      color: var(--ink);
      text-decoration:none;
      font-size: 13.5px;
      line-height:1.35;
      font-weight: 900;
    }
    .partyPersonList a:hover{ color: var(--accentA); }

    .tagCloud{
      display:flex;
      gap:8px;
      flex-wrap:wrap;
      margin-top:12px;
    }
    .softTag{
      display:inline-flex;
      border:1px solid rgba(0,0,0,.14);
      border-radius:999px;
      padding:8px 10px;
      background: rgba(0,0,0,.02);
      font-family: var(--mono);
      font-size:10.5px;
      letter-spacing:.12em;
      text-transform:uppercase;
      font-weight:950;
      color:rgba(0,0,0,.62);
    }
    .sourceList{
      display:grid;
      gap:10px;
      margin-top:14px;
    }
    .sourceList a{
      display:flex;
      justify-content:space-between;
      gap:12px;
      align-items:baseline;
      padding:12px;
      border:1px solid rgba(0,0,0,.12);
      border-radius:16px;
      background:#fff;
      box-shadow: var(--shadow3);
      color:var(--ink);
      text-decoration:none;
      font-weight:900;
    }
    .sourceList a:hover{ border-color: rgba(29,78,216,.28); }
    .sourceList em{
      color:rgba(0,0,0,.48);
      font-style:normal;
      font-family: var(--mono);
      font-size:10px;
      letter-spacing:.14em;
      text-transform:uppercase;
      white-space:nowrap;
      font-weight:950;
    }

    .entityGrid{
      display:grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 12px;
      margin: 16px 0 0;
    }
    @media (max-width: 760px){ .entityGrid{ grid-template-columns: 1fr; } }
    .entityPoint{
      border:1px solid rgba(0,0,0,.12);
      border-radius:18px;
      background:#fff;
      box-shadow: var(--shadow3);
      padding:14px;
      position:relative;
      overflow:hidden;
    }
    .entityPoint::before{
      content:"";
      display:block;
      position:absolute;
      left:0; right:0; top:0;
      height:4px;
      background: var(--franceGradient);
    }
    .entityPoint span{
      display:block;
      font-family:var(--mono);
      font-size:10px;
      letter-spacing:.16em;
      text-transform:uppercase;
      color:rgba(0,0,0,.50);
      font-weight:950;
      margin-bottom:7px;
    }
    .entityPoint strong{
      display:block;
      font-size:14px;
      line-height:1.55;
      color:var(--ink);
    }
    .quoteGrid{
      display:grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap:14px;
      margin-top:14px;
    }
    @media (max-width: 860px){ .quoteGrid{ grid-template-columns: 1fr; } }
    .quoteCard{
      border:1px solid rgba(0,0,0,.14);
      border-radius:20px;
      background:#fff;
      box-shadow: var(--shadow3);
      padding:16px;
      position:relative;
      overflow:hidden;
    }
    .quoteCard::before{
      content:"";
      position:absolute;
      left:0; right:0; top:0;
      height:4px;
      background: var(--franceGradient);
    }
    .quoteCard blockquote{
      margin:0;
      font-family:var(--serif);
      font-weight:850;
      letter-spacing:-.01em;
      font-size:22px;
      line-height:1.18;
      color:var(--ink);
    }
    .quoteMeta{
      margin-top:12px;
      color:rgba(0,0,0,.60);
      font-size:12.5px;
      line-height:1.65;
    }
    .quoteMeta a{
      color:var(--ink);
      text-decoration:none;
      font-weight:950;
      border-bottom:1px solid rgba(0,0,0,.24);
    }
    .quoteNotice{
      border:1px solid rgba(0,85,164,.16);
      background:linear-gradient(90deg, rgba(0,85,164,.06), rgba(255,255,255,.82) 52%, rgba(239,65,53,.05));
      border-radius:18px;
      padding:14px;
      color:rgba(0,0,0,.62);
      font-size:13px;
      line-height:1.72;
      margin:14px 0 0;
    }
    .quoteNotice strong{ color:var(--ink); }


    .quoteType{
      display:inline-flex;
      align-items:center;
      gap:6px;
      border:1px solid rgba(0,0,0,.10);
      background:#f7f7f8;
      border-radius:999px;
      padding:5px 9px;
      font-size:10px;
      font-weight:950;
      text-transform:uppercase;
      letter-spacing:.12em;
      color:rgba(0,0,0,.55);
      margin-bottom:10px;
    }
    .quoteText{ margin:0; }
    .dimensionGrid{
      display:grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap:12px;
      margin-top:12px;
    }
    .dimensionCard{
      border:1px solid var(--line);
      border-radius:16px;
      padding:14px;
      background:#fbfbfc;
    }
    .dimensionCard strong{
      display:block;
      font-size:13px;
      letter-spacing:.03em;
      text-transform:uppercase;
      margin-bottom:7px;
    }
    .timelineList{
      display:grid;
      gap:10px;
      margin-top:12px;
    }
    .timelineItem{
      border-left:3px solid rgba(0,85,164,.55);
      padding-left:12px;
      color:rgba(0,0,0,.72);
      font-size:14px;
      line-height:1.65;
    }
    .timelineItem strong{color:#0b0b0c;}
    .editorialNote{
      border:1px solid rgba(0,85,164,.20);
      background:linear-gradient(90deg, rgba(0,85,164,.08), rgba(255,255,255,.86) 52%, rgba(239,65,53,.06));
      border-radius:18px;
      padding:16px;
      color:rgba(0,0,0,.72);
      font-size:14px;
      line-height:1.7;
    }
    @media (max-width: 760px){
      .dimensionGrid{grid-template-columns:1fr;}
    }


    /* Tables et cartes de la home */
    .tableWrap{
      width:100%;
      overflow:auto;
      border:1px solid rgba(0,0,0,.12);
      border-radius:20px;
      background:#fff;
      box-shadow:var(--shadow3);
    }
    .cleanTable{
      width:100%;
      min-width: 820px;
      border-collapse: collapse;
      font-size:13.5px;
      line-height:1.55;
    }
    .cleanTable th,
    .cleanTable td{
      padding:13px 14px;
      border-bottom:1px solid rgba(0,0,0,.075);
      text-align:left;
      vertical-align:top;
    }
    .cleanTable th{
      font-family:var(--mono);
      font-size:10.5px;
      letter-spacing:.16em;
      text-transform:uppercase;
      color:rgba(0,0,0,.56);
      background:rgba(0,0,0,.03);
      font-weight:950;
      white-space:nowrap;
    }
    .cleanTable tr:last-child td{ border-bottom:none; }
    .cleanTable a{
      color:var(--ink);
      font-weight:950;
      text-decoration:none;
      border-bottom:1px solid rgba(0,0,0,.25);
      padding-bottom:2px;
      white-space:nowrap;
    }
    .cleanTable a:hover{ border-bottom-color: rgba(0,85,164,.65); }
    .noteBox{
      margin-top:14px;
      border:1px solid rgba(0,85,164,.16);
      background:linear-gradient(90deg, rgba(0,85,164,.055), rgba(255,255,255,.9) 52%, rgba(239,65,53,.045));
      border-radius:18px;
      padding:14px 16px;
      color:rgba(0,0,0,.70);
      font-size:13.5px;
      line-height:1.7;
    }
    .noteBox strong{ color:var(--ink); }
    .infoGrid{
      display:grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap:12px;
      align-items:stretch;
    }
    @media (max-width:900px){ .infoGrid{ grid-template-columns:1fr; } }
    .infoCard .label,
    .infoCard .value,
    .infoCard .desc{ margin:0; }
    .infoCard .label{
      font-family:var(--mono);
      font-size:10.5px;
      letter-spacing:.16em;
      text-transform:uppercase;
      color:rgba(0,0,0,.52);
      font-weight:950;
    }
    .infoCard .value{
      margin-top:6px;
      color:var(--ink);
      font-weight:950;
      font-size:14px;
      line-height:1.35;
    }
    .infoCard .desc{
      margin-top:7px;
      color:rgba(0,0,0,.62);
      font-size:13px;
      line-height:1.65;
    }

    @media (max-width: 680px){
      .h1{ font-size: clamp(34px, 10vw, 46px); }
      .hero{ margin-top:10px; gap:14px; }
      .heroBody{ padding:20px; }
      .panelHead{ padding:16px; }
      .panelBody{ padding:16px; }
      .navRow{ align-items:stretch; }
      .navBtns, .navRow .btn{ width:100%; }
      .btn{ width:auto; }
      .scale{ gap:8px; }
      .chip{ padding:10px 11px; }
    }

    /* FAQ */
    .faq{
      border: 1px solid rgba(0,0,0,.14);
      border-radius: 18px;
      background:#fff;
      box-shadow: var(--shadow3);
      overflow:hidden;
    }
    .faqHead{
      padding: 14px 16px;
      border-bottom: 1px solid rgba(0,0,0,.08);
      background: rgba(0,0,0,.02);
    }
    .faqHead h3{
      margin:0;
      font-family: var(--serif);
      font-weight: 800;
      font-size: 20px;
      letter-spacing: -0.01em;
      color: var(--ink);
    }
    .faqBody{ padding: 8px 12px 14px; }
    details.faqItem{
      border-top: 1px solid rgba(0,0,0,.08);
      padding: 10px 6px;
    }
    details.faqItem:first-child{ border-top:none; }
    details.faqItem > summary{
      cursor:pointer;
      list-style:none;
      font-weight: 900;
      color: var(--ink);
      font-size: 14px;
      line-height: 1.35;
      display:flex;
      justify-content:space-between;
      gap: 12px;
      align-items:baseline;
      user-select:none;
    }
    details.faqItem > summary::-webkit-details-marker{ display:none; }
    .faqChevron{ color: rgba(0,0,0,.50); font-weight: 950; }
    details.faqItem[open] .faqChevron{ transform: rotate(180deg); }
    .faqAns{
      margin-top: 10px;
      color: rgba(0,0,0,.72);
      font-size: 14px;
      line-height: 1.75;
    }

    /* Focus */
    :focus-visible{
      outline: 2px solid var(--ink);
      outline-offset: 3px;
      border-radius: 12px;
    }

    /* Anchors with sticky header */
    #quiz, #quiz-card, #resultats, #guide{ scroll-margin-top: calc(var(--headerH) + 18px); }

    @media (prefers-reduced-motion: reduce){
      *{ transition:none !important; scroll-behavior:auto !important; }
    }


    /* Fiches personnalités : blocs éditoriaux */
    .aiSummary{
      border:1px solid rgba(0,0,0,.10);
      border-radius:18px;
      padding:16px;
      background: linear-gradient(180deg, rgba(0,85,164,.055), rgba(255,255,255,.74));
      box-shadow: var(--shadow3);
      margin-bottom:18px;
    }
    .aiSummary strong{ display:block; font-family:var(--mono); text-transform:uppercase; letter-spacing:.14em; font-size:11px; margin-bottom:8px; }
    .factGrid{
      display:grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap:10px;
      margin:14px 0 18px;
    }
    @media (max-width:720px){ .factGrid{ grid-template-columns:1fr; } }
    .factBox{
      border:1px solid rgba(0,0,0,.09);
      border-radius:16px;
      background:#fff;
      padding:12px 13px;
    }
    .factBox span{ display:block; color:rgba(0,0,0,.52); font-size:11px; text-transform:uppercase; letter-spacing:.12em; font-family:var(--mono); margin-bottom:5px; }
    .factBox strong{ display:block; color:#0b0b0c; font-size:13px; line-height:1.45; }
    .factBox strong a{ color:inherit; text-decoration:none; border-bottom:0; font:inherit; }
    .quoteGrid{ display:grid; grid-template-columns:1fr; gap:14px; margin:14px 0 22px; }
    .quoteCard{
      border:1px solid rgba(0,0,0,.10);
      border-radius:18px;
      background:#fff;
      padding:16px;
      box-shadow:var(--shadow3);
      position:relative;
      overflow:hidden;
    }
    .quoteCard::before{ content:""; position:absolute; left:0; right:0; top:0; height:3px; background:var(--franceGradient); }
    .quoteType{ font-family:var(--mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:rgba(0,0,0,.50); margin-bottom:8px; }
    .quoteText{ font-family:var(--serif); font-size:clamp(22px,2.5vw,30px); line-height:1.05; letter-spacing:-.04em; margin:0 0 12px; }
    .quoteMeta{ color:rgba(0,0,0,.62); font-size:13px; line-height:1.7; margin:0; }
    .quoteMeta a{ font-weight:950; color:#0b0b0c; text-decoration:none; border-bottom:1px solid rgba(0,0,0,.25); }
    .methodNote{ border-left:4px solid var(--accentA); padding:12px 14px; background:rgba(0,85,164,.055); border-radius:0 14px 14px 0; color:rgba(0,0,0,.70); font-size:13.5px; line-height:1.75; margin:18px 0; }
    .timelineList{ display:grid; gap:10px; margin:12px 0 20px; }
    .timelineItem{ border:1px solid rgba(0,0,0,.09); border-radius:15px; padding:12px 14px; background:#fff; }
    .timelineItem strong{ display:block; margin-bottom:5px; }

    /* Home v6 : largeur lisible + colonnes 2/3–1/3 + responsive */
    body{
      background:
        radial-gradient(circle at 14% 4%, rgba(0,85,164,.045), transparent 28%),
        radial-gradient(circle at 86% 6%, rgba(239,65,53,.040), transparent 30%),
        var(--canvas);
    }
    main{ padding-top: clamp(18px, 2.4vw, 34px); }
    .shell{ width:min(100%, var(--max)); }
    .hero{
      max-width: var(--heroMax);
      margin: clamp(18px, 2.6vw, 32px) auto 0;
      gap: clamp(18px, 2.4vw, 30px);
      align-items: stretch;
      grid-template-columns: minmax(0, 2fr) minmax(320px, 1fr);
    }
    .heroCard,
    .metaCard,
    .panel{
      box-shadow: var(--shadow2);
      border-color: rgba(0,0,0,.105);
    }
    .heroCard,
    .metaCard{
      border-radius: 24px;
    }
    .heroBody{ padding: clamp(22px, 3vw, 36px); }
    .h1{
      font-size: clamp(36px, 3.75vw, 56px);
      max-width: 18em;
      text-wrap: balance;
    }
    .lead{
      max-width: 76ch;
      font-size: clamp(14.5px, 1.1vw, 16px);
      line-height: 1.72;
    }
    .panel{
      margin-top: clamp(18px, 2vw, 24px);
      border-radius: 24px;
      overflow: hidden;
    }
    .panelHead{
      padding: clamp(16px, 2vw, 22px) clamp(18px, 2.4vw, 28px);
      align-items: center;
    }
    .panelBody{
      padding: clamp(20px, 2.7vw, 34px);
    }
    .panelTitle{ letter-spacing: .16em; }
    .panelSub{ max-width: 78ch; }

    #quiz-card{
      position: relative;
      margin-top: 0;
      box-shadow: 0 24px 80px rgba(0,0,0,.095);
    }
    #quiz-card::after{
      content:"";
      position:absolute;
      left:0; right:0; top:0;
      height:4px;
      background: var(--franceGradient);
      pointer-events:none;
    }
    #quiz-card .panelHeadDark{
      background:
        linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,0) 42%),
        #0b0b0c;
    }
    #quiz-card .partyPageTitle{
      font-size: clamp(31px, 3.1vw, 46px);
    }
    #quiz-card .panelBody{
      background: linear-gradient(180deg, rgba(0,0,0,.018), rgba(255,255,255,0) 34%);
    }
    #quiz-card .step{
      box-shadow: none;
      border-color: rgba(0,0,0,.115);
      background: rgba(255,255,255,.98);
      padding: clamp(18px, 2.4vw, 28px);
    }
    #quiz-card .statement{
      max-width: 48ch;
      font-size: clamp(24px, 2.25vw, 32px);
    }
    #quiz-card .scale{
      gap: 12px;
      margin-top: 20px;
    }
    #quiz-card .opt{
      min-height: 64px;
      border-radius: 17px;
    }
    #quiz-card .navRow{
      margin-top: 20px;
      padding-top: 18px;
    }
    #overview .prose p,
    #guide .prose p{
      max-width: 78ch;
    }
    .dataTable th,
    .dataTable td{
      padding: 13px 15px;
    }
    @media (min-width: 981px){
      #overview .grid2,
      #transparence .grid2,
      #guide .grid2{
        grid-template-columns: minmax(0, 2fr) minmax(340px, 1fr);
        gap: clamp(24px, 3vw, 42px);
      }
      #quiz-card .panelHead{
        gap: 26px;
      }
    }
    @media (max-width: 900px){
      .topbarInner{
        min-height: 62px;
        padding-left: clamp(14px, 4vw, 22px);
        padding-right: clamp(14px, 4vw, 22px);
      }
      .menuToggle{ display:inline-flex; flex: 0 0 auto; }
      .js .nav{
        display:none;
        position:absolute;
        left: clamp(14px, 4vw, 22px);
        right: clamp(14px, 4vw, 22px);
        top: calc(100% + 8px);
        z-index: 130;
        flex-direction:column;
        align-items:stretch;
        gap: 4px;
        padding: 12px;
        border: 1px solid rgba(255,255,255,.13);
        border-radius: 18px;
        background: linear-gradient(180deg, #0b0b0c 0%, #09090a 100%);
        box-shadow: 0 24px 70px rgba(0,0,0,.34);
      }
      .js .nav.isOpen{ display:flex; }
      .navLink{
        border-bottom:0;
        border-radius: 12px;
        padding: 12px 13px;
      }
      .navLink:hover,
      .navLink[aria-current="page"]{
        background: rgba(255,255,255,.08);
        border-bottom-color: transparent;
        box-shadow:none;
      }
      .nav .cta{
        width:100%;
        justify-content:flex-start;
        margin-top: 4px;
        padding: 12px 13px;
      }
    }

    @media (max-width: 760px){
      .shell{ padding: 0 14px; }
      .hero{ margin-top: 14px; }
      .h1{ font-size: clamp(32px, 10vw, 42px); }
      .panelBody{ padding: 18px 14px; }
      .panelHead{ padding: 16px 14px; }
      .btn{ width: 100%; }
      .heroCtas .btn{ width: auto; }
      .metaGrid{ gap: 8px; }
      .chip{ border-radius: 14px; }
    }


    /* Home v7 : héro aligné + choix du test colorés */
    @media (min-width: 981px){
      .homeMain .hero{
        grid-template-columns: minmax(0, 2fr) minmax(330px, 1fr);
        width: 100%;
      }
      .homeMain .heroCard{ min-width: 0; }
      .homeMain .metaCard{ min-width: 330px; }
      .homeMain .h1{
        max-width: 17.5em;
        font-size: clamp(42px, 3.55vw, 58px);
      }
    }
    @media (max-width: 980px){
      .homeMain .hero{ grid-template-columns: 1fr; max-width: 760px; }
      .homeMain .metaCard{ min-height: auto; }
    }

    .opt.choice-v1,
    .opt.choice-v2{
      background: linear-gradient(180deg, rgba(239,65,53,.070), rgba(255,255,255,.98));
      border-color: rgba(239,65,53,.24);
    }
    .opt.choice-v3{
      background: linear-gradient(180deg, rgba(0,0,0,.045), rgba(255,255,255,.98));
      border-color: rgba(0,0,0,.16);
    }
    .opt.choice-v4,
    .opt.choice-v5{
      background: linear-gradient(180deg, rgba(34,197,94,.080), rgba(255,255,255,.98));
      border-color: rgba(22,163,74,.24);
    }
    .opt.choice-v1 .optNum,
    .opt.choice-v2 .optNum{
      border-color: rgba(239,65,53,.30);
      color: #b42318;
      background: rgba(239,65,53,.055);
    }
    .opt.choice-v3 .optNum{
      border-color: rgba(0,0,0,.18);
      color: rgba(0,0,0,.62);
      background: rgba(0,0,0,.035);
    }
    .opt.choice-v4 .optNum,
    .opt.choice-v5 .optNum{
      border-color: rgba(22,163,74,.30);
      color: #166534;
      background: rgba(34,197,94,.070);
    }
    .opt.choice-v1:hover,
    .opt.choice-v2:hover{
      background: linear-gradient(180deg, rgba(239,65,53,.105), rgba(255,255,255,.98));
      border-color: rgba(239,65,53,.38);
      box-shadow: 0 14px 30px rgba(239,65,53,.09);
    }
    .opt.choice-v3:hover{
      background: linear-gradient(180deg, rgba(0,0,0,.065), rgba(255,255,255,.98));
      border-color: rgba(0,0,0,.24);
    }
    .opt.choice-v4:hover,
    .opt.choice-v5:hover{
      background: linear-gradient(180deg, rgba(34,197,94,.120), rgba(255,255,255,.98));
      border-color: rgba(22,163,74,.38);
      box-shadow: 0 14px 30px rgba(22,163,74,.09);
    }
    .opt.choice-v1.selected,
    .opt.choice-v2.selected{
      background: linear-gradient(180deg, rgba(239,65,53,.18), rgba(255,241,241,.98));
      border-color: rgba(239,65,53,.72);
      box-shadow: 0 18px 46px rgba(239,65,53,.14), inset 0 0 0 1px rgba(239,65,53,.10);
    }
    .opt.choice-v3.selected{
      background: linear-gradient(180deg, rgba(0,0,0,.10), rgba(248,248,249,.98));
      border-color: rgba(0,0,0,.42);
      box-shadow: 0 18px 46px rgba(0,0,0,.10), inset 0 0 0 1px rgba(0,0,0,.06);
    }
    .opt.choice-v4.selected,
    .opt.choice-v5.selected{
      background: linear-gradient(180deg, rgba(34,197,94,.20), rgba(240,253,244,.98));
      border-color: rgba(22,163,74,.72);
      box-shadow: 0 18px 46px rgba(22,163,74,.14), inset 0 0 0 1px rgba(22,163,74,.10);
    }
    .opt.selected .optLabel{ color: var(--ink); }
    .opt.selected .optNum{ background: rgba(255,255,255,.78); color: var(--ink); border-color: rgba(0,0,0,.18); }


    /* Home v8 : navigation du questionnaire simplifiée + réponses plus lisibles */
    .js .nojs-only{ display:none !important; }
    .js #quizNavRow{ display:none; }
    #quiz-card .navBtns{ justify-content:center; }
    #quiz-card .opt{
      justify-content:center;
      text-align:center;
    }
    #quiz-card .optLabel{
      text-align:center;
      flex: 0 1 auto;
    }

    #quiz-card .opt.choice-v1{
      background: linear-gradient(180deg, rgba(220,38,38,.135), rgba(255,255,255,.98));
      border-color: rgba(185,28,28,.42);
    }
    #quiz-card .opt.choice-v1 .optNum{
      border-color: rgba(185,28,28,.44);
      color: #991b1b;
      background: rgba(220,38,38,.095);
    }
    #quiz-card .opt.choice-v1:hover{
      background: linear-gradient(180deg, rgba(220,38,38,.175), rgba(255,255,255,.98));
      border-color: rgba(185,28,28,.55);
    }
    #quiz-card .opt.choice-v1.selected{
      background: linear-gradient(180deg, rgba(220,38,38,.24), rgba(254,242,242,.98));
      border-color: rgba(185,28,28,.78);
      box-shadow: 0 18px 46px rgba(185,28,28,.15), inset 0 0 0 1px rgba(185,28,28,.10);
    }

    #quiz-card .opt.choice-v5{
      background: linear-gradient(180deg, rgba(22,163,74,.145), rgba(255,255,255,.98));
      border-color: rgba(21,128,61,.42);
    }
    #quiz-card .opt.choice-v5 .optNum{
      border-color: rgba(21,128,61,.44);
      color: #14532d;
      background: rgba(22,163,74,.105);
    }
    #quiz-card .opt.choice-v5:hover{
      background: linear-gradient(180deg, rgba(22,163,74,.185), rgba(255,255,255,.98));
      border-color: rgba(21,128,61,.55);
    }
    #quiz-card .opt.choice-v5.selected{
      background: linear-gradient(180deg, rgba(22,163,74,.26), rgba(240,253,244,.98));
      border-color: rgba(21,128,61,.78);
      box-shadow: 0 18px 46px rgba(21,128,61,.15), inset 0 0 0 1px rgba(21,128,61,.10);
    }


    /* Home v9 : héro aligné + respiration entre le héro et le questionnaire + scroll du test maîtrisé */
    .homeMain .hero{
      width:100%;
      max-width:none;
      margin-left:0;
      margin-right:0;
      margin-bottom: clamp(22px, 2.8vw, 38px);
      grid-template-columns: minmax(0, 2.08fr) minmax(350px, .92fr);
    }
    .homeMain .heroCard,
    .homeMain .metaCard{
      height:100%;
    }
    .homeMain .h1{
      max-width: 20em;
      font-size: clamp(38px, 3.25vw, 56px);
      line-height: 1.01;
    }
    .homeMain .lead{
      max-width: 82ch;
    }
    .homeMain .hero + #quiz-card{
      margin-top: 0;
    }
    .homeMain #quiz-card{
      scroll-margin-top: calc(var(--headerH) + 18px);
    }
    @media (max-width: 980px){
      .homeMain .hero{
        max-width: 760px;
        margin-left:auto;
        margin-right:auto;
        margin-bottom: 18px;
        grid-template-columns:1fr;
      }
      .homeMain .h1{
        max-width: 100%;
      }
    }
    @media (max-width: 760px){
      .homeMain .hero{ margin-bottom: 18px; }
      .homeMain .heroCtas{ gap: 8px; }
      .homeMain .heroCtas .btn{ width:100%; }

      /* Mobile : si le bandeau noir du questionnaire est vu manuellement,
         il reste lisible, mais l'auto-scroll cible directement la question. */
      #quiz-card .panelHeadDark{
        padding-top: 18px;
        padding-bottom: 18px;
      }
      #quiz-card .partyPageTitle{
        font-size: clamp(32px, 11.5vw, 46px);
        line-height: .98;
      }
      #quiz-card .panelSub{
        font-size: 14px;
        line-height: 1.55;
      }
      #quiz-card .quizTop{ margin-top: 12px; }
      #quiz-card .step{ scroll-margin-top: calc(var(--headerH) + 12px); }
    }


    /* Portraits des personnalités politiques */
    .personPortraitCard{
      display:block;
      position:relative;
      width:100%;
      aspect-ratio: 4 / 5;
      border-radius:24px;
      overflow:hidden;
      border:1px solid rgba(0,0,0,.12);
      background:
        linear-gradient(90deg, rgba(0,85,164,.08), rgba(255,255,255,.86) 50%, rgba(239,65,53,.08)),
        #fff;
      box-shadow: var(--shadow2);
      text-decoration:none;
      isolation:isolate;
    }
    .personPortraitCard::before{
      content:"";
      position:absolute;
      left:0; right:0; top:0;
      height:4px;
      background:var(--franceGradient);
      z-index:2;
    }
    .personPortraitCard img{
      width:100%;
      height:100%;
      display:block;
      object-fit:cover;
      object-position:center top;
      transform:scale(1.001);
      transition:transform .25s ease, filter .25s ease;
    }
    .personPortraitCard:hover img{ transform:scale(1.035); filter:saturate(1.02) contrast(1.02); }
    .personPortraitCard .portraitNatureLabel{
      position:absolute;
      top:16px;
      right:14px;
      z-index:4;
      display:grid;
      gap:2px;
      max-width:calc(100% - 28px);
      padding:7px 9px 6px;
      border:1px solid rgba(255,255,255,.24);
      border-radius:10px;
      background:rgba(11,11,12,.80);
      color:#fff;
      font-family:var(--mono);
      font-size:9.5px;
      line-height:1.25;
      letter-spacing:.10em;
      text-transform:uppercase;
      font-weight:950;
      text-align:right;
      box-shadow:0 8px 24px rgba(0,0,0,.20);
      backdrop-filter:blur(8px);
    }
    .personPortraitCard .portraitNatureLabel small{
      display:block;
      color:rgba(255,255,255,.78);
      font:inherit;
      font-size:8.5px;
      letter-spacing:.06em;
    }
    .personPortraitCard .portraitHint{
      position:absolute;
      left:14px;
      right:14px;
      bottom:14px;
      z-index:3;
      border-radius:999px;
      background:rgba(11,11,12,.76);
      color:#fff;
      font-family:var(--mono);
      font-size:10.5px;
      letter-spacing:.14em;
      text-transform:uppercase;
      font-weight:950;
      text-align:center;
      padding:9px 10px;
      backdrop-filter: blur(8px);
      opacity:.94;
    }
    .personPortraitCard .portraitHint{ display:block; }
    .personPortraitCard .portraitHint::after{ content:none; }
    .personPortraitCard.isMissing{
      display:grid;
      place-items:center;
      min-height:360px;
      padding:24px;
    }
    .personPortraitCard.isMissing::after{
      content:"Portrait à ajouter\A/images/personnalites/slug.jpg";
      white-space:pre-line;
      text-align:center;
      color:rgba(0,0,0,.58);
      font-family:var(--mono);
      font-size:12px;
      line-height:1.6;
      letter-spacing:.08em;
      text-transform:uppercase;
      font-weight:900;
    }
    .portraitLightbox{
      position:fixed;
      inset:0;
      z-index:9999;
      display:flex;
      align-items:center;
      justify-content:center;
      padding:clamp(18px,4vw,54px);
      background:rgba(7,7,8,.86);
      backdrop-filter: blur(10px);
    }
    .portraitLightbox[hidden]{ display:none; }
    .portraitLightbox img{
      display:block;
      max-width:min(92vw, 980px);
      max-height:86vh;
      width:auto;
      height:auto;
      border-radius:26px;
      border:1px solid rgba(255,255,255,.20);
      box-shadow:0 40px 120px rgba(0,0,0,.55);
      background:#111;
    }
    .portraitLightboxClose{
      position:absolute;
      top:18px;
      right:18px;
      width:44px;
      height:44px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.26);
      background:rgba(255,255,255,.10);
      color:#fff;
      font-size:28px;
      line-height:1;
      cursor:pointer;
      font-weight:800;
    }
    .portraitLightboxCaption{
      position:absolute;
      left:18px;
      right:18px;
      bottom:18px;
      color:rgba(255,255,255,.82);
      text-align:center;
      font-family:var(--mono);
      font-size:11px;
      letter-spacing:.14em;
      text-transform:uppercase;
      font-weight:950;
    }
    body.portraitLightboxOpen{ overflow:hidden; }
    @media (max-width: 980px){
      .personPortraitCard{ max-width:420px; margin:0 auto; }
      .personPortraitCard.isMissing{ min-height:320px; }
    }


    /* Override final : portrait en colonne droite, arrondi et agrandissable */
    .grid2 > aside .personPortraitCard{
      width:100%;
      max-width:none;
      aspect-ratio:4 / 5;
      border-radius:24px;
      overflow:hidden;
      display:block;
      position:relative;
      border:1px solid rgba(0,0,0,.12);
      background:linear-gradient(135deg, rgba(0,85,164,.08), #fff 52%, rgba(239,65,53,.08));
      box-shadow:var(--shadow2);
      text-decoration:none;
      cursor:zoom-in;
    }
    .grid2 > aside .personPortraitCard img{
      width:100%;
      height:100%;
      aspect-ratio:auto;
      display:block;
      object-fit:cover;
      object-position:center top;
    }
    .grid2 > aside .personPortraitCard .portraitHint{
      position:absolute;
      left:14px;
      right:14px;
      bottom:14px;
      z-index:3;
      display:block;
      border-radius:999px;
      padding:9px 10px;
      background:rgba(11,11,12,.76);
      color:#fff;
      font-family:var(--mono);
      font-size:10.5px;
      letter-spacing:.14em;
      text-transform:uppercase;
      font-weight:950;
      text-align:center;
      backdrop-filter:blur(8px);
    }
    .grid2 > aside .personPortraitCard .portraitHint::after{ content:""; }
    .portraitLightbox[hidden]{ display:none !important; }
    .portraitLightbox:not([hidden]){
      display:flex;
      align-items:center;
      justify-content:center;
    }
    @media (max-width:980px){
      .grid2 > aside .personPortraitCard{ max-width:420px; margin-left:auto; margin-right:auto; }
    }
    @media (max-width:420px){
      .personPortraitCard .portraitNatureLabel{
        top:14px;
        right:12px;
        font-size:8.8px;
      }
      .personPortraitCard .portraitNatureLabel small{ font-size:8px; }
    }



    /* Comparatifs programmatiques : lecture concrète thème par thème */
    .programMatrix{
      display:grid;
      gap:16px;
      margin:18px 0 4px;
    }
    .programRowCard{
      border:1px solid var(--line2);
      border-radius:22px;
      background:
        linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.88)),
        radial-gradient(circle at 0 0, rgba(0,85,164,.08), transparent 34%),
        radial-gradient(circle at 100% 0, rgba(239,65,53,.07), transparent 34%);
      box-shadow:var(--shadow3);
      padding:clamp(16px,2.2vw,22px);
      overflow:hidden;
    }
    .programRowCard h3{
      margin:0 0 12px;
      font-size:clamp(18px,2vw,24px);
      line-height:1.18;
      letter-spacing:-.02em;
    }
    .programCompareCols{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:12px;
      margin:0 0 12px;
    }
    .programPartyBox{
      border:1px solid rgba(0,0,0,.09);
      border-radius:18px;
      padding:14px;
      background:rgba(255,255,255,.84);
    }
    .programPartyBox span{
      display:inline-flex;
      align-items:center;
      min-height:28px;
      padding:6px 10px;
      border-radius:999px;
      background:#0b0b0c;
      color:#fff;
      font-family:var(--mono);
      font-size:11px;
      letter-spacing:.12em;
      text-transform:uppercase;
      font-weight:950;
      line-height:1.15;
      margin-bottom:10px;
    }
    .programPartyBox p{
      margin:0;
      text-align:left;
      color:rgba(0,0,0,.76);
      font-size:15px;
      line-height:1.62;
    }
    .programReading{
      border-radius:18px;
      border:1px solid rgba(0,85,164,.14);
      background:linear-gradient(90deg, rgba(0,85,164,.075), rgba(255,255,255,.78), rgba(239,65,53,.065));
      padding:14px;
    }
    .programReading strong{
      display:block;
      font-family:var(--mono);
      font-size:11px;
      letter-spacing:.14em;
      text-transform:uppercase;
      font-weight:950;
      margin-bottom:6px;
    }
    .programReading p{
      margin:0;
      text-align:left;
      color:rgba(0,0,0,.78);
      font-size:15px;
      line-height:1.62;
    }
    @media (max-width:780px){
      .programCompareCols{ grid-template-columns:1fr; }
      .programRowCard{ border-radius:18px; }
      .programPartyBox, .programReading{ border-radius:15px; }
    }


    /* V6.4.2 — rubrique élections : suppression des coupures visuelles et des scrolls horizontaux */
    .electionsMain .hero{
      grid-template-columns: minmax(0, 1.36fr) minmax(340px, .64fr);
    }
    .electionsMain .heroCard,
    .electionsMain .metaCard,
    .electionsMain .panel,
    .electionsMain .grid2 > article,
    .electionsMain .grid2 > aside{
      min-width:0;
    }
    .electionsMain .metaCard{
      overflow:visible;
    }
    .electionsMain .metaGrid{
      min-width:0;
    }
    .electionsMain .chip{
      min-width:0;
      align-items:flex-start;
      gap:10px 12px;
    }
    .electionsMain .chip .k{
      flex:0 0 auto;
      max-width:42%;
      white-space:normal;
      overflow-wrap:break-word;
      line-height:1.25;
    }
    .electionsMain .chip .v{
      flex:1 1 0;
      min-width:0;
      white-space:normal;
      overflow-wrap:anywhere;
      word-break:normal;
      hyphens:auto;
      text-align:right;
      line-height:1.35;
    }
    .electionsMain .factList div,
    .electionsMain .sourceList a,
    .electionsMain .infoCard,
    .electionsMain .callout{
      min-width:0;
    }
    .electionsMain .factList strong,
    .electionsMain .sourceList a,
    .electionsMain .infoCard p,
    .electionsMain .infoCard h3,
    .electionsMain .prose{
      overflow-wrap:anywhere;
      word-break:normal;
    }
    .electionsMain .electionTableWrap{
      overflow:visible;
      max-width:100%;
    }
    .electionsMain .electionTable{
      width:100%;
      min-width:0;
      table-layout:fixed;
    }
    .electionsMain .electionTable th,
    .electionsMain .electionTable td{
      white-space:normal;
      overflow-wrap:anywhere;
      word-break:normal;
      hyphens:auto;
    }
    .electionsMain .electionTable th{
      line-height:1.35;
    }
    .electionsMain .electionTable a{
      white-space:normal;
      overflow-wrap:anywhere;
    }
    @media (max-width: 1180px){
      .electionsMain .hero{
        grid-template-columns: minmax(0, 1.18fr) minmax(320px, .82fr);
      }
    }
    @media (max-width: 980px){
      .electionsMain .hero{
        grid-template-columns:1fr;
      }
      .electionsMain .chip .k{
        max-width:45%;
      }
    }
    @media (max-width: 760px){
      .electionsMain .chip{
        display:block;
      }
      .electionsMain .chip .k,
      .electionsMain .chip .v{
        max-width:100%;
        text-align:left;
      }
      .electionsMain .chip .v{
        display:block;
        margin-top:5px;
      }
      .electionsMain .electionTableWrap{
        border:0;
        background:transparent;
        box-shadow:none;
        overflow:visible;
      }
      .electionsMain .electionTable,
      .electionsMain .electionTable thead,
      .electionsMain .electionTable tbody,
      .electionsMain .electionTable tr,
      .electionsMain .electionTable th,
      .electionsMain .electionTable td{
        display:block;
        width:100%;
      }
      .electionsMain .electionTable thead{
        position:absolute;
        width:1px;
        height:1px;
        padding:0;
        margin:-1px;
        overflow:hidden;
        clip:rect(0,0,0,0);
        white-space:nowrap;
        border:0;
      }
      .electionsMain .electionTable tr{
        margin:0 0 12px;
        border:1px solid rgba(0,0,0,.12);
        border-radius:18px;
        background:#fff;
        box-shadow:var(--shadow3);
        overflow:hidden;
      }
      .electionsMain .electionTable tr:last-child{
        margin-bottom:0;
      }
      .electionsMain .electionTable td{
        display:flex;
        justify-content:space-between;
        gap:14px;
        align-items:flex-start;
        padding:11px 12px;
        border-bottom:1px solid rgba(0,0,0,.07);
        text-align:right;
      }
      .electionsMain .electionTable td:last-child{
        border-bottom:0;
      }
      .electionsMain .electionTable td::before{
        content:attr(data-label);
        flex:0 0 42%;
        max-width:42%;
        text-align:left;
        font-family:var(--mono);
        font-size:10px;
        line-height:1.35;
        letter-spacing:.12em;
        text-transform:uppercase;
        font-weight:950;
        color:rgba(0,0,0,.52);
        overflow-wrap:break-word;
      }
    }
    @media (max-width: 520px){
      .electionsMain .electionTable td{
        display:block;
        text-align:left;
      }
      .electionsMain .electionTable td::before{
        display:block;
        max-width:100%;
        margin-bottom:5px;
      }
    }


  

/* DIRECTION ARTISTIQUE PREMIUM V7 */
/* ======================================================================
       DESIGN V7 — direction éditoriale premium, plus large et plus lisible
       ====================================================================== */
    :root{
      --canvas:#f3f3f1;
      --paper:#fff;
      --ink:#101012;
      --blue:#0055A4;
      --red:#EF4135;
      --muted:rgba(16,16,18,.66);
      --muted2:rgba(16,16,18,.48);
      --line:rgba(16,16,18,.105);
      --line2:rgba(16,16,18,.065);
      --soft:rgba(16,16,18,.035);
      --shadow:0 34px 110px rgba(16,16,18,.105);
      --shadow2:0 24px 70px rgba(16,16,18,.085);
      --shadow3:0 12px 34px rgba(16,16,18,.065);
      --r:34px;
      --r2:24px;
      --r3:18px;
      --max:1600px;
      --heroMax:1600px;
      --headerH:78px;
      --serif:ui-serif, "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
      --sans:ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
    }

    html{ scroll-behavior:smooth; }
    body{
      background:
        radial-gradient(circle at 4% -10%, rgba(0,85,164,.075), transparent 31%),
        radial-gradient(circle at 98% -5%, rgba(239,65,53,.055), transparent 29%),
        linear-gradient(180deg, #f7f7f5 0, var(--canvas) 420px, #f4f4f2 100%);
      font-size:16px;
      letter-spacing:-.006em;
    }
    body::before{
      content:"";
      position:fixed;
      inset:0;
      z-index:-1;
      pointer-events:none;
      opacity:.34;
      background-image:radial-gradient(rgba(16,16,18,.17) .55px, transparent .55px);
      background-size:18px 18px;
      mask-image:linear-gradient(to bottom, #000, transparent 42%);
    }

    .shell{
      width:min(100%, var(--max));
      padding-left:clamp(20px, 3.5vw, 56px);
      padding-right:clamp(20px, 3.5vw, 56px);
    }

    /* En-tête : identité éditoriale, navigation moins "outil technique" */
    .topbar{
      background:rgba(10,10,11,.965);
      border-bottom:1px solid rgba(255,255,255,.08);
      backdrop-filter:saturate(150%) blur(18px);
      box-shadow:0 8px 28px rgba(0,0,0,.13);
    }
    .topbar::after{ height:1px; opacity:.95; }
    .topbarInner{
      min-height:var(--headerH);
      padding-top:12px;
      padding-bottom:12px;
      gap:28px;
    }
    .logo{
      gap:13px;
      min-width:max-content;
      font-family:var(--sans);
      font-size:inherit;
      letter-spacing:0;
      text-transform:none;
    }
    .logoMark{
      width:25px;
      height:25px;
      border-radius:8px;
      background:linear-gradient(90deg, var(--franceBlue) 0 33.33%, #fff 33.33% 66.66%, var(--franceRed) 66.66% 100%);
      box-shadow:
        0 0 0 1px rgba(255,255,255,.20),
        0 7px 20px rgba(0,0,0,.30);
      position:relative;
    }
    .logoMark::after{
      content:"";
      position:absolute;
      inset:5px;
      border:1px solid rgba(8,8,9,.20);
      border-radius:4px;
    }
    .logoIdentity{ display:grid; gap:3px; line-height:1; }
    .logoName{
      color:#fff;
      font-size:16px;
      line-height:1;
      font-weight:820;
      letter-spacing:.005em;
    }
    .logoTag{
      margin:0;
      color:rgba(255,255,255,.52);
      font-family:var(--sans);
      font-size:9.5px;
      line-height:1.1;
      font-weight:720;
      letter-spacing:.115em;
      text-transform:uppercase;
    }
    .nav{ gap:6px; flex-wrap:nowrap; }
    .navLink{
      color:rgba(255,255,255,.69);
      font-family:var(--sans);
      font-size:12.5px;
      line-height:1;
      font-weight:720;
      letter-spacing:.025em;
      text-transform:none;
      border:0;
      border-radius:999px;
      padding:11px 12px;
      transition:color .16s ease, background .16s ease, transform .16s ease;
    }
    .navLink:hover{
      color:#fff;
      border:0;
      background:rgba(255,255,255,.075);
      box-shadow:none;
      transform:translateY(-1px);
    }
    .navLink[aria-current="page"]{
      color:#fff;
      border:0;
      background:rgba(255,255,255,.105);
      box-shadow:inset 0 0 0 1px rgba(255,255,255,.10);
    }
    .nav .cta{
      margin-left:8px;
      min-height:42px;
      padding:11px 17px;
      border-color:rgba(255,255,255,.28);
      background:#fff;
      color:#101012;
      font-family:var(--sans);
      font-size:11.5px;
      font-weight:850;
      letter-spacing:.045em;
      text-transform:none;
      box-shadow:0 8px 26px rgba(0,0,0,.22);
    }
    .nav .cta:hover{
      color:#101012;
      background:#fff;
      border-color:#fff;
      box-shadow:0 12px 34px rgba(0,0,0,.30), 0 0 0 4px rgba(255,255,255,.08);
    }

    main{
      padding-top:clamp(26px, 3vw, 48px);
      padding-bottom:clamp(64px, 7vw, 112px);
    }
    .breadcrumbWrap.isTop{ margin-top:clamp(15px, 2vw, 28px); }
    .breadcrumbWrap.isBottom{ margin-bottom:clamp(24px, 3vw, 42px); }
    .breadcrumb{
      min-height:34px;
      gap:10px;
      font-family:var(--sans);
      font-size:10.5px;
      font-weight:780;
      letter-spacing:.095em;
      color:rgba(16,16,18,.48);
    }
    .breadcrumbSep{ font-size:0; }
    .breadcrumbSep::after{ content:"→"; font-size:12px; color:rgba(16,16,18,.26); }
    .breadcrumbCurrent{ color:rgba(16,16,18,.78); }

    /* Accueil : héro éditorial grand format */
    .hero{
      grid-template-columns:minmax(0, 2.25fr) minmax(330px, .75fr);
      gap:clamp(20px, 2vw, 30px);
      margin-top:clamp(20px, 2.6vw, 40px);
      margin-bottom:clamp(28px, 3.2vw, 48px);
    }
    .heroCard,
    .metaCard{
      border-radius:34px;
      border-color:rgba(16,16,18,.085);
    }
    .heroCard{
      background:
        radial-gradient(circle at 100% 0, rgba(0,85,164,.07), transparent 34%),
        linear-gradient(135deg, rgba(255,255,255,.995), rgba(255,255,255,.945));
      box-shadow:var(--shadow);
      isolation:isolate;
    }
    .heroCard::before{
      left:0;
      right:auto;
      top:0;
      bottom:0;
      width:7px;
      height:auto;
      background:linear-gradient(180deg, var(--franceBlue), #fff 50%, var(--franceRed));
    }
    .heroCard::after{
      content:"";
      position:absolute;
      right:-90px;
      top:-105px;
      width:340px;
      height:340px;
      border:1px solid rgba(16,16,18,.055);
      border-radius:50%;
      box-shadow:0 0 0 54px rgba(16,16,18,.018), 0 0 0 108px rgba(16,16,18,.012);
      z-index:-1;
    }
    .heroBody{ padding:clamp(34px, 4.5vw, 72px) clamp(32px, 4.6vw, 74px); }
    .kicker,
    .panelTitle,
    .infoCard .cardMeta,
    .eyebrow,
    .cardMeta,
    .quoteType,
    .factBox span,
    .footerColTitle,
    .footerTrustKicker{
      font-family:var(--sans);
    }
    .kicker{
      display:flex;
      align-items:center;
      gap:10px;
      font-size:10.5px;
      line-height:1.35;
      font-weight:800;
      letter-spacing:.13em;
      color:rgba(16,16,18,.54);
    }
    .kicker::before{
      content:"";
      width:28px;
      height:1px;
      background:var(--franceBlue);
      box-shadow:10px 0 0 rgba(255,255,255,.9), 20px 0 0 var(--franceRed);
      flex:0 0 auto;
    }
    .h1{
      margin-top:17px;
      max-width:15.2em;
      font-size:clamp(48px, 4.8vw, 76px);
      line-height:.965;
      letter-spacing:-.05em;
      text-wrap:balance;
    }
    .lead{
      max-width:71ch;
      margin-top:22px;
      color:rgba(16,16,18,.64);
      font-size:clamp(16px, 1.18vw, 18.5px);
      line-height:1.78;
      letter-spacing:-.008em;
    }
    .heroCtas{ margin-top:28px; gap:12px; }
    .btn{
      min-height:50px;
      padding:13px 21px;
      border-radius:16px;
      font-size:14px;
      font-weight:800;
      letter-spacing:0;
      box-shadow:0 16px 40px rgba(16,16,18,.13);
    }
    .btn::after{
      content:"→";
      margin-left:11px;
      font-size:17px;
      line-height:1;
      transition:transform .16s ease;
    }
    button.btn::after{ content:none; }
    .btn:hover::after{ transform:translateX(3px); }
    .btnGhost{
      background:rgba(255,255,255,.72);
      border-color:rgba(16,16,18,.14);
      box-shadow:none;
    }
    .btnGhost::after{ content:"↗"; }

    .metaCard{
      padding:clamp(26px, 2.4vw, 38px);
      color:#fff;
      background:
        radial-gradient(circle at 100% 0, rgba(0,85,164,.24), transparent 42%),
        radial-gradient(circle at 0 100%, rgba(239,65,53,.16), transparent 38%),
        linear-gradient(155deg, #151518 0%, #09090a 100%);
      border-color:rgba(255,255,255,.08);
      box-shadow:0 34px 90px rgba(16,16,18,.18);
    }
    .metaCard::before{
      height:3px;
      opacity:1;
    }
    .metaGrid{ gap:0; }
    .metaGrid::before{
      content:"Le test en bref";
      display:block;
      grid-column:1 / -1;
      margin-bottom:20px;
      color:rgba(255,255,255,.54);
      font-size:10px;
      line-height:1;
      font-weight:800;
      letter-spacing:.16em;
      text-transform:uppercase;
    }
    .chip{
      min-height:67px;
      padding:14px 0;
      border:0;
      border-bottom:1px solid rgba(255,255,255,.11);
      border-radius:0;
      background:transparent;
      align-items:center;
    }
    .chip:first-child{ border-top:1px solid rgba(255,255,255,.11); }
    .chip .k{
      color:rgba(255,255,255,.48);
      font-family:var(--sans);
      font-size:9.5px;
      font-weight:780;
      letter-spacing:.135em;
    }
    .chip .v{
      color:#fff;
      font-size:14px;
      font-weight:790;
      letter-spacing:-.01em;
    }

    /* Panneaux et hiérarchie éditoriale */
    .panel{
      margin-top:clamp(26px, 3vw, 44px);
      border-radius:32px;
      border-color:rgba(16,16,18,.085);
      box-shadow:var(--shadow2);
      background:rgba(255,255,255,.985);
    }
    .panelHead{
      padding:clamp(23px, 2.3vw, 34px) clamp(25px, 3vw, 44px);
      align-items:center;
      border-bottom-color:rgba(16,16,18,.065);
      background:#fff;
    }
    .panelTitle{
      font-size:10.5px;
      font-weight:820;
      letter-spacing:.13em;
      color:rgba(16,16,18,.56);
    }
    .panelSub{
      max-width:80ch;
      margin-top:9px;
      color:rgba(16,16,18,.60);
      font-size:14.5px;
      line-height:1.72;
    }
    .panelBody{ padding:clamp(28px, 3.4vw, 54px); }
    .panelHeadDark{
      min-height:clamp(220px, 19vw, 310px);
      padding:clamp(36px, 4.8vw, 76px) clamp(34px, 5vw, 80px);
      align-items:center;
      background:
        radial-gradient(circle at 92% 12%, rgba(0,85,164,.24), transparent 28%),
        radial-gradient(circle at 8% 100%, rgba(239,65,53,.14), transparent 28%),
        linear-gradient(135deg, #17171a 0%, #09090a 68%);
      isolation:isolate;
    }
    .panelHeadDark::before{
      left:clamp(34px, 5vw, 80px);
      right:auto;
      top:31px;
      width:88px;
      height:3px;
      background:var(--franceGradient);
      border-radius:999px;
    }
    .panelHeadDark::after{
      content:"";
      position:absolute;
      right:-100px;
      bottom:-160px;
      width:430px;
      height:430px;
      border:1px solid rgba(255,255,255,.05);
      border-radius:50%;
      box-shadow:0 0 0 60px rgba(255,255,255,.015), 0 0 0 120px rgba(255,255,255,.01);
      z-index:-1;
    }
    .panelHeadDark .panelTitle{ color:rgba(255,255,255,.58); }
    .partyPageTitle{
      max-width:1150px;
      margin-top:14px;
      font-size:clamp(42px, 4.25vw, 68px);
      line-height:.99;
      letter-spacing:-.045em;
      text-wrap:balance;
    }
    .panelHeadDark .panelSub{
      max-width:76ch;
      margin-top:17px;
      color:rgba(255,255,255,.68) !important;
      font-size:15.5px;
      line-height:1.72;
    }
    .panelHeadDark .badgeRow{ align-self:center; }
    .panelHeadDark .cta{
      min-height:46px;
      color:#fff;
      padding:12px 17px;
      border-color:rgba(255,255,255,.18);
      background:rgba(255,255,255,.09);
      font-family:var(--sans);
      font-size:11.5px;
      letter-spacing:.035em;
      text-transform:none;
      backdrop-filter:blur(10px);
    }
    .panelHeadDark .cta:hover{ background:#fff; color:#101012; }

    .badgeRow{ gap:8px; }
    .miniBadge{
      padding:8px 11px;
      border-radius:999px;
      font-family:var(--sans);
      font-size:9.5px;
      font-weight:800;
      letter-spacing:.11em;
    }

    .grid2{
      grid-template-columns:minmax(0, 1.9fr) minmax(300px, .75fr);
      gap:clamp(30px, 4vw, 64px);
    }
    .prose{
      max-width:none;
      color:rgba(16,16,18,.76);
      font-size:16px;
      line-height:1.88;
      letter-spacing:-.008em;
    }
    .prose h2{
      margin-top:0;
      font-size:clamp(29px, 2.2vw, 38px);
      line-height:1.08;
      letter-spacing:-.035em;
      text-wrap:balance;
    }
    .prose h2:not(:first-child){ margin-top:32px; }
    .prose h3{
      margin-top:25px;
      font-family:var(--sans);
      font-size:18px;
      line-height:1.3;
      font-weight:820;
      letter-spacing:-.015em;
      text-transform:none;
      color:var(--ink);
    }
    .prose p{ margin-top:14px; }
    .prose ul{ padding-left:21px; }
    .prose li{ margin:8px 0; }

    .callout{
      border:1px solid rgba(16,16,18,.085);
      border-radius:22px;
      padding:clamp(17px, 1.7vw, 24px);
      background:linear-gradient(145deg, #fff, #fafaf9);
      box-shadow:0 10px 28px rgba(16,16,18,.05);
    }
    .callout > strong:first-child{
      display:block;
      font-size:15px;
      line-height:1.3;
      letter-spacing:-.012em;
    }
    .callout .small{
      margin-top:9px;
      color:rgba(16,16,18,.61);
      font-size:13.5px;
      line-height:1.75;
    }
    .grid2 > aside .callout:nth-child(4n+1){
      background:linear-gradient(145deg, rgba(0,85,164,.055), #fff 58%);
    }

    /* Cartes : relief plus subtil, titres plus éditoriaux */
    .cardsGrid{
      grid-template-columns:repeat(3, minmax(0, 1fr));
      gap:clamp(17px, 1.8vw, 26px);
    }
    .infoCard{
      position:relative;
      border:1px solid rgba(16,16,18,.085);
      border-radius:24px;
      padding:clamp(20px, 2vw, 28px);
      gap:12px;
      background:linear-gradient(150deg, #fff 0%, #fbfbfa 100%);
      box-shadow:0 12px 36px rgba(16,16,18,.055);
      overflow:hidden;
      transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
    }
    .infoCard::before{
      content:"";
      position:absolute;
      left:0;
      top:0;
      width:100%;
      height:3px;
      background:linear-gradient(90deg, var(--franceBlue), transparent 38%, transparent 62%, var(--franceRed));
      opacity:.62;
    }
    .infoCard:hover{
      transform:translateY(-4px);
      border-color:rgba(16,16,18,.13);
      box-shadow:0 22px 55px rgba(16,16,18,.095);
    }
    .infoCard h2,
    .infoCard h3{
      font-size:clamp(22px, 1.65vw, 28px);
      line-height:1.08;
      letter-spacing:-.032em;
    }
    .infoCard p{
      color:rgba(16,16,18,.63);
      font-size:14px;
      line-height:1.72;
    }
    .infoCard .cardMeta{
      font-size:9.5px;
      line-height:1.35;
      font-weight:820;
      letter-spacing:.115em;
      color:rgba(16,16,18,.48);
    }
    .cardLink{
      display:inline-flex;
      align-items:center;
      gap:8px;
      border:0;
      padding:0;
      font-size:13px;
      font-weight:820;
    }
    .cardLink::after{ content:"→"; font-size:16px; transition:transform .16s ease; }
    .cardLink:hover{ border:0; }
    .cardLink:hover::after{ transform:translateX(4px); }

    /* Pages éditoriales : le bandeau et le contenu respirent séparément */
    .page-parties main > .shell > .panel,
    .page-ideas main > .shell > .panel,
    .page-comparisons main > .shell > .panel,
    .page-people main > .shell > .panel{
      border:0;
      background:transparent;
      box-shadow:none;
      overflow:visible;
    }
    .page-parties main > .shell > .panel > .panelHead,
    .page-ideas main > .shell > .panel > .panelHead,
    .page-comparisons main > .shell > .panel > .panelHead,
    .page-people main > .shell > .panel > .panelHead{
      border:1px solid rgba(255,255,255,.08);
      border-radius:34px;
      box-shadow:0 34px 90px rgba(16,16,18,.17);
    }
    .page-parties main > .shell > .panel > .panelBody,
    .page-ideas main > .shell > .panel > .panelBody,
    .page-comparisons main > .shell > .panel > .panelBody,
    .page-people main > .shell > .panel > .panelBody{
      margin-top:clamp(20px, 2.2vw, 32px);
      border:1px solid rgba(16,16,18,.075);
      border-radius:32px;
      background:rgba(255,255,255,.985);
      box-shadow:var(--shadow2);
    }

    /* Annuaire de personnalités : vrais visuels, poids maîtrisé grâce aux miniatures WebP */
    .peopleTrustGrid{ margin-bottom:22px; }
    .peopleSectionIntro{
      margin:clamp(42px, 5vw, 72px) 0 22px;
      max-width:980px;
    }
    .peopleSectionIntroPrimary{ margin-top:clamp(48px, 5vw, 74px); }
    .peopleSectionIntroSecondary{
      max-width:none;
      padding-top:clamp(38px, 4vw, 60px);
      border-top:1px solid rgba(16,16,18,.08);
    }
    .peopleSectionIntro .panelTitle{ color:rgba(16,16,18,.46); }
    .peopleSectionTitle{
      margin:10px 0 12px;
      max-width:17em;
      font-family:var(--serif);
      font-size:clamp(34px, 3.5vw, 55px);
      line-height:.99;
      letter-spacing:-.045em;
      text-wrap:balance;
    }
    .peopleSectionTitleSecondary{ font-size:clamp(30px, 3vw, 46px); }
    .peopleSectionIntro .small{
      max-width:82ch;
      margin:0;
      color:rgba(16,16,18,.61);
      font-size:14.5px;
      line-height:1.72;
    }
    .peopleCardsGrid{
      grid-template-columns:repeat(4, minmax(0, 1fr));
      gap:clamp(18px, 1.8vw, 28px);
    }
    .personalityCard{
      padding:0;
      gap:0;
      border-radius:26px;
      background:#fff;
    }
    .personalityCard::before{ display:none; }
    .personCardVisual{
      display:block;
      position:relative;
      aspect-ratio:4 / 3;
      overflow:hidden;
      background:#141416;
      text-decoration:none;
    }
    .personCardVisual picture,
    .personCardVisual img{
      display:block;
      width:100%;
      height:100%;
    }
    .personCardVisual img{
      object-fit:cover;
      object-position:center;
      filter:grayscale(1) contrast(1.02);
      transform:scale(1.002);
      transition:transform .32s ease, filter .32s ease;
    }
    .personalityCard:hover .personCardVisual img{
      transform:scale(1.045);
      filter:grayscale(.82) contrast(1.035);
    }
    .personCardVisual::after{
      content:"";
      position:absolute;
      inset:auto 0 0;
      height:48%;
      background:linear-gradient(to top, rgba(8,8,9,.56), transparent);
      pointer-events:none;
    }
    .personCardNature{
      position:absolute;
      left:13px;
      bottom:12px;
      z-index:2;
      padding:6px 8px;
      border:1px solid rgba(255,255,255,.22);
      border-radius:8px;
      background:rgba(10,10,11,.66);
      color:rgba(255,255,255,.90);
      font-family:var(--sans);
      font-size:8.5px;
      line-height:1;
      font-weight:790;
      letter-spacing:.10em;
      text-transform:uppercase;
      backdrop-filter:blur(8px);
    }
    .personCardContent{
      display:flex;
      flex:1;
      flex-direction:column;
      gap:11px;
      padding:22px 22px 23px;
    }
    .personalityCard h2{ font-size:clamp(22px, 1.65vw, 28px); }
    .personalityCard p{ font-size:13.5px; line-height:1.68; }
    .personalityCard .cardLink{ margin-top:auto; }

    /* Portrait individuel : colonne plus élégante et légende moins envahissante */
    .grid2 > aside .personPortraitCard{
      border-radius:28px;
      border-color:rgba(16,16,18,.09);
      box-shadow:0 26px 70px rgba(16,16,18,.13);
    }
    .personPortraitCard .portraitNatureLabel{
      top:auto;
      right:14px;
      bottom:58px;
      padding:7px 9px;
      border-radius:9px;
      font-family:var(--sans);
      font-size:8.5px;
      letter-spacing:.09em;
    }
    .personPortraitCard .portraitNatureLabel small{ font-size:7.5px; }
    .grid2 > aside .personPortraitCard .portraitHint{
      left:14px;
      right:14px;
      bottom:14px;
      padding:9px 12px;
      font-family:var(--sans);
      font-size:9.5px;
      letter-spacing:.09em;
      text-transform:none;
    }
    .aiSummary,
    .quoteCard,
    .timelineItem,
    .factBox{
      border-color:rgba(16,16,18,.085);
      box-shadow:0 10px 28px rgba(16,16,18,.045);
    }
    .aiSummary{ border-radius:22px; padding:20px; }
    .factGrid{ gap:13px; }
    .factBox{ border-radius:18px; padding:15px 16px; }
    .factBox strong{ font-size:14px; }
    .quoteCard{ border-radius:24px; padding:22px; }
    .quoteText{ font-size:clamp(24px, 2.4vw, 34px); line-height:1.08; }
    .timelineItem{ border-radius:18px; padding:15px 17px; }

    /* Tableaux et sources */
    .dataTableWrap,
    .tableWrap,
    .electionTableWrap{
      border-radius:22px;
      border-color:rgba(16,16,18,.085);
      box-shadow:0 12px 34px rgba(16,16,18,.05);
    }
    .dataTable th,
    .dataTable td,
    .cleanTable th,
    .cleanTable td{
      padding:15px 17px;
    }
    .sourceList{ gap:10px; }
    .sourceList a{
      border-radius:16px;
      border-color:rgba(16,16,18,.08);
      background:#fff;
      box-shadow:0 7px 20px rgba(16,16,18,.035);
    }
    .softTag{
      border-radius:999px;
      font-family:var(--sans);
      font-size:10px;
      letter-spacing:.07em;
    }

    /* Quiz : plus proche d'une application éditoriale haut de gamme */
    #quiz-card{
      border-radius:34px;
      box-shadow:0 36px 110px rgba(16,16,18,.13);
    }
    #quiz-card::after{ height:3px; }
    #quiz-card .panelHeadDark{ min-height:auto; }
    #quiz-card .panelHeadDark::before{ left:clamp(28px, 3vw, 48px); top:25px; }
    #quiz-card .partyPageTitle{ font-size:clamp(38px, 3.4vw, 56px); }
    #quiz-card .panelBody{ padding:clamp(28px, 3.5vw, 52px); }
    #quiz-card .step{
      border-radius:26px;
      padding:clamp(24px, 3vw, 42px);
      border-color:rgba(16,16,18,.08);
      box-shadow:0 16px 48px rgba(16,16,18,.055);
    }
    #quiz-card .statement{
      max-width:40ch;
      font-size:clamp(27px, 2.45vw, 38px);
      line-height:1.12;
      letter-spacing:-.035em;
    }
    #quiz-card .scale{ gap:13px; }
    #quiz-card .opt{
      min-height:70px;
      border-radius:20px;
      padding:13px 14px;
      box-shadow:0 7px 22px rgba(16,16,18,.035);
    }
    #quiz-card .optLabel{ font-size:13px; }
    .progress{ border-radius:999px; }

    /* Pied de page : plus institutionnel, moins liste technique */
    .siteFooter{
      margin-top:0;
      background:
        radial-gradient(circle at 88% 0, rgba(0,85,164,.17), transparent 28%),
        radial-gradient(circle at 5% 100%, rgba(239,65,53,.10), transparent 32%),
        #09090a;
    }
    .footerInner{ padding-top:clamp(52px, 5vw, 78px); padding-bottom:32px; }
    .footerGrid{
      grid-template-columns:minmax(0, 1.55fr) minmax(190px, .65fr) minmax(190px, .65fr);
      gap:clamp(34px, 5vw, 82px);
    }
    .footerBrand{
      font-family:var(--sans);
      font-size:17px;
      font-weight:820;
      letter-spacing:0;
      text-transform:none;
    }
    .footerBrand .logoMark{ width:23px; height:23px; }
    .footerText{
      margin-top:18px;
      max-width:66ch;
      color:rgba(255,255,255,.62);
      font-size:14px;
      line-height:1.78;
    }
    .footerColTitle{
      font-size:10px;
      font-weight:820;
      letter-spacing:.13em;
    }
    .footerLink{
      margin-top:13px;
      border:0;
      padding:0;
      color:rgba(255,255,255,.66);
      font-size:13.5px;
      font-weight:650;
    }
    .footerLink:hover{ border:0; color:#fff; transform:translateX(2px); }
    .footerTrustRow{
      margin-top:clamp(34px, 4vw, 54px);
      padding:18px 20px;
      border-radius:20px;
      background:rgba(255,255,255,.045);
    }
    .footerBottom{ margin-top:28px; padding-top:22px; }

    /* Élections : conserve la lisibilité des données avec la nouvelle largeur */
    .electionsMain .hero{
      grid-template-columns:minmax(0, 2.05fr) minmax(350px, .72fr);
    }
    .electionsMain .metaGrid::before{ content:"La rubrique en bref"; }
    .electionsMain .panel{ margin-top:clamp(26px, 3vw, 44px); }

    /* Responsive */
    @media (max-width:1360px){
      :root{ --max:1480px; }
      .navLink{ padding-left:9px; padding-right:9px; font-size:12px; }
      .peopleCardsGrid{ grid-template-columns:repeat(3, minmax(0, 1fr)); }
    }
    @media (max-width:1120px){
      .topbarInner{ gap:16px; }
      .logoTag{ display:none; }
      .navLink{ padding-left:8px; padding-right:8px; }
      .hero,
      .homeMain .hero,
      .electionsMain .hero{ grid-template-columns:minmax(0, 1.7fr) minmax(300px, .72fr); }
      .grid2{ grid-template-columns:minmax(0, 1.55fr) minmax(280px, .75fr); gap:34px; }
      .cardsGrid{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
      .peopleCardsGrid{ grid-template-columns:repeat(3, minmax(0, 1fr)); }
    }
    @media (max-width:900px){
      :root{ --headerH:68px; }
      .topbarInner{ min-height:var(--headerH); }
      .menuToggle{
        width:44px;
        height:44px;
        border-radius:14px;
      }
      .js .nav{
        top:calc(100% + 10px);
        padding:12px;
        border-radius:22px;
        background:rgba(10,10,11,.985);
        backdrop-filter:blur(20px);
      }
      .navLink{
        padding:13px 14px;
        border-radius:14px;
        font-size:13px;
      }
      .nav .cta{
        margin:6px 0 0;
        min-height:46px;
        border-radius:14px;
      }
      .hero,
      .homeMain .hero,
      .electionsMain .hero{
        grid-template-columns:1fr;
        max-width:none;
      }
      .metaCard{ min-height:auto; }
      .metaGrid{ grid-template-columns:repeat(2, minmax(0, 1fr)); column-gap:22px; }
      .chip:nth-child(2){ border-top:1px solid rgba(255,255,255,.11); }
      .grid2{ grid-template-columns:1fr; }
      .panelHeadDark{ min-height:auto; }
      .panelHeadDark .badgeRow{ width:100%; margin-top:8px; }
      .peopleCardsGrid{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
      .footerGrid{ grid-template-columns:1fr 1fr; }
      .footerGrid > :first-child{ grid-column:1 / -1; }
    }
    @media (max-width:680px){
      :root{ --r:26px; --r2:20px; }
      body::before{ display:none; }
      .shell{ padding-left:15px; padding-right:15px; }
      main{ padding-top:18px; padding-bottom:64px; }
      .logoMark{ width:22px; height:22px; border-radius:7px; }
      .logoName{ font-size:14.5px; }
      .breadcrumbWrap.isTop{ margin-top:8px; }
      .breadcrumb{ font-size:9px; gap:7px; letter-spacing:.075em; }
      .hero{ margin-top:14px; margin-bottom:24px; gap:16px; }
      .heroCard,
      .metaCard,
      .panel{ border-radius:26px; }
      .heroBody{ padding:30px 23px 31px; }
      .heroCard::before{ width:4px; }
      .heroCard::after{ right:-190px; top:-130px; }
      .kicker{ font-size:9px; letter-spacing:.105em; }
      .kicker::before{ width:20px; }
      .h1{
        margin-top:15px;
        font-size:clamp(39px, 12.5vw, 53px);
        line-height:.96;
        letter-spacing:-.052em;
      }
      .lead{ margin-top:19px; font-size:15.5px; line-height:1.73; }
      .heroCtas{ margin-top:24px; display:grid; }
      .heroCtas .btn{ width:100%; min-height:52px; }
      .metaCard{ padding:25px 22px; }
      .metaGrid{ grid-template-columns:1fr; }
      .chip:nth-child(2){ border-top:0; }
      .chip{ min-height:60px; }
      .panel{ margin-top:22px; }
      .panelHead{ padding:21px 20px; }
      .panelBody{ padding:24px 20px; }
      .panelHeadDark{
        padding:44px 23px 30px;
        border-radius:26px !important;
      }
      .panelHeadDark::before{ left:23px; top:24px; width:68px; }
      .partyPageTitle{
        font-size:clamp(34px, 10.8vw, 47px);
        line-height:.98;
      }
      .panelHeadDark .panelSub{ font-size:14px; line-height:1.62; }
      .page-parties main > .shell > .panel > .panelBody,
      .page-ideas main > .shell > .panel > .panelBody,
      .page-comparisons main > .shell > .panel > .panelBody,
      .page-people main > .shell > .panel > .panelBody{
        margin-top:16px;
        border-radius:26px;
        padding:24px 18px;
      }
      .prose{ font-size:15.5px; line-height:1.82; }
      .prose h2{ font-size:30px; }
      .callout{ border-radius:19px; padding:17px; }
      .cardsGrid,
      .peopleCardsGrid{ grid-template-columns:1fr; gap:16px; }
      .infoCard{ border-radius:22px; padding:20px; }
      .personalityCard{ padding:0; border-radius:24px; }
      .personCardContent{ padding:20px; }
      .peopleSectionIntro{ margin-top:42px; }
      .peopleSectionTitle{ font-size:36px; }
      .peopleSectionIntroSecondary{ padding-top:34px; }
      #quiz-card .panelBody{ padding:22px 14px; }
      #quiz-card .step{ padding:21px 16px; border-radius:22px; }
      #quiz-card .statement{ font-size:27px; }
      #quiz-card .scale{ gap:9px; }
      #quiz-card .opt{ min-height:64px; border-radius:18px; }
      .footerInner{ padding-left:20px; padding-right:20px; }
      .footerGrid{ grid-template-columns:1fr; gap:34px; }
      .footerGrid > :first-child{ grid-column:auto; }
      .footerTrustRow{ padding:17px; }
      .footerBottom{ align-items:flex-start; }
    }
    @media (max-width:390px){
      .logoName{ font-size:13.7px; }
      .h1{ font-size:40px; }
      .heroBody{ padding-left:20px; padding-right:20px; }
      .panelHeadDark{ padding-left:20px; padding-right:20px; }
      .panelHeadDark::before{ left:20px; }
      .partyPageTitle{ font-size:35px; }
    }

    /* Correctifs de contraste et de finition sur les composants les plus spécifiques */
    .navLink::after{
      left:12px;
      right:12px;
      bottom:5px;
      height:2px;
      border-radius:999px;
    }
    .panelHeadDark .cta{
      border-color:rgba(255,255,255,.22);
      background:#fff;
      color:#101012;
      box-shadow:0 12px 32px rgba(0,0,0,.24);
    }
    .panelHeadDark .cta:hover{
      border-color:#fff;
      background:#fff;
      color:#101012;
      box-shadow:0 16px 38px rgba(0,0,0,.30), 0 0 0 4px rgba(255,255,255,.07);
    }
    .peopleTrustGrid{
      grid-template-columns:repeat(2, minmax(0, 1fr));
      gap:24px;
    }
    .electionsMain .chip{
      border-bottom-color:rgba(255,255,255,.11);
    }
    .electionsMain .chip:first-child{
      border-top-color:rgba(255,255,255,.11);
    }
    .electionsMain .chip .k{
      color:rgba(255,255,255,.48);
      font-size:9.5px;
      font-weight:780;
    }
    .electionsMain .chip .v{
      color:#fff;
      font-size:14px;
      font-weight:790;
    }
    .personCardNature{
      right:13px;
      max-width:calc(100% - 26px);
      white-space:normal;
      line-height:1.25;
    }
    .personPortraitCard picture{
      display:block;
      width:100%;
      height:100%;
    }
    @media (max-width:900px){
      .peopleTrustGrid{ grid-template-columns:1fr; gap:16px; }
      .panelHeadDark .cta{ width:auto; }
    }

    /* Équilibre visuel de l’introduction des personnalités sur grand écran. */
    @media (min-width:901px){
      .peopleTrustGrid{
        grid-template-columns:repeat(2, minmax(0, 1fr));
        gap:20px;
        align-items:stretch;
      }
      .peopleTrustGrid > .callout{ height:100%; }
    }

/* Mention des portraits : une légende typographique, jamais un bandeau sur l'image */
.personVisualCaption,
.portraitCaption{
  display:block;
  margin:8px 1px 0;
  padding:0;
  border:0;
  color:rgba(17,18,20,.40);
  font-family:var(--sans);
  font-size:9px;
  font-weight:650;
  line-height:1.35;
  letter-spacing:.065em;
  text-transform:uppercase;
}
.portraitCaption{ text-align:right; }
.personVisualCaption span,
.personVisualCaption small,
.portraitCaption span,
.portraitCaption small{ display:inline; font:inherit; color:inherit; }
.visualDisclosure{
  display:flex;
  align-items:flex-start;
  gap:18px;
  margin:0 0 30px;
  padding:16px 0;
  border-top:1px solid rgba(17,18,20,.10);
  border-bottom:1px solid rgba(17,18,20,.10);
  background:transparent;
  color:rgba(17,18,20,.57);
  font-size:13px;
  line-height:1.6;
}
.visualDisclosureKicker{
  flex:0 0 auto;
  color:rgba(17,18,20,.42);
  font-size:9.5px;
  font-weight:750;
  letter-spacing:.12em;
  text-transform:uppercase;
}

/* ========================================================================== 
   POLITIQUEMENT.ORG — DIRECTION ARTISTIQUE V8
   Refonte éditoriale : plus large, plus typographique, moins « cartes UI ».
   ========================================================================== */

:root{
  --max:1840px;
  --ink:#111113;
  --paper:#ffffff;
  --canvas:#f3f3f0;
  --canvas2:#ecece8;
  --muted:rgba(17,17,19,.67);
  --muted2:rgba(17,17,19,.49);
  --line:rgba(17,17,19,.14);
  --line2:rgba(17,17,19,.08);
  --soft:rgba(17,17,19,.045);
  --shadow:0 26px 80px rgba(17,17,19,.09);
  --shadow2:0 18px 52px rgba(17,17,19,.075);
  --shadow3:0 8px 24px rgba(17,17,19,.055);
  --r:12px;
  --r2:9px;
  --r3:7px;
  --serif:"Iowan Old Style", "Baskerville", "Times New Roman", Georgia, serif;
  --sans:"Aptos", "Helvetica Neue", Helvetica, Arial, system-ui, sans-serif;
  --mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;
  --headerH:82px;
}

html{ scroll-padding-top:calc(var(--headerH) + 24px); }
body{
  background:var(--canvas);
  color:var(--ink);
  font-family:var(--sans);
  letter-spacing:-.004em;
}
body::before,
body::after{ display:none !important; }

.shell{
  width:min(100%, var(--max));
  margin-inline:auto;
  padding-inline:clamp(22px, 3.6vw, 68px);
}

/* En-tête : plus présent, mais sans effet application */
.topbar{
  background:#101011;
  border:0;
  box-shadow:0 1px 0 rgba(255,255,255,.08), 0 14px 40px rgba(0,0,0,.12);
}
.topbar::after{ height:2px; opacity:.84; }
.topbarInner{
  min-height:var(--headerH);
  padding-block:13px;
  gap:34px;
}
.logo{ gap:14px; }
.logoMark{
  width:22px;
  height:30px;
  border-radius:4px;
  box-shadow:0 0 0 1px rgba(255,255,255,.18), 0 8px 24px rgba(0,0,0,.24);
}
.logoMark::after{ inset:4px; border-radius:2px; }
.logoIdentity{ gap:4px; }
.logoName{
  font-family:var(--serif);
  font-size:20px;
  font-weight:700;
  letter-spacing:-.025em;
}
.logoTag{
  font-size:9px;
  font-weight:700;
  letter-spacing:.17em;
  color:rgba(255,255,255,.52);
}
.nav{ gap:2px; }
.navLink{
  padding:13px 14px 12px;
  border-radius:0;
  background:transparent !important;
  color:rgba(255,255,255,.68);
  font-size:13px;
  font-weight:680;
  letter-spacing:.01em;
  box-shadow:none !important;
  position:relative;
}
.navLink::after{
  left:14px;
  right:14px;
  bottom:6px;
  height:1px;
  background:#fff;
  opacity:0;
  transform:scaleX(.35);
  transition:opacity .16s ease, transform .16s ease;
}
.navLink:hover,
.navLink[aria-current="page"]{ color:#fff; transform:none; }
.navLink:hover::after,
.navLink[aria-current="page"]::after{ opacity:1; transform:scaleX(1); }
.nav .cta{
  margin-left:15px;
  min-height:44px;
  padding:12px 19px;
  border:1px solid #fff;
  border-radius:7px;
  background:#fff;
  color:#101011;
  font-size:12px;
  font-weight:800;
  letter-spacing:.02em;
  box-shadow:none;
}
.nav .cta:hover{
  transform:translateY(-1px);
  box-shadow:0 10px 28px rgba(0,0,0,.25);
}

main{
  padding-top:clamp(32px, 3.2vw, 58px);
  padding-bottom:clamp(80px, 7vw, 132px);
}
.breadcrumbWrap.isTop{ margin-top:4px; }
.breadcrumbWrap.isBottom{ margin-bottom:34px; }
.breadcrumb{
  min-height:26px;
  font-size:10px;
  letter-spacing:.13em;
  font-weight:760;
}

/* Accueil : composition éditoriale ouverte */
.route-home main{ padding-top:clamp(42px, 4.3vw, 78px); }
.route-home .hero{
  grid-template-columns:minmax(0, 2.18fr) minmax(350px, .82fr);
  align-items:end;
  gap:clamp(42px, 5vw, 92px);
  margin:0;
  padding:0 0 clamp(66px, 6vw, 104px);
  border-bottom:1px solid var(--line);
}
.route-home .heroCard{
  overflow:visible;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.route-home .heroCard::before{
  left:0;
  top:0;
  width:108px;
  height:3px;
  bottom:auto;
  background:var(--franceGradient);
}
.route-home .heroCard::after{ display:none; }
.route-home .heroBody{
  padding:clamp(30px, 3.2vw, 52px) 0 0;
}
.route-home .kicker{
  gap:0;
  font-size:10px;
  letter-spacing:.16em;
  color:rgba(17,17,19,.54);
}
.route-home .kicker::before{ display:none; }
.route-home .h1{
  margin-top:20px;
  max-width:14.4ch;
  font-size:clamp(62px, 6.05vw, 112px);
  line-height:.91;
  letter-spacing:-.064em;
  text-wrap:balance;
}
.route-home .lead{
  max-width:72ch;
  margin-top:28px;
  color:rgba(17,17,19,.68);
  font-size:clamp(17px, 1.18vw, 20px);
  line-height:1.72;
}
.route-home .heroCtas{ margin-top:34px; gap:12px; }
.btn{
  min-height:50px;
  padding:13px 20px;
  border-radius:7px;
  font-size:13px;
  font-weight:800;
  box-shadow:none;
}
.btn:hover{ box-shadow:0 12px 30px rgba(17,17,19,.12); }
.btnGhost{
  background:transparent;
  border-color:rgba(17,17,19,.22);
}
.route-home .metaCard{
  min-height:520px;
  padding:clamp(32px, 3.2vw, 52px);
  border:0;
  border-radius:10px;
  background:
    radial-gradient(circle at 105% -10%, rgba(0,85,164,.24), transparent 40%),
    radial-gradient(circle at -10% 110%, rgba(239,65,53,.16), transparent 40%),
    #111113;
  box-shadow:0 28px 76px rgba(17,17,19,.16);
}
.route-home .metaCard::before{ height:2px; }
.route-home .metaGrid::before{
  margin-bottom:24px;
  font-size:9px;
  letter-spacing:.2em;
}
.route-home .chip{
  min-height:72px;
  padding:17px 0;
}
.route-home .chip .k{ font-size:9px; }
.route-home .chip .v{ font-size:15px; }

/* Structure éditoriale : moins de boîtes, plus de rythme */
.panel{
  overflow:visible;
  margin-top:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.panelHead{
  padding:30px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:transparent;
}
.panelTitle{
  font-size:9.5px;
  font-weight:800;
  letter-spacing:.18em;
  color:rgba(17,17,19,.48);
}
.panelSub{
  max-width:86ch;
  margin-top:8px;
  color:rgba(17,17,19,.62);
  font-size:15px;
  line-height:1.68;
}
.panelBody{
  padding:clamp(58px, 5.2vw, 92px) 0 clamp(78px, 6.4vw, 116px);
}
.badgeRow{ gap:8px; }
.miniBadge{
  padding:7px 10px;
  border-radius:4px;
  font-size:8.5px;
  letter-spacing:.13em;
  background:rgba(255,255,255,.5);
}
.grid2{
  grid-template-columns:minmax(0, 2.15fr) minmax(300px, .85fr);
  gap:clamp(56px, 6.4vw, 112px);
  align-items:start;
}
.grid2 > aside{
  position:sticky;
  top:calc(var(--headerH) + 30px);
}
.prose{
  max-width:920px;
  color:rgba(17,17,19,.78);
  font-size:17px;
  line-height:1.82;
}
.prose h2{
  max-width:22ch;
  margin-top:0;
  font-family:var(--serif);
  font-size:clamp(36px, 3vw, 52px);
  line-height:1.02;
  letter-spacing:-.045em;
  color:var(--ink);
  text-wrap:balance;
}
.prose h2:not(:first-child){ margin-top:54px; }
.prose h3{
  margin-top:34px;
  font-family:var(--serif);
  font-size:clamp(23px, 1.75vw, 30px);
  line-height:1.08;
  letter-spacing:-.025em;
  color:var(--ink);
}
.prose p{ margin-top:16px; }
.prose a{ text-underline-offset:4px; }

.callout{
  padding:20px 22px 21px;
  border:0;
  border-left:3px solid var(--ink);
  border-radius:0 7px 7px 0;
  background:var(--canvas2);
  box-shadow:none;
}
.callout > strong:first-child{
  font-size:13px;
  font-weight:820;
  letter-spacing:-.005em;
}
.callout .small{
  margin-top:8px;
  color:rgba(17,17,19,.67);
  font-size:13.5px;
  line-height:1.68;
}
.grid2 > aside .callout:nth-child(4n+1){ border-left-color:var(--franceBlue); }
.infoGrid{ gap:0; }
.infoCard{
  padding:24px 0;
  border:0;
  border-top:1px solid var(--line);
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.infoCard:last-child{ border-bottom:1px solid var(--line); }
.infoCard::before{ display:none; }
.infoCard:hover{ transform:none; box-shadow:none; }
.infoCard .label{ font-size:8.5px; letter-spacing:.16em; }
.infoCard .value{ margin-top:8px; font-family:var(--serif); font-size:25px; }
.infoCard .desc{ margin-top:8px; }

/* Héros des pages internes */
.panelHeadDark{
  min-height:clamp(310px, 25vw, 470px);
  padding:clamp(62px, 6vw, 104px) clamp(48px, 6vw, 108px);
  border:0 !important;
  border-radius:10px !important;
  background:
    radial-gradient(circle at 92% 18%, rgba(0,85,164,.23), transparent 32%),
    radial-gradient(circle at 8% 105%, rgba(239,65,53,.14), transparent 34%),
    #111113;
  box-shadow:0 30px 86px rgba(17,17,19,.15) !important;
}
.panelHeadDark::before{
  left:clamp(48px, 6vw, 108px);
  top:clamp(38px, 3.8vw, 64px);
  width:100px;
  height:3px;
}
.panelHeadDark::after{ opacity:.55; }
.partyPageTitle{
  max-width:17ch;
  margin-top:18px;
  font-size:clamp(54px, 5.2vw, 92px);
  line-height:.92;
  letter-spacing:-.06em;
}
.panelHeadDark .panelSub{
  max-width:72ch;
  margin-top:23px;
  color:rgba(255,255,255,.66) !important;
  font-size:16px;
  line-height:1.7;
}
.panelHeadDark .cta{
  min-height:46px;
  border-radius:7px;
  box-shadow:none;
}
.panelHeadDark + .panelBody{
  margin-top:26px;
  padding:clamp(54px, 5vw, 88px);
  border:1px solid var(--line2);
  border-radius:10px;
  background:var(--paper);
  box-shadow:var(--shadow2);
}

/* Accueil : sections et contrastes */
.route-home #overview{
  margin-top:0;
}
.route-home #overview > .panelHead{ border-top:0; }
.route-home #overview .panelBody{ padding-bottom:clamp(86px, 7vw, 128px); }
.route-home #quiz-card{
  overflow:hidden;
  margin:0 0 clamp(86px, 7vw, 124px);
  border:1px solid rgba(17,17,19,.12);
  border-radius:10px;
  background:#111113;
  box-shadow:0 34px 92px rgba(17,17,19,.14);
}
.route-home #quiz-card .panelHeadDark{
  min-height:300px;
  border-radius:0 !important;
  box-shadow:none !important;
}
.route-home #quiz-card .panelBody{
  margin:0;
  padding:clamp(44px, 4.6vw, 78px);
  border:0;
  border-radius:0;
  background:#fff;
  box-shadow:none;
}
#quiz-card .step{
  max-width:1300px;
  margin-inline:auto;
  padding:clamp(30px, 3.8vw, 58px);
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
  box-shadow:none;
}
#quiz-card .statement{
  max-width:38ch;
  font-size:clamp(32px, 3vw, 50px);
  line-height:1.04;
}
#quiz-card .opt{
  min-height:76px;
  border-radius:7px;
  box-shadow:none;
}
.route-home #partis-compares,
.route-home #guide{
  border-top:1px solid var(--line);
}
.route-home #partis-compares > .panelHead,
.route-home #guide > .panelHead{ border-top:0; }
.route-home #transparence{
  overflow:hidden;
  margin:0 0 clamp(88px, 7vw, 128px);
  border-radius:10px;
  background:#111113;
  color:#fff;
  box-shadow:0 30px 82px rgba(17,17,19,.13);
}
.route-home #transparence .panelHead{
  padding:44px clamp(40px, 4.5vw, 76px);
  border-top:0;
  border-bottom-color:rgba(255,255,255,.14);
}
.route-home #transparence .panelTitle,
.route-home #transparence .panelSub{ color:rgba(255,255,255,.62); }
.route-home #transparence .panelBody{
  padding:clamp(54px, 5vw, 84px) clamp(40px, 4.5vw, 76px) clamp(62px, 5.6vw, 96px);
}
.route-home #transparence .prose,
.route-home #transparence .prose p{ color:rgba(255,255,255,.72); }
.route-home #transparence .prose h2,
.route-home #transparence .prose h3,
.route-home #transparence .prose a{ color:#fff; }
.route-home #transparence .infoCard{
  border-color:rgba(255,255,255,.15);
  color:#fff;
}
.route-home #transparence .infoCard .label,
.route-home #transparence .infoCard .desc{ color:rgba(255,255,255,.58); }
.route-home #transparence .infoCard .value{ color:#fff; }

/* Tableaux : plus éditoriaux, moins tableau d'administration */
.tableWrap,
.dataTableWrap,
.electionTableWrap{
  overflow:auto;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
  box-shadow:none;
}
.cleanTable,
.dataTable,
.electionTable{ font-size:14px; }
.cleanTable th,
.cleanTable td,
.dataTable th,
.dataTable td,
.electionTable th,
.electionTable td{ padding:17px 18px; }
.cleanTable th,
.dataTable th,
.electionTable th{
  background:#f1f1ee;
  font-size:9px;
  letter-spacing:.14em;
}
.cleanTable tbody tr:hover,
.dataTable tbody tr:hover,
.electionTable tbody tr:hover{ background:#f7f7f4; }
.noteBox,
.methodNote{
  border:0;
  border-left:3px solid var(--franceBlue);
  border-radius:0 7px 7px 0;
  background:#ecece8;
}

/* Index éditoriaux */
.page-parties main > .shell > .panel,
.page-ideas main > .shell > .panel,
.page-comparisons main > .shell > .panel,
.page-people main > .shell > .panel{
  border:0;
  background:transparent;
  box-shadow:none;
}
.page-parties main > .shell > .panel > .panelHead,
.page-ideas main > .shell > .panel > .panelHead,
.page-comparisons main > .shell > .panel > .panelHead,
.page-people main > .shell > .panel > .panelHead{
  border-radius:10px !important;
}
.page-parties main > .shell > .panel > .panelBody,
.page-ideas main > .shell > .panel > .panelBody,
.page-comparisons main > .shell > .panel > .panelBody,
.page-people main > .shell > .panel > .panelBody{
  margin-top:26px;
  padding:clamp(54px, 5vw, 88px);
  border:1px solid var(--line2);
  border-radius:10px;
  background:#fff;
  box-shadow:var(--shadow2);
}
.cardsGrid{
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:clamp(22px, 2vw, 34px);
}
.cardsGrid .infoCard{
  display:flex;
  flex-direction:column;
  padding:27px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#ffffff;
  box-shadow:0 22px 60px rgba(12,15,24,.04);
}
.cardsGrid .infoCard:last-child{ border-bottom:1px solid var(--line); }
.cardsGrid .infoCard:hover{
  transform:translateY(-3px);
  border-color:rgba(17,17,19,.24);
  box-shadow:0 18px 42px rgba(17,17,19,.07);
}
.cardsGrid .infoCard h2,
.cardsGrid .infoCard h3{
  font-family:var(--serif);
  font-size:clamp(25px, 2vw, 34px);
  line-height:1.04;
  letter-spacing:-.035em;
}
.cardLink{
  margin-top:auto;
  padding-top:18px;
  font-size:12.5px;
}

/* Personnalités : la mention légale devient une vraie légende, jamais un autocollant */
.visualDisclosure{
  display:flex;
  align-items:flex-start;
  gap:16px;
  margin:0 0 28px;
  padding:14px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  color:rgba(17,17,19,.60);
  font-size:12.5px;
  line-height:1.55;
}
.visualDisclosureKicker{
  flex:0 0 auto;
  color:var(--ink);
  font-size:9px;
  font-weight:820;
  letter-spacing:.15em;
  text-transform:uppercase;
}
.peopleTrustGrid{ margin-bottom:28px; }
.peopleSectionIntro{
  max-width:1180px;
  margin:clamp(66px, 6vw, 104px) 0 28px;
}
.peopleSectionIntroPrimary{ margin-top:clamp(68px, 6vw, 108px); }
.peopleSectionIntroSecondary{
  padding-top:clamp(48px, 5vw, 82px);
  border-top:1px solid var(--line);
}
.peopleSectionTitle{
  max-width:19ch;
  font-size:clamp(45px, 4.2vw, 72px);
  line-height:.94;
}
.peopleSectionTitleSecondary{ font-size:clamp(38px, 3.5vw, 60px); }
.peopleSectionIntro .small{ font-size:15px; }
.peopleCardsGrid{
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:clamp(20px, 2vw, 34px);
}
.personalityCard{
  overflow:hidden;
  padding:0 !important;
  border:1px solid rgba(17,17,19,.13) !important;
  border-radius:8px !important;
  background:#fff !important;
  box-shadow:none !important;
}
.personalityCard:hover{
  transform:translateY(-4px) !important;
  border-color:rgba(17,17,19,.26) !important;
  box-shadow:0 20px 46px rgba(17,17,19,.085) !important;
}
.personCardMedia{ background:#111113; }
.personCardVisual{
  aspect-ratio:4 / 3;
  background:#111113;
}
.personCardVisual::after{ display:none; }
.personCardVisual img{
  filter:grayscale(1) contrast(1.02);
  transform:scale(1.002);
}
.personalityCard:hover .personCardVisual img{
  transform:scale(1.035);
  filter:grayscale(.94) contrast(1.03);
}
.personCardNature,
.portraitNatureLabel{ display:none !important; }
.personVisualCaption,
.portraitCaption{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0;
  padding:9px 12px 8px;
  border-top:1px solid rgba(255,255,255,.12);
  background:#111113;
  color:rgba(255,255,255,.72);
  font-size:8px;
  line-height:1.2;
  font-weight:780;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.personVisualCaption small,
.portraitCaption small{
  color:rgba(255,255,255,.45);
  font-size:7.5px;
  font-weight:700;
  letter-spacing:.11em;
}
.personCardContent{
  gap:12px;
  padding:25px 24px 27px;
}
.personalityCard h2{ font-size:clamp(25px, 1.75vw, 32px); }
.personalityCard p{ font-size:14px; line-height:1.68; }

/* Fiches de personnalité */
.route-personnalites-politiques.is-detail-page .panelHeadDark + .panelBody{
  padding:clamp(54px, 5vw, 88px);
}
.route-personnalites-politiques.is-detail-page .panelBody > .grid2{
  grid-template-columns:minmax(0, 1fr) minmax(360px, 440px);
  gap:clamp(58px, 6vw, 104px);
}
.personPortraitCard{
  overflow:hidden;
  border:1px solid var(--line) !important;
  border-radius:8px !important;
  background:#111113;
  box-shadow:none !important;
}
.personPortraitCard::before{ height:2px; }
.personPortraitCard img{ filter:grayscale(1) contrast(1.02); }
.personPortraitCard .portraitHint{
  left:12px !important;
  right:auto !important;
  bottom:12px !important;
  width:auto !important;
  padding:8px 10px !important;
  border:1px solid rgba(255,255,255,.20) !important;
  border-radius:5px !important;
  background:rgba(0,0,0,.62) !important;
  color:rgba(255,255,255,.84) !important;
  font-size:8px !important;
  letter-spacing:.11em !important;
  opacity:0;
  transition:opacity .16s ease;
}
.personPortraitCard:hover .portraitHint{ opacity:1; }
.portraitCaption{
  border-top:0;
  border-radius:0 0 6px 6px;
}
.aiSummary{
  padding:25px 27px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#f3f3f0;
  box-shadow:none;
}
.factGrid{ gap:0; border-top:1px solid var(--line); }
.factBox{
  padding:20px 0;
  border:0;
  border-bottom:1px solid var(--line);
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.factBox:nth-child(odd){ padding-right:24px; }
.factBox:nth-child(even){ padding-left:24px; border-left:1px solid var(--line); }
.timelineList{ gap:0; border-top:1px solid var(--line); }
.timelineItem{
  padding:18px 0;
  border:0;
  border-bottom:1px solid var(--line);
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.quoteGrid{ gap:20px; }
.quoteCard{
  padding:28px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
  box-shadow:none;
}
.quoteText{ font-size:clamp(27px, 2.4vw, 39px); }

/* FAQ et éléments dépliables */
.faq,
.plus{
  border:1px solid var(--line);
  border-radius:8px;
  box-shadow:none;
}
.faqHead{ border-bottom:1px solid var(--line); }
.faqItem + .faqItem{ border-top:1px solid var(--line); }

/* Pied de page */
.siteFooter{
  margin-top:0;
  background:#0d0d0e;
}
.footerInner{
  padding-top:clamp(66px, 6vw, 104px);
  padding-bottom:36px;
}
.footerGrid{
  grid-template-columns:minmax(0, 1.55fr) minmax(220px, .6fr) minmax(220px, .6fr);
  gap:clamp(48px, 7vw, 124px);
}
.footerBrand{
  font-family:var(--serif);
  font-size:22px;
  letter-spacing:-.02em;
}
.footerText{ max-width:72ch; font-size:14px; }
.footerTrustRow{
  margin-top:50px;
  padding:19px 0;
  border:0;
  border-top:1px solid rgba(255,255,255,.12);
  border-bottom:1px solid rgba(255,255,255,.12);
  border-radius:0;
  background:transparent;
}
.footerBottom{ padding-top:24px; }

/* Responsive */
@media (max-width:1420px){
  :root{ --max:1600px; }
  .route-home .h1{ font-size:clamp(60px, 6vw, 88px); }
  .peopleCardsGrid{ grid-template-columns:repeat(3, minmax(0,1fr)); }
}
@media (max-width:1160px){
  :root{ --headerH:74px; }
  .topbarInner{ gap:18px; }
  .logoTag{ display:none; }
  .navLink{ padding-inline:9px; font-size:12px; }
  .nav .cta{ margin-left:8px; }
  .route-home .hero{
    grid-template-columns:minmax(0, 1.7fr) minmax(310px, .7fr);
    gap:44px;
  }
  .route-home .h1{ font-size:clamp(56px, 6.2vw, 78px); }
  .grid2{ grid-template-columns:minmax(0, 1.75fr) minmax(280px, .75fr); gap:52px; }
  .cardsGrid{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .peopleCardsGrid{ grid-template-columns:repeat(3, minmax(0,1fr)); }
  .route-personnalites-politiques.is-detail-page .panelBody > .grid2{
    grid-template-columns:minmax(0,1fr) minmax(320px,390px);
    gap:52px;
  }
}
@media (max-width:940px){
  .menuToggle{
    display:inline-flex;
    width:44px;
    height:44px;
    border-radius:7px;
  }
  .js .nav{
    top:calc(100% + 8px);
    right:22px;
    left:22px;
    padding:12px;
    border:1px solid rgba(255,255,255,.12);
    border-radius:8px;
    background:#111113;
  }
  .navLink{ border-radius:5px; padding:14px; }
  .navLink::after{ display:none; }
  .nav .cta{ margin:7px 0 0; border-radius:5px; }
  .route-home .hero{
    grid-template-columns:1fr;
    align-items:start;
  }
  .route-home .metaCard{ min-height:auto; }
  .route-home .metaGrid{ grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:28px; }
  .grid2,
  .route-personnalites-politiques.is-detail-page .panelBody > .grid2{ grid-template-columns:1fr; }
  .grid2 > aside{ position:static; }
  .panelHeadDark{ min-height:auto; }
  .peopleCardsGrid{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .footerGrid{ grid-template-columns:1fr 1fr; }
  .footerGrid > :first-child{ grid-column:1 / -1; }
}
@media (max-width:680px){
  :root{ --headerH:68px; }
  .shell{ padding-inline:17px; }
  main{ padding-top:22px; padding-bottom:72px; }
  .topbarInner{ padding-block:10px; }
  .logoMark{ width:19px; height:26px; }
  .logoName{ font-size:17px; }
  .route-home main{ padding-top:30px; }
  .route-home .hero{
    gap:24px;
    padding-bottom:48px;
  }
  .route-home .heroBody{ padding-top:24px; }
  .route-home .h1{
    max-width:none;
    font-size:clamp(48px, 14vw, 66px);
    line-height:.92;
  }
  .route-home .lead{ font-size:16px; line-height:1.68; }
  .route-home .heroCtas{ display:grid; }
  .route-home .heroCtas .btn{ width:100%; }
  .route-home .metaCard{ padding:26px 22px; border-radius:8px; }
  .route-home .metaGrid{ grid-template-columns:1fr; }
  .route-home .chip:nth-child(2){ border-top:0; }
  .panelHead{ padding:24px 0; align-items:flex-start; }
  .panelBody{ padding:42px 0 68px; }
  .panelHeadDark{
    padding:52px 24px 34px;
    border-radius:8px !important;
  }
  .panelHeadDark::before{ left:24px; top:29px; width:74px; }
  .partyPageTitle{
    max-width:none;
    font-size:clamp(42px, 12vw, 58px);
    line-height:.94;
  }
  .panelHeadDark + .panelBody,
  .page-parties main > .shell > .panel > .panelBody,
  .page-ideas main > .shell > .panel > .panelBody,
  .page-comparisons main > .shell > .panel > .panelBody,
  .page-people main > .shell > .panel > .panelBody{
    margin-top:16px;
    padding:28px 20px 42px;
    border-radius:8px;
  }
  .prose{ font-size:16px; line-height:1.78; }
  .prose h2{ font-size:36px; }
  .prose h2:not(:first-child){ margin-top:44px; }
  .callout{ padding:17px 17px 18px; }
  .route-home #quiz-card{ border-radius:8px; margin-bottom:68px; }
  .route-home #quiz-card .panelBody{ padding:24px 14px 30px; }
  #quiz-card .step{ padding:25px 18px; }
  #quiz-card .statement{ font-size:30px; }
  #quiz-card .scale{ gap:9px; }
  #quiz-card .opt{ min-height:64px; border-radius:6px; }
  .route-home #transparence{ border-radius:8px; }
  .route-home #transparence .panelHead{ padding:30px 22px; }
  .route-home #transparence .panelBody{ padding:38px 22px 46px; }
  .cardsGrid,
  .peopleCardsGrid{ grid-template-columns:1fr; gap:18px; }
  .cardsGrid .infoCard{ padding:23px; }
  .peopleSectionIntro{ margin-top:54px; }
  .peopleSectionTitle{ font-size:44px; }
  .visualDisclosure{ display:block; }
  .visualDisclosureKicker{ display:block; margin-bottom:7px; }
  .personVisualCaption,
  .portraitCaption{ padding:8px 10px; font-size:7.5px; }
  .personCardContent{ padding:22px 20px 24px; }
  .factBox:nth-child(odd),
  .factBox:nth-child(even){ padding:17px 0; border-left:0; }
  .factGrid{ grid-template-columns:1fr; }
  .personPortraitCard .portraitHint{ display:none !important; }
  .footerInner{ padding-inline:20px; }
  .footerGrid{ grid-template-columns:1fr; gap:38px; }
  .footerGrid > :first-child{ grid-column:auto; }
  .footerTrustRow{ display:grid; gap:12px; }
}

@media (prefers-reduced-motion:reduce){
  .personalityCard,
  .personCardVisual img,
  .navLink,
  .btn{ transition:none !important; }
}

/* V8.1 — signalétique des portraits, discrète et éditoriale */
.route-personnalites-politiques .personCardMedia{
  background:transparent !important;
}
.route-personnalites-politiques .personVisualCaption,
.route-personnalites-politiques .portraitCaption{
  display:block !important;
  margin:0 !important;
  padding:9px 0 10px !important;
  border:0 !important;
  border-bottom:1px solid rgba(17,17,19,.12) !important;
  border-radius:0 !important;
  background:transparent !important;
  color:rgba(17,17,19,.44) !important;
  font-family:var(--sans) !important;
  font-size:8px !important;
  font-weight:720 !important;
  line-height:1.2 !important;
  letter-spacing:.115em !important;
  text-align:left !important;
  text-transform:uppercase !important;
}
.route-personnalites-politiques .personVisualCaption::before,
.route-personnalites-politiques .portraitCaption::before{
  content:"";
  display:inline-block;
  width:14px;
  height:1px;
  margin:0 8px 3px 0;
  background:linear-gradient(90deg,#0878d1 0 33%,#d9d9d4 33% 66%,#ef4646 66% 100%);
}
.route-personnalites-politiques .personCardContent{
  padding-top:22px !important;
}
.route-personnalites-politiques.is-detail-page .portraitCaption{
  padding-top:10px !important;
}
@media (max-width:760px){
  .route-personnalites-politiques .personVisualCaption,
  .route-personnalites-politiques .portraitCaption{
    padding:8px 0 9px !important;
    font-size:7.5px !important;
  }
}


/* ========================================================================== 
   V8.1 — FINITION ÉDITORIALE
   La page n'est plus une succession de grandes cartes blanches. Les mentions
   de nature des portraits deviennent des légendes discrètes, sans bandeau.
   ========================================================================== */

/* Héros éditoriaux des pages internes : composition ouverte, comme une revue */
body:not(.route-home) .hero{
  grid-template-columns:minmax(0, 2.05fr) minmax(340px, .78fr);
  align-items:stretch;
  gap:clamp(42px, 5vw, 88px);
  margin:0;
  padding:clamp(30px, 3vw, 50px) 0 clamp(64px, 5.6vw, 94px);
  border-bottom:1px solid var(--line);
}
body:not(.route-home) .heroCard{
  overflow:visible;
  min-height:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
body:not(.route-home) .heroCard::before{
  left:0;
  top:0;
  bottom:auto;
  width:104px;
  height:3px;
  background:var(--franceGradient);
}
body:not(.route-home) .heroCard::after{ display:none; }
body:not(.route-home) .heroBody{
  display:flex;
  min-height:100%;
  flex-direction:column;
  justify-content:center;
  padding:clamp(34px, 3.7vw, 64px) 0 8px;
}
body:not(.route-home) .hero .kicker{
  gap:0;
  color:rgba(17,17,19,.52);
  font-size:9.5px;
  letter-spacing:.17em;
}
body:not(.route-home) .hero .kicker::before{ display:none; }
body:not(.route-home) .hero .h1{
  max-width:15.5ch;
  margin-top:18px;
  font-size:clamp(54px, 5vw, 88px);
  line-height:.93;
  letter-spacing:-.055em;
  text-wrap:balance;
}
body:not(.route-home) .hero .lead{
  max-width:72ch;
  margin-top:26px;
  color:rgba(17,17,19,.67);
  font-size:clamp(17px, 1.12vw, 20px);
  line-height:1.72;
}
body:not(.route-home) .hero .heroCtas{
  margin-top:32px;
  gap:11px;
}
body:not(.route-home) .hero .metaCard{
  min-height:430px;
  padding:clamp(30px, 3vw, 48px);
  border:0;
  border-radius:9px;
  background:
    radial-gradient(circle at 105% -10%, rgba(0,85,164,.24), transparent 42%),
    radial-gradient(circle at -10% 110%, rgba(239,65,53,.15), transparent 42%),
    #111113;
  box-shadow:0 26px 68px rgba(17,17,19,.15);
}
body:not(.route-home) .hero .metaCard::before{ height:2px; }
body:not(.route-home) .hero .metaGrid::before{
  margin-bottom:22px;
  font-size:8.5px;
  letter-spacing:.2em;
}
body:not(.route-home) .hero .chip{
  min-height:62px;
  padding:15px 0;
}
body:not(.route-home) .hero .chip .k{ font-size:8.5px; }
body:not(.route-home) .hero .chip .v{ font-size:14px; }

/* Un peu plus d'air et moins de coupures dans les très grands titres */
.route-home .h1{
  max-width:15.5ch;
  font-size:clamp(62px, 5.72vw, 106px);
}
.route-personnalites-politiques.is-index-page .partyPageTitle{
  max-width:20ch;
  font-size:clamp(58px, 4.8vw, 84px);
  line-height:.94;
}

/* Portraits : aucune phrase lourde, aucun bandeau. Une légende typographique. */
.personCardMedia{ background:#fff; }
.personVisualCaption,
.portraitCaption{
  display:block;
  margin:0;
  padding:10px 20px 0;
  border:0;
  background:#fff;
  color:rgba(17,17,19,.46) !important;
  font-family:var(--sans);
  font-size:8px;
  font-weight:820;
  line-height:1.2;
  letter-spacing:.16em;
  text-align:left;
  text-transform:uppercase;
}
.personVisualCaption::before,
.portraitCaption::before{
  content:"";
  display:inline-block;
  width:18px;
  height:1px;
  margin:0 8px 3px 0;
  background:var(--franceGradient);
  vertical-align:middle;
}
.personVisualCaption span,
.portraitCaption span{
  display:inline !important;
  color:inherit !important;
  font:inherit !important;
}
.personVisualCaption small,
.portraitCaption small{ display:none !important; }
.personCardContent{ padding-top:17px; }
.portraitCaption{
  padding:10px 2px 0;
  background:transparent;
  text-align:right;
}
.portraitCaption::before{ width:15px; }

/* L'explication juridique complète n'apparaît qu'une fois, proprement */
.visualDisclosure{
  gap:22px;
  margin:0 0 34px;
  padding:16px 0 17px;
  border-color:rgba(17,17,19,.13);
  background:transparent;
  color:rgba(17,17,19,.58);
  font-size:12.5px;
  line-height:1.58;
}
.visualDisclosureKicker{
  min-width:132px;
  color:var(--ink);
}

/* Éviter le retour à l'ancien grand bloc arrondi sur la rubrique élections */
.electionsMain .hero{
  grid-template-columns:minmax(0, 2.05fr) minmax(340px, .78fr);
  gap:clamp(42px, 5vw, 88px);
}
.electionsMain .heroCard,
.electionsMain .metaCard{ min-width:0; }

@media (max-width:1160px){
  body:not(.route-home) .hero,
  .electionsMain .hero{
    grid-template-columns:minmax(0, 1.7fr) minmax(300px, .72fr);
    gap:42px;
  }
  body:not(.route-home) .hero .h1{ font-size:clamp(50px, 5.8vw, 72px); }
  body:not(.route-home) .hero .metaCard{ min-height:390px; }
}

@media (max-width:940px){
  body:not(.route-home) .hero,
  .electionsMain .hero{
    grid-template-columns:1fr;
    gap:28px;
  }
  body:not(.route-home) .hero .metaCard{ min-height:auto; }
}

@media (max-width:680px){
  body:not(.route-home) .hero{
    gap:24px;
    padding:18px 0 48px;
  }
  body:not(.route-home) .heroBody{ padding:28px 0 0; }
  body:not(.route-home) .hero .h1{
    max-width:none;
    font-size:clamp(43px, 12vw, 58px);
    line-height:.94;
  }
  body:not(.route-home) .hero .lead{ font-size:16px; line-height:1.66; }
  body:not(.route-home) .hero .heroCtas{ display:grid; }
  body:not(.route-home) .hero .heroCtas .btn{ width:100%; }
  body:not(.route-home) .hero .metaCard{
    padding:27px 22px;
    border-radius:7px;
  }
  .route-home .h1{
    max-width:none;
    font-size:clamp(46px, 13.4vw, 64px);
  }
  .route-personnalites-politiques.is-index-page .partyPageTitle{
    max-width:none;
    font-size:clamp(41px, 11.2vw, 56px);
  }
  .personVisualCaption{ padding:9px 17px 0; }
  .personCardContent{ padding-top:15px; }
  .visualDisclosure{
    display:block;
    padding:14px 0;
  }
  .visualDisclosureKicker{
    display:block;
    margin:0 0 6px;
  }
}

/* V8.2 — confinement des tableaux et grilles sur écrans étroits */
.grid2 > *,
.panelBody > *,
.prose,
.prose > *{
  min-width:0;
}
.tableWrap{
  width:100%;
  max-width:100%;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  -webkit-overflow-scrolling:touch;
}
@media (max-width:940px){
  .grid2{ min-width:0; }
  .grid2 > article,
  .grid2 > aside{
    width:100%;
    max-width:100%;
    min-width:0;
  }
}

/* V8.2 — sécurité responsive pour les grilles et tableaux larges */
.grid2 > *{
  min-width:0;
}
.panel,
.panelBody,
.tableWrap,
.dataTableWrap,
.electionTableWrap{
  min-width:0;
  max-width:100%;
}
@media (max-width:940px){
  .grid2{
    min-width:0;
    width:100%;
  }
  .tableWrap,
  .dataTableWrap,
  .electionTableWrap{
    width:100%;
    max-width:100%;
    overscroll-behavior-inline:contain;
  }
}

/* ==========================================================================
   V9 — DOSSIERS DE PREUVES, PAGES THÉMATIQUES ET COMPARATIFS
   Une direction éditoriale plus documentaire : moins de blocs génériques,
   davantage de hiérarchie, de données lisibles et de sources adjacentes.
   ========================================================================== */

.evidenceHero .panelHeadDark{
  min-height:clamp(300px, 30vw, 430px);
  align-items:flex-end;
}
.evidenceHero .partyPageTitle{ max-width:18ch; }
.evidenceHero .panelBody{
  padding-top:clamp(30px, 3.8vw, 58px);
}
.evidenceMetricStrip{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  border-top:1px solid rgba(17,17,19,.14);
  border-bottom:1px solid rgba(17,17,19,.14);
  margin:0 0 clamp(36px,4vw,62px);
}
.evidenceMetricStrip > div{
  min-width:0;
  padding:20px clamp(12px,1.6vw,24px);
  border-right:1px solid rgba(17,17,19,.1);
}
.evidenceMetricStrip > div:first-child{ padding-left:0; }
.evidenceMetricStrip > div:last-child{ border-right:0; padding-right:0; }
.evidenceMetricStrip span,
.comparisonMetricMain span{
  display:block;
  margin:0 0 8px;
  color:rgba(17,17,19,.5);
  font:800 9px/1.25 var(--sans);
  letter-spacing:.14em;
  text-transform:uppercase;
}
.evidenceMetricStrip strong{
  display:block;
  overflow-wrap:anywhere;
  font:700 clamp(18px,1.55vw,25px)/1.15 var(--serif);
  letter-spacing:-.025em;
}
.evidenceIntroGrid{
  display:grid;
  grid-template-columns:minmax(0,1.7fr) minmax(300px,.78fr);
  gap:clamp(34px,5vw,84px);
  align-items:start;
}
.evidenceLead{
  margin:0 0 24px!important;
  max-width:34ch;
  font:600 clamp(26px,2.45vw,42px)/1.08 var(--serif)!important;
  letter-spacing:-.035em;
  color:var(--ink)!important;
}
.evidenceScopeCard{
  position:relative;
  padding:28px 0 4px 30px;
  border-left:1px solid rgba(17,17,19,.2);
}
.evidenceScopeCard::before{
  content:"";
  position:absolute;
  left:-1px;
  top:0;
  width:2px;
  height:72px;
  background:linear-gradient(180deg,var(--franceBlue),var(--franceRed));
}
.evidenceScopeCard .eyebrow,
.eyebrow{
  margin:0 0 13px;
  color:rgba(17,17,19,.48);
  font:850 9px/1.2 var(--sans);
  letter-spacing:.16em;
  text-transform:uppercase;
}
.evidenceScopeCard h2{
  margin:0 0 16px;
  font:650 clamp(23px,2vw,34px)/1.06 var(--serif);
  letter-spacing:-.03em;
}
.evidenceScopeCard p{
  margin:0;
  color:rgba(17,17,19,.64);
  font-size:14px;
  line-height:1.68;
}
.evidenceScopeMeta{
  margin-top:22px;
  padding-top:16px;
  border-top:1px solid rgba(17,17,19,.11);
}
.evidenceScopeMeta a{
  font-size:12px;
  font-weight:850;
  text-decoration:none;
  border-bottom:1px solid currentColor;
}

.confidenceBadge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:29px;
  min-height:25px;
  padding:5px 8px;
  border:1px solid rgba(17,17,19,.14);
  border-radius:4px;
  font:850 9px/1 var(--sans);
  letter-spacing:.08em;
  text-transform:uppercase;
  white-space:nowrap;
}
.confidenceA{ background:#eaf7ef; border-color:#b9dec8; color:#175b31; }
.confidenceB{ background:#fff7e5; border-color:#e7d5a0; color:#74530e; }
.confidenceC{ background:#f6ecec; border-color:#dfc0c0; color:#7c2626; }

.proposalEvidenceGrid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1px;
  background:rgba(17,17,19,.12);
  border:1px solid rgba(17,17,19,.12);
}
.proposalEvidenceCard{
  min-width:0;
  padding:26px;
  background:#fff;
}
.proposalEvidenceTop{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
  margin-bottom:22px;
}
.proposalTheme{
  color:rgba(17,17,19,.48);
  font:820 9px/1.3 var(--sans);
  letter-spacing:.14em;
  text-transform:uppercase;
}
.proposalEvidenceCard h3{
  margin:0 0 12px;
  font:650 24px/1.08 var(--serif);
  letter-spacing:-.025em;
}
.proposalEvidenceCard > p{
  margin:0 0 20px;
  color:rgba(17,17,19,.65);
  font-size:13.5px;
  line-height:1.6;
}
.evidenceSource{
  display:block;
  margin:14px 0 0;
  padding:12px 0 0;
  border-top:1px solid rgba(17,17,19,.1);
  color:rgba(17,17,19,.54);
  font-style:normal;
}
.evidenceSource a{
  display:block;
  margin:0 0 4px;
  color:var(--ink);
  font:780 11px/1.35 var(--sans);
  text-decoration:none;
  overflow-wrap:anywhere;
}
.evidenceSource a:hover{ text-decoration:underline; text-underline-offset:3px; }
.evidenceSource span{
  display:block;
  font:650 9px/1.45 var(--sans);
  letter-spacing:.02em;
}
.evidenceSourcePrefix{
  margin-bottom:5px!important;
  color:rgba(17,17,19,.45)!important;
  font-size:8px!important;
  font-weight:850!important;
  letter-spacing:.12em!important;
  text-transform:uppercase;
}
.evidenceMethodNote{
  margin-top:22px;
  padding:16px 18px;
  border-left:2px solid var(--franceBlue);
  background:rgba(0,85,164,.035);
  color:rgba(17,17,19,.67);
  font-size:12px;
  line-height:1.65;
}

.positionGroup{
  margin:0 0 34px;
  border-top:1px solid rgba(17,17,19,.18);
}
.positionGroup:last-child{ margin-bottom:0; }
.positionGroup > h3{
  margin:0;
  padding:16px 0 13px;
  color:rgba(17,17,19,.52);
  font:850 10px/1.2 var(--sans);
  letter-spacing:.16em;
  text-transform:uppercase;
}
.evidenceTableWrap,
.tableWrap{
  width:100%;
  max-width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-inline:contain;
}
.evidenceTable,
.comparisonMatrixTable,
.comparisonThemeTable,
.themePartyTable{
  width:100%;
  min-width:920px;
  border-collapse:collapse;
  table-layout:fixed;
}
.evidenceTable th,
.evidenceTable td,
.comparisonMatrixTable th,
.comparisonMatrixTable td,
.comparisonThemeTable th,
.comparisonThemeTable td,
.themePartyTable th,
.themePartyTable td{
  padding:18px 15px;
  border-bottom:1px solid rgba(17,17,19,.1);
  vertical-align:top;
  text-align:left;
}
.evidenceTable thead th,
.comparisonMatrixTable thead th,
.comparisonThemeTable thead th,
.themePartyTable thead th{
  position:sticky;
  top:var(--headerH);
  z-index:2;
  background:#f7f7f7;
  color:rgba(17,17,19,.55);
  font:820 9px/1.25 var(--sans);
  letter-spacing:.1em;
  text-transform:uppercase;
}
.evidenceTable tbody tr:hover,
.comparisonMatrixTable tbody tr:hover,
.themePartyTable tbody tr:hover{ background:rgba(0,85,164,.025); }
.criterionCell{ width:34%; }
.criterionCell strong{
  display:block;
  font:650 16px/1.35 var(--serif);
  letter-spacing:-.012em;
}
.criterionId{
  display:block;
  margin-bottom:8px;
  color:rgba(17,17,19,.45);
  font:850 9px/1 var(--sans);
  letter-spacing:.13em;
  text-transform:uppercase;
}
.scoreCell{ width:95px; }
.positionScore{
  display:inline-flex;
  min-width:48px;
  justify-content:center;
  align-items:center;
  padding:7px 8px;
  border:1px solid rgba(17,17,19,.16);
  border-radius:4px;
  background:#fff;
  font:850 11px/1 var(--sans);
  white-space:nowrap;
}
.score1{ border-color:#e9babb; background:#fff3f3; color:#852329; }
.score2{ border-color:#edcfca; background:#fff8f5; color:#88433b; }
.score3{ border-color:#d5d5d5; background:#f7f7f7; color:#444; }
.score4{ border-color:#c3dfd1; background:#f3fbf7; color:#1f6a43; }
.score5{ border-color:#a8d5bf; background:#eaf8f0; color:#145b34; }
.readingCell{
  color:rgba(17,17,19,.7);
  font-size:12.5px;
  line-height:1.58;
}
.sourceCell{ width:24%; }
.sourceCell .evidenceSource{ margin:0; padding:0; border:0; }
.moreSources{
  display:block;
  margin-top:7px;
  color:rgba(17,17,19,.48);
  font-size:9px;
  font-weight:750;
}
.sourceMissing{
  display:inline-block;
  color:#7c2626;
  font-size:11px;
  font-weight:800;
}
.confidenceCell{ width:84px; text-align:center!important; }

.themeEvidenceGrid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1px;
  border:1px solid rgba(17,17,19,.12);
  background:rgba(17,17,19,.12);
}
.themeEvidenceCard{
  display:grid;
  grid-template-columns:84px minmax(0,1fr);
  gap:24px;
  min-width:0;
  padding:28px;
  background:#fff;
}
.themeEvidenceScore{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-start;
  padding-top:3px;
}
.themeEvidenceScore strong{
  font:650 44px/.9 var(--serif);
  letter-spacing:-.05em;
}
.themeEvidenceScore span{
  margin-top:7px;
  color:rgba(17,17,19,.46);
  font:800 8px/1.2 var(--sans);
  letter-spacing:.12em;
  text-transform:uppercase;
}
.themeEvidenceCard h3{
  margin:0 0 10px;
  font:650 24px/1.08 var(--serif);
}
.themeEvidenceCard h3 a{ text-decoration:none; }
.themeEvidenceCard h3 a:hover{ text-decoration:underline; text-underline-offset:4px; }
.themeEvidenceCard p{
  margin:0 0 15px;
  color:rgba(17,17,19,.64);
  font-size:13px;
  line-height:1.58;
}
.themeEvidenceMeta{
  display:flex;
  flex-wrap:wrap;
  gap:8px 12px;
  align-items:center;
  color:rgba(17,17,19,.48);
  font-size:10px;
  font-weight:720;
}
.compactVector{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:0 0 13px;
}
.compactVector span,
.compactVectorItem{
  display:inline-flex;
  padding:5px 7px;
  border:1px solid rgba(17,17,19,.11);
  background:#fafafa;
  font:800 9px/1 var(--sans);
}

.neighbourGrid,
.divergenceGrid,
.convergenceGrid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.neighbourCard,
.divergenceCard,
.convergenceCard{
  min-width:0;
  padding:26px;
  border:1px solid rgba(17,17,19,.12);
  background:#fff;
}
.neighbourScore{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
  padding-bottom:18px;
  border-bottom:1px solid rgba(17,17,19,.11);
}
.neighbourScore strong{ font:650 38px/1 var(--serif); letter-spacing:-.04em; }
.neighbourScore span{ color:rgba(17,17,19,.45); font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.1em; }
.neighbourCard h3,
.divergenceCard h3,
.convergenceCard h3{
  margin:20px 0 10px;
  font:650 23px/1.08 var(--serif);
}
.neighbourCard h4{ margin:20px 0 8px; font-size:10px; text-transform:uppercase; letter-spacing:.1em; }
.neighbourCard ul{ margin:0; padding-left:17px; color:rgba(17,17,19,.65); font-size:11.5px; line-height:1.55; }
.neighbourCard li+li{ margin-top:8px; }
.neighbourLinks{
  display:flex;
  flex-wrap:wrap;
  gap:8px 14px;
  margin-top:20px;
  padding-top:16px;
  border-top:1px solid rgba(17,17,19,.1);
}
.neighbourLinks a{ font-size:10px; font-weight:850; text-decoration:none; border-bottom:1px solid currentColor; }

.evolutionGrid{
  display:grid;
  grid-template-columns:minmax(0,1.6fr) minmax(300px,.72fr);
  gap:clamp(36px,5vw,78px);
}
.evolutionGrid > article > h3,
.criticalChecks h3{ margin:0 0 22px; font:650 28px/1.05 var(--serif); }
.timelineEvidence{ border-top:1px solid rgba(17,17,19,.16); }
.timelineEvidenceItem{
  position:relative;
  padding:25px 0 25px 28px;
  border-bottom:1px solid rgba(17,17,19,.11);
}
.timelineEvidenceItem::before{
  content:"";
  position:absolute;
  left:0;
  top:30px;
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--franceBlue);
  box-shadow:0 0 0 5px rgba(0,85,164,.09);
}
.timelineEvidenceItem h4{ margin:0 0 8px; font:650 21px/1.15 var(--serif); }
.timelineEvidenceItem p{ margin:0; color:rgba(17,17,19,.65); font-size:13px; line-height:1.6; }
.timelineSources{ display:grid; gap:6px; margin-top:12px; }
.timelineSources .evidenceSource{ margin:0; padding:9px 0 0; }
.criticalChecks{
  padding:30px;
  border:1px solid rgba(17,17,19,.14);
  background:#fafafa;
}
.criticalChecks ol{ margin:0; padding-left:19px; color:rgba(17,17,19,.7); font-size:13px; line-height:1.65; }
.criticalChecks li+li{ margin-top:14px; }

.bibliographyGrid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  border:1px solid rgba(17,17,19,.12);
  background:rgba(17,17,19,.12);
}
.bibliographyCard{
  min-width:0;
  padding:24px;
  background:#fff;
}
.bibliographyMeta{
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:8px;
  margin-bottom:18px;
  color:rgba(17,17,19,.43);
  font:800 8px/1.3 var(--sans);
  letter-spacing:.1em;
  text-transform:uppercase;
}
.bibliographyCard h3,
.bibliographyCard h4{
  margin:0 0 12px;
  font:650 20px/1.15 var(--serif);
  letter-spacing:-.018em;
}
.bibliographyCard h3 a,
.bibliographyCard h4 a{ text-decoration:none; overflow-wrap:anywhere; }
.bibliographyCard h3 a:hover,
.bibliographyCard h4 a:hover{ text-decoration:underline; text-underline-offset:4px; }
.bibliographyCard p{ margin:0 0 16px; color:rgba(17,17,19,.62); font-size:12px; line-height:1.58; }
.bibliographyCard small{ color:rgba(17,17,19,.48); font-size:9.5px; line-height:1.45; }

.evidenceFooterGrid{
  display:grid;
  grid-template-columns:minmax(0,1.65fr) minmax(280px,.65fr);
  gap:clamp(34px,5vw,80px);
  align-items:start;
}
.evidenceDownloadCard{
  display:grid;
  gap:0;
  padding:22px 0 0 26px;
  border-left:1px solid rgba(17,17,19,.18);
}
.evidenceDownloadCard strong{ margin-bottom:12px; font:650 22px/1.1 var(--serif); }
.evidenceDownloadCard p{ margin:0 0 14px; color:rgba(17,17,19,.6); font-size:12px; line-height:1.55; }
.evidenceDownloadCard a{
  padding:11px 0;
  border-top:1px solid rgba(17,17,19,.1);
  font-size:11px;
  font-weight:800;
  text-decoration:none;
}
.evidenceDownloadCard a::after{ content:" ↗"; color:rgba(17,17,19,.38); }

/* Index partis */
.partyEvidenceIndex{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  border:1px solid rgba(17,17,19,.12);
  background:rgba(17,17,19,.12);
}
.partyEvidenceIndexCard{
  display:flex;
  flex-direction:column;
  min-width:0;
  min-height:430px;
  padding:28px;
  background:#fff;
}
.partyEvidenceIndexHead{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}
.partyEvidenceIndexHead h2{ margin:7px 0 0; font:650 29px/1.02 var(--serif); letter-spacing:-.035em; }
.partyEvidenceIndexHead h2 a{ text-decoration:none; }
.partyEvidenceIndexHead h2 a:hover{ text-decoration:underline; text-underline-offset:5px; }
.partyEvidenceHeadline{
  margin:26px 0 11px!important;
  color:var(--ink)!important;
  font:650 18px/1.25 var(--serif)!important;
}
.partyEvidenceIndexCard > p:not(.partyEvidenceHeadline){ margin:0; color:rgba(17,17,19,.62); font-size:12.5px; line-height:1.6; }
.partyEvidenceFacts{ display:grid; gap:10px; margin:22px 0 16px; }
.partyEvidenceFacts div{ display:grid; grid-template-columns:70px 1fr; gap:12px; padding-top:10px; border-top:1px solid rgba(17,17,19,.09); }
.partyEvidenceFacts dt{ color:rgba(17,17,19,.45); font-size:8.5px; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.partyEvidenceFacts dd{ margin:0; color:rgba(17,17,19,.68); font-size:10.5px; line-height:1.45; }
.coverageBar{ display:flex; gap:8px; margin-top:auto; padding-top:18px; }
.coverageBar > span{ flex:1; min-width:0; }
.coverageBar i{ display:block; width:100%; height:4px; background:rgba(17,17,19,.08); position:relative; overflow:hidden; }
.coverageBar i::after{ content:""; display:block; width:var(--coverage); height:100%; background:currentColor; }
.coverageBar b{ display:block; margin-top:6px; color:rgba(17,17,19,.48); font-size:8px; letter-spacing:.06em; }
.coverageA{ color:#287044; }.coverageB{ color:#a37718;}.coverageC{ color:#9a3d3d;}
.partyEvidenceIndexFoot{ display:flex; justify-content:space-between; gap:14px; align-items:flex-end; margin-top:20px; padding-top:15px; border-top:1px solid rgba(17,17,19,.1); }
.partyEvidenceIndexFoot span{ color:rgba(17,17,19,.42); font-size:9px; font-weight:750; }
.partyEvidenceIndexFoot .cardLink{ font-size:10px; }
.threeColMethod{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  border:1px solid rgba(17,17,19,.12);
  background:rgba(17,17,19,.12);
}
.threeColMethod article{ min-width:0; padding:28px; background:#fff; }
.threeColMethod article > span{ display:block; margin-bottom:30px; color:rgba(17,17,19,.35); font:650 34px/1 var(--serif); }
.threeColMethod h3{ margin:0 0 12px; font:650 24px/1.08 var(--serif); }
.threeColMethod p{ margin:0; color:rgba(17,17,19,.62); font-size:12.5px; line-height:1.62; }
.threeColMethod small{ display:block; margin-top:15px; color:rgba(17,17,19,.46); font-size:9.5px; }

/* Index et dossiers thématiques */
.evidenceIndexGrid,
.comparisonIndexGrid{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.evidenceIndexCard,
.comparisonIndexCard{ min-height:330px; }
.criterionPreview{ display:grid; gap:7px; margin:20px 0; }
.criterionPreview span{ display:block; padding:9px 0; border-top:1px solid rgba(17,17,19,.1); color:rgba(17,17,19,.57); font-size:9.5px; line-height:1.45; }
.criteriaEvidenceGrid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; border:1px solid rgba(17,17,19,.12); background:rgba(17,17,19,.12); }
.criterionEvidenceCard{ padding:28px; background:#fff; }
.criterionEvidenceCard h3{ margin:8px 0 15px; font:650 24px/1.08 var(--serif); }
.criterionEvidenceCard > p{ margin:0; color:rgba(17,17,19,.64); font-size:13px; line-height:1.62; }
.criterionSpread{ display:flex; gap:6px; flex-wrap:wrap; margin-top:20px; }
.criterionSpread span{ min-width:34px; padding:6px 8px; border:1px solid rgba(17,17,19,.12); text-align:center; font-size:9px; font-weight:800; }
.partyNameCell strong{ display:block; font:650 16px/1.2 var(--serif); }
.partyNameCell a{ text-decoration:none; }
.partyNameCell span{ display:block; margin-top:4px; color:rgba(17,17,19,.45); font-size:9px; }
.scoreVectorCell{ min-width:240px; }
.scoreVectorItem{ display:inline-flex; align-items:center; gap:5px; margin:2px; padding:5px 7px; border:1px solid rgba(17,17,19,.1); background:#fafafa; font-size:9px; font-weight:750; }
.scoreVectorItem b{ font-weight:900; }
.themePartyTable .evidenceSource{ margin-top:10px; }
.themePartyTable .proposalEvidenceGrid{ display:grid; grid-template-columns:1fr; gap:0; border:0; background:transparent; }
.themePartyTable .proposalEvidenceCard{ padding:0; }

/* Comparatifs actuels */
.comparisonMetricStrip{
  display:grid;
  grid-template-columns:minmax(240px,1.15fr) repeat(4,minmax(0,.72fr));
  gap:1px;
  margin-bottom:42px;
  background:rgba(17,17,19,.12);
  border:1px solid rgba(17,17,19,.12);
}
.comparisonMetricStrip > div{ padding:22px; background:#fff; }
.comparisonMetricStrip strong{ display:block; font:650 25px/1 var(--serif); }
.comparisonMetricStrip small{ display:block; margin-top:7px; color:rgba(17,17,19,.46); font-size:9px; }
.comparisonMetricMain strong{ font-size:42px!important; letter-spacing:-.05em; }
.comparisonIdentityGrid{ display:grid; grid-template-columns:1fr 90px 1fr; gap:20px; align-items:stretch; }
.comparisonIdentityGrid > article{ padding:28px; border:1px solid rgba(17,17,19,.13); }
.comparisonIdentityGrid h2{ margin:5px 0 12px; font:650 30px/1.02 var(--serif); }
.comparisonIdentityGrid p{ margin:0; color:rgba(17,17,19,.64); font-size:12.5px; line-height:1.6; }
.comparisonVersus{ display:flex; align-items:center; justify-content:center; color:rgba(17,17,19,.32); font:650 24px/1 var(--serif); }
.divergenceHead{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.divergenceHead span{ color:rgba(17,17,19,.45); font-size:9px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.divergenceScore{ font:650 26px/1 var(--serif); }
.divergenceSides{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:18px; }
.divergenceSides > div{ padding-top:13px; border-top:1px solid rgba(17,17,19,.1); }
.divergenceSides strong{ display:block; margin-bottom:4px; font-size:10px; }
.divergenceSides span{ color:rgba(17,17,19,.56); font-size:10px; }
.comparisonPartyEvidence .scoreLine{ display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.comparisonPartyEvidence small{ color:rgba(17,17,19,.48); font-size:9px; }
.gapCell{ width:72px; text-align:center!important; }
.gapCell strong{ display:block; font:650 25px/1 var(--serif); }
.gapCell small{ color:rgba(17,17,19,.43); font-size:8px; }
.convergenceCard > span{ color:rgba(17,17,19,.45); font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.convergenceCard p{ margin:0; color:rgba(17,17,19,.6); font-size:11px; }
.comparisonIndexCard .comparisonCardMetric{ display:flex; gap:15px; margin:20px 0; padding:14px 0; border-top:1px solid rgba(17,17,19,.1); border-bottom:1px solid rgba(17,17,19,.1); }
.comparisonCardMetric strong{ font:650 26px/1 var(--serif); }
.comparisonCardMetric span{ color:rgba(17,17,19,.45); font-size:9px; line-height:1.4; }

/* Comparatifs historiques */
.historicalProgramMatrix{ display:grid; gap:20px; }
.historicalRowCard{ padding:28px; border:1px solid rgba(17,17,19,.13); }
.historicalRowCard > h3{ margin:0 0 22px; font:650 29px/1.05 var(--serif); }
.programCompareCols{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; background:rgba(17,17,19,.12); border:1px solid rgba(17,17,19,.12); }
.programPartyBox{ padding:24px; background:#fff; }
.programPartyBox > span{ display:block; margin-bottom:13px; color:rgba(17,17,19,.45); font:850 9px/1.2 var(--sans); letter-spacing:.12em; text-transform:uppercase; }
.programPartyBox p{ margin:0; color:rgba(17,17,19,.68); font-size:13px; line-height:1.62; }
.programReading{ margin-top:20px; padding:18px 0 0; border-top:1px solid rgba(17,17,19,.12); }
.programReading strong{ display:block; margin-bottom:6px; font-size:10px; text-transform:uppercase; letter-spacing:.09em; }
.programReading p{ margin:0; color:rgba(17,17,19,.64); font-size:12.5px; line-height:1.6; }
.sourceChipRow{ display:flex; flex-wrap:wrap; gap:7px; margin-top:18px; }
.sourceChip{ display:inline-flex; padding:7px 9px; border:1px solid rgba(17,17,19,.13); color:rgba(17,17,19,.67); font-size:8.5px; font-weight:800; line-height:1.3; text-decoration:none; }
.sourceChip:hover{ border-color:rgba(17,17,19,.35); color:var(--ink); }

/* Registre des sources */
.sourceCoverageTable{ min-width:940px; }
.sourceCoverageTable th[scope="row"] strong{ display:block; font:650 17px/1.1 var(--serif); }
.sourceCoverageTable th[scope="row"] span{ display:block; margin-top:4px; color:rgba(17,17,19,.45); font-size:9px; font-weight:600; }
.sourcePartyRegistry{ display:grid; gap:56px; }
.sourcePartySection{ scroll-margin-top:100px; }
.sourcePartyHeading{
  display:grid;
  grid-template-columns:minmax(220px,.7fr) minmax(0,1.7fr) auto;
  gap:28px;
  align-items:end;
  margin-bottom:20px;
  padding-bottom:18px;
  border-bottom:1px solid rgba(17,17,19,.16);
}
.sourcePartyHeading > div > span{ color:rgba(17,17,19,.44); font-size:9px; font-weight:850; letter-spacing:.12em; }
.sourcePartyHeading h3{ margin:5px 0 0; font:650 31px/1 var(--serif); letter-spacing:-.035em; }
.sourcePartyHeading p{ margin:0; color:rgba(17,17,19,.62); font-size:12px; line-height:1.58; }
.sourcePartyHeading > a{ font-size:10px; font-weight:850; text-decoration:none; border-bottom:1px solid currentColor; white-space:nowrap; }
.sourceRegistryCard{ min-height:230px; }

/* Données publiques */
.dataDownloadGrid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; border:1px solid rgba(17,17,19,.12); background:rgba(17,17,19,.12); }
.dataDownloadCard{ padding:30px; background:#fff; }
.dataDownloadCard > span{ color:rgba(17,17,19,.43); font-size:9px; font-weight:850; letter-spacing:.13em; text-transform:uppercase; }
.dataDownloadCard h3{ margin:23px 0 13px; font:650 27px/1.05 var(--serif); letter-spacing:-.03em; }
.dataDownloadCard p{ margin:0; color:rgba(17,17,19,.62); font-size:12.5px; line-height:1.6; }
.dataDownloadCard > div{ display:flex; gap:8px; margin-top:25px; }
.dataDownloadCard a{ padding:9px 12px; border:1px solid rgba(17,17,19,.15); font-size:9px; font-weight:850; text-decoration:none; }
.dataDownloadCard a:hover{ background:var(--ink); color:#fff; }
.scoreDictionary{ display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:1px; border:1px solid rgba(17,17,19,.12); background:rgba(17,17,19,.12); }
.scoreDictionary article{ min-width:0; padding:24px; background:#fff; }
.scoreDictionary h3{ margin:20px 0 10px; font:650 20px/1.08 var(--serif); }
.scoreDictionary p{ margin:0; color:rgba(17,17,19,.59); font-size:11px; line-height:1.55; }
.questionDataTable{ min-width:920px; }
.questionDataTable th:first-child{ width:64px; }
.questionDataTable th:nth-child(2){ width:170px; }
.questionDataTable th:nth-child(4){ width:260px; }

/* Petits composants partagés */
.cleanTable{ width:100%; border-collapse:collapse; }
.cleanTable th,.cleanTable td{ padding:14px; border-bottom:1px solid rgba(17,17,19,.1); vertical-align:top; text-align:left; }
.compactList{ margin:0; padding-left:18px; color:rgba(17,17,19,.65); font-size:12px; line-height:1.6; }
.compactList li+li{ margin-top:8px; }

@media (max-width:1180px){
  .evidenceMetricStrip{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .evidenceMetricStrip > div:nth-child(3){ border-right:0; }
  .evidenceMetricStrip > div:nth-child(n+4){ border-top:1px solid rgba(17,17,19,.1); }
  .proposalEvidenceGrid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .partyEvidenceIndex{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .bibliographyGrid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .comparisonMetricStrip{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .comparisonMetricMain{ grid-column:span 3; }
  .scoreDictionary{ grid-template-columns:repeat(3,minmax(0,1fr)); }
}

@media (max-width:900px){
  .evidenceHero .panelHeadDark{ min-height:auto; }
  .evidenceIntroGrid,
  .evolutionGrid,
  .evidenceFooterGrid{ grid-template-columns:1fr; gap:30px; }
  .evidenceScopeCard,
  .evidenceDownloadCard{ padding-left:22px; }
  .themeEvidenceGrid,
  .criteriaEvidenceGrid{ grid-template-columns:1fr; }
  .neighbourGrid,
  .divergenceGrid,
  .convergenceGrid{ grid-template-columns:1fr; }
  .threeColMethod{ grid-template-columns:1fr; }
  .comparisonIdentityGrid{ grid-template-columns:1fr; }
  .comparisonVersus{ min-height:36px; }
  .programCompareCols{ grid-template-columns:1fr; }
  .sourcePartyHeading{ grid-template-columns:1fr; gap:12px; align-items:start; }
  .sourcePartyHeading > a{ justify-self:start; }
  .dataDownloadGrid{ grid-template-columns:1fr; }
  .scoreDictionary{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:680px){
  .evidenceHero .partyPageTitle{ max-width:none; }
  .evidenceMetricStrip{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .evidenceMetricStrip > div{
    padding:15px 12px;
    border-right:1px solid rgba(17,17,19,.1)!important;
    border-top:1px solid rgba(17,17,19,.1);
  }
  .evidenceMetricStrip > div:nth-child(-n+2){ border-top:0; }
  .evidenceMetricStrip > div:nth-child(2n){ border-right:0!important; }
  .evidenceMetricStrip > div:first-child{ padding-left:12px; }
  .evidenceMetricStrip > div:last-child{ padding-right:12px; }
  .evidenceMetricStrip strong{ font-size:18px; }
  .evidenceLead{ font-size:29px!important; }
  .proposalEvidenceGrid,
  .partyEvidenceIndex,
  .bibliographyGrid{ grid-template-columns:1fr; }
  .proposalEvidenceCard,
  .partyEvidenceIndexCard,
  .bibliographyCard,
  .criterionEvidenceCard,
  .dataDownloadCard{ padding:22px; }
  .partyEvidenceIndexCard{ min-height:auto; }
  .themeEvidenceCard{ grid-template-columns:58px minmax(0,1fr); gap:16px; padding:21px; }
  .themeEvidenceScore strong{ font-size:34px; }
  .themeEvidenceCard h3{ font-size:21px; }
  .comparisonMetricStrip{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .comparisonMetricMain{ grid-column:span 2; }
  .comparisonMetricStrip > div{ padding:17px; }
  .comparisonMetricMain strong{ font-size:35px!important; }
  .divergenceSides{ grid-template-columns:1fr; }
  .historicalRowCard{ padding:20px; }
  .scoreDictionary{ grid-template-columns:1fr; }
  .threeColMethod article{ padding:23px; }
  .partyEvidenceIndexFoot{ align-items:flex-start; flex-direction:column; }
}

/* ==========================================================================
   PERSONNALITÉS POLITIQUES — RÉPERTOIRE DOCUMENTÉ V10
   Direction éditoriale : annuaire institutionnel + registre de preuves.
   ========================================================================== */

.page-people .shell{ --peopleMax:var(--max); width:min(100%,var(--peopleMax)); max-width:var(--peopleMax); }
.page-people .breadcrumbWrap{ background:rgba(255,255,255,.72); }
.peopleReferenceMain,
.peopleProfileMain{ padding:30px 0 92px; }
.peopleReferenceMain .shell,
.peopleProfileMain .shell{ display:grid; gap:26px; }

.peopleReferenceEyebrow{
  margin:0;
  color:rgba(17,17,19,.48);
  font-size:10px;
  font-weight:900;
  letter-spacing:.16em;
  line-height:1.3;
  text-transform:uppercase;
}

/* Héros index */
.peopleReferenceHero{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.65fr) minmax(310px,.62fr);
  gap:0;
  overflow:hidden;
  min-height:590px;
  background:#0b0c0e;
  color:#fff;
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 36px 90px rgba(15,19,24,.18);
}
.peopleReferenceHero::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 82% 22%,rgba(0,85,164,.34),transparent 27%),
    radial-gradient(circle at 96% 82%,rgba(239,65,53,.24),transparent 24%),
    linear-gradient(135deg,transparent 0 61%,rgba(255,255,255,.035) 61% 61.25%,transparent 61.25%);
}
.peopleReferenceHero::after{
  content:"";
  position:absolute;
  width:520px;
  height:520px;
  right:-210px;
  bottom:-260px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:50%;
  box-shadow:0 0 0 74px rgba(255,255,255,.026),0 0 0 148px rgba(255,255,255,.018);
}
.peopleReferenceHeroCopy{
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(54px,6vw,94px) clamp(38px,6vw,96px) 132px;
}
.peopleReferenceHeroCopy .peopleReferenceEyebrow{ color:rgba(255,255,255,.54); }
.peopleReferenceHero h1{
  max-width:1000px;
  margin:20px 0 24px;
  font:650 clamp(48px,5.25vw,84px)/.94 var(--serif);
  letter-spacing:-.055em;
  text-wrap:balance;
}
.peopleReferenceLead{
  max-width:830px;
  margin:0;
  color:rgba(255,255,255,.73);
  font-size:clamp(16px,1.25vw,20px);
  line-height:1.65;
}
.peopleReferenceActions,
.peopleProfileActions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:35px;
}
.peopleReferenceHero .btn,
.peopleProfileHero .btn{
  border-color:rgba(255,255,255,.18);
  background:#fff;
  color:#0b0c0e;
}
.peopleReferenceHero .btnGhost,
.peopleProfileHero .btnGhost{
  background:transparent;
  color:#fff;
  border-color:rgba(255,255,255,.25);
}
.peopleReferenceHero .btnGhost:hover,
.peopleProfileHero .btnGhost:hover{ background:rgba(255,255,255,.08); }
.peopleReferenceHeroAside{
  position:relative;
  z-index:1;
  align-self:center;
  margin:70px 58px 152px 0;
  padding:34px 0 34px 32px;
  border-left:1px solid rgba(255,255,255,.19);
}
.peopleReferenceAsideKicker{
  display:block;
  margin-bottom:23px;
  color:rgba(255,255,255,.47);
  font-size:9px;
  font-weight:900;
  letter-spacing:.15em;
  text-transform:uppercase;
}
.peopleReferenceHeroAside strong{
  display:block;
  max-width:330px;
  font:650 clamp(27px,2.2vw,39px)/1.02 var(--serif);
  letter-spacing:-.035em;
}
.peopleReferenceHeroAside p{
  max-width:340px;
  margin:24px 0;
  color:rgba(255,255,255,.67);
  font-size:13px;
  line-height:1.68;
}
.peopleReferenceHeroAside a{
  color:#fff;
  font-size:10px;
  font-weight:900;
  text-decoration:none;
  border-bottom:1px solid rgba(255,255,255,.42);
}
.peopleReferenceMetrics{
  position:absolute;
  z-index:2;
  left:0;
  right:0;
  bottom:0;
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  background:rgba(255,255,255,.055);
  border-top:1px solid rgba(255,255,255,.12);
  backdrop-filter:blur(9px);
}
.peopleReferenceMetrics div{ padding:22px 28px; border-right:1px solid rgba(255,255,255,.1); }
.peopleReferenceMetrics div:last-child{ border-right:0; }
.peopleReferenceMetrics strong{ display:block; font:650 26px/1 var(--serif); letter-spacing:-.03em; }
.peopleReferenceMetrics span{ display:block; margin-top:8px; color:rgba(255,255,255,.48); font-size:9px; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }

/* Sections éditoriales */
.peopleReferenceSection,
.peopleProfileSection{
  background:#fff;
  border:1px solid rgba(17,17,19,.1);
  box-shadow:0 22px 58px rgba(17,17,19,.065);
  padding:clamp(34px,4.7vw,72px);
}
.peopleSectionHeading{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(300px,.72fr);
  gap:clamp(30px,5vw,90px);
  align-items:end;
  margin-bottom:38px;
  padding-bottom:28px;
  border-bottom:1px solid rgba(17,17,19,.12);
}
.peopleSectionHeading h2{
  max-width:950px;
  margin:10px 0 0;
  font:650 clamp(35px,3.4vw,56px)/.98 var(--serif);
  letter-spacing:-.045em;
  text-wrap:balance;
}
.peopleSectionHeading > p{
  margin:0;
  color:rgba(17,17,19,.62);
  font-size:13px;
  line-height:1.65;
}
.peopleMethodGrid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1px;
  background:rgba(17,17,19,.12);
  border:1px solid rgba(17,17,19,.12);
}
.peopleMethodGrid article{ min-height:190px; padding:29px; background:#fff; }
.peopleMethodGrid article span{ display:block; color:rgba(17,17,19,.32); font:650 31px/1 var(--serif); }
.peopleMethodGrid article p{ margin:40px 0 0; color:rgba(17,17,19,.72); font-size:13px; line-height:1.62; }
.peopleEvidenceChain{
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr);
  gap:42px;
  margin-top:28px;
  padding:32px;
  background:#111215;
  color:#fff;
}
.peopleEvidenceChain > div{ display:flex; align-items:center; flex-wrap:wrap; gap:12px; }
.peopleEvidenceChain > div > span{ width:100%; color:rgba(255,255,255,.42); font-size:9px; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.peopleEvidenceChain strong{ font-size:12px; }
.peopleEvidenceChain i{ color:rgba(255,255,255,.28); font-style:normal; }
.peopleEvidenceChain p{ margin:0; color:rgba(255,255,255,.6); font-size:12px; line-height:1.65; }
.peopleConfidenceBar{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  margin-top:1px;
  background:rgba(17,17,19,.12);
}
.peopleConfidenceBar div{ display:grid; grid-template-columns:46px 1fr; gap:16px; align-items:start; padding:23px 26px; background:#f7f7f8; }
.peopleConfidenceBar strong{ display:grid; place-items:center; width:38px; height:38px; border:1px solid rgba(17,17,19,.18); font:700 19px/1 var(--serif); }
.peopleConfidenceBar p{ margin:0; color:rgba(17,17,19,.58); font-size:11.5px; line-height:1.55; }

/* Outils et cartes du répertoire */
.peopleDirectoryTools{
  display:grid;
  grid-template-columns:minmax(260px,1.4fr) repeat(2,minmax(205px,.8fr)) auto;
  gap:10px;
  align-items:end;
  margin-bottom:14px;
  padding:18px;
  background:#f4f4f5;
  border:1px solid rgba(17,17,19,.1);
}
.peopleDirectoryTools label{ display:grid; gap:8px; }
.peopleDirectoryTools label > span{ color:rgba(17,17,19,.53); font-size:9px; font-weight:900; letter-spacing:.11em; text-transform:uppercase; }
.peopleDirectoryTools input,
.peopleDirectoryTools select{
  width:100%;
  height:48px;
  padding:0 14px;
  border:1px solid rgba(17,17,19,.16);
  border-radius:0;
  background:#fff;
  color:#111113;
  font:600 12px/1.2 var(--sans);
  outline:none;
}
.peopleDirectoryTools input:focus,
.peopleDirectoryTools select:focus{ border-color:#111113; box-shadow:0 0 0 2px rgba(17,17,19,.08); }
.peopleDirectoryTools button{
  height:48px;
  padding:0 18px;
  border:1px solid #111113;
  background:#111113;
  color:#fff;
  font-size:9px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  cursor:pointer;
}
.peopleDirectoryStatus{ display:flex; align-items:baseline; gap:7px; margin:0 0 20px; color:rgba(17,17,19,.5); font-size:10px; font-weight:750; }
.peopleDirectoryStatus strong{ color:#111113; font:650 20px/1 var(--serif); }
.peopleDirectoryGrid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.peopleDirectoryCard{
  min-width:0;
  display:grid;
  grid-template-rows:auto 1fr;
  overflow:hidden;
  background:#fff;
  border:1px solid rgba(17,17,19,.12);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.peopleDirectoryCard:hover{ transform:translateY(-3px); border-color:rgba(17,17,19,.28); box-shadow:0 20px 42px rgba(17,17,19,.1); }
.peopleDirectoryCard[hidden]{ display:none!important; }
.peopleDirectoryPortrait{
  position:relative;
  display:block;
  overflow:hidden;
  aspect-ratio:4/2.75;
  background:#ececef;
  text-decoration:none;
}
.peopleDirectoryPortrait picture,
.peopleDirectoryPortrait img{ width:100%; height:100%; display:block; }
.peopleDirectoryPortrait img{ object-fit:cover; filter:saturate(.88) contrast(1.02); transition:transform .45s ease; }
.peopleDirectoryCard:hover .peopleDirectoryPortrait img{ transform:scale(1.018); }
.peoplePortraitCaption{
  position:absolute;
  right:0;
  bottom:0;
  padding:5px 7px;
  background:rgba(255,255,255,.9);
  color:rgba(17,17,19,.56);
  font-size:7px;
  font-weight:850;
  letter-spacing:.1em;
  line-height:1;
  text-transform:uppercase;
}
.peopleDirectoryCardBody{ display:flex; flex-direction:column; min-height:385px; padding:24px 25px 22px; }
.peopleCardTaxonomy{ display:flex; flex-wrap:wrap; gap:7px; }
.peopleCardTaxonomy span{
  padding:6px 7px;
  border:1px solid rgba(17,17,19,.12);
  color:rgba(17,17,19,.55);
  font-size:7.5px;
  font-weight:900;
  letter-spacing:.075em;
  line-height:1.15;
  text-transform:uppercase;
}
.peopleDirectoryCard h2{ margin:20px 0 8px; font:650 31px/1 var(--serif); letter-spacing:-.035em; }
.peopleDirectoryCard h2 a{ text-decoration:none; }
.peopleCardRole{ margin:0; color:#111113; font-size:12.5px; font-weight:760; line-height:1.48; }
.peopleCardWhy{ margin:16px 0 0; color:rgba(17,17,19,.62); font-size:12px; line-height:1.62; }
.peopleThemeList{ display:flex; flex-wrap:wrap; gap:6px; margin-top:18px; }
.peopleThemeList span{ color:rgba(17,17,19,.5); font-size:8.5px; font-weight:800; }
.peopleThemeList span+span::before{ content:"·"; margin-right:6px; color:rgba(17,17,19,.28); }
.peopleCardEvidenceMeta{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin-top:auto;
  padding-top:22px;
  border-top:1px solid rgba(17,17,19,.1);
}
.peopleCardEvidenceMeta span{ color:rgba(17,17,19,.46); font-size:8px; font-weight:800; line-height:1.35; }
.peopleCardLink{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-top:17px;
  padding-top:15px;
  border-top:1px solid rgba(17,17,19,.1);
  color:#111113;
  font-size:9px;
  font-weight:900;
  letter-spacing:.06em;
  text-decoration:none;
  text-transform:uppercase;
}
.peopleNoResults{ margin:28px 0 0; padding:30px; background:#f6f6f7; color:rgba(17,17,19,.62); font-size:13px; }

/* Table des fonctions */
.peopleTableScroll{ max-width:100%; overflow:auto; border:1px solid rgba(17,17,19,.12); }
.peopleResponsibilityTable{ width:100%; min-width:1120px; border-collapse:collapse; }
.peopleResponsibilityTable th,
.peopleResponsibilityTable td{ padding:17px 18px; border-bottom:1px solid rgba(17,17,19,.09); vertical-align:top; text-align:left; }
.peopleResponsibilityTable thead th{ position:sticky; top:0; z-index:1; background:#111215; color:rgba(255,255,255,.72); font-size:8px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.peopleResponsibilityTable tbody tr:last-child th,
.peopleResponsibilityTable tbody tr:last-child td{ border-bottom:0; }
.peopleResponsibilityTable tbody tr:hover{ background:#f7f7f8; }
.peopleResponsibilityTable tbody th{ width:205px; }
.peopleResponsibilityTable tbody th a{ display:block; font:650 18px/1.08 var(--serif); text-decoration:none; }
.peopleResponsibilityTable tbody th span{ display:block; margin-top:5px; color:rgba(17,17,19,.43); font-size:8px; line-height:1.35; }
.peopleResponsibilityTable td{ color:rgba(17,17,19,.67); font-size:11px; line-height:1.5; }
.peopleResponsibilityTable td:nth-child(2){ width:330px; color:#111113; font-weight:650; }
.peopleResponsibilityTable td a{ font-weight:800; text-underline-offset:3px; }

/* Données */
.peopleDataGrid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; border:1px solid rgba(17,17,19,.12); background:rgba(17,17,19,.12); }
.peopleDataGrid article{ min-height:285px; display:flex; flex-direction:column; padding:30px; background:#fff; }
.peopleDataGrid article > span{ color:rgba(17,17,19,.42); font-size:9px; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }
.peopleDataGrid h3{ margin:34px 0 15px; font:650 29px/1.03 var(--serif); letter-spacing:-.035em; }
.peopleDataGrid p{ margin:0; color:rgba(17,17,19,.6); font-size:12px; line-height:1.62; }
.peopleDataGrid a{ align-self:flex-start; margin-top:auto; padding-top:24px; color:#111113; font-size:9px; font-weight:900; letter-spacing:.07em; text-decoration:none; text-transform:uppercase; border-bottom:1px solid rgba(17,17,19,.35); }
.peopleDatasetNote{ display:grid; grid-template-columns:170px 1fr auto; gap:28px; align-items:center; margin-top:20px; padding:24px 28px; background:#111215; color:#fff; }
.peopleDatasetNote strong{ font:650 22px/1 var(--serif); }
.peopleDatasetNote p{ margin:0; color:rgba(255,255,255,.62); font-size:11.5px; line-height:1.58; }
.peopleDatasetNote a{ color:#fff; font-size:9px; font-weight:900; text-decoration:none; white-space:nowrap; }

/* Héros fiche */
.peopleProfileHero{
  display:grid;
  grid-template-columns:minmax(0,1.48fr) minmax(310px,.52fr);
  min-height:660px;
  overflow:hidden;
  background:#0b0c0e;
  color:#fff;
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 36px 90px rgba(15,19,24,.18);
}
.peopleProfileHeroCopy{
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(52px,6vw,92px);
  overflow:hidden;
}
.peopleProfileHeroCopy::after{
  content:"";
  position:absolute;
  width:560px;
  height:560px;
  right:-330px;
  bottom:-360px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:50%;
  box-shadow:0 0 0 68px rgba(255,255,255,.025),0 0 0 136px rgba(255,255,255,.015);
}
.peopleProfileTaxonomy{ position:relative; z-index:1; display:flex; flex-wrap:wrap; gap:8px; }
.peopleProfileTaxonomy span{ padding:7px 8px; border:1px solid rgba(255,255,255,.18); color:rgba(255,255,255,.62); font-size:8px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.peopleProfileHero h1{ position:relative; z-index:1; max-width:1000px; margin:25px 0 22px; font:650 clamp(46px,5vw,78px)/.95 var(--serif); letter-spacing:-.055em; text-wrap:balance; }
.peopleProfileRole{ position:relative; z-index:1; max-width:930px; margin:0; color:#fff; font-size:clamp(16px,1.4vw,21px); font-weight:750; line-height:1.45; }
.peopleProfileLead{ position:relative; z-index:1; max-width:850px; margin:23px 0 0; color:rgba(255,255,255,.67); font-size:14px; line-height:1.7; }
.peopleProfileHeroMeta{ position:relative; z-index:1; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; margin-top:34px; border-top:1px solid rgba(255,255,255,.13); border-bottom:1px solid rgba(255,255,255,.13); }
.peopleProfileHeroMeta span{ padding:17px 14px; border-right:1px solid rgba(255,255,255,.11); color:rgba(255,255,255,.47); font-size:8px; font-weight:800; line-height:1.4; }
.peopleProfileHeroMeta span:first-child{ padding-left:0; }
.peopleProfileHeroMeta span:last-child{ border-right:0; }
.peopleProfileHeroMeta strong{ display:block; margin-bottom:4px; color:#fff; font:650 18px/1 var(--serif); }
.peopleProfilePortraitColumn{ display:flex; flex-direction:column; padding:26px 26px 30px; background:linear-gradient(180deg,#1b1c20,#111215); border-left:1px solid rgba(255,255,255,.1); }
.peopleProfilePortrait{ position:relative; display:block; flex:1; min-height:460px; overflow:hidden; background:#26272a; }
.peopleProfilePortrait picture,
.peopleProfilePortrait img{ display:block; width:100%; height:100%; }
.peopleProfilePortrait img{ object-fit:cover; object-position:center top; filter:saturate(.86) contrast(1.02); }
.peopleProfilePortraitCaption{ margin:7px 0 18px; color:rgba(255,255,255,.38); font-size:7px; font-weight:850; letter-spacing:.12em; text-align:right; text-transform:uppercase; }
.peopleProfileIdentity{ margin:auto 0 0; }
.peopleProfileIdentity div{ display:grid; grid-template-columns:125px 1fr; gap:16px; padding:12px 0; border-top:1px solid rgba(255,255,255,.1); }
.peopleProfileIdentity dt{ color:rgba(255,255,255,.4); font-size:8px; font-weight:850; letter-spacing:.07em; text-transform:uppercase; }
.peopleProfileIdentity dd{ margin:0; color:rgba(255,255,255,.78); font-size:10.5px; line-height:1.45; }

/* Résumé */
.peopleSummaryGrid{ display:grid; grid-template-columns:1.25fr repeat(2,minmax(0,.75fr)); gap:1px; background:rgba(17,17,19,.12); border:1px solid rgba(17,17,19,.12); }
.peopleSummaryGrid article{ min-height:245px; padding:31px; background:#fff; }
.peopleSummaryGrid article > span{ color:rgba(17,17,19,.42); font-size:9px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.peopleSummaryGrid p{ margin:32px 0 0; color:rgba(17,17,19,.66); font-size:13px; line-height:1.68; }
.peopleSummaryGrid .peopleSummaryMain p{ color:#111113; font:650 clamp(22px,2vw,31px)/1.25 var(--serif); letter-spacing:-.025em; }
.peopleSummaryGrid a{ display:inline-block; margin-top:17px; font-size:9px; font-weight:900; text-underline-offset:4px; }
.peopleProfileThemes{ display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; }
.peopleProfileThemes span{ padding:8px 10px; background:#f2f2f3; color:rgba(17,17,19,.62); font-size:9px; font-weight:850; }

/* Preuves */
.peopleEvidenceGrid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; }
.peopleEvidenceCard{ position:relative; min-width:0; padding:30px; border:1px solid rgba(17,17,19,.12); background:#fff; }
.peopleEvidenceCard::before{ content:""; position:absolute; left:-1px; top:-1px; bottom:-1px; width:3px; background:#111113; }
.peopleEvidenceCard.confidence-a::before{ background:#0055a4; }
.peopleEvidenceCard.confidence-b::before{ background:#696b70; }
.peopleEvidenceCard.confidence-c::before{ background:#ef4135; }
.peopleEvidenceTop{ display:flex; justify-content:space-between; gap:18px; align-items:center; }
.peopleEvidenceTop > span{ color:rgba(17,17,19,.42); font-size:8px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.peopleEvidenceTop > strong{ padding:6px 7px; border:1px solid rgba(17,17,19,.14); color:rgba(17,17,19,.58); font-size:7.5px; font-weight:900; letter-spacing:.07em; text-transform:uppercase; }
.peopleEvidenceCard h3{ margin:25px 0 22px; font:650 30px/1.02 var(--serif); letter-spacing:-.035em; }
.peopleEvidenceClaim,
.peopleEvidenceReading,
.peopleEvidenceLimit{ padding:17px 0; border-top:1px solid rgba(17,17,19,.1); }
.peopleEvidenceClaim span,
.peopleEvidenceReading span,
.peopleEvidenceLimit span{ display:block; margin-bottom:8px; color:rgba(17,17,19,.4); font-size:8px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.peopleEvidenceClaim p{ color:#111113; font-weight:650; }
.peopleEvidenceCard p{ margin:0; font-size:12px; line-height:1.62; }
.peopleEvidenceReading p{ color:rgba(17,17,19,.64); }
.peopleEvidenceLimit p{ color:rgba(17,17,19,.54); }
.peopleEvidenceSource{ display:grid; gap:5px; margin-top:5px; padding:17px; background:#111215; color:#fff; text-decoration:none; }
.peopleEvidenceSource span{ color:rgba(255,255,255,.42); font-size:7.5px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.peopleEvidenceSource strong{ font-size:11px; line-height:1.45; }
.peopleEvidenceSource small{ color:rgba(255,255,255,.5); font-size:8.5px; }

/* Axes, portée, chronologie, limites */
.peoplePositioningGrid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; background:rgba(17,17,19,.12); border:1px solid rgba(17,17,19,.12); }
.peoplePositioningGrid article{ min-height:205px; padding:28px; background:#fff; }
.peoplePositioningGrid span{ color:rgba(17,17,19,.28); font:650 29px/1 var(--serif); }
.peoplePositioningGrid p{ margin:42px 0 0; color:rgba(17,17,19,.68); font-size:12.5px; line-height:1.62; }
.peopleScopeGrid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.peopleScopeGrid article{ min-height:260px; padding:30px; background:#111215; color:#fff; }
.peopleScopeGrid span{ color:rgba(255,255,255,.3); font:650 27px/1 var(--serif); }
.peopleScopeGrid h3{ margin:35px 0 15px; font:650 27px/1.04 var(--serif); letter-spacing:-.03em; }
.peopleScopeGrid p{ margin:0; color:rgba(255,255,255,.63); font-size:12px; line-height:1.65; }
.peopleTimeline{ position:relative; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; background:rgba(17,17,19,.12); border:1px solid rgba(17,17,19,.12); }
.peopleTimeline article{ min-height:185px; padding:28px; background:#fff; }
.peopleTimeline time{ display:block; color:#111113; font:650 25px/1 var(--serif); }
.peopleTimeline p{ margin:36px 0 0; color:rgba(17,17,19,.64); font-size:12px; line-height:1.62; }
.peopleLimitsGrid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.peopleLimitsGrid article{ padding:27px; background:#f5f5f6; border:1px solid rgba(17,17,19,.08); }
.peopleLimitsGrid span{ color:rgba(17,17,19,.4); font-size:8px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.peopleLimitsGrid p{ margin:20px 0 0; color:rgba(17,17,19,.67); font-size:12px; line-height:1.64; }
.peopleLimitsReview{ background:#111215!important; color:#fff; }
.peopleLimitsReview span{ color:rgba(255,255,255,.44); }
.peopleLimitsReview p{ color:rgba(255,255,255,.65); }

/* Sources, profils liés et FAQ */
.peopleSourceRegistry{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.peopleSourceRegistry article{ min-width:0; padding:25px; border:1px solid rgba(17,17,19,.11); }
.peopleSourceRegistry article > div{ display:flex; justify-content:space-between; gap:12px; }
.peopleSourceRegistry article > div span{ color:rgba(17,17,19,.42); font-size:8px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.peopleSourceRegistry article > div small{ color:rgba(17,17,19,.4); font-size:8px; text-align:right; }
.peopleSourceRegistry h3{ margin:20px 0 14px; font:650 22px/1.08 var(--serif); }
.peopleSourceRegistry h3 a{ text-decoration-thickness:1px; text-underline-offset:4px; overflow-wrap:anywhere; }
.peopleSourceRegistry p{ margin:0; color:rgba(17,17,19,.58); font-size:10.5px; line-height:1.55; }
.peopleRelatedGrid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.peopleRelatedCard{ min-height:205px; padding:27px; border:1px solid rgba(17,17,19,.11); }
.peopleRelatedCard > span{ color:rgba(17,17,19,.42); font-size:8px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.peopleRelatedCard h3{ margin:30px 0 12px; font:650 28px/1 var(--serif); letter-spacing:-.035em; }
.peopleRelatedCard h3 a{ text-decoration:none; }
.peopleRelatedCard p{ margin:0; color:rgba(17,17,19,.6); font-size:11px; line-height:1.55; }
.peopleFaqGrid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.peopleFaqGrid details{ border:1px solid rgba(17,17,19,.12); background:#fff; }
.peopleFaqGrid summary{ display:flex; justify-content:space-between; gap:20px; padding:21px 22px; cursor:pointer; list-style:none; font:650 18px/1.2 var(--serif); }
.peopleFaqGrid summary::-webkit-details-marker{ display:none; }
.peopleFaqGrid summary span{ color:rgba(17,17,19,.36); font:500 22px/1 var(--sans); }
.peopleFaqGrid details[open] summary span{ transform:rotate(45deg); }
.peopleFaqGrid details p{ margin:0; padding:0 22px 22px; color:rgba(17,17,19,.64); font-size:12px; line-height:1.65; }
.peopleProfileFooterActions{ display:flex; flex-wrap:wrap; gap:9px; margin-top:25px; }

/* Lightbox : aucune mention surimprimée sur les portraits */
.peopleProfileMain + .portraitLightbox[hidden]{ display:none; }
.portraitLightbox{
  position:fixed;
  z-index:9999;
  inset:0;
  display:grid;
  place-items:center;
  padding:30px;
  background:rgba(4,5,7,.94);
}
.portraitLightbox img{ display:block; max-width:min(86vw,780px); max-height:84vh; object-fit:contain; box-shadow:0 30px 90px rgba(0,0,0,.4); }
.portraitLightboxClose{ position:absolute; top:20px; right:24px; width:44px; height:44px; border:1px solid rgba(255,255,255,.28); background:transparent; color:#fff; font-size:28px; cursor:pointer; }
.portraitLightboxCaption{ margin-top:10px; color:rgba(255,255,255,.55); font-size:9px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
body.portraitLightboxOpen{ overflow:hidden; }

@media (max-width:1250px){
  .peopleReferenceHero{ grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr); }
  .peopleReferenceHeroAside{ margin-right:38px; }
  .peopleMethodGrid,.peoplePositioningGrid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .peopleDirectoryGrid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .peopleDirectoryTools{ grid-template-columns:1fr 1fr 1fr; }
  .peopleDirectoryTools button{ grid-column:3; }
  .peopleProfileHero{ grid-template-columns:minmax(0,1.2fr) minmax(300px,.55fr); }
  .peopleProfileHeroMeta{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .peopleProfileHeroMeta span:nth-child(2){ border-right:0; }
  .peopleProfileHeroMeta span:nth-child(n+3){ border-top:1px solid rgba(255,255,255,.11); }
}

@media (max-width:960px){
  .peopleReferenceMain,.peopleProfileMain{ padding-top:18px; }
  .peopleReferenceHero,.peopleProfileHero{ grid-template-columns:1fr; }
  .peopleReferenceHero{ min-height:auto; }
  .peopleReferenceHeroCopy{ padding-bottom:64px; }
  .peopleReferenceHeroAside{ margin:0; padding:34px clamp(28px,6vw,60px); border-left:0; border-top:1px solid rgba(255,255,255,.12); }
  .peopleReferenceMetrics{ position:relative; grid-column:1; grid-template-columns:repeat(3,minmax(0,1fr)); }
  .peopleReferenceMetrics div:nth-child(3){ border-right:0; }
  .peopleReferenceMetrics div:nth-child(n+4){ border-top:1px solid rgba(255,255,255,.1); }
  .peopleReferenceHero::after{ display:none; }
  .peopleSectionHeading{ grid-template-columns:1fr; gap:18px; align-items:start; }
  .peopleEvidenceChain{ grid-template-columns:1fr; }
  .peopleDirectoryTools{ grid-template-columns:1fr 1fr; }
  .peopleDirectoryTools .peopleSearchField{ grid-column:1/-1; }
  .peopleDirectoryTools button{ grid-column:auto; }
  .peopleDatasetNote{ grid-template-columns:1fr; gap:14px; align-items:start; }
  .peopleProfilePortraitColumn{ min-height:660px; border-left:0; border-top:1px solid rgba(255,255,255,.1); }
  .peopleSummaryGrid{ grid-template-columns:1fr 1fr; }
  .peopleSummaryMain{ grid-column:1/-1; }
  .peopleEvidenceGrid,.peopleSourceRegistry{ grid-template-columns:1fr; }
  .peopleScopeGrid,.peopleTimeline,.peopleLimitsGrid{ grid-template-columns:1fr; }
  .peopleScopeGrid article,.peopleTimeline article{ min-height:auto; }
}

@media (max-width:700px){
  .page-people .shell{ padding-left:12px; padding-right:12px; }
  .peopleReferenceMain .shell,.peopleProfileMain .shell{ gap:14px; }
  .peopleReferenceHeroCopy,.peopleProfileHeroCopy{ padding:42px 24px 50px; }
  .peopleReferenceHero h1,.peopleProfileHero h1{ font-size:clamp(39px,12vw,55px); }
  .peopleReferenceLead,.peopleProfileLead{ font-size:14px; }
  .peopleReferenceActions,.peopleProfileActions{ flex-direction:column; align-items:stretch; }
  .peopleReferenceActions .btn,.peopleProfileActions .btn{ justify-content:center; width:100%; }
  .peopleReferenceMetrics{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .peopleReferenceMetrics div{ padding:18px 16px; }
  .peopleReferenceMetrics div:nth-child(2n){ border-right:0; }
  .peopleReferenceMetrics div:nth-child(3){ border-right:1px solid rgba(255,255,255,.1); }
  .peopleReferenceMetrics div:nth-child(n+3){ border-top:1px solid rgba(255,255,255,.1); }
  .peopleReferenceMetrics div:last-child{ grid-column:1/-1; border-right:0; }
  .peopleReferenceSection,.peopleProfileSection{ padding:30px 20px; }
  .peopleSectionHeading h2{ font-size:36px; }
  .peopleMethodGrid,.peopleConfidenceBar,.peoplePositioningGrid{ grid-template-columns:1fr; }
  .peopleMethodGrid article{ min-height:auto; }
  .peopleEvidenceChain{ padding:24px 20px; }
  .peopleEvidenceChain > div{ align-items:flex-start; }
  .peopleDirectoryTools{ grid-template-columns:1fr; padding:13px; }
  .peopleDirectoryTools .peopleSearchField{ grid-column:auto; }
  .peopleDirectoryGrid{ grid-template-columns:1fr; }
  .peopleDirectoryCardBody{ min-height:auto; }
  .peopleCardEvidenceMeta{ margin-top:24px; }
  .peopleDataGrid,.peopleSummaryGrid,.peopleRelatedGrid,.peopleFaqGrid{ grid-template-columns:1fr; }
  .peopleSummaryMain{ grid-column:auto; }
  .peopleProfilePortraitColumn{ min-height:590px; padding:16px; }
  .peopleProfileHeroMeta{ grid-template-columns:1fr 1fr; }
  .peopleProfileHeroMeta span{ padding:14px 10px; }
  .peopleProfileHeroMeta span:first-child{ padding-left:10px; }
  .peopleProfilePortrait{ min-height:420px; }
  .peopleProfileIdentity div{ grid-template-columns:105px 1fr; }
  .peopleEvidenceCard{ padding:24px 20px; }
  .peopleEvidenceTop{ align-items:flex-start; flex-direction:column; }
  .peopleEvidenceCard h3{ font-size:27px; }
  .peopleSourceRegistry article{ padding:21px; }
  .peopleSourceRegistry article > div{ flex-direction:column; }
  .peopleSourceRegistry article > div small{ text-align:left; }
  .peopleProfileFooterActions{ flex-direction:column; }
  .peopleProfileFooterActions .btn{ width:100%; justify-content:center; }
  .portraitLightbox{ padding:16px; }
}
/* Le conteneur est une grille : minmax(0,1fr) empêche les tableaux et métriques
   d’imposer leur largeur intrinsèque sur mobile. */
.peopleReferenceMain .shell,
.peopleProfileMain .shell{ grid-template-columns:minmax(0,1fr); }
.peopleReferenceHero,
.peopleProfileHero,
.peopleReferenceSection,
.peopleProfileSection{ min-width:0; }
.dataDownloadGrid.hasPeopleData{ grid-template-columns:repeat(4,minmax(0,1fr)); }
.dataDownloadGrid.hasPeopleData .dataDownloadCard > div{ flex-wrap:wrap; }
@media (max-width:1180px){ .dataDownloadGrid.hasPeopleData{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:900px){ .dataDownloadGrid.hasPeopleData{ grid-template-columns:1fr; } }
.peopleDirectoryMedia{ background:#fff; }
.peopleDirectoryMedia .peopleDirectoryPortrait{ aspect-ratio:4/2.75; }
.peopleDirectoryMedia .peoplePortraitCaption{
  position:static;
  margin:0;
  padding:6px 9px 7px;
  background:#fff;
  color:rgba(17,17,19,.42);
  border-bottom:1px solid rgba(17,17,19,.08);
  font-size:7px;
  font-weight:850;
  letter-spacing:.11em;
  line-height:1;
  text-align:right;
  text-transform:uppercase;
}
.peopleVisualNote{ margin:-4px 0 19px; color:rgba(17,17,19,.42); font-size:8px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.peoplePositioningGrid article{ display:flex; flex-direction:column; }
.peoplePositioningGrid article a{ align-self:flex-start; margin-top:auto; padding-top:22px; color:rgba(17,17,19,.52); font-size:8px; font-weight:900; letter-spacing:.07em; text-decoration:none; text-transform:uppercase; border-bottom:1px solid rgba(17,17,19,.2); }
.peopleTimeline article{ display:flex; flex-direction:column; }
.peopleTimeline article a{ align-self:flex-start; margin-top:auto; padding-top:18px; color:rgba(17,17,19,.5); font-size:8px; font-weight:850; line-height:1.4; text-underline-offset:3px; }

/* ==========================================================================
   V11 — Personnalités politiques : direction encyclopédique evergreen
   Une seule page éditoriale continue, moins de cartes et aucune logique de fil
   d'actualité dans les titres ou la hiérarchie visuelle.
   ========================================================================== */

.peopleEncyclopediaIndex,
.peopleEncyclopediaProfile{
  padding:28px 0 96px;
}

.peopleEncyclopediaIndex .shell,
.peopleEncyclopediaProfile .shell{
  width:min(100%, var(--max));
  max-width:var(--max);
}

.peopleEncyclopediaEyebrow,
.peopleEncyclopediaSectionLabel{
  margin:0;
  color:rgba(17,17,19,.48);
  font-family:var(--mono);
  font-size:9px;
  font-weight:900;
  letter-spacing:.16em;
  line-height:1.4;
  text-transform:uppercase;
}

/* Index encyclopédique ---------------------------------------------------- */
.peopleEncyclopediaIndexHero{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(310px,.65fr);
  min-height:510px;
  overflow:hidden;
  background:#fff;
  border:1px solid rgba(17,17,19,.11);
  box-shadow:0 24px 70px rgba(17,17,19,.065);
}
.peopleEncyclopediaIndexHero::before,
.peopleEncyclopediaDocument::before{
  content:"";
  position:absolute;
  z-index:2;
  top:-1px;
  left:-1px;
  right:-1px;
  height:3px;
  background:var(--franceGradient);
}
.peopleEncyclopediaIndexHeroCopy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:76px clamp(42px,6vw,92px);
}
.peopleEncyclopediaIndexHero h1{
  max-width:900px;
  margin:19px 0 10px;
  font:650 clamp(54px,6vw,88px)/.94 var(--serif);
  letter-spacing:-.058em;
  text-wrap:balance;
}
.peopleEncyclopediaIndexSubtitle{
  max-width:820px;
  margin:0;
  color:#18181a;
  font:650 clamp(20px,2vw,29px)/1.2 var(--serif);
  letter-spacing:-.026em;
}
.peopleEncyclopediaIndexLead{
  max-width:790px;
  margin:27px 0 0;
  color:rgba(17,17,19,.65);
  font-size:16px;
  line-height:1.75;
}
.peopleEncyclopediaIndexActions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:18px;
  margin-top:34px;
}
.peopleEncyclopediaIndexActions .btn{
  border-radius:0;
  padding:13px 18px;
}
.peopleEncyclopediaTextLink{
  color:rgba(17,17,19,.72);
  font-size:12px;
  font-weight:850;
  text-decoration-thickness:1px;
  text-underline-offset:5px;
}
.peopleEncyclopediaIndexAside{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:58px 42px;
  background:#111214;
  color:#fff;
  border-left:1px solid rgba(17,17,19,.12);
}
.peopleEncyclopediaIndexAside > span{
  color:rgba(255,255,255,.45);
  font-size:9px;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.peopleEncyclopediaIndexAside > strong{
  margin-top:22px;
  font:650 35px/1.02 var(--serif);
  letter-spacing:-.035em;
}
.peopleEncyclopediaIndexAside > p{
  margin:22px 0 34px;
  color:rgba(255,255,255,.64);
  font-size:13px;
  line-height:1.72;
}
.peopleEncyclopediaIndexAside dl{
  margin:0;
  border-top:1px solid rgba(255,255,255,.14);
}
.peopleEncyclopediaIndexAside dl div{
  display:flex;
  justify-content:space-between;
  gap:18px;
  padding:15px 0;
  border-bottom:1px solid rgba(255,255,255,.12);
}
.peopleEncyclopediaIndexAside dt{
  color:rgba(255,255,255,.44);
  font-size:9px;
  font-weight:800;
  text-transform:uppercase;
}
.peopleEncyclopediaIndexAside dd{
  margin:0;
  color:#fff;
  font-size:11px;
  font-weight:800;
  text-align:right;
}
.peopleEncyclopediaPrinciples{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin-top:24px;
  background:#fff;
  border:1px solid rgba(17,17,19,.1);
}
.peopleEncyclopediaPrinciples article{
  padding:38px 36px 42px;
  border-right:1px solid rgba(17,17,19,.1);
}
.peopleEncyclopediaPrinciples article:last-child{ border-right:0; }
.peopleEncyclopediaPrinciples span{
  color:rgba(17,17,19,.34);
  font:650 21px/1 var(--serif);
}
.peopleEncyclopediaPrinciples h2{
  margin:27px 0 13px;
  font:650 25px/1.08 var(--serif);
  letter-spacing:-.028em;
}
.peopleEncyclopediaPrinciples p{
  margin:0;
  color:rgba(17,17,19,.61);
  font-size:12.5px;
  line-height:1.67;
}
.peopleEncyclopediaDirectory{
  margin-top:24px;
  padding:60px clamp(28px,5vw,70px) 70px;
  background:#fff;
  border:1px solid rgba(17,17,19,.1);
  box-shadow:0 18px 55px rgba(17,17,19,.045);
}
.peopleEncyclopediaSectionHead{
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);
  gap:50px;
  align-items:end;
  padding-bottom:27px;
  border-bottom:1px solid rgba(17,17,19,.14);
}
.peopleEncyclopediaSectionHead h2{
  max-width:760px;
  margin:12px 0 0;
  font:650 clamp(35px,4vw,55px)/.98 var(--serif);
  letter-spacing:-.045em;
  text-wrap:balance;
}
.peopleEncyclopediaSectionHead > p{
  margin:0;
  color:rgba(17,17,19,.58);
  font-size:12.5px;
  line-height:1.7;
}
.peopleEncyclopediaFilters{
  display:grid;
  grid-template-columns:minmax(300px,1.35fr) minmax(230px,.7fr) auto;
  gap:12px;
  align-items:end;
  margin-top:30px;
  padding:18px;
  background:#f4f3f0;
  border:1px solid rgba(17,17,19,.08);
}
.peopleEncyclopediaFilters label{
  display:grid;
  gap:8px;
}
.peopleEncyclopediaFilters label > span{
  color:rgba(17,17,19,.48);
  font-size:8px;
  font-weight:900;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.peopleEncyclopediaFilters input,
.peopleEncyclopediaFilters select{
  width:100%;
  height:45px;
  padding:0 13px;
  border:1px solid rgba(17,17,19,.14);
  border-radius:0;
  background:#fff;
  color:#111113;
  font:600 12px/1 var(--sans);
}
.peopleEncyclopediaFilters button{
  height:45px;
  padding:0 16px;
  border:1px solid #111113;
  border-radius:0;
  background:#111113;
  color:#fff;
  font-size:9px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  cursor:pointer;
}
.peopleEncyclopediaCount{
  margin-top:18px;
  color:rgba(17,17,19,.53);
  font-size:11px;
}
.peopleEncyclopediaCount strong{
  color:#111113;
  font:650 17px/1 var(--serif);
}
.peopleEncyclopediaVisualNote{
  margin:8px 0 0;
  color:rgba(17,17,19,.42);
  font-size:9px;
}
.peopleEncyclopediaGrid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:54px;
  margin-top:24px;
}
.peopleEncyclopediaCard{
  display:grid;
  grid-template-columns:128px minmax(0,1fr);
  gap:24px;
  min-width:0;
  padding:28px 0;
  border-top:1px solid rgba(17,17,19,.14);
}
.peopleEncyclopediaCard:nth-child(-n+2){ border-top:2px solid #111113; }
.peopleEncyclopediaCard[hidden]{ display:none!important; }
.peopleEncyclopediaCardMedia a{
  display:block;
  overflow:hidden;
  aspect-ratio:4/5;
  background:#e8e7e4;
}
.peopleEncyclopediaCardMedia picture,
.peopleEncyclopediaCardMedia img{
  display:block;
  width:100%;
  height:100%;
}
.peopleEncyclopediaCardMedia img{
  object-fit:cover;
  object-position:center top;
  filter:saturate(.84) contrast(1.02);
  transition:transform .25s ease;
}
.peopleEncyclopediaCard:hover .peopleEncyclopediaCardMedia img{ transform:scale(1.025); }
.peopleEncyclopediaCardMedia > span{
  display:block;
  margin-top:6px;
  color:rgba(17,17,19,.35);
  font-size:7px;
  font-weight:800;
  letter-spacing:.12em;
  text-align:right;
  text-transform:uppercase;
}
.peopleEncyclopediaCardBody{
  min-width:0;
  padding-top:2px;
}
.peopleEncyclopediaCardKicker{
  margin:0;
  color:rgba(17,17,19,.46);
  font-size:8px;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.peopleEncyclopediaCard h2{
  margin:10px 0 11px;
  font:650 29px/1.02 var(--serif);
  letter-spacing:-.035em;
}
.peopleEncyclopediaCard h2 a{ text-decoration:none; }
.peopleEncyclopediaCardSummary{
  margin:0;
  color:rgba(17,17,19,.64);
  font-size:12px;
  line-height:1.62;
}
.peopleEncyclopediaCardMeta{
  display:flex;
  flex-wrap:wrap;
  gap:7px 15px;
  margin-top:14px;
  color:rgba(17,17,19,.45);
  font-size:9px;
}
.peopleEncyclopediaCardMeta span + span::before{
  content:"·";
  margin-right:15px;
}
.peopleEncyclopediaCardThemes{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:13px;
}
.peopleEncyclopediaCardThemes span{
  padding:5px 7px;
  background:#f2f1ee;
  color:rgba(17,17,19,.56);
  font-size:8px;
  font-weight:750;
}
.peopleEncyclopediaCardLink{
  display:inline-flex;
  gap:7px;
  margin-top:17px;
  color:#111113;
  font-size:10px;
  font-weight:900;
  text-decoration:none;
  border-bottom:1px solid rgba(17,17,19,.34);
}
.peopleEncyclopediaIndexFooter{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(400px,.9fr);
  gap:70px;
  margin-top:24px;
  padding:55px clamp(28px,5vw,70px);
  background:#111214;
  color:#fff;
}
.peopleEncyclopediaIndexFooter h2{
  max-width:700px;
  margin:13px 0 19px;
  font:650 clamp(34px,3.6vw,50px)/1 var(--serif);
  letter-spacing:-.04em;
}
.peopleEncyclopediaIndexFooter > div > p:last-child{
  max-width:720px;
  margin:0;
  color:rgba(255,255,255,.63);
  font-size:13px;
  line-height:1.72;
}
.peopleEncyclopediaIndexFooter .peopleEncyclopediaEyebrow{ color:rgba(255,255,255,.43); }
.peopleEncyclopediaIndexFooter nav{
  display:grid;
  grid-template-columns:1fr 1fr;
  align-content:start;
  border-top:1px solid rgba(255,255,255,.16);
  border-left:1px solid rgba(255,255,255,.16);
}
.peopleEncyclopediaIndexFooter nav a{
  display:grid;
  gap:6px;
  padding:21px;
  border-right:1px solid rgba(255,255,255,.16);
  border-bottom:1px solid rgba(255,255,255,.16);
  color:#fff;
  text-decoration:none;
}
.peopleEncyclopediaIndexFooter nav strong{ font:650 18px/1.1 var(--serif); }
.peopleEncyclopediaIndexFooter nav span{ color:rgba(255,255,255,.48); font-size:9px; line-height:1.45; }

/* Notice individuelle ----------------------------------------------------- */
.peopleEncyclopediaDocument{
  position:relative;
  overflow:hidden;
  background:#fff;
  border:1px solid rgba(17,17,19,.11);
  box-shadow:0 26px 80px rgba(17,17,19,.07);
}
.peopleEncyclopediaHero{
  display:grid;
  grid-template-columns:minmax(0,1fr) 350px;
  min-height:540px;
  border-bottom:1px solid rgba(17,17,19,.13);
}
.peopleEncyclopediaHeroCopy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:72px clamp(42px,6vw,88px);
}
.peopleEncyclopediaHero h1{
  max-width:800px;
  margin:18px 0 8px;
  font:650 clamp(62px,7vw,96px)/.9 var(--serif);
  letter-spacing:-.065em;
  text-wrap:balance;
}
.peopleEncyclopediaHeroSubtitle{
  margin:0;
  color:#171719;
  font:650 clamp(21px,2.1vw,30px)/1.18 var(--serif);
  letter-spacing:-.025em;
}
.peopleEncyclopediaHeroLead{
  max-width:770px;
  margin:27px 0 0;
  color:rgba(17,17,19,.67);
  font-size:16px;
  line-height:1.75;
}
.peopleEncyclopediaHeroFacts{
  display:flex;
  flex-wrap:wrap;
  gap:8px 20px;
  margin-top:31px;
  padding-top:20px;
  border-top:1px solid rgba(17,17,19,.14);
  color:rgba(17,17,19,.5);
  font-size:9px;
  font-weight:800;
}
.peopleEncyclopediaHeroFacts span + span::before{
  content:"·";
  margin-right:20px;
  color:rgba(17,17,19,.25);
}
.peopleEncyclopediaPortrait{
  display:flex;
  flex-direction:column;
  margin:0;
  padding:42px 42px 31px;
  background:#f0efec;
  border-left:1px solid rgba(17,17,19,.12);
}
.peopleEncyclopediaPortrait a{
  display:block;
  flex:1;
  min-height:420px;
  overflow:hidden;
  background:#d7d6d3;
}
.peopleEncyclopediaPortrait picture,
.peopleEncyclopediaPortrait img{
  display:block;
  width:100%;
  height:100%;
}
.peopleEncyclopediaPortrait img{
  object-fit:cover;
  object-position:center top;
  filter:saturate(.82) contrast(1.025);
}
.peopleEncyclopediaPortrait figcaption{
  margin-top:8px;
  color:rgba(17,17,19,.38);
  font-size:7px;
  font-weight:850;
  letter-spacing:.13em;
  text-align:right;
  text-transform:uppercase;
}
.peopleEncyclopediaLayout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 320px;
  align-items:start;
}
.peopleEncyclopediaArticle{
  min-width:0;
  padding:18px clamp(40px,6vw,82px) 42px;
}
.peopleEncyclopediaArticle > section{
  padding:58px 0 62px;
  border-bottom:1px solid rgba(17,17,19,.13);
}
.peopleEncyclopediaArticle > section:last-child{ border-bottom:0; }
.peopleEncyclopediaArticle h2{
  max-width:760px;
  margin:11px 0 24px;
  font:650 clamp(36px,4vw,54px)/.99 var(--serif);
  letter-spacing:-.045em;
  text-wrap:balance;
}
.peopleEncyclopediaArticle h3{
  margin:0;
  font:650 24px/1.12 var(--serif);
  letter-spacing:-.025em;
}
.peopleEncyclopediaArticle p,
.peopleEncyclopediaArticle li{
  max-width:790px;
  color:rgba(17,17,19,.7);
  font-size:15px;
  line-height:1.82;
}
.peopleEncyclopediaArticle p{ margin:0 0 17px; }
.peopleEncyclopediaArticleLead{
  color:#111113!important;
  font:650 clamp(21px,2vw,28px)/1.37 var(--serif)!important;
  letter-spacing:-.018em;
}
.peopleEncyclopediaTimeline{
  position:relative;
  margin-top:34px;
  padding-left:28px;
}
.peopleEncyclopediaTimeline::before{
  content:"";
  position:absolute;
  top:7px;
  bottom:9px;
  left:4px;
  width:1px;
  background:rgba(17,17,19,.24);
}
.peopleEncyclopediaTimeline article{
  position:relative;
  display:grid;
  grid-template-columns:94px minmax(0,1fr);
  gap:20px;
  padding:0 0 29px;
}
.peopleEncyclopediaTimeline article:last-child{ padding-bottom:0; }
.peopleEncyclopediaTimeline article::before{
  content:"";
  position:absolute;
  top:7px;
  left:-28px;
  width:9px;
  height:9px;
  background:#fff;
  border:2px solid #111113;
  border-radius:50%;
}
.peopleEncyclopediaTimeline time{
  color:#111113;
  font:650 23px/1 var(--serif);
}
.peopleEncyclopediaTimeline p{
  margin:-2px 0 0;
  color:rgba(17,17,19,.7);
}
.peopleEncyclopediaOffices{
  margin-top:36px;
  padding:27px 30px;
  background:#f4f3f0;
  border-left:3px solid #111113;
}
.peopleEncyclopediaOffices h3{ margin-bottom:15px; }
.peopleEncyclopediaOffices ul{ margin:0; padding-left:20px; }
.peopleEncyclopediaOffices li{ margin:5px 0; }
.peopleEncyclopediaSourceNote{
  margin-top:18px!important;
  color:rgba(17,17,19,.48)!important;
  font-size:11px!important;
}
.peopleEncyclopediaSourceNote a,
.peopleEncyclopediaInternalLink a{
  color:#111113;
  font-weight:800;
  text-underline-offset:4px;
}
.peopleEncyclopediaPositioning{
  margin-top:31px;
  border-top:1px solid rgba(17,17,19,.16);
}
.peopleEncyclopediaPositioning > div{
  display:grid;
  grid-template-columns:54px minmax(0,1fr);
  gap:22px;
  padding:23px 0;
  border-bottom:1px solid rgba(17,17,19,.12);
}
.peopleEncyclopediaPositioning span{
  color:rgba(17,17,19,.31);
  font:650 21px/1 var(--serif);
}
.peopleEncyclopediaPositioning p{
  margin:-3px 0 0;
  color:#171719;
  font:650 20px/1.38 var(--serif);
  letter-spacing:-.012em;
}
.peopleEncyclopediaThemes{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:24px;
}
.peopleEncyclopediaThemes span{
  padding:7px 10px;
  background:#f1f0ed;
  color:rgba(17,17,19,.59);
  font-size:9px;
  font-weight:800;
}
.peopleEncyclopediaInternalLink{
  margin-top:22px!important;
  color:rgba(17,17,19,.55)!important;
  font-size:12px!important;
}
.peopleEncyclopediaEvidenceList{
  margin-top:34px;
  border-top:2px solid #111113;
}
.peopleEncyclopediaEvidenceList article{
  padding:31px 0 34px;
  border-bottom:1px solid rgba(17,17,19,.14);
}
.peopleEncyclopediaEvidenceMeta{
  display:flex;
  justify-content:space-between;
  gap:20px;
  margin-bottom:15px;
  color:rgba(17,17,19,.42);
  font-size:8px;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.peopleEncyclopediaEvidenceList h3{
  margin-bottom:16px;
  font-size:29px;
}
.peopleEncyclopediaEvidenceClaim{
  padding-left:20px;
  border-left:2px solid #111113;
  color:#111113!important;
  font:650 20px/1.48 var(--serif)!important;
}
.peopleEncyclopediaEvidenceLimit{
  margin-top:17px!important;
  color:rgba(17,17,19,.52)!important;
  font-size:11.5px!important;
  line-height:1.65!important;
}
.peopleEncyclopediaEvidenceSource{
  display:inline-flex;
  gap:7px;
  margin-top:5px;
  color:#111113;
  font-size:10px;
  font-weight:900;
  text-decoration-thickness:1px;
  text-underline-offset:4px;
}
.peopleEncyclopediaDistinctions{
  margin-top:31px;
  border-top:1px solid rgba(17,17,19,.15);
}
.peopleEncyclopediaDistinctions > div{
  display:grid;
  grid-template-columns:210px minmax(0,1fr);
  gap:35px;
  padding:25px 0;
  border-bottom:1px solid rgba(17,17,19,.12);
}
.peopleEncyclopediaDistinctions h3{ font-size:21px; }
.peopleEncyclopediaDistinctions p{ margin:0; }
.peopleEncyclopediaBibliography{
  margin:31px 0 0;
  padding:0;
  list-style:none;
  border-top:2px solid #111113;
}
.peopleEncyclopediaBibliography li{
  max-width:none;
  padding:22px 0 23px;
  border-bottom:1px solid rgba(17,17,19,.13);
}
.peopleEncyclopediaBibliography li > div{
  display:flex;
  justify-content:space-between;
  gap:20px;
  margin-bottom:7px;
  color:rgba(17,17,19,.42);
  font-size:8px;
  font-weight:850;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.peopleEncyclopediaBibliography li > a{
  color:#111113;
  font:650 20px/1.25 var(--serif);
  text-decoration-thickness:1px;
  text-underline-offset:4px;
  overflow-wrap:anywhere;
}
.peopleEncyclopediaBibliography li > p{
  margin:8px 0 0;
  color:rgba(17,17,19,.52);
  font-size:10.5px;
  line-height:1.55;
}
.peopleEncyclopediaSidebar{
  position:sticky;
  top:90px;
  min-width:0;
  padding:53px 34px 42px;
  background:#f3f2ef;
  border-left:1px solid rgba(17,17,19,.12);
}
.peopleEncyclopediaToc{
  display:grid;
  margin-bottom:38px;
  border-top:2px solid #111113;
}
.peopleEncyclopediaToc > span{
  padding:15px 0 12px;
  color:rgba(17,17,19,.42);
  font-size:8px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  border-bottom:1px solid rgba(17,17,19,.14);
}
.peopleEncyclopediaToc a{
  padding:11px 0;
  color:rgba(17,17,19,.7);
  font-size:11px;
  font-weight:750;
  text-decoration:none;
  border-bottom:1px solid rgba(17,17,19,.1);
}
.peopleEncyclopediaToc a:hover{ color:#111113; }
.peopleEncyclopediaIdentity h2,
.peopleEncyclopediaDatedRole h2{
  margin:0 0 18px;
  font:650 25px/1.08 var(--serif);
  letter-spacing:-.03em;
}
.peopleEncyclopediaIdentity dl{ margin:0; }
.peopleEncyclopediaIdentity dl div{
  padding:13px 0;
  border-top:1px solid rgba(17,17,19,.12);
}
.peopleEncyclopediaIdentity dt{
  color:rgba(17,17,19,.43);
  font-size:8px;
  font-weight:850;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.peopleEncyclopediaIdentity dd{
  margin:5px 0 0;
  color:#111113;
  font-size:11px;
  font-weight:700;
  line-height:1.5;
}
.peopleEncyclopediaIdentity dd a{ text-underline-offset:3px; }
.peopleEncyclopediaDatedRole{
  margin-top:37px;
  padding-top:29px;
  border-top:1px solid rgba(17,17,19,.18);
}
.peopleEncyclopediaDatedRole .peopleEncyclopediaSectionLabel{ margin-bottom:10px; }
.peopleEncyclopediaDatedRole > p:not(.peopleEncyclopediaSectionLabel){
  margin:0;
  color:#111113;
  font:650 17px/1.42 var(--serif);
}
.peopleEncyclopediaDatedRole small{
  display:block;
  margin-top:13px;
  color:rgba(17,17,19,.5);
  font-size:9.5px;
  line-height:1.55;
}
.peopleEncyclopediaDatedRole > a{
  display:inline-flex;
  gap:6px;
  margin-top:15px;
  color:#111113;
  font-size:9px;
  font-weight:900;
  text-underline-offset:4px;
}
.peopleEncyclopediaRelated{
  padding:57px clamp(40px,6vw,82px) 65px;
  background:#faf9f7;
  border-top:1px solid rgba(17,17,19,.13);
}
.peopleEncyclopediaRelatedGrid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
  margin-top:28px;
  border-top:2px solid #111113;
}
.peopleEncyclopediaRelatedCard{
  min-width:0;
  padding:26px 28px 28px 0;
  border-right:1px solid rgba(17,17,19,.13);
  border-bottom:1px solid rgba(17,17,19,.13);
}
.peopleEncyclopediaRelatedCard + .peopleEncyclopediaRelatedCard{ padding-left:28px; }
.peopleEncyclopediaRelatedCard:last-child{ border-right:0; }
.peopleEncyclopediaRelatedCard > p{
  margin:0;
  color:rgba(17,17,19,.43);
  font-size:8px;
  font-weight:850;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.peopleEncyclopediaRelatedCard h3{
  margin:16px 0 11px;
  font:650 28px/1.02 var(--serif);
  letter-spacing:-.035em;
}
.peopleEncyclopediaRelatedCard h3 a{ text-decoration:none; }
.peopleEncyclopediaRelatedCard > span{
  display:block;
  color:rgba(17,17,19,.61);
  font-size:11px;
  line-height:1.58;
}
.peopleEncyclopediaProfileFooter{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:18px 25px;
  padding:28px clamp(40px,6vw,82px);
  background:#111214;
  color:#fff;
}
.peopleEncyclopediaProfileFooter .btn{
  border-radius:0;
  background:#fff;
  color:#111113;
  border-color:#fff;
}
.peopleEncyclopediaProfileFooter > a:not(.btn){
  color:rgba(255,255,255,.69);
  font-size:10px;
  font-weight:800;
  text-underline-offset:4px;
}

@media (max-width:1080px){
  .peopleEncyclopediaIndexHero{ grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr); }
  .peopleEncyclopediaGrid{ column-gap:34px; }
  .peopleEncyclopediaCard{ grid-template-columns:108px minmax(0,1fr); gap:19px; }
  .peopleEncyclopediaHero{ grid-template-columns:minmax(0,1fr) 300px; }
  .peopleEncyclopediaPortrait{ padding:31px 30px 24px; }
  .peopleEncyclopediaLayout{ grid-template-columns:minmax(0,1fr) 285px; }
  .peopleEncyclopediaSidebar{ padding:43px 27px 36px; }
}

@media (max-width:900px){
  .peopleEncyclopediaIndexHero{ grid-template-columns:1fr; min-height:0; }
  .peopleEncyclopediaIndexAside{ border-left:0; border-top:1px solid rgba(17,17,19,.12); }
  .peopleEncyclopediaPrinciples{ grid-template-columns:1fr; }
  .peopleEncyclopediaPrinciples article{ border-right:0; border-bottom:1px solid rgba(17,17,19,.1); }
  .peopleEncyclopediaPrinciples article:last-child{ border-bottom:0; }
  .peopleEncyclopediaSectionHead{ grid-template-columns:1fr; gap:18px; }
  .peopleEncyclopediaFilters{ grid-template-columns:1fr 1fr; }
  .peopleEncyclopediaFilters button{ grid-column:1/-1; }
  .peopleEncyclopediaGrid{ grid-template-columns:1fr; }
  .peopleEncyclopediaCard:nth-child(2){ border-top:1px solid rgba(17,17,19,.14); }
  .peopleEncyclopediaIndexFooter{ grid-template-columns:1fr; gap:40px; }
  .peopleEncyclopediaHero{ grid-template-columns:minmax(0,1fr) 285px; }
  .peopleEncyclopediaLayout{ grid-template-columns:1fr; }
  .peopleEncyclopediaSidebar{
    position:relative;
    top:auto;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:35px;
    border-left:0;
    border-top:1px solid rgba(17,17,19,.13);
  }
  .peopleEncyclopediaToc{ grid-column:1/-1; margin-bottom:0; }
}

@media (max-width:680px){
  .peopleEncyclopediaIndex,
  .peopleEncyclopediaProfile{ padding-top:14px; }
  .peopleEncyclopediaIndex .shell,
  .peopleEncyclopediaProfile .shell{ padding:0 12px; }
  .peopleEncyclopediaIndexHeroCopy{ padding:50px 24px 45px; }
  .peopleEncyclopediaIndexHero h1{ font-size:clamp(47px,14vw,66px); }
  .peopleEncyclopediaIndexSubtitle{ font-size:22px; }
  .peopleEncyclopediaIndexLead{ font-size:14px; line-height:1.7; }
  .peopleEncyclopediaIndexActions{ align-items:stretch; flex-direction:column; }
  .peopleEncyclopediaIndexActions .btn{ justify-content:center; width:100%; }
  .peopleEncyclopediaIndexAside{ padding:39px 24px; }
  .peopleEncyclopediaPrinciples article{ padding:31px 24px 34px; }
  .peopleEncyclopediaDirectory{ padding:42px 20px 50px; }
  .peopleEncyclopediaSectionHead h2{ font-size:39px; }
  .peopleEncyclopediaFilters{ grid-template-columns:1fr; padding:14px; }
  .peopleEncyclopediaFilters button{ grid-column:auto; }
  .peopleEncyclopediaGrid{ margin-top:18px; }
  .peopleEncyclopediaCard{
    grid-template-columns:92px minmax(0,1fr);
    gap:16px;
    padding:23px 0;
  }
  .peopleEncyclopediaCard h2{ font-size:25px; }
  .peopleEncyclopediaCardSummary{ font-size:11.5px; }
  .peopleEncyclopediaCardMeta{ display:none; }
  .peopleEncyclopediaCardThemes{ display:none; }
  .peopleEncyclopediaIndexFooter{ padding:42px 24px; }
  .peopleEncyclopediaIndexFooter nav{ grid-template-columns:1fr; }
  .peopleEncyclopediaHero{ grid-template-columns:1fr; }
  .peopleEncyclopediaHeroCopy{ padding:52px 24px 43px; }
  .peopleEncyclopediaHero h1{ font-size:clamp(55px,17vw,78px); }
  .peopleEncyclopediaHeroSubtitle{ font-size:22px; }
  .peopleEncyclopediaHeroLead{ font-size:14px; line-height:1.72; }
  .peopleEncyclopediaHeroFacts{ display:grid; gap:7px; }
  .peopleEncyclopediaHeroFacts span + span::before{ display:none; }
  .peopleEncyclopediaPortrait{
    min-height:500px;
    padding:22px 22px 17px;
    border-left:0;
    border-top:1px solid rgba(17,17,19,.12);
  }
  .peopleEncyclopediaPortrait a{ min-height:455px; }
  .peopleEncyclopediaArticle{ padding:0 22px 24px; }
  .peopleEncyclopediaArticle > section{ padding:43px 0 46px; }
  .peopleEncyclopediaArticle h2{ font-size:39px; }
  .peopleEncyclopediaArticle p,
  .peopleEncyclopediaArticle li{ font-size:14px; line-height:1.75; }
  .peopleEncyclopediaArticleLead{ font-size:22px!important; }
  .peopleEncyclopediaTimeline article{ grid-template-columns:68px minmax(0,1fr); gap:12px; }
  .peopleEncyclopediaTimeline time{ font-size:19px; }
  .peopleEncyclopediaPositioning > div{ grid-template-columns:38px minmax(0,1fr); gap:13px; }
  .peopleEncyclopediaPositioning p{ font-size:18px; }
  .peopleEncyclopediaEvidenceList h3{ font-size:26px; }
  .peopleEncyclopediaEvidenceMeta{ align-items:flex-start; flex-direction:column; gap:5px; }
  .peopleEncyclopediaEvidenceClaim{ font-size:18px!important; }
  .peopleEncyclopediaDistinctions > div{ grid-template-columns:1fr; gap:10px; }
  .peopleEncyclopediaSidebar{ grid-template-columns:1fr; padding:37px 22px; }
  .peopleEncyclopediaToc{ grid-column:auto; }
  .peopleEncyclopediaRelated{ padding:43px 22px 50px; }
  .peopleEncyclopediaRelatedGrid{ grid-template-columns:1fr; }
  .peopleEncyclopediaRelatedCard,
  .peopleEncyclopediaRelatedCard + .peopleEncyclopediaRelatedCard{
    padding:23px 0;
    border-right:0;
  }
  .peopleEncyclopediaProfileFooter{ align-items:stretch; flex-direction:column; padding:25px 22px; }
  .peopleEncyclopediaProfileFooter .btn{ justify-content:center; width:100%; }
}

/* ========================================================================== 
   V11.1 — largeur cohérente sur tout le site
   Les notices encyclopédiques réutilisent désormais exactement le même
   conteneur large que le header, les rubriques et le footer.
   ========================================================================== */

/* La rubrique Personnalités utilise maintenant le conteneur global du site. */

/* Sur les grands écrans, la largeur supplémentaire sert réellement la mise
   en page : portrait et sommaire gagnent en présence, sans allonger les
   lignes de texte au-delà d'une mesure confortable. */
@media (min-width:1441px){
  .peopleEncyclopediaIndexHero{
    grid-template-columns:minmax(0,1fr) 430px;
  }
  .peopleEncyclopediaIndexAside{
    padding-left:50px;
    padding-right:50px;
  }
  .peopleEncyclopediaGrid{
    grid-template-columns:repeat(3,minmax(0,1fr));
    column-gap:38px;
  }
  .peopleEncyclopediaCard{
    grid-template-columns:116px minmax(0,1fr);
    gap:21px;
  }
  .peopleEncyclopediaCard:nth-child(-n+3){
    border-top:2px solid #111113;
  }
  .peopleEncyclopediaCard:nth-child(3){
    border-top-width:2px;
  }

  .peopleEncyclopediaHero{
    grid-template-columns:minmax(0,1fr) 430px;
    min-height:590px;
  }
  .peopleEncyclopediaPortrait{
    padding:46px 46px 34px;
  }
  .peopleEncyclopediaPortrait a{
    min-height:475px;
  }
  .peopleEncyclopediaLayout{
    grid-template-columns:minmax(0,1fr) 370px;
  }
  .peopleEncyclopediaSidebar{
    padding-left:38px;
    padding-right:38px;
  }
  .peopleEncyclopediaArticle p,
  .peopleEncyclopediaArticle li{
    max-width:920px;
  }
  .peopleEncyclopediaArticle h2{
    max-width:900px;
  }
  .peopleEncyclopediaHeroLead{
    max-width:900px;
  }
  .peopleEncyclopediaEvidenceList,
  .peopleEncyclopediaDistinctions,
  .peopleEncyclopediaBibliography,
  .peopleEncyclopediaPositioning{
    max-width:1040px;
  }
}

/* La grille à trois colonnes ne doit pas modifier le comportement tablette. */
@media (min-width:901px) and (max-width:1440px){
  .peopleEncyclopediaGrid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .peopleEncyclopediaCard:nth-child(3){
    border-top:1px solid rgba(17,17,19,.14);
  }
}

/* ========================================================================== 
   V12 — Personnalités : lecture encyclopédique confortable
   Le grand écran est utilisé par trois zones utiles (sommaire, lecture,
   repères), tandis que la colonne de texte conserve une mesure lisible.
   Aucun texte fonctionnel n'est volontairement miniaturisé.
   ========================================================================== */

.peopleEncyclopediaIndex,
.peopleEncyclopediaProfile{
  --people-serif:Georgia, "Times New Roman", serif;
  --people-body:#2b2b2f;
  --people-muted:#66666d;
  --people-rule:#d9d8d4;
  --people-soft:#f5f4f1;
}

/* Les petites capitales restent des repères, pas du micro-texte. */
.peopleEncyclopediaEyebrow,
.peopleEncyclopediaSectionLabel{
  font-size:11px;
  line-height:1.45;
  letter-spacing:.13em;
}

/* INDEX : même sobriété, avec une taille de lecture normale. */
.peopleEncyclopediaIndexLead{
  max-width:74ch;
  font-size:18px;
  line-height:1.72;
}
.peopleEncyclopediaPrinciples h2{
  font-family:var(--people-serif);
  font-size:27px;
  line-height:1.12;
}
.peopleEncyclopediaPrinciples p{
  font-size:15.5px;
  line-height:1.7;
}
.peopleEncyclopediaFilters label > span{
  font-size:11px;
}
.peopleEncyclopediaFilters input,
.peopleEncyclopediaFilters select{
  height:50px;
  font-size:15px;
}
.peopleEncyclopediaFilters button{
  height:50px;
  font-size:11px;
}
.peopleEncyclopediaCount{
  font-size:13px;
}
.peopleEncyclopediaCardMedia > span{
  margin-top:8px;
  font-size:10.5px;
  letter-spacing:.08em;
  text-transform:none;
}
.peopleEncyclopediaCardKicker{
  font-size:11px;
  letter-spacing:.08em;
}
.peopleEncyclopediaCard h2{
  font-family:var(--people-serif);
  font-size:31px;
  line-height:1.08;
}
.peopleEncyclopediaCardSummary{
  font-size:15px;
  line-height:1.68;
}
.peopleEncyclopediaCardMeta{
  font-size:12px;
}
.peopleEncyclopediaCardThemes span{
  font-size:11px;
}
.peopleEncyclopediaCardLink{
  font-size:13px;
}
.peopleEncyclopediaVisualNote{
  font-size:12px;
  line-height:1.55;
}

/* HERO : présence éditoriale sans hauteur artificielle. */
.peopleEncyclopediaDocument{
  overflow:visible;
  border-color:rgba(17,17,19,.10);
  box-shadow:0 22px 70px rgba(17,17,19,.065);
}
.peopleEncyclopediaHero{
  grid-template-columns:minmax(0,1fr) clamp(350px,23vw,440px);
  min-height:0;
}
.peopleEncyclopediaHeroCopy{
  padding:clamp(58px,5.4vw,88px) clamp(52px,6vw,104px);
}
.peopleEncyclopediaHero h1{
  max-width:1040px;
  margin:18px 0 12px;
  font-family:var(--people-serif);
  font-size:clamp(60px,5.4vw,88px);
  font-weight:700;
  line-height:.98;
  letter-spacing:-.045em;
}
.peopleEncyclopediaHeroSubtitle{
  font-family:var(--people-serif);
  font-size:clamp(24px,1.8vw,31px);
  font-weight:700;
  line-height:1.2;
  letter-spacing:-.02em;
}
.peopleEncyclopediaHeroLead{
  max-width:74ch;
  margin-top:25px;
  color:var(--people-body);
  font-size:18px;
  line-height:1.72;
}
.peopleEncyclopediaHeroFacts{
  gap:10px 22px;
  margin-top:28px;
  padding-top:20px;
  color:#55555b;
  font-size:13px;
  font-weight:650;
  line-height:1.45;
}
.peopleEncyclopediaHeroFacts span + span::before{
  margin-right:22px;
}
.peopleEncyclopediaPortrait{
  justify-content:center;
  min-height:0;
  padding:34px 36px 25px;
  background:#efeeea;
}
.peopleEncyclopediaPortrait a{
  flex:none;
  min-height:0;
  aspect-ratio:3/4;
  box-shadow:0 12px 35px rgba(17,17,19,.10);
}
.peopleEncyclopediaPortrait figcaption{
  margin-top:10px;
  font-size:11px;
  font-weight:650;
  letter-spacing:.04em;
  text-transform:none;
}

/* GRAND ÉCRAN : rail de navigation + colonne de lecture + fiche repère. */
.peopleEncyclopediaLayout{
  display:grid;
  grid-template-columns:220px minmax(0,820px) minmax(300px,350px);
  justify-content:center;
  align-items:start;
  gap:clamp(34px,3.2vw,58px);
  padding:0 clamp(44px,4.7vw,82px);
  background:#fff;
}
.peopleEncyclopediaNavRail,
.peopleEncyclopediaFactsRail{
  min-width:0;
  padding-top:64px;
}
.peopleEncyclopediaNavRail{
  position:sticky;
  top:calc(var(--headerH) + 24px);
  align-self:start;
}
.peopleEncyclopediaFactsRailInner{
  position:sticky;
  top:calc(var(--headerH) + 24px);
  padding:28px;
  background:var(--people-soft);
  border:1px solid #e0dfda;
}
.peopleEncyclopediaArticle{
  min-width:0;
  padding:0;
}
.peopleEncyclopediaArticle > section{
  padding:62px 0 66px;
  border-bottom:1px solid var(--people-rule);
  scroll-margin-top:calc(var(--headerH) + 34px);
}
.peopleEncyclopediaArticle h2{
  max-width:none;
  margin:12px 0 25px;
  font-family:var(--people-serif);
  font-size:clamp(40px,3vw,49px);
  font-weight:700;
  line-height:1.06;
  letter-spacing:-.035em;
}
.peopleEncyclopediaArticle h3{
  font-family:var(--people-serif);
  font-size:25px;
  font-weight:700;
  line-height:1.22;
}
.peopleEncyclopediaArticle p,
.peopleEncyclopediaArticle li{
  max-width:none;
  color:var(--people-body);
  font-size:18px;
  line-height:1.74;
}
.peopleEncyclopediaArticle p{
  margin:0 0 20px;
}
.peopleEncyclopediaArticleLead{
  color:#171719!important;
  font-family:var(--people-serif)!important;
  font-size:clamp(23px,1.65vw,28px)!important;
  font-weight:700!important;
  line-height:1.42!important;
  letter-spacing:-.015em;
}

.peopleEncyclopediaBioFacts{
  display:grid;
  gap:0;
  margin:31px 0 0;
  padding:0;
  list-style:none;
  border-top:1px solid var(--people-rule);
}
.peopleEncyclopediaBioFacts li{
  position:relative;
  padding:17px 0 17px 28px;
  border-bottom:1px solid var(--people-rule);
  color:#252529;
  font-size:17px;
  line-height:1.55;
}
.peopleEncyclopediaBioFacts li::before{
  content:"";
  position:absolute;
  top:27px;
  left:2px;
  width:7px;
  height:7px;
  border-radius:50%;
  background:#111113;
}

/* Trois dates = trois repères lisibles, pas une longue ligne du temps vide. */
.peopleEncyclopediaTimeline{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin:32px 0 0;
  padding:0;
  border-top:2px solid #111113;
  border-bottom:1px solid var(--people-rule);
}
.peopleEncyclopediaTimeline::before,
.peopleEncyclopediaTimeline article::before{
  display:none;
}
.peopleEncyclopediaTimeline article{
  display:block;
  padding:24px 25px 26px;
  border-right:1px solid var(--people-rule);
}
.peopleEncyclopediaTimeline article:last-child{
  padding-bottom:26px;
  border-right:0;
}
.peopleEncyclopediaTimeline time{
  display:block;
  margin-bottom:14px;
  font-family:var(--people-serif);
  font-size:30px;
  font-weight:700;
  line-height:1;
}
.peopleEncyclopediaTimeline p{
  margin:0;
  color:#45454b;
  font-size:15.5px;
  line-height:1.6;
}
.peopleEncyclopediaOffices{
  margin-top:30px;
  padding:27px 30px;
  background:var(--people-soft);
  border:1px solid #e1e0dc;
  border-left:4px solid #111113;
}
.peopleEncyclopediaOffices h3{
  margin-bottom:15px;
  font-size:23px;
}
.peopleEncyclopediaOffices ul{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px 30px;
  padding-left:20px;
}
.peopleEncyclopediaOffices li{
  margin:0;
  font-size:16px;
  line-height:1.55;
}
.peopleEncyclopediaSourceNote{
  margin-top:18px!important;
  font-size:13px!important;
  line-height:1.6!important;
}

.peopleEncyclopediaPositioning{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  margin-top:30px;
  border-top:2px solid #111113;
  border-left:1px solid var(--people-rule);
}
.peopleEncyclopediaPositioning > div{
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  gap:15px;
  min-width:0;
  padding:24px;
  border-right:1px solid var(--people-rule);
  border-bottom:1px solid var(--people-rule);
}
.peopleEncyclopediaPositioning > div:nth-child(3):last-child{
  grid-column:1/-1;
}
.peopleEncyclopediaPositioning span{
  font-family:var(--people-serif);
  font-size:23px;
}
.peopleEncyclopediaPositioning p{
  margin:0;
  color:#1d1d20;
  font-family:var(--people-serif);
  font-size:19px;
  font-weight:700;
  line-height:1.42;
}
.peopleEncyclopediaThemes{
  gap:8px;
  margin-top:22px;
}
.peopleEncyclopediaThemes span{
  padding:7px 10px;
  font-size:12px;
}
.peopleEncyclopediaInternalLink{
  font-size:14px!important;
  line-height:1.6!important;
}

.peopleEncyclopediaEvidenceList{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  margin-top:32px;
  border-top:2px solid #111113;
  border-left:1px solid var(--people-rule);
}
.peopleEncyclopediaEvidenceList article{
  min-width:0;
  padding:28px;
  border-right:1px solid var(--people-rule);
  border-bottom:1px solid var(--people-rule);
}
.peopleEncyclopediaEvidenceMeta{
  align-items:flex-start;
  margin-bottom:16px;
  color:#68686f;
  font-size:11px;
  line-height:1.45;
  letter-spacing:.07em;
}
.peopleEncyclopediaEvidenceList h3{
  margin-bottom:16px;
  font-size:27px;
}
.peopleEncyclopediaEvidenceClaim{
  padding-left:17px;
  font-family:var(--people-serif)!important;
  font-size:18px!important;
  line-height:1.55!important;
}
.peopleEncyclopediaEvidenceList article > p:not(.peopleEncyclopediaEvidenceClaim):not(.peopleEncyclopediaEvidenceLimit){
  font-size:16px;
  line-height:1.68;
}
.peopleEncyclopediaEvidenceLimit{
  font-size:13px!important;
  line-height:1.62!important;
}
.peopleEncyclopediaEvidenceSource{
  font-size:13px;
  line-height:1.45;
}

.peopleEncyclopediaDistinctions{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin-top:31px;
  border-top:2px solid #111113;
  border-left:1px solid var(--people-rule);
}
.peopleEncyclopediaDistinctions > div{
  display:block;
  min-width:0;
  padding:25px;
  border-right:1px solid var(--people-rule);
  border-bottom:1px solid var(--people-rule);
}
.peopleEncyclopediaDistinctions h3{
  margin-bottom:13px;
  font-size:22px;
}
.peopleEncyclopediaDistinctions p{
  color:#44444a;
  font-size:15.5px;
  line-height:1.65;
}

.peopleEncyclopediaBibliography{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0;
  margin-top:30px;
  border-top:2px solid #111113;
  border-left:1px solid var(--people-rule);
}
.peopleEncyclopediaBibliography li{
  min-width:0;
  padding:22px 24px 23px;
  border-right:1px solid var(--people-rule);
  border-bottom:1px solid var(--people-rule);
}
.peopleEncyclopediaBibliography li > div{
  margin-bottom:9px;
  color:#6b6b72;
  font-size:11px;
  line-height:1.45;
}
.peopleEncyclopediaBibliography li > a{
  font-family:var(--people-serif);
  font-size:18px;
  line-height:1.35;
}
.peopleEncyclopediaBibliography li > p{
  margin-top:9px;
  font-size:13px;
  line-height:1.55;
}

/* Navigation et fiche repère : lisibles, compactes et réellement utiles. */
.peopleEncyclopediaToc{
  margin:0;
  border-top:3px solid #111113;
}
.peopleEncyclopediaToc > span{
  padding:14px 0 12px;
  font-size:11px;
  letter-spacing:.1em;
}
.peopleEncyclopediaToc a{
  position:relative;
  min-height:43px;
  padding:12px 8px 12px 0;
  color:#55555b;
  font-size:14px;
  font-weight:700;
  line-height:1.35;
}
.peopleEncyclopediaToc a::before{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:-12px;
  width:3px;
  background:transparent;
}
.peopleEncyclopediaToc a:hover,
.peopleEncyclopediaToc a[aria-current="true"]{
  color:#111113;
}
.peopleEncyclopediaToc a[aria-current="true"]::before{
  background:#111113;
}
.peopleEncyclopediaIdentity .peopleEncyclopediaSectionLabel{
  margin-bottom:9px;
}
.peopleEncyclopediaIdentity h2,
.peopleEncyclopediaDatedRole h2{
  margin-bottom:20px;
  font-family:var(--people-serif);
  font-size:27px;
  font-weight:700;
  line-height:1.12;
}
.peopleEncyclopediaIdentity dl div{
  padding:15px 0;
}
.peopleEncyclopediaIdentity dt{
  color:#66666d;
  font-size:11px;
  letter-spacing:.06em;
}
.peopleEncyclopediaIdentity dd{
  margin-top:7px;
  font-size:15px;
  line-height:1.48;
}
.peopleEncyclopediaDatedRole{
  margin-top:30px;
  padding-top:27px;
}
.peopleEncyclopediaDatedRole > p:not(.peopleEncyclopediaSectionLabel){
  font-family:var(--people-serif);
  font-size:20px;
  line-height:1.42;
}
.peopleEncyclopediaDatedRole small{
  margin-top:14px;
  color:#5f5f66;
  font-size:13px;
  line-height:1.62;
}
.peopleEncyclopediaDatedRole > a{
  margin-top:17px;
  font-size:13px;
  line-height:1.45;
}

.peopleEncyclopediaRelated{
  padding:62px clamp(48px,5vw,86px) 68px;
}
.peopleEncyclopediaRelated .peopleEncyclopediaSectionHead > p{
  font-size:15px;
  line-height:1.65;
}
.peopleEncyclopediaRelatedCard > p{
  font-size:11px;
}
.peopleEncyclopediaRelatedCard h3{
  font-family:var(--people-serif);
  font-size:30px;
  line-height:1.08;
}
.peopleEncyclopediaRelatedCard > span{
  font-size:15px;
  line-height:1.65;
}
.peopleEncyclopediaProfileFooter{
  padding:31px clamp(48px,5vw,86px);
}
.peopleEncyclopediaProfileFooter > a:not(.btn){
  font-size:13px;
  line-height:1.45;
}

@media (max-width:1500px){
  .peopleEncyclopediaLayout{
    grid-template-columns:190px minmax(0,760px) minmax(280px,310px);
    gap:30px;
    padding-inline:36px;
  }
  .peopleEncyclopediaHero{
    grid-template-columns:minmax(0,1fr) 370px;
  }
  .peopleEncyclopediaHeroCopy{
    padding-inline:64px;
  }
  .peopleEncyclopediaFactsRailInner{
    padding:24px;
  }
}

@media (max-width:1180px){
  .peopleEncyclopediaHero{
    grid-template-columns:minmax(0,1fr) 320px;
  }
  .peopleEncyclopediaHeroCopy{
    padding:54px 46px;
  }
  .peopleEncyclopediaHero h1{
    font-size:clamp(54px,6.3vw,76px);
  }
  .peopleEncyclopediaPortrait{
    padding:27px 28px 21px;
  }
  .peopleEncyclopediaLayout{
    grid-template-columns:minmax(0,1fr);
    gap:0;
    padding:0 48px;
  }
  .peopleEncyclopediaNavRail{
    position:sticky;
    z-index:20;
    top:var(--headerH);
    padding-top:0;
    background:#fff;
    border-bottom:1px solid var(--people-rule);
  }
  .peopleEncyclopediaToc{
    display:flex;
    align-items:center;
    gap:0;
    overflow-x:auto;
    margin:0;
    border-top:0;
    scrollbar-width:thin;
  }
  .peopleEncyclopediaToc > span{
    flex:0 0 auto;
    padding:15px 18px 15px 0;
    border-bottom:0;
    border-right:1px solid var(--people-rule);
  }
  .peopleEncyclopediaToc a{
    flex:0 0 auto;
    min-height:0;
    padding:15px 17px;
    border-bottom:0;
    white-space:nowrap;
  }
  .peopleEncyclopediaToc a::before{
    top:auto;
    right:14px;
    bottom:0;
    left:14px;
    width:auto;
    height:3px;
  }
  .peopleEncyclopediaArticle{
    width:min(100%,820px);
    margin-inline:auto;
  }
  .peopleEncyclopediaFactsRail{
    padding:0 0 62px;
  }
  .peopleEncyclopediaFactsRailInner{
    position:static;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:38px;
    width:min(100%,820px);
    margin-inline:auto;
    padding:30px;
  }
  .peopleEncyclopediaDatedRole{
    margin-top:0;
    padding-top:0;
    padding-left:34px;
    border-top:0;
    border-left:1px solid var(--people-rule);
  }
}

@media (max-width:900px){
  .peopleEncyclopediaProfile{
    padding-top:14px;
  }
  .peopleEncyclopediaHero{
    grid-template-columns:1fr;
  }
  .peopleEncyclopediaHeroCopy{
    padding:48px 34px 42px;
  }
  .peopleEncyclopediaHero h1{
    font-size:clamp(50px,10vw,70px);
  }
  .peopleEncyclopediaHeroLead{
    font-size:17.5px;
  }
  .peopleEncyclopediaPortrait{
    width:100%;
    padding:24px;
    border-top:1px solid var(--people-rule);
    border-left:0;
  }
  .peopleEncyclopediaPortrait a{
    width:min(100%,420px);
    margin-inline:auto;
  }
  .peopleEncyclopediaPortrait figcaption{
    width:min(100%,420px);
    margin-inline:auto;
    margin-top:10px;
  }
  .peopleEncyclopediaLayout{
    padding-inline:28px;
  }
  .peopleEncyclopediaArticle p,
  .peopleEncyclopediaArticle li{
    font-size:17px;
    line-height:1.72;
  }
  .peopleEncyclopediaArticle h2{
    font-size:clamp(37px,7vw,45px);
  }
  .peopleEncyclopediaTimeline{
    grid-template-columns:1fr;
  }
  .peopleEncyclopediaTimeline article,
  .peopleEncyclopediaTimeline article:last-child{
    display:grid;
    grid-template-columns:86px minmax(0,1fr);
    gap:18px;
    padding:21px 0;
    border-right:0;
    border-bottom:1px solid var(--people-rule);
  }
  .peopleEncyclopediaTimeline article:last-child{
    border-bottom:0;
  }
  .peopleEncyclopediaTimeline time{
    margin:0;
    font-size:26px;
  }
  .peopleEncyclopediaOffices ul{
    grid-template-columns:1fr;
  }
  .peopleEncyclopediaPositioning,
  .peopleEncyclopediaEvidenceList,
  .peopleEncyclopediaDistinctions,
  .peopleEncyclopediaBibliography{
    grid-template-columns:1fr;
  }
  .peopleEncyclopediaPositioning > div:nth-child(3):last-child{
    grid-column:auto;
  }
  .peopleEncyclopediaFactsRailInner{
    grid-template-columns:1fr;
    gap:0;
  }
  .peopleEncyclopediaDatedRole{
    margin-top:30px;
    padding-top:27px;
    padding-left:0;
    border-top:1px solid var(--people-rule);
    border-left:0;
  }
  .peopleEncyclopediaRelatedGrid{
    grid-template-columns:1fr;
  }
  .peopleEncyclopediaRelatedCard,
  .peopleEncyclopediaRelatedCard + .peopleEncyclopediaRelatedCard{
    padding:24px 0;
    border-right:0;
  }
}

@media (max-width:680px){
  .peopleEncyclopediaIndex .shell,
  .peopleEncyclopediaProfile .shell{
    padding-inline:12px;
  }
  .peopleEncyclopediaHeroCopy{
    padding:39px 22px 35px;
  }
  .peopleEncyclopediaHero h1{
    margin-top:14px;
    font-size:clamp(43px,13vw,59px);
    line-height:1.01;
  }
  .peopleEncyclopediaHeroSubtitle{
    font-size:22px;
  }
  .peopleEncyclopediaHeroLead{
    margin-top:21px;
    font-size:17px;
    line-height:1.68;
  }
  .peopleEncyclopediaHeroFacts{
    display:grid;
    gap:8px;
    font-size:12.5px;
  }
  .peopleEncyclopediaHeroFacts span + span::before{
    display:none;
  }
  .peopleEncyclopediaPortrait{
    min-height:0;
    padding:18px;
  }
  .peopleEncyclopediaPortrait a{
    min-height:0;
  }
  .peopleEncyclopediaLayout{
    padding-inline:20px;
  }
  .peopleEncyclopediaNavRail{
    margin-inline:-20px;
    padding-inline:20px;
  }
  .peopleEncyclopediaToc > span{
    display:none;
  }
  .peopleEncyclopediaToc a{
    padding:14px 13px;
    font-size:13px;
  }
  .peopleEncyclopediaArticle > section{
    padding:47px 0 50px;
  }
  .peopleEncyclopediaArticle h2{
    margin-bottom:21px;
    font-size:36px;
    line-height:1.08;
  }
  .peopleEncyclopediaArticle h3{
    font-size:23px;
  }
  .peopleEncyclopediaArticle p,
  .peopleEncyclopediaArticle li{
    font-size:17px;
    line-height:1.7;
  }
  .peopleEncyclopediaArticleLead{
    font-size:22px!important;
    line-height:1.42!important;
  }
  .peopleEncyclopediaBioFacts li{
    padding-left:24px;
    font-size:16.5px;
  }
  .peopleEncyclopediaTimeline article,
  .peopleEncyclopediaTimeline article:last-child{
    grid-template-columns:72px minmax(0,1fr);
    gap:14px;
  }
  .peopleEncyclopediaTimeline p{
    font-size:15.5px;
  }
  .peopleEncyclopediaOffices{
    padding:23px 22px;
  }
  .peopleEncyclopediaPositioning > div,
  .peopleEncyclopediaEvidenceList article,
  .peopleEncyclopediaDistinctions > div,
  .peopleEncyclopediaBibliography li{
    padding:22px 18px;
  }
  .peopleEncyclopediaPositioning p{
    font-size:18px;
  }
  .peopleEncyclopediaEvidenceList article > p:not(.peopleEncyclopediaEvidenceClaim):not(.peopleEncyclopediaEvidenceLimit){
    font-size:16px;
  }
  .peopleEncyclopediaFactsRail{
    padding-bottom:48px;
  }
  .peopleEncyclopediaFactsRailInner{
    padding:24px 21px;
  }
  .peopleEncyclopediaRelated{
    padding:48px 22px 52px;
  }
  .peopleEncyclopediaRelated .peopleEncyclopediaSectionHead h2{
    font-size:36px;
  }
  .peopleEncyclopediaRelatedCard h3{
    font-size:27px;
  }
  .peopleEncyclopediaProfileFooter{
    padding:25px 22px;
  }
}

/* Finitions de lisibilité de l'index des personnalités. */
.peopleEncyclopediaIndexAside > span{
  font-size:11px;
}
.peopleEncyclopediaIndexAside > strong{
  font-family:var(--people-serif);
  font-size:38px;
  line-height:1.08;
}
.peopleEncyclopediaIndexAside > p{
  font-size:15px;
  line-height:1.7;
}
.peopleEncyclopediaIndexAside dt{
  font-size:11px;
}
.peopleEncyclopediaIndexAside dd{
  font-size:13px;
}
.peopleEncyclopediaSectionHead > p{
  font-size:15px;
  line-height:1.68;
}
.peopleEncyclopediaIndexFooter > div > p:last-child{
  font-size:15px;
  line-height:1.72;
}
.peopleEncyclopediaIndexFooter nav strong{
  font-family:var(--people-serif);
  font-size:21px;
}
.peopleEncyclopediaIndexFooter nav span{
  font-size:12px;
  line-height:1.55;
}

/* Tablettes : conserver une composition compacte plutôt qu'empiler un grand
   portrait au-dessus de la notice. */
@media (min-width:681px) and (max-width:900px){
  .peopleEncyclopediaHero{
    grid-template-columns:minmax(0,1fr) 270px;
  }
  .peopleEncyclopediaHeroCopy{
    padding:46px 34px;
  }
  .peopleEncyclopediaHero h1{
    font-size:clamp(50px,7vw,64px);
  }
  .peopleEncyclopediaHeroSubtitle{
    font-size:23px;
  }
  .peopleEncyclopediaHeroLead{
    font-size:17px;
  }
  .peopleEncyclopediaPortrait{
    width:auto;
    padding:22px;
    border-top:0;
    border-left:1px solid var(--people-rule);
  }
  .peopleEncyclopediaPortrait a,
  .peopleEncyclopediaPortrait figcaption{
    width:100%;
    max-width:none;
  }
}

@media (max-width:680px){
  .peopleEncyclopediaPortrait a,
  .peopleEncyclopediaPortrait figcaption{
    width:min(78vw,300px);
  }
}

.page-people .breadcrumb{
  min-height:34px;
  font-size:12px;
  letter-spacing:.09em;
}
@media (max-width:680px){
  .page-people .breadcrumb{
    min-height:32px;
    font-size:11px;
    letter-spacing:.07em;
  }
}

/* ========================================================================== 
   V13 — Notices de personnalités : hiérarchie éditoriale claire
   Portrait original d'abord, puis parcours, ligne politique, preuves et sources.
   Le site reste large ; la colonne de lecture conserve une mesure confortable.
   ========================================================================== */

.peopleProfileV13{
  --profile-ink:#151518;
  --profile-text:#34343a;
  --profile-muted:#68686f;
  --profile-rule:#deddd8;
  --profile-soft:#f5f4f1;
  --profile-serif:Georgia, "Times New Roman", serif;
  padding:28px 0 96px;
}
.peopleProfileV13 .shell{
  width:min(100%,var(--max));
  max-width:var(--max);
}
.peopleProfileDocument{
  position:relative;
  overflow:hidden;
  background:#fff;
  border:1px solid rgba(17,17,19,.10);
  box-shadow:0 24px 76px rgba(17,17,19,.065);
}
.peopleProfileDocument::before{
  content:"";
  position:absolute;
  z-index:4;
  top:0;
  right:0;
  left:0;
  height:3px;
  background:var(--franceGradient);
}

/* Hero : un nom, une lecture claire, un portrait. */
.peopleProfileHero{
  display:grid;
  grid-template-columns:minmax(0,1fr) clamp(330px,23vw,430px);
  align-items:stretch;
  min-height:520px;
  border-bottom:1px solid var(--profile-rule);
}
.peopleProfileHeroText{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-width:0;
  padding:clamp(58px,5.5vw,92px) clamp(52px,6vw,104px);
}
.peopleProfileKicker,
.peopleProfileSectionKicker,
.peopleProfileSidebarKicker{
  margin:0;
  color:var(--profile-muted);
  font-size:12px;
  font-weight:800;
  letter-spacing:.12em;
  line-height:1.45;
  text-transform:uppercase;
}
.peopleProfileHero h1{
  max-width:1000px;
  margin:16px 0 12px;
  color:var(--profile-ink);
  font-family:var(--profile-serif);
  font-size:clamp(58px,5.7vw,92px);
  font-weight:700;
  letter-spacing:-.052em;
  line-height:.96;
  text-wrap:balance;
}
.peopleProfileTagline{
  max-width:31ch;
  margin:0;
  color:var(--profile-ink);
  font-family:var(--profile-serif);
  font-size:clamp(25px,2.05vw,34px);
  font-weight:700;
  letter-spacing:-.025em;
  line-height:1.18;
  text-wrap:balance;
}
.peopleProfileSummary{
  max-width:74ch;
  margin:27px 0 0;
  color:var(--profile-text);
  font-size:18px;
  line-height:1.72;
}
.peopleProfileMeta{
  display:flex;
  flex-wrap:wrap;
  gap:9px 24px;
  margin-top:29px;
  padding-top:20px;
  border-top:1px solid var(--profile-rule);
  color:#55555c;
  font-size:13px;
  font-weight:650;
  line-height:1.45;
}
.peopleProfileMeta span + span::before{
  content:"·";
  margin-right:24px;
  color:#b4b3af;
}
.peopleProfilePortrait{
  display:flex;
  flex-direction:column;
  justify-content:center;
  margin:0;
  padding:36px 38px 27px;
  background:#efeeea;
  border-left:1px solid var(--profile-rule);
}
.peopleProfilePortrait a{
  display:block;
  width:100%;
  overflow:hidden;
  aspect-ratio:3/4;
  background:#d8d7d3;
  box-shadow:0 13px 36px rgba(17,17,19,.11);
}
.peopleProfilePortrait picture,
.peopleProfilePortrait img{
  display:block;
  width:100%;
  height:100%;
}
.peopleProfilePortrait img{
  object-fit:cover;
  object-position:center top;
  filter:saturate(.84) contrast(1.025);
}
.peopleProfilePortrait figcaption{
  margin-top:10px;
  color:#75757b;
  font-size:12px;
  line-height:1.4;
  text-align:right;
}

/* Sommaire horizontal : une seule ligne, sans troisième colonne parasite. */
.peopleProfileNav{
  position:sticky;
  z-index:32;
  top:var(--headerH);
  display:flex;
  align-items:center;
  gap:0;
  overflow-x:auto;
  padding:0 clamp(48px,5vw,88px);
  background:rgba(255,255,255,.96);
  border-bottom:1px solid var(--profile-rule);
  backdrop-filter:blur(10px);
  scrollbar-width:thin;
}
.peopleProfileNav a{
  position:relative;
  flex:0 0 auto;
  min-height:54px;
  padding:18px 20px 16px;
  color:#5a5a61;
  font-size:14px;
  font-weight:700;
  line-height:1.35;
  text-decoration:none;
  white-space:nowrap;
}
.peopleProfileNav a:first-child{ padding-left:0; }
.peopleProfileNav a::after{
  content:"";
  position:absolute;
  right:18px;
  bottom:0;
  left:18px;
  height:3px;
  background:transparent;
}
.peopleProfileNav a:first-child::after{ left:0; }
.peopleProfileNav a:hover,
.peopleProfileNav a[aria-current="true"]{ color:var(--profile-ink); }
.peopleProfileNav a[aria-current="true"]::after{ background:var(--profile-ink); }

/* Corps : une grande colonne éditoriale et une seule fiche latérale. */
.peopleProfileBody{
  display:grid;
  grid-template-columns:minmax(0,880px) minmax(300px,340px);
  justify-content:center;
  align-items:start;
  gap:clamp(54px,5vw,92px);
  padding:0 clamp(48px,5vw,88px) 76px;
}
.peopleProfileArticle{
  min-width:0;
}
.peopleProfileSection{
  padding:70px 0 74px;
  border-bottom:1px solid var(--profile-rule);
  scroll-margin-top:calc(var(--headerH) + 76px);
}
.peopleProfileSection:last-child{ border-bottom:0; }
.peopleProfileSection h2{
  max-width:780px;
  margin:12px 0 27px;
  color:var(--profile-ink);
  font-family:var(--profile-serif);
  font-size:clamp(40px,3.2vw,52px);
  font-weight:700;
  letter-spacing:-.037em;
  line-height:1.04;
  text-wrap:balance;
}
.peopleProfileSection h3{
  margin:0;
  color:var(--profile-ink);
  font-family:var(--profile-serif);
  font-size:24px;
  font-weight:700;
  letter-spacing:-.02em;
  line-height:1.2;
}
.peopleProfileSection p,
.peopleProfileSection li{
  color:var(--profile-text);
  font-size:18px;
  line-height:1.76;
}
.peopleProfileSection p{ margin:0 0 20px; }
.peopleProfileSectionIntro{
  max-width:72ch;
  color:#57575e!important;
  font-size:17px!important;
  line-height:1.7!important;
}

/* Le portrait éditorial est la priorité absolue. */
.peopleProfileEditorial{
  padding-top:78px;
}
.peopleProfilePortraitText{
  max-width:790px;
}
.peopleProfilePortraitText p{
  margin:0 0 25px;
  color:#25252a;
  font-size:19px;
  line-height:1.78;
}
.peopleProfilePortraitText p:first-child{
  color:var(--profile-ink);
  font-family:var(--profile-serif);
  font-size:clamp(23px,1.75vw,28px);
  font-weight:600;
  letter-spacing:-.014em;
  line-height:1.55;
}
.peopleProfileKeyPoint{
  max-width:780px;
  margin-top:42px;
  padding:3px 0 3px 29px;
  border-left:4px solid var(--profile-ink);
}
.peopleProfileKeyPoint span{
  display:block;
  margin-bottom:10px;
  color:#66666d;
  font-size:12px;
  font-weight:850;
  letter-spacing:.10em;
  line-height:1.4;
  text-transform:uppercase;
}
.peopleProfileKeyPoint p{
  margin:0;
  color:var(--profile-ink);
  font-family:var(--profile-serif);
  font-size:26px;
  font-weight:700;
  letter-spacing:-.022em;
  line-height:1.35;
}

/* Parcours : une liste chronologique, pas trois cartes concurrentes. */
.peopleProfileTimeline{
  margin:35px 0 0;
  padding:0;
  list-style:none;
  border-top:2px solid var(--profile-ink);
}
.peopleProfileTimeline li{
  display:grid;
  grid-template-columns:130px minmax(0,1fr);
  gap:28px;
  padding:25px 0 27px;
  border-bottom:1px solid var(--profile-rule);
}
.peopleProfileTimeline time{
  color:var(--profile-ink);
  font-family:var(--profile-serif);
  font-size:27px;
  font-weight:700;
  line-height:1.15;
}
.peopleProfileTimeline p{
  margin:0;
  color:#3c3c42;
  font-size:17px;
  line-height:1.68;
}
.peopleProfileOffices{
  display:grid;
  grid-template-columns:210px minmax(0,1fr);
  gap:28px;
  margin-top:30px;
  padding:24px 27px;
  background:var(--profile-soft);
  border-left:4px solid var(--profile-ink);
}
.peopleProfileOffices strong{
  color:var(--profile-ink);
  font-family:var(--profile-serif);
  font-size:20px;
  line-height:1.35;
}
.peopleProfileOffices span{
  color:#48484e;
  font-size:16px;
  line-height:1.62;
}
.peopleProfileSourceNote,
.peopleProfileInternalLink{
  margin-top:18px!important;
  color:#66666d!important;
  font-size:14px!important;
  line-height:1.62!important;
}
.peopleProfileSourceNote a,
.peopleProfileInternalLink a{
  color:var(--profile-ink);
  font-weight:750;
  text-underline-offset:4px;
}

/* Ligne politique : une série de repères hiérarchisés, pas une mosaïque. */
.peopleProfilePolicyList{
  margin:36px 0 0;
  padding:0;
  list-style:none;
  border-top:2px solid var(--profile-ink);
}
.peopleProfilePolicyList li{
  display:grid;
  grid-template-columns:52px minmax(0,1fr);
  gap:20px;
  padding:26px 0 28px;
  border-bottom:1px solid var(--profile-rule);
}
.peopleProfilePolicyList > li > span{
  color:#a2a1a0;
  font-family:var(--profile-serif);
  font-size:23px;
  font-weight:700;
  line-height:1.2;
}
.peopleProfilePolicyList h3{
  margin-bottom:7px;
}
.peopleProfilePolicyList p{
  margin:0;
  color:#38383e;
  font-size:17px;
  line-height:1.67;
}
.peopleProfilePolicyList li:not(:has(h3)) p{
  color:var(--profile-ink);
  font-family:var(--profile-serif);
  font-size:21px;
  font-weight:700;
  letter-spacing:-.012em;
  line-height:1.46;
}
.peopleProfileThemes{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:25px;
}
.peopleProfileThemes span{
  padding:8px 11px;
  background:var(--profile-soft);
  color:#5e5e65;
  font-size:13px;
  font-weight:700;
  line-height:1.35;
}

/* Documents : deux blocs successifs, clairement secondaires au portrait. */
.peopleProfileEvidenceList{
  margin-top:34px;
  border-top:2px solid var(--profile-ink);
}
.peopleProfileEvidenceList article{
  padding:34px 0 38px;
  border-bottom:1px solid var(--profile-rule);
}
.peopleProfileEvidenceMeta{
  display:flex;
  justify-content:space-between;
  gap:22px;
  margin-bottom:15px;
  color:#74747a;
  font-size:12px;
  font-weight:800;
  letter-spacing:.08em;
  line-height:1.45;
  text-transform:uppercase;
}
.peopleProfileEvidenceList h3{
  max-width:700px;
  margin-bottom:19px;
  font-size:29px;
}
.peopleProfileEvidenceList blockquote{
  max-width:760px;
  margin:0 0 20px;
  padding:4px 0 4px 23px;
  border-left:3px solid var(--profile-ink);
  color:var(--profile-ink);
  font-family:var(--profile-serif);
  font-size:22px;
  font-weight:700;
  letter-spacing:-.012em;
  line-height:1.5;
}
.peopleProfileEvidenceList article > p{
  max-width:74ch;
  font-size:17px;
  line-height:1.72;
}
.peopleProfileEvidenceList details{
  max-width:740px;
  margin:20px 0 0;
  padding-top:16px;
  border-top:1px dashed #c9c8c4;
}
.peopleProfileEvidenceList summary{
  color:#56565d;
  font-size:14px;
  font-weight:750;
  cursor:pointer;
}
.peopleProfileEvidenceList details p{
  margin:12px 0 0;
  color:#626269;
  font-size:14px;
  line-height:1.62;
}
.peopleProfileEvidenceList article > a{
  display:inline-flex;
  gap:7px;
  margin-top:20px;
  color:var(--profile-ink);
  font-size:14px;
  font-weight:800;
  line-height:1.45;
  text-underline-offset:4px;
}

/* Sources : bibliographie sobre et verticale. */
.peopleProfileSources{
  margin:35px 0 0;
  padding:0;
  list-style:none;
  border-top:2px solid var(--profile-ink);
}
.peopleProfileSources li{
  display:grid;
  grid-template-columns:180px minmax(0,1fr);
  column-gap:26px;
  padding:22px 0 24px;
  border-bottom:1px solid var(--profile-rule);
}
.peopleProfileSources li > div{
  display:grid;
  align-content:start;
  gap:5px;
  color:#74747a;
  font-size:12px;
  font-weight:750;
  letter-spacing:.05em;
  line-height:1.45;
  text-transform:uppercase;
}
.peopleProfileSources li > a{
  color:var(--profile-ink);
  font-family:var(--profile-serif);
  font-size:20px;
  font-weight:700;
  line-height:1.36;
  text-decoration-thickness:1px;
  text-underline-offset:4px;
  overflow-wrap:anywhere;
}
.peopleProfileSources li > p{
  grid-column:2;
  margin:7px 0 0;
  color:#66666d;
  font-size:13px;
  line-height:1.55;
}
.peopleProfileMethod{
  margin-top:30px;
  border:1px solid var(--profile-rule);
  background:var(--profile-soft);
}
.peopleProfileMethod summary{
  padding:18px 21px;
  color:var(--profile-ink);
  font-size:15px;
  font-weight:800;
  cursor:pointer;
}
.peopleProfileMethod > div{
  padding:0 21px 19px;
}
.peopleProfileMethod p{
  margin:13px 0 0;
  color:#54545b;
  font-size:14px;
  line-height:1.65;
}

/* Colonne latérale : deux cartes seulement, très lisibles. */
.peopleProfileSidebar{
  position:sticky;
  top:calc(var(--headerH) + 76px);
  display:grid;
  gap:18px;
  padding-top:78px;
}
.peopleProfileSidebarCard{
  padding:28px;
  background:var(--profile-soft);
  border:1px solid var(--profile-rule);
}
.peopleProfileSidebarCard h2{
  margin:11px 0 19px;
  color:var(--profile-ink);
  font-family:var(--profile-serif);
  font-size:28px;
  font-weight:700;
  letter-spacing:-.028em;
  line-height:1.08;
}
.peopleProfileCurrentRole{
  background:#111214;
  color:#fff;
  border-color:#111214;
}
.peopleProfileCurrentRole .peopleProfileSidebarKicker{
  color:rgba(255,255,255,.52);
}
.peopleProfileCurrentRole h2{
  color:#fff;
}
.peopleProfileCurrentRole > p:not(.peopleProfileSidebarKicker){
  margin:0;
  color:#fff;
  font-family:var(--profile-serif);
  font-size:21px;
  font-weight:700;
  line-height:1.42;
}
.peopleProfileCurrentRole > a{
  display:inline-flex;
  gap:7px;
  margin-top:20px;
  color:rgba(255,255,255,.76);
  font-size:13px;
  font-weight:750;
  line-height:1.5;
  text-underline-offset:4px;
}
.peopleProfileSidebarCard dl{
  margin:0;
}
.peopleProfileSidebarCard dl div{
  padding:15px 0;
  border-top:1px solid #d8d7d3;
}
.peopleProfileSidebarCard dt{
  color:#6a6a71;
  font-size:12px;
  font-weight:800;
  letter-spacing:.06em;
  line-height:1.4;
  text-transform:uppercase;
}
.peopleProfileSidebarCard dd{
  margin:7px 0 0;
  color:var(--profile-ink);
  font-size:15px;
  font-weight:700;
  line-height:1.5;
}
.peopleProfileSidebarCard dd a{
  text-underline-offset:3px;
}

/* Pages proches et pied de notice. */
.peopleProfileRelated{
  padding:64px clamp(48px,5vw,88px) 70px;
  background:#faf9f7;
  border-top:1px solid var(--profile-rule);
}
.peopleProfileRelatedHead{
  display:grid;
  grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);
  gap:48px;
  align-items:end;
}
.peopleProfileRelatedHead h2{
  max-width:760px;
  margin:12px 0 0;
  color:var(--profile-ink);
  font-family:var(--profile-serif);
  font-size:clamp(36px,3vw,48px);
  font-weight:700;
  letter-spacing:-.038em;
  line-height:1.04;
  text-wrap:balance;
}
.peopleProfileRelatedHead > p{
  margin:0;
  color:#64646b;
  font-size:15px;
  line-height:1.67;
}
.peopleProfileRelatedGrid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin-top:31px;
  border-top:2px solid var(--profile-ink);
}
.peopleProfileV13 .peopleEncyclopediaRelatedCard{
  min-width:0;
  padding:26px 28px 29px 0;
  border-right:1px solid var(--profile-rule);
  border-bottom:1px solid var(--profile-rule);
}
.peopleProfileV13 .peopleEncyclopediaRelatedCard + .peopleEncyclopediaRelatedCard{
  padding-left:28px;
}
.peopleProfileV13 .peopleEncyclopediaRelatedCard:last-child{
  border-right:0;
}
.peopleProfileV13 .peopleEncyclopediaRelatedCard > p{
  margin:0;
  color:#707077;
  font-size:12px;
  font-weight:800;
  letter-spacing:.07em;
  line-height:1.45;
  text-transform:uppercase;
}
.peopleProfileV13 .peopleEncyclopediaRelatedCard h3{
  margin:15px 0 11px;
  font-family:var(--profile-serif);
  font-size:29px;
  font-weight:700;
  letter-spacing:-.03em;
  line-height:1.08;
}
.peopleProfileV13 .peopleEncyclopediaRelatedCard h3 a{
  text-decoration:none;
}
.peopleProfileV13 .peopleEncyclopediaRelatedCard > span{
  display:block;
  color:#55555c;
  font-size:15px;
  line-height:1.65;
}
.peopleProfileFooter{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:18px 27px;
  padding:30px clamp(48px,5vw,88px);
  background:#111214;
  color:#fff;
}
.peopleProfileFooter .btn{
  border-radius:0;
  background:#fff;
  color:#111214;
  border-color:#fff;
}
.peopleProfileFooter > a:not(.btn){
  color:rgba(255,255,255,.73);
  font-size:13px;
  font-weight:750;
  line-height:1.45;
  text-underline-offset:4px;
}

@media (max-width:1320px){
  .peopleProfileHero{
    grid-template-columns:minmax(0,1fr) 360px;
  }
  .peopleProfileHeroText{
    padding-inline:60px;
  }
  .peopleProfileBody{
    grid-template-columns:minmax(0,800px) minmax(280px,310px);
    gap:48px;
    padding-inline:42px;
  }
  .peopleProfileSidebarCard{
    padding:24px;
  }
}

@media (max-width:1050px){
  .peopleProfileHero{
    grid-template-columns:minmax(0,1fr) 310px;
  }
  .peopleProfileHeroText{
    padding:52px 42px;
  }
  .peopleProfileHero h1{
    font-size:clamp(50px,6.6vw,72px);
  }
  .peopleProfileTagline{
    font-size:25px;
  }
  .peopleProfilePortrait{
    padding:27px 28px 22px;
  }
  .peopleProfileBody{
    grid-template-columns:minmax(0,820px);
    gap:0;
    padding-inline:42px;
  }
  .peopleProfileSidebar{
    position:static;
    grid-template-columns:repeat(2,minmax(0,1fr));
    padding:0 0 68px;
  }
}

@media (max-width:780px){
  .peopleProfileV13{
    padding-top:14px;
  }
  .peopleProfileV13 .shell{
    padding-inline:12px;
  }
  .peopleProfileHero{
    grid-template-columns:1fr;
    min-height:0;
  }
  .peopleProfileHeroText{
    padding:44px 28px 39px;
  }
  .peopleProfileHero h1{
    font-size:clamp(45px,11vw,66px);
  }
  .peopleProfileTagline{
    max-width:34ch;
    font-size:23px;
  }
  .peopleProfileSummary{
    font-size:17px;
    line-height:1.68;
  }
  .peopleProfileMeta{
    display:grid;
    gap:7px;
    font-size:13px;
  }
  .peopleProfileMeta span + span::before{
    display:none;
  }
  .peopleProfilePortrait{
    align-items:center;
    padding:22px;
    border-top:1px solid var(--profile-rule);
    border-left:0;
  }
  .peopleProfilePortrait a,
  .peopleProfilePortrait figcaption{
    width:min(78vw,330px);
  }
  .peopleProfileNav{
    padding-inline:19px;
  }
  .peopleProfileNav a{
    min-height:50px;
    padding:16px 14px 14px;
    font-size:13px;
  }
  .peopleProfileNav a:first-child{
    padding-left:0;
  }
  .peopleProfileBody{
    padding-inline:24px;
  }
  .peopleProfileSection{
    padding:53px 0 57px;
  }
  .peopleProfileEditorial{
    padding-top:58px;
  }
  .peopleProfileSection h2{
    margin-bottom:22px;
    font-size:clamp(35px,8vw,43px);
    line-height:1.08;
  }
  .peopleProfileSection p,
  .peopleProfileSection li{
    font-size:17px;
    line-height:1.72;
  }
  .peopleProfilePortraitText p{
    font-size:17.5px;
    line-height:1.74;
  }
  .peopleProfilePortraitText p:first-child{
    font-size:22px;
    line-height:1.5;
  }
  .peopleProfileKeyPoint{
    margin-top:34px;
    padding-left:22px;
  }
  .peopleProfileKeyPoint p{
    font-size:22px;
  }
  .peopleProfileTimeline li{
    grid-template-columns:82px minmax(0,1fr);
    gap:16px;
    padding:22px 0 24px;
  }
  .peopleProfileTimeline time{
    font-size:23px;
  }
  .peopleProfileTimeline p{
    font-size:16.5px;
  }
  .peopleProfileOffices{
    grid-template-columns:1fr;
    gap:8px;
    padding:22px;
  }
  .peopleProfilePolicyList li{
    grid-template-columns:40px minmax(0,1fr);
    gap:13px;
    padding:23px 0 25px;
  }
  .peopleProfilePolicyList h3{
    font-size:22px;
  }
  .peopleProfilePolicyList p{
    font-size:16.5px;
  }
  .peopleProfilePolicyList li:not(:has(h3)) p{
    font-size:19px;
  }
  .peopleProfileEvidenceMeta{
    align-items:flex-start;
    flex-direction:column;
    gap:5px;
  }
  .peopleProfileEvidenceList h3{
    font-size:26px;
  }
  .peopleProfileEvidenceList blockquote{
    padding-left:18px;
    font-size:20px;
  }
  .peopleProfileSources li{
    grid-template-columns:1fr;
    row-gap:8px;
  }
  .peopleProfileSources li > p{
    grid-column:1;
  }
  .peopleProfileSidebar{
    grid-template-columns:1fr;
    gap:14px;
    padding-bottom:55px;
  }
  .peopleProfileRelated{
    padding:50px 24px 55px;
  }
  .peopleProfileRelatedHead{
    grid-template-columns:1fr;
    gap:18px;
  }
  .peopleProfileRelatedHead h2{
    font-size:36px;
  }
  .peopleProfileRelatedGrid{
    grid-template-columns:1fr;
  }
  .peopleProfileV13 .peopleEncyclopediaRelatedCard,
  .peopleProfileV13 .peopleEncyclopediaRelatedCard + .peopleEncyclopediaRelatedCard{
    padding:24px 0;
    border-right:0;
  }
  .peopleProfileFooter{
    align-items:stretch;
    flex-direction:column;
    padding:25px 24px;
  }
  .peopleProfileFooter .btn{
    justify-content:center;
    width:100%;
  }
}

@media (max-width:430px){
  .peopleProfileHeroText{
    padding-inline:21px;
  }
  .peopleProfileHero h1{
    font-size:clamp(42px,13vw,56px);
  }
  .peopleProfileTagline{
    font-size:21px;
  }
  .peopleProfileBody{
    padding-inline:19px;
  }
  .peopleProfileSection h2{
    font-size:34px;
  }
  .peopleProfileSidebarCard{
    padding:22px;
  }
}

/* ========================================================================== 
   V13 — Fiches de personnalités : hiérarchie éditoriale claire
   Une grande idée par écran, une vraie introduction narrative, une seule
   colonne de lecture principale et un rail de repères réellement secondaire.
   ========================================================================== */

.personProfileV13{
  --profile-ink:#171719;
  --profile-body:#33343a;
  --profile-muted:#6a6b72;
  --profile-line:#deddd8;
  --profile-soft:#f5f4f1;
  --profile-paper:#fff;
  --profile-serif:ui-serif,"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;
  --profile-sans:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}

.personProfileV13 .shell{
  width:min(100%,var(--max));
  max-width:var(--max);
}

.personProfileV13Document{
  position:relative;
  overflow:hidden;
  background:var(--profile-paper);
  border:1px solid rgba(17,17,19,.10);
  box-shadow:0 26px 78px rgba(17,17,19,.065);
}
.personProfileV13Document::before{
  content:"";
  position:absolute;
  z-index:5;
  top:0;
  right:0;
  left:0;
  height:3px;
  background:var(--franceGradient);
}

.personProfileV13Eyebrow,
.personProfileV13SectionLabel{
  margin:0;
  color:#73747b;
  font-family:var(--profile-sans);
  font-size:12px;
  font-weight:800;
  letter-spacing:.105em;
  line-height:1.45;
  text-transform:uppercase;
}

/* Hero ------------------------------------------------------------------- */
.personProfileV13Hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) clamp(390px,24vw,470px);
  min-height:590px;
  border-bottom:1px solid var(--profile-line);
}
.personProfileV13HeroCopy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(66px,6vw,104px) clamp(64px,7vw,120px);
}
.personProfileV13Hero h1{
  max-width:1050px;
  margin:18px 0 18px;
  color:var(--profile-ink);
  font-family:var(--profile-serif);
  font-size:clamp(68px,6.2vw,104px);
  font-weight:700;
  letter-spacing:-.055em;
  line-height:.94;
  text-wrap:balance;
}
.personProfileV13Thesis{
  max-width:930px;
  margin:0;
  color:var(--profile-ink);
  font-family:var(--profile-serif);
  font-size:clamp(26px,2.1vw,36px);
  font-weight:650;
  letter-spacing:-.025em;
  line-height:1.22;
  text-wrap:balance;
}
.personProfileV13HeroSummary{
  max-width:78ch;
  margin:28px 0 0;
  color:var(--profile-body);
  font-family:var(--profile-sans);
  font-size:18px;
  line-height:1.74;
}
.personProfileV13HeroMeta{
  display:flex;
  flex-wrap:wrap;
  gap:10px 24px;
  margin-top:32px;
  padding-top:22px;
  border-top:1px solid var(--profile-line);
  color:#56575d;
  font-family:var(--profile-sans);
  font-size:14px;
  font-weight:700;
  line-height:1.5;
}
.personProfileV13HeroMeta span + span::before{
  content:"·";
  margin-right:24px;
  color:#a2a3a8;
}
.personProfileV13Portrait{
  display:flex;
  flex-direction:column;
  justify-content:center;
  margin:0;
  padding:42px 44px 30px;
  background:#f0efeb;
  border-left:1px solid var(--profile-line);
}
.personProfileV13Portrait a{
  display:block;
  overflow:hidden;
  aspect-ratio:3/4;
  background:#d8d7d3;
  box-shadow:0 16px 42px rgba(17,17,19,.12);
}
.personProfileV13Portrait picture,
.personProfileV13Portrait img{
  display:block;
  width:100%;
  height:100%;
}
.personProfileV13Portrait img{
  object-fit:cover;
  object-position:center top;
  filter:saturate(.82) contrast(1.025);
}
.personProfileV13Portrait figcaption{
  margin-top:11px;
  color:#73747a;
  font-family:var(--profile-sans);
  font-size:12px;
  font-weight:650;
  line-height:1.45;
  text-align:right;
}

/* Navigation de section -------------------------------------------------- */
.personProfileV13Nav{
  position:sticky;
  z-index:25;
  top:var(--headerH);
  display:flex;
  align-items:center;
  gap:0;
  min-height:58px;
  overflow-x:auto;
  padding:0 clamp(38px,5vw,82px);
  background:rgba(255,255,255,.97);
  border-bottom:1px solid var(--profile-line);
  box-shadow:0 10px 24px rgba(17,17,19,.035);
  scrollbar-width:thin;
}
.personProfileV13Nav > span{
  flex:0 0 auto;
  margin-right:18px;
  padding-right:22px;
  color:#77787e;
  font-family:var(--profile-sans);
  font-size:12px;
  font-weight:800;
  letter-spacing:.08em;
  line-height:1;
  text-transform:uppercase;
  border-right:1px solid var(--profile-line);
}
.personProfileV13Nav a{
  position:relative;
  flex:0 0 auto;
  padding:20px 17px 18px;
  color:#55565c;
  font-family:var(--profile-sans);
  font-size:14px;
  font-weight:700;
  line-height:1.2;
  text-decoration:none;
  white-space:nowrap;
}
.personProfileV13Nav a::after{
  content:"";
  position:absolute;
  right:16px;
  bottom:0;
  left:16px;
  height:3px;
  background:transparent;
}
.personProfileV13Nav a:hover,
.personProfileV13Nav a[aria-current="true"]{
  color:var(--profile-ink);
}
.personProfileV13Nav a[aria-current="true"]::after{
  background:var(--profile-ink);
}

/* Colonne de lecture + rail secondaire ---------------------------------- */
.personProfileV13Layout{
  display:grid;
  grid-template-columns:minmax(0,980px) minmax(310px,360px);
  justify-content:center;
  align-items:start;
  gap:clamp(58px,5.5vw,96px);
  padding:0 clamp(54px,6vw,105px);
}
.personProfileV13Article{
  min-width:0;
}
.personProfileV13Article > section{
  padding:78px 0 82px;
  border-bottom:1px solid var(--profile-line);
  scroll-margin-top:calc(var(--headerH) + 82px);
}
.personProfileV13Article > section:last-child{
  border-bottom:0;
}
.personProfileV13Article h2{
  max-width:880px;
  margin:13px 0 30px;
  color:var(--profile-ink);
  font-family:var(--profile-serif);
  font-size:clamp(43px,3.5vw,56px);
  font-weight:700;
  letter-spacing:-.04em;
  line-height:1.04;
  text-wrap:balance;
}
.personProfileV13Article h3{
  margin:0;
  color:var(--profile-ink);
  font-family:var(--profile-serif);
  font-size:25px;
  font-weight:700;
  letter-spacing:-.02em;
  line-height:1.22;
}
.personProfileV13Article p,
.personProfileV13Article li{
  color:var(--profile-body);
  font-family:var(--profile-sans);
  font-size:18px;
  line-height:1.76;
}
.personProfileV13SectionIntro{
  max-width:78ch;
  margin:0 0 34px;
  color:#505158!important;
}

/* Le vrai paragraphe éditorial — priorité n°1 --------------------------- */
.personProfileV13Opening{
  padding-top:84px!important;
}
.personProfileV13EditorialText{
  max-width:78ch;
}
.personProfileV13EditorialText p{
  margin:0 0 25px;
  color:#292a2f;
  font-family:var(--profile-serif);
  font-size:clamp(21px,1.55vw,24px);
  line-height:1.66;
}
.personProfileV13EditorialText p:first-child::first-letter{
  float:left;
  margin:7px 10px 0 0;
  color:var(--profile-ink);
  font-family:var(--profile-serif);
  font-size:64px;
  font-weight:700;
  line-height:.76;
}
.personProfileV13Why{
  max-width:820px;
  margin-top:39px;
  padding:24px 28px 25px;
  background:var(--profile-soft);
  border-left:4px solid var(--profile-ink);
}
.personProfileV13Why span{
  display:block;
  margin-bottom:8px;
  color:#6a6b70;
  font-family:var(--profile-sans);
  font-size:12px;
  font-weight:800;
  letter-spacing:.08em;
  line-height:1.4;
  text-transform:uppercase;
}
.personProfileV13Why p{
  margin:0;
  color:var(--profile-ink);
  font-family:var(--profile-serif);
  font-size:21px;
  font-weight:650;
  line-height:1.45;
}

/* Parcours --------------------------------------------------------------- */
.personProfileV13Timeline{
  margin-top:8px;
  border-top:2px solid var(--profile-ink);
}
.personProfileV13Timeline article{
  display:grid;
  grid-template-columns:155px minmax(0,1fr);
  gap:34px;
  padding:27px 0 29px;
  border-bottom:1px solid var(--profile-line);
}
.personProfileV13Timeline time{
  color:var(--profile-ink);
  font-family:var(--profile-serif);
  font-size:28px;
  font-weight:700;
  letter-spacing:-.025em;
  line-height:1.05;
}
.personProfileV13Timeline p{
  margin:0;
  color:#414249;
  font-size:18px;
  line-height:1.67;
}
.personProfileV13Offices{
  display:grid;
  grid-template-columns:190px minmax(0,1fr);
  gap:32px;
  margin-top:32px;
  padding:25px 28px;
  background:var(--profile-soft);
}
.personProfileV13Offices strong{
  color:var(--profile-ink);
  font-family:var(--profile-serif);
  font-size:21px;
  line-height:1.3;
}
.personProfileV13Offices ul{
  display:flex;
  flex-wrap:wrap;
  gap:8px 24px;
  margin:0;
  padding:0;
  list-style:none;
}
.personProfileV13Offices li{
  position:relative;
  padding-left:17px;
  font-size:16px;
  line-height:1.55;
}
.personProfileV13Offices li::before{
  content:"";
  position:absolute;
  top:.72em;
  left:0;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--profile-ink);
}
.personProfileV13SourceNote,
.personProfileV13PartyLink{
  margin:18px 0 0!important;
  color:#6b6c72!important;
  font-size:14px!important;
  line-height:1.6!important;
}
.personProfileV13SourceNote a,
.personProfileV13PartyLink a{
  color:var(--profile-ink);
  font-weight:750;
  text-underline-offset:4px;
}

/* Ligne politique -------------------------------------------------------- */
.personProfileV13EditorialLead{
  max-width:78ch;
  margin:0 0 36px;
  color:var(--profile-ink)!important;
  font-family:var(--profile-serif)!important;
  font-size:23px!important;
  font-weight:650;
  letter-spacing:-.01em;
  line-height:1.56!important;
}
.personProfileV13PositionList{
  margin:0;
  padding:0;
  list-style:none;
  border-top:2px solid var(--profile-ink);
}
.personProfileV13PositionList li{
  display:grid;
  grid-template-columns:58px minmax(0,1fr);
  gap:24px;
  padding:26px 0 28px;
  border-bottom:1px solid var(--profile-line);
}
.personProfileV13PositionList > li > span{
  color:#9a9ba0;
  font-family:var(--profile-serif);
  font-size:23px;
  font-weight:650;
  line-height:1.25;
}
.personProfileV13PositionList h3{
  margin:0 0 6px;
  font-size:23px;
}
.personProfileV13PositionList p{
  margin:0;
  color:#35363b;
  font-size:18px;
  line-height:1.68;
}
.personProfileV13Themes{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:25px;
}
.personProfileV13Themes span{
  padding:8px 11px;
  background:var(--profile-soft);
  color:#54555b;
  font-family:var(--profile-sans);
  font-size:13px;
  font-weight:700;
  line-height:1.3;
}

/* Repères documentés ----------------------------------------------------- */
.personProfileV13EvidenceList{
  border-top:2px solid var(--profile-ink);
}
.personProfileV13EvidenceList article{
  padding:34px 0 38px;
  border-bottom:1px solid var(--profile-line);
}
.personProfileV13EvidenceMeta{
  display:flex;
  justify-content:space-between;
  gap:22px;
  margin-bottom:13px;
  color:#6b6c72;
  font-family:var(--profile-sans);
  font-size:12px;
  font-weight:800;
  letter-spacing:.07em;
  line-height:1.45;
  text-transform:uppercase;
}
.personProfileV13EvidenceList h3{
  margin-bottom:17px;
  font-size:30px;
}
.personProfileV13EvidenceClaim{
  max-width:76ch;
  margin:0 0 17px;
  padding-left:22px;
  border-left:3px solid var(--profile-ink);
  color:var(--profile-ink)!important;
  font-family:var(--profile-serif)!important;
  font-size:21px!important;
  font-weight:650;
  line-height:1.5!important;
}
.personProfileV13EvidenceList article > p:not(.personProfileV13EvidenceClaim){
  max-width:78ch;
  margin:0 0 15px;
  font-size:17px;
  line-height:1.72;
}
.personProfileV13EvidenceList details{
  max-width:78ch;
  margin-top:16px;
  padding:0;
  border-top:1px dashed #c9c8c3;
}
.personProfileV13EvidenceList summary{
  padding:15px 0 5px;
  color:#4f5056;
  font-family:var(--profile-sans);
  font-size:14px;
  font-weight:750;
  cursor:pointer;
}
.personProfileV13EvidenceList details p{
  margin:9px 0 0;
  color:#65666c;
  font-size:14px;
  line-height:1.65;
}
.personProfileV13EvidenceSource{
  display:inline-flex;
  gap:7px;
  margin-top:18px;
  color:var(--profile-ink);
  font-family:var(--profile-sans);
  font-size:14px;
  font-weight:800;
  line-height:1.45;
  text-underline-offset:4px;
}

/* Sources et méthode ----------------------------------------------------- */
.personProfileV13Bibliography{
  margin:0;
  padding:0;
  list-style:none;
  border-top:2px solid var(--profile-ink);
}
.personProfileV13Bibliography li{
  display:grid;
  grid-template-columns:205px minmax(0,1fr);
  gap:32px;
  padding:23px 0 25px;
  border-bottom:1px solid var(--profile-line);
}
.personProfileV13BibliographyMeta{
  display:grid;
  align-content:start;
  gap:7px;
  color:#727379;
  font-family:var(--profile-sans);
  font-size:12px;
  font-weight:750;
  line-height:1.45;
}
.personProfileV13Bibliography li > div:last-child > a{
  color:var(--profile-ink);
  font-family:var(--profile-serif);
  font-size:20px;
  font-weight:650;
  line-height:1.36;
  text-decoration-thickness:1px;
  text-underline-offset:4px;
  overflow-wrap:anywhere;
}
.personProfileV13Bibliography li > div:last-child > p{
  margin:8px 0 0;
  color:#66676d;
  font-size:14px;
  line-height:1.55;
}
.personProfileV13Method{
  margin-top:34px;
  background:var(--profile-soft);
  border:1px solid #dfded9;
}
.personProfileV13Method > summary{
  padding:20px 23px;
  color:var(--profile-ink);
  font-family:var(--profile-sans);
  font-size:16px;
  font-weight:800;
  line-height:1.45;
  cursor:pointer;
}
.personProfileV13Method > div{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border-top:1px solid #dfded9;
}
.personProfileV13Method section{
  padding:23px;
  border-right:1px solid #dfded9;
}
.personProfileV13Method section:last-child{
  border-right:0;
}
.personProfileV13Method h3{
  margin-bottom:10px;
  font-size:21px;
}
.personProfileV13Method p{
  margin:0;
  color:#55565c;
  font-size:14px;
  line-height:1.65;
}

/* Rail de repères -------------------------------------------------------- */
.personProfileV13Sidebar{
  min-width:0;
  padding-top:82px;
}
.personProfileV13SidebarInner{
  position:sticky;
  top:calc(var(--headerH) + 78px);
  overflow:hidden;
  background:var(--profile-soft);
  border:1px solid #dfded9;
}
.personProfileV13Sidebar section{
  padding:28px 28px 30px;
  border-bottom:1px solid #dfded9;
}
.personProfileV13Sidebar section:last-child{
  border-bottom:0;
}
.personProfileV13Sidebar h2{
  margin:10px 0 20px;
  color:var(--profile-ink);
  font-family:var(--profile-serif);
  font-size:28px;
  font-weight:700;
  letter-spacing:-.025em;
  line-height:1.1;
}
.personProfileV13Identity dl{
  margin:0;
}
.personProfileV13Identity dl div{
  padding:15px 0;
  border-top:1px solid #deddd8;
}
.personProfileV13Identity dt{
  color:#6c6d73;
  font-family:var(--profile-sans);
  font-size:12px;
  font-weight:800;
  letter-spacing:.055em;
  line-height:1.4;
  text-transform:uppercase;
}
.personProfileV13Identity dd{
  margin:7px 0 0;
  color:var(--profile-ink);
  font-family:var(--profile-sans);
  font-size:16px;
  font-weight:700;
  line-height:1.5;
}
.personProfileV13Identity dd a{
  color:inherit;
  text-underline-offset:3px;
}
.personProfileV13CurrentRole > p:not(.personProfileV13SectionLabel){
  margin:0;
  color:var(--profile-ink);
  font-family:var(--profile-serif);
  font-size:20px;
  font-weight:650;
  line-height:1.43;
}
.personProfileV13CurrentRole small{
  display:block;
  margin-top:14px;
  color:#62636a;
  font-family:var(--profile-sans);
  font-size:13px;
  line-height:1.62;
}
.personProfileV13CurrentRole > a{
  display:inline-flex;
  gap:6px;
  margin-top:16px;
  color:var(--profile-ink);
  font-family:var(--profile-sans);
  font-size:13px;
  font-weight:800;
  line-height:1.45;
  text-underline-offset:4px;
}
.personProfileV13ThemeRail ul{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0;
  padding:0;
  list-style:none;
}
.personProfileV13ThemeRail li{
  padding:7px 9px;
  background:#fff;
  border:1px solid #dddcd7;
  color:#55565c;
  font-size:13px;
  font-weight:700;
  line-height:1.35;
}

/* Profils liés et pied de notice ---------------------------------------- */
.personProfileV13Related{
  padding:66px clamp(54px,6vw,105px) 72px;
  background:#faf9f7;
  border-top:1px solid var(--profile-line);
}
.personProfileV13RelatedHead{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);
  gap:60px;
  align-items:end;
  padding-bottom:27px;
  border-bottom:1px solid var(--profile-line);
}
.personProfileV13RelatedHead h2{
  max-width:800px;
  margin:12px 0 0;
  color:var(--profile-ink);
  font-family:var(--profile-serif);
  font-size:clamp(38px,3.4vw,52px);
  font-weight:700;
  letter-spacing:-.04em;
  line-height:1.02;
  text-wrap:balance;
}
.personProfileV13RelatedHead > p{
  margin:0;
  color:#5b5c62;
  font-size:16px;
  line-height:1.68;
}
.personProfileV13RelatedGrid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin-top:27px;
  border-top:2px solid var(--profile-ink);
}
.personProfileV13RelatedGrid .peopleEncyclopediaRelatedCard{
  padding:27px 28px 29px 0;
  border-right:1px solid var(--profile-line);
  border-bottom:1px solid var(--profile-line);
}
.personProfileV13RelatedGrid .peopleEncyclopediaRelatedCard + .peopleEncyclopediaRelatedCard{
  padding-left:28px;
}
.personProfileV13RelatedGrid .peopleEncyclopediaRelatedCard:last-child{
  border-right:0;
}
.personProfileV13RelatedGrid .peopleEncyclopediaRelatedCard > p{
  color:#74757b;
  font-size:12px;
  line-height:1.45;
}
.personProfileV13RelatedGrid .peopleEncyclopediaRelatedCard h3{
  margin:15px 0 11px;
  font-family:var(--profile-serif);
  font-size:29px;
  line-height:1.08;
}
.personProfileV13RelatedGrid .peopleEncyclopediaRelatedCard > span{
  color:#55565c;
  font-size:15px;
  line-height:1.66;
}
.personProfileV13Footer{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:18px 26px;
  padding:30px clamp(54px,6vw,105px);
  background:#111214;
  color:#fff;
}
.personProfileV13Footer .btn{
  border-radius:0;
  background:#fff;
  color:#111214;
  border-color:#fff;
}
.personProfileV13Footer > a:not(.btn){
  color:rgba(255,255,255,.72);
  font-size:13px;
  font-weight:750;
  line-height:1.45;
  text-underline-offset:4px;
}

@media (max-width:1450px){
  .personProfileV13Hero{
    grid-template-columns:minmax(0,1fr) 390px;
  }
  .personProfileV13HeroCopy{
    padding-inline:72px;
  }
  .personProfileV13Layout{
    grid-template-columns:minmax(0,860px) minmax(290px,325px);
    gap:54px;
    padding-inline:58px;
  }
}

@media (max-width:1180px){
  .personProfileV13Hero{
    grid-template-columns:minmax(0,1fr) 340px;
    min-height:0;
  }
  .personProfileV13HeroCopy{
    padding:58px 48px;
  }
  .personProfileV13Hero h1{
    font-size:clamp(58px,6.8vw,78px);
  }
  .personProfileV13Thesis{
    font-size:clamp(24px,2.4vw,30px);
  }
  .personProfileV13Portrait{
    padding:30px 31px 23px;
  }
  .personProfileV13Layout{
    grid-template-columns:minmax(0,1fr) 300px;
    gap:42px;
    padding-inline:44px;
  }
  .personProfileV13Article h2{
    font-size:clamp(40px,4vw,49px);
  }
  .personProfileV13EditorialText p{
    font-size:21px;
  }
  .personProfileV13Sidebar section{
    padding-inline:23px;
  }
}

@media (max-width:980px){
  .personProfileV13Hero{
    grid-template-columns:1fr;
  }
  .personProfileV13Portrait{
    padding:28px;
    border-top:1px solid var(--profile-line);
    border-left:0;
  }
  .personProfileV13Portrait a,
  .personProfileV13Portrait figcaption{
    width:min(100%,430px);
    margin-inline:auto;
  }
  .personProfileV13Portrait figcaption{
    margin-top:10px;
  }
  .personProfileV13Layout{
    grid-template-columns:1fr;
    gap:0;
    padding-inline:46px;
  }
  .personProfileV13Sidebar{
    padding:0 0 64px;
  }
  .personProfileV13SidebarInner{
    position:static;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .personProfileV13Sidebar section{
    border-right:1px solid #dfded9;
    border-bottom:0;
  }
  .personProfileV13Sidebar section:last-child{
    border-right:0;
  }
  .personProfileV13Method > div{
    grid-template-columns:1fr;
  }
  .personProfileV13Method section{
    border-right:0;
    border-bottom:1px solid #dfded9;
  }
  .personProfileV13Method section:last-child{
    border-bottom:0;
  }
}

@media (max-width:760px){
  .peopleEncyclopediaProfile.personProfileV13{
    padding-top:14px;
  }
  .personProfileV13 .shell{
    padding-inline:12px;
  }
  .personProfileV13HeroCopy{
    padding:46px 26px 41px;
  }
  .personProfileV13Hero h1{
    margin-top:14px;
    font-size:clamp(48px,12vw,66px);
    line-height:.98;
  }
  .personProfileV13Thesis{
    font-size:24px;
    line-height:1.28;
  }
  .personProfileV13HeroSummary{
    margin-top:22px;
    font-size:17px;
    line-height:1.7;
  }
  .personProfileV13HeroMeta{
    display:grid;
    gap:7px;
    margin-top:24px;
    font-size:13px;
  }
  .personProfileV13HeroMeta span + span::before{
    display:none;
  }
  .personProfileV13Portrait{
    padding:19px;
  }
  .personProfileV13Nav{
    padding-inline:20px;
  }
  .personProfileV13Nav > span{
    display:none;
  }
  .personProfileV13Nav a{
    padding:17px 13px 15px;
    font-size:13px;
  }
  .personProfileV13Nav a::after{
    right:12px;
    left:12px;
  }
  .personProfileV13Layout{
    padding-inline:22px;
  }
  .personProfileV13Article > section{
    padding:56px 0 60px;
  }
  .personProfileV13Opening{
    padding-top:60px!important;
  }
  .personProfileV13Article h2{
    margin-bottom:24px;
    font-size:38px;
    line-height:1.07;
  }
  .personProfileV13Article p,
  .personProfileV13Article li{
    font-size:17px;
    line-height:1.72;
  }
  .personProfileV13EditorialText p{
    font-size:20px;
    line-height:1.64;
  }
  .personProfileV13EditorialText p:first-child::first-letter{
    font-size:56px;
  }
  .personProfileV13Why{
    padding:21px 22px;
  }
  .personProfileV13Why p{
    font-size:19px;
  }
  .personProfileV13Timeline article{
    grid-template-columns:92px minmax(0,1fr);
    gap:18px;
    padding:23px 0 25px;
  }
  .personProfileV13Timeline time{
    font-size:24px;
  }
  .personProfileV13Timeline p{
    font-size:16px;
  }
  .personProfileV13Offices{
    grid-template-columns:1fr;
    gap:12px;
    padding:22px;
  }
  .personProfileV13EditorialLead{
    font-size:21px!important;
  }
  .personProfileV13PositionList li{
    grid-template-columns:42px minmax(0,1fr);
    gap:14px;
    padding:22px 0 24px;
  }
  .personProfileV13PositionList p{
    font-size:17px;
  }
  .personProfileV13EvidenceMeta{
    align-items:flex-start;
    flex-direction:column;
    gap:5px;
  }
  .personProfileV13EvidenceList h3{
    font-size:27px;
  }
  .personProfileV13EvidenceClaim{
    font-size:19px!important;
  }
  .personProfileV13Bibliography li{
    grid-template-columns:1fr;
    gap:10px;
  }
  .personProfileV13BibliographyMeta{
    display:flex;
    justify-content:space-between;
    gap:18px;
  }
  .personProfileV13SidebarInner{
    grid-template-columns:1fr;
  }
  .personProfileV13Sidebar section{
    border-right:0;
    border-bottom:1px solid #dfded9;
  }
  .personProfileV13Sidebar section:last-child{
    border-bottom:0;
  }
  .personProfileV13Related{
    padding:50px 22px 55px;
  }
  .personProfileV13RelatedHead{
    grid-template-columns:1fr;
    gap:18px;
  }
  .personProfileV13RelatedHead h2{
    font-size:38px;
  }
  .personProfileV13RelatedGrid{
    grid-template-columns:1fr;
  }
  .personProfileV13RelatedGrid .peopleEncyclopediaRelatedCard,
  .personProfileV13RelatedGrid .peopleEncyclopediaRelatedCard + .peopleEncyclopediaRelatedCard{
    padding:24px 0;
    border-right:0;
  }
  .personProfileV13Footer{
    align-items:stretch;
    flex-direction:column;
    padding:25px 22px;
  }
  .personProfileV13Footer .btn{
    justify-content:center;
    width:100%;
  }
}

@media (max-width:420px){
  .personProfileV13HeroCopy{
    padding-inline:21px;
  }
  .personProfileV13Layout{
    padding-inline:18px;
  }
  .personProfileV13Article h2{
    font-size:34px;
  }
  .personProfileV13EditorialText p{
    font-size:19px;
  }
  .personProfileV13Timeline article{
    grid-template-columns:78px minmax(0,1fr);
    gap:13px;
  }
}

/* ========================================================================== 
   V14 — Fiches encyclopédiques : priorité au portrait éditorial
   Une seule hiérarchie de lecture, un vrai texte d'ouverture, peu de cadres.
   ========================================================================== */

.personProfileV14{
  --v14-ink:#151516;
  --v14-text:#303035;
  --v14-muted:#66666d;
  --v14-rule:#dcdad5;
  --v14-soft:#f4f2ee;
  --v14-soft-blue:#f1f5f8;
  --v14-serif:Georgia, "Times New Roman", serif;
  --v14-sans:"Aptos", "Helvetica Neue", Helvetica, Arial, system-ui, sans-serif;
  padding:30px 0 104px;
  color:var(--v14-ink);
  font-family:var(--v14-sans);
}
.personProfileV14 .shell{
  width:min(100%,var(--max));
  max-width:var(--max);
}
.personProfileV14Document{
  position:relative;
  overflow:hidden;
  background:#fff;
  border:1px solid rgba(21,21,22,.10);
  box-shadow:0 28px 84px rgba(21,21,22,.07);
}
.personProfileV14Document::before{
  content:"";
  position:absolute;
  z-index:5;
  top:0;
  right:0;
  left:0;
  height:3px;
  background:var(--franceGradient);
}

/* Hero : peu d'éléments, beaucoup de hiérarchie. */
.personProfileV14Hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) clamp(330px,22vw,410px);
  min-height:500px;
  border-bottom:1px solid var(--v14-rule);
}
.personProfileV14HeroCopy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-width:0;
  padding:clamp(64px,6vw,104px) clamp(56px,7vw,118px);
}
.personProfileV14Eyebrow,
.personProfileV14SectionLabel,
.personProfileV14AsideLabel{
  margin:0;
  color:var(--v14-muted);
  font-family:var(--v14-sans);
  font-size:13px;
  font-weight:800;
  letter-spacing:.105em;
  line-height:1.35;
  text-transform:uppercase;
}
.personProfileV14Hero h1{
  max-width:1000px;
  margin:19px 0 0;
  color:var(--v14-ink);
  font-family:var(--v14-serif);
  font-size:clamp(62px,5.8vw,96px);
  font-weight:700;
  letter-spacing:-.048em;
  line-height:.96;
  text-wrap:balance;
}
.personProfileV14Subtitle{
  margin:22px 0 0;
  color:var(--v14-ink);
  font-family:var(--v14-serif);
  font-size:clamp(23px,1.75vw,30px);
  font-weight:700;
  letter-spacing:-.022em;
  line-height:1.25;
}
.personProfileV14HeroSummary{
  max-width:74ch;
  margin:24px 0 0;
  color:var(--v14-text);
  font-size:18px;
  line-height:1.72;
}
.personProfileV14HeroMeta{
  display:flex;
  flex-wrap:wrap;
  gap:9px 28px;
  margin-top:30px;
  padding-top:21px;
  border-top:1px solid var(--v14-rule);
  color:#505057;
  font-size:14px;
  font-weight:700;
  line-height:1.5;
}
.personProfileV14HeroMeta span{
  position:relative;
}
.personProfileV14HeroMeta span + span::before{
  content:"";
  position:absolute;
  top:.55em;
  left:-16px;
  width:4px;
  height:4px;
  border-radius:50%;
  background:#a8a7a2;
}
.personProfileV14Portrait{
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  margin:0;
  padding:38px 42px 30px;
  background:var(--v14-soft);
  border-left:1px solid var(--v14-rule);
}
.personProfileV14Portrait a{
  display:block;
  width:100%;
  max-width:320px;
  text-decoration:none;
}
.personProfileV14Portrait picture,
.personProfileV14Portrait img{
  display:block;
  width:100%;
}
.personProfileV14Portrait img{
  height:auto;
}
.personProfileV14Portrait img{
  aspect-ratio:2/3;
  object-fit:cover;
  background:#d9d8d4;
  box-shadow:0 16px 42px rgba(20,20,22,.14);
}
.personProfileV14Portrait figcaption{
  width:100%;
  max-width:320px;
  margin-top:11px;
  color:#75757b;
  font-size:12px;
  font-weight:700;
  letter-spacing:.065em;
  line-height:1.4;
  text-align:right;
  text-transform:uppercase;
}

/* La phrase forte crée un point d'entrée avant le long texte. */
.personProfileV14Signature{
  display:grid;
  grid-template-columns:150px minmax(0,1fr);
  align-items:start;
  gap:34px;
  padding:31px clamp(56px,7vw,118px) 34px;
  background:#111214;
  color:#fff;
}
.personProfileV14Signature > span{
  padding-top:7px;
  color:rgba(255,255,255,.56);
  font-size:13px;
  font-weight:800;
  letter-spacing:.10em;
  line-height:1.4;
  text-transform:uppercase;
}
.personProfileV14Signature p{
  max-width:1050px;
  margin:0;
  font-family:var(--v14-serif);
  font-size:clamp(24px,2vw,34px);
  font-weight:700;
  letter-spacing:-.025em;
  line-height:1.32;
  text-wrap:balance;
}

/* Corps : une vraie colonne éditoriale et un seul rail secondaire. */
.personProfileV14Layout{
  display:grid;
  grid-template-columns:minmax(0,850px) minmax(290px,330px);
  justify-content:center;
  align-items:start;
  gap:clamp(64px,6.8vw,112px);
  padding:0 clamp(52px,6.5vw,110px) 88px;
}
.personProfileV14Main{
  min-width:0;
}
.personProfileV14Opening{
  padding:82px 0 76px;
  border-bottom:1px solid var(--v14-rule);
}
.personProfileV14Opening h2,
.personProfileV14Section h2,
.personProfileV14Related h2{
  color:var(--v14-ink);
  font-family:var(--v14-serif);
  font-weight:700;
  letter-spacing:-.036em;
  text-wrap:balance;
}
.personProfileV14Opening h2{
  max-width:820px;
  margin:17px 0 30px;
  font-size:clamp(43px,3.4vw,58px);
  line-height:1.07;
}
.personProfileV14EditorialCopy{
  max-width:790px;
}
.personProfileV14EditorialCopy p{
  margin:0;
  color:var(--v14-text);
  font-family:var(--v14-serif);
  font-size:20px;
  letter-spacing:-.008em;
  line-height:1.78;
}
.personProfileV14EditorialCopy p:first-child{
  color:#242428;
  font-size:22px;
  line-height:1.70;
}
.personProfileV14EditorialCopy p + p{
  margin-top:24px;
}

.personProfileV14Section{
  padding:72px 0 76px;
  border-bottom:1px solid var(--v14-rule);
}
.personProfileV14Section:last-child{
  border-bottom:0;
}
.personProfileV14SectionHeader{
  max-width:790px;
  margin-bottom:34px;
}
.personProfileV14SectionHeader h2{
  margin:15px 0 18px;
  font-size:clamp(37px,2.8vw,48px);
  line-height:1.09;
}
.personProfileV14SectionHeader > p:last-child{
  max-width:72ch;
  margin:0;
  color:var(--v14-muted);
  font-size:18px;
  line-height:1.72;
}

/* Chronologie : des lignes, pas une grille de cartes. */
.personProfileV14Timeline{
  list-style:none;
  margin:0;
  padding:0;
  border-top:2px solid var(--v14-ink);
}
.personProfileV14Timeline li{
  display:grid;
  grid-template-columns:128px minmax(0,1fr);
  gap:30px;
  align-items:start;
  padding:25px 0 27px;
  border-bottom:1px solid var(--v14-rule);
}
.personProfileV14Timeline time{
  color:var(--v14-ink);
  font-family:var(--v14-serif);
  font-size:25px;
  font-weight:700;
  letter-spacing:-.025em;
  line-height:1.25;
}
.personProfileV14Timeline p{
  margin:0;
  color:var(--v14-text);
  font-size:18px;
  line-height:1.67;
}
.personProfileV14Offices{
  display:grid;
  grid-template-columns:180px minmax(0,1fr);
  gap:30px;
  margin-top:30px;
  padding:25px 28px;
  background:var(--v14-soft);
  border-left:3px solid var(--v14-ink);
}
.personProfileV14Offices h3{
  margin:0;
  font-family:var(--v14-serif);
  font-size:19px;
  line-height:1.35;
}
.personProfileV14Offices ul{
  margin:0;
  padding-left:20px;
}
.personProfileV14Offices li{
  color:var(--v14-text);
  font-size:16px;
  line-height:1.65;
}
.personProfileV14Offices li + li{
  margin-top:4px;
}
.personProfileV14SourceNote,
.personProfileV14PartyLink,
.personProfileV14Themes{
  margin:20px 0 0;
  color:var(--v14-muted);
  font-size:14px;
  line-height:1.65;
}
.personProfileV14SourceNote a,
.personProfileV14PartyLink a{
  color:var(--v14-ink);
  font-weight:750;
  text-underline-offset:4px;
}

/* Positionnement : une série d'axes hiérarchisés. */
.personProfileV14Axes{
  margin:0;
  border-top:2px solid var(--v14-ink);
}
.personProfileV14Axes > div{
  display:grid;
  grid-template-columns:minmax(180px,220px) minmax(0,1fr);
  gap:34px;
  padding:27px 0 29px;
  border-bottom:1px solid var(--v14-rule);
}
.personProfileV14Axes dt{
  margin:0;
  color:var(--v14-ink);
  font-family:var(--v14-serif);
  font-size:19px;
  font-weight:700;
  line-height:1.38;
}
.personProfileV14Axes dd{
  margin:0;
  color:var(--v14-text);
  font-size:18px;
  line-height:1.68;
}
.personProfileV14Distinction{
  margin-top:30px;
  padding:24px 27px 26px;
  background:var(--v14-soft-blue);
  border-top:3px solid var(--accentA);
}
.personProfileV14Distinction strong{
  display:block;
  margin-bottom:8px;
  font-family:var(--v14-serif);
  font-size:19px;
}
.personProfileV14Distinction p{
  margin:0;
  color:#3c4248;
  font-size:16px;
  line-height:1.68;
}
.personProfileV14Themes strong{
  color:var(--v14-ink);
}

/* Documents : une pile verticale lisible, sans mosaïque. */
.personProfileV14Evidence{
  border-top:2px solid var(--v14-ink);
}
.personProfileV14Evidence > article{
  padding:32px 0 35px;
  border-bottom:1px solid var(--v14-rule);
}
.personProfileV14EvidenceMeta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  color:var(--v14-muted);
  font-size:13px;
  font-weight:800;
  letter-spacing:.065em;
  line-height:1.4;
  text-transform:uppercase;
}
.personProfileV14Evidence h3{
  max-width:760px;
  margin:15px 0 17px;
  font-family:var(--v14-serif);
  font-size:27px;
  font-weight:700;
  letter-spacing:-.025em;
  line-height:1.22;
}
.personProfileV14Evidence p{
  max-width:74ch;
  margin:0;
  color:var(--v14-text);
  font-size:17px;
  line-height:1.72;
}
.personProfileV14Evidence p + p{
  margin-top:13px;
}
.personProfileV14EvidenceClaim{
  color:var(--v14-ink) !important;
  font-family:var(--v14-serif);
  font-size:19px !important;
  font-weight:700;
  line-height:1.58 !important;
}
.personProfileV14Evidence details{
  max-width:74ch;
  margin-top:18px;
  padding-top:15px;
  border-top:1px dashed #cbc9c3;
}
.personProfileV14Evidence summary,
.personProfileV14Method summary{
  cursor:pointer;
  color:var(--v14-ink);
  font-size:14px;
  font-weight:800;
  line-height:1.5;
}
.personProfileV14Evidence details p{
  margin-top:12px;
  color:var(--v14-muted);
  font-size:15px;
}
.personProfileV14External{
  display:inline-flex;
  gap:7px;
  margin-top:20px;
  color:var(--v14-ink);
  font-size:14px;
  font-weight:800;
  line-height:1.5;
  text-underline-offset:4px;
}

/* Bibliographie : compacte, mais jamais microscopique. */
.personProfileV14Sources{
  list-style:none;
  margin:0;
  padding:0;
  border-top:2px solid var(--v14-ink);
}
.personProfileV14Sources li{
  display:grid;
  grid-template-columns:minmax(0,1fr) 190px;
  gap:28px;
  align-items:start;
  padding:22px 0 24px;
  border-bottom:1px solid var(--v14-rule);
}
.personProfileV14Sources a{
  color:var(--v14-ink);
  font-family:var(--v14-serif);
  font-size:18px;
  font-weight:700;
  line-height:1.42;
  text-underline-offset:4px;
}
.personProfileV14Sources li > div > p{
  margin:7px 0 0;
  color:var(--v14-muted);
  font-size:14px;
  line-height:1.55;
}
.personProfileV14SourceMeta{
  margin:2px 0 0;
  color:var(--v14-muted);
  font-size:13px;
  font-weight:750;
  line-height:1.5;
  text-align:right;
}
.personProfileV14Method{
  margin-top:28px;
  padding:20px 22px;
  background:var(--v14-soft);
}
.personProfileV14Method > div{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  margin-top:19px;
  background:#d8d6d0;
}
.personProfileV14Method section{
  padding:20px;
  background:#fff;
}
.personProfileV14Method h3{
  margin:0 0 9px;
  font-family:var(--v14-serif);
  font-size:18px;
  line-height:1.35;
}
.personProfileV14Method p{
  margin:0;
  color:var(--v14-muted);
  font-size:14px;
  line-height:1.62;
}

/* Rail latéral : une seule carte compacte, en retrait de l'article. */
.personProfileV14Aside{
  padding-top:82px;
}
.personProfileV14AsideInner{
  position:sticky;
  top:calc(var(--headerH) + 28px);
  display:grid;
  gap:18px;
}
.personProfileV14Facts,
.personProfileV14Role{
  padding:27px 28px 29px;
  background:var(--v14-soft);
  border-top:3px solid var(--v14-ink);
}
.personProfileV14Facts h2,
.personProfileV14Role h2{
  margin:11px 0 20px;
  font-family:var(--v14-serif);
  font-size:26px;
  font-weight:700;
  letter-spacing:-.025em;
  line-height:1.12;
}
.personProfileV14Facts dl{
  margin:0;
}
.personProfileV14Facts dl > div{
  padding:14px 0 15px;
  border-top:1px solid #d5d3cd;
}
.personProfileV14Facts dt{
  color:var(--v14-muted);
  font-size:13px;
  font-weight:800;
  letter-spacing:.045em;
  line-height:1.45;
  text-transform:uppercase;
}
.personProfileV14Facts dd{
  margin:6px 0 0;
  color:var(--v14-ink);
  font-size:16px;
  font-weight:700;
  line-height:1.5;
}
.personProfileV14Facts dd a{
  text-underline-offset:3px;
}
.personProfileV14Role{
  background:#111214;
  color:#fff;
  border-top-color:var(--accentB);
}
.personProfileV14Role .personProfileV14AsideLabel{
  color:rgba(255,255,255,.55);
}
.personProfileV14Role h2{
  color:#fff;
}
.personProfileV14Role > p{
  margin:0;
  color:#fff;
  font-family:var(--v14-serif);
  font-size:20px;
  font-weight:700;
  line-height:1.48;
}
.personProfileV14Role small{
  display:block;
  margin-top:15px;
  color:rgba(255,255,255,.68);
  font-size:13px;
  line-height:1.58;
}
.personProfileV14Role > a{
  display:inline-flex;
  gap:7px;
  margin-top:18px;
  color:rgba(255,255,255,.86);
  font-size:13px;
  font-weight:800;
  line-height:1.5;
  text-underline-offset:4px;
}

/* Pages voisines : simple prolongement de lecture. */
.personProfileV14Related{
  padding:66px clamp(52px,6.5vw,110px) 72px;
  background:#faf9f7;
  border-top:1px solid var(--v14-rule);
}
.personProfileV14Related > header{
  max-width:820px;
}
.personProfileV14Related h2{
  margin:14px 0 0;
  font-size:clamp(35px,2.7vw,47px);
  line-height:1.08;
}
.personProfileV14RelatedGrid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin-top:31px;
  border-top:2px solid var(--v14-ink);
}
.personProfileV14 .peopleEncyclopediaRelatedCard{
  min-width:0;
  padding:25px 28px 28px 0;
  border-right:1px solid var(--v14-rule);
  border-bottom:1px solid var(--v14-rule);
}
.personProfileV14 .peopleEncyclopediaRelatedCard + .peopleEncyclopediaRelatedCard{
  padding-left:28px;
}
.personProfileV14 .peopleEncyclopediaRelatedCard:last-child{
  border-right:0;
}
.personProfileV14 .peopleEncyclopediaRelatedCard > p{
  margin:0;
  color:var(--v14-muted);
  font-size:13px;
  font-weight:800;
  letter-spacing:.075em;
  line-height:1.4;
  text-transform:uppercase;
}
.personProfileV14 .peopleEncyclopediaRelatedCard h3{
  margin:13px 0 10px;
  font-family:var(--v14-serif);
  font-size:27px;
  font-weight:700;
  letter-spacing:-.025em;
  line-height:1.12;
}
.personProfileV14 .peopleEncyclopediaRelatedCard h3 a{
  text-decoration:none;
}
.personProfileV14 .peopleEncyclopediaRelatedCard h3 a:hover{
  text-decoration:underline;
  text-underline-offset:5px;
}
.personProfileV14 .peopleEncyclopediaRelatedCard > span{
  display:block;
  color:#55555c;
  font-size:15px;
  line-height:1.65;
}
.personProfileV14Footer{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:18px 28px;
  padding:30px clamp(52px,6.5vw,110px);
  background:#111214;
  color:#fff;
}
.personProfileV14Footer .btn{
  border-radius:0;
  background:#fff;
  color:#111214;
  border-color:#fff;
}
.personProfileV14Footer > a:not(.btn){
  color:rgba(255,255,255,.76);
  font-size:14px;
  font-weight:750;
  line-height:1.45;
  text-underline-offset:4px;
}

@media (max-width:1320px){
  .personProfileV14Hero{
    grid-template-columns:minmax(0,1fr) 350px;
  }
  .personProfileV14HeroCopy{
    padding-inline:58px;
  }
  .personProfileV14Layout{
    grid-template-columns:minmax(0,780px) minmax(280px,310px);
    gap:54px;
    padding-inline:44px;
  }
  .personProfileV14Related,
  .personProfileV14Footer{
    padding-inline:44px;
  }
}

@media (max-width:1080px){
  .personProfileV14Hero{
    grid-template-columns:minmax(0,1fr) 310px;
    min-height:450px;
  }
  .personProfileV14HeroCopy{
    padding:52px 42px;
  }
  .personProfileV14Hero h1{
    font-size:clamp(52px,6.2vw,72px);
  }
  .personProfileV14HeroSummary{
    font-size:17px;
  }
  .personProfileV14Portrait{
    padding:27px 28px 23px;
  }
  .personProfileV14Signature{
    grid-template-columns:130px minmax(0,1fr);
    padding-inline:42px;
  }
  .personProfileV14Layout{
    grid-template-columns:minmax(0,820px);
    gap:0;
    padding-inline:42px;
  }
  .personProfileV14Aside{
    padding:0 0 72px;
  }
  .personProfileV14AsideInner{
    position:static;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .personProfileV14Related,
  .personProfileV14Footer{
    padding-inline:42px;
  }
}

@media (max-width:780px){
  .personProfileV14{
    padding:14px 0 70px;
  }
  .personProfileV14 .shell{
    padding-inline:12px;
  }
  .personProfileV14Hero{
    grid-template-columns:1fr;
    min-height:0;
  }
  .personProfileV14HeroCopy{
    padding:43px 27px 38px;
  }
  .personProfileV14Hero h1{
    margin-top:15px;
    font-size:clamp(46px,12vw,65px);
    line-height:1;
  }
  .personProfileV14Subtitle{
    margin-top:17px;
    font-size:22px;
  }
  .personProfileV14HeroSummary{
    margin-top:20px;
    font-size:17px;
    line-height:1.68;
  }
  .personProfileV14HeroMeta{
    display:grid;
    gap:7px;
    margin-top:24px;
    padding-top:17px;
    font-size:13px;
  }
  .personProfileV14HeroMeta span + span::before{
    display:none;
  }
  .personProfileV14Portrait{
    padding:24px 22px 19px;
    border-top:1px solid var(--v14-rule);
    border-left:0;
  }
  .personProfileV14Portrait a,
  .personProfileV14Portrait figcaption{
    width:min(76vw,310px);
  }
  .personProfileV14Signature{
    grid-template-columns:1fr;
    gap:10px;
    padding:25px 25px 28px;
  }
  .personProfileV14Signature > span{
    padding:0;
  }
  .personProfileV14Signature p{
    font-size:24px;
    line-height:1.38;
  }
  .personProfileV14Layout{
    padding:0 24px 60px;
  }
  .personProfileV14Opening{
    padding:55px 0 54px;
  }
  .personProfileV14Opening h2{
    margin:14px 0 24px;
    font-size:clamp(35px,9vw,44px);
    line-height:1.1;
  }
  .personProfileV14EditorialCopy p,
  .personProfileV14EditorialCopy p:first-child{
    font-size:18px;
    line-height:1.75;
  }
  .personProfileV14EditorialCopy p + p{
    margin-top:20px;
  }
  .personProfileV14Section{
    padding:54px 0 57px;
  }
  .personProfileV14SectionHeader{
    margin-bottom:28px;
  }
  .personProfileV14SectionHeader h2{
    margin:13px 0 16px;
    font-size:35px;
    line-height:1.1;
  }
  .personProfileV14SectionHeader > p:last-child{
    font-size:17px;
    line-height:1.7;
  }
  .personProfileV14Timeline li{
    grid-template-columns:82px minmax(0,1fr);
    gap:17px;
    padding:21px 0 23px;
  }
  .personProfileV14Timeline time{
    font-size:22px;
  }
  .personProfileV14Timeline p{
    font-size:16.5px;
  }
  .personProfileV14Offices{
    grid-template-columns:1fr;
    gap:12px;
    padding:22px;
  }
  .personProfileV14Axes > div{
    grid-template-columns:1fr;
    gap:8px;
    padding:23px 0 25px;
  }
  .personProfileV14Axes dt{
    font-size:19px;
  }
  .personProfileV14Axes dd{
    font-size:17px;
  }
  .personProfileV14Distinction{
    padding:21px 22px 23px;
  }
  .personProfileV14EvidenceMeta{
    align-items:flex-start;
    flex-direction:column;
    gap:4px;
  }
  .personProfileV14Evidence h3{
    font-size:25px;
  }
  .personProfileV14Evidence p{
    font-size:16.5px;
  }
  .personProfileV14Sources li{
    grid-template-columns:1fr;
    gap:8px;
  }
  .personProfileV14SourceMeta{
    text-align:left;
  }
  .personProfileV14Method > div{
    grid-template-columns:1fr;
  }
  .personProfileV14Aside{
    padding-bottom:56px;
  }
  .personProfileV14AsideInner{
    grid-template-columns:1fr;
  }
  .personProfileV14Related{
    padding:49px 24px 55px;
  }
  .personProfileV14Related h2{
    font-size:35px;
  }
  .personProfileV14RelatedGrid{
    grid-template-columns:1fr;
  }
  .personProfileV14 .peopleEncyclopediaRelatedCard,
  .personProfileV14 .peopleEncyclopediaRelatedCard + .peopleEncyclopediaRelatedCard{
    padding:23px 0 25px;
    border-right:0;
  }
  .personProfileV14Footer{
    align-items:stretch;
    flex-direction:column;
    padding:25px 24px;
  }
  .personProfileV14Footer .btn{
    justify-content:center;
    width:100%;
  }
}

@media (max-width:430px){
  .personProfileV14HeroCopy{
    padding-inline:21px;
  }
  .personProfileV14Hero h1{
    font-size:clamp(42px,13vw,56px);
  }
  .personProfileV14Layout{
    padding-inline:19px;
  }
  .personProfileV14SectionHeader h2,
  .personProfileV14Opening h2,
  .personProfileV14Related h2{
    font-size:33px;
  }
  .personProfileV14Timeline li{
    grid-template-columns:1fr;
    gap:6px;
  }
  .personProfileV14Facts,
  .personProfileV14Role{
    padding:23px;
  }
}
.personProfileV14Portrait img{ height:auto; }

/* V14.2 — le repère institutionnel reste secondaire : une seule carte calme. */
.personProfileV14AsideInner{
  gap:0;
  overflow:hidden;
  background:var(--v14-soft);
  border-top:3px solid var(--v14-ink);
}
.personProfileV14Facts,
.personProfileV14Role{
  background:transparent;
  border-top:0;
}
.personProfileV14Role{
  color:var(--v14-ink);
  border-top:1px solid #d5d3cd;
}
.personProfileV14Role .personProfileV14AsideLabel{
  color:var(--v14-muted);
}
.personProfileV14Role h2,
.personProfileV14Role > p{
  color:var(--v14-ink);
}
.personProfileV14Role small{
  color:var(--v14-muted);
}
.personProfileV14Role > a{
  color:var(--v14-ink);
}

/* ========================================================================== 
   V15 — ACCUEIL ÉDITORIAL ILLUSTRÉ
   Une page d'entrée plus hiérarchisée, plus visuelle et réellement large.
   ========================================================================== */
.route-home .homeMain{
  padding-top:clamp(34px,3.8vw,70px);
}
.homePremiumEyebrow{
  margin:0 0 20px;
  color:rgba(17,17,19,.52);
  font:800 11px/1.4 var(--sans);
  letter-spacing:.15em;
  text-transform:uppercase;
}
.homePremiumHero{
  display:grid;
  grid-template-columns:minmax(0,1.02fr) minmax(520px,.98fr);
  gap:clamp(54px,6vw,112px);
  align-items:center;
  min-height:min(780px,calc(100vh - 120px));
  padding:clamp(28px,3vw,48px) 0 clamp(68px,6vw,112px);
  border-bottom:1px solid var(--line);
}
.homePremiumHeroCopy{
  max-width:850px;
}
.homePremiumHeroCopy::before{
  content:"";
  display:block;
  width:116px;
  height:4px;
  margin-bottom:34px;
  background:linear-gradient(90deg,#0055a4 0 33.33%,#f7f4ee 33.33% 66.66%,#ef4135 66.66% 100%);
  box-shadow:0 0 0 1px rgba(17,17,19,.05);
}
.homePremiumHero h1{
  max-width:13ch;
  margin:0;
  color:#111113;
  font:650 clamp(62px,5.75vw,108px)/.91 var(--serif);
  letter-spacing:-.064em;
  text-wrap:balance;
}
.homePremiumHeroLead{
  max-width:69ch;
  margin:30px 0 0;
  color:rgba(17,17,19,.69);
  font-size:clamp(17px,1.16vw,20px);
  line-height:1.72;
}
.homePremiumHeroLead strong{ color:#111113; font-weight:760; }
.homePremiumHeroActions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:18px 26px;
  margin-top:34px;
}
.homePremiumPrimary{
  min-height:56px;
  padding-inline:25px;
  background:#111113;
  color:#fff;
}
.homePremiumTextLink{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:12px 0;
  color:#111113;
  font-size:14px;
  font-weight:780;
  text-decoration:none;
  border-bottom:1px solid rgba(17,17,19,.24);
}
.homePremiumTextLink:hover{ border-bottom-color:#111113; }
.homePremiumHeroFoot{
  display:flex;
  flex-wrap:wrap;
  gap:10px 24px;
  margin-top:38px;
  padding-top:20px;
  border-top:1px solid rgba(17,17,19,.12);
  color:rgba(17,17,19,.56);
  font-size:12.5px;
  font-weight:700;
}
.homePremiumHeroFoot span{
  position:relative;
  padding-left:16px;
}
.homePremiumHeroFoot span::before{
  content:"";
  position:absolute;
  left:0;
  top:.55em;
  width:5px;
  height:5px;
  border-radius:50%;
  background:#0055a4;
}
.homePremiumHeroFoot span:nth-child(3n)::before{ background:#ef4135; }
.homePremiumHeroVisual{
  position:relative;
  margin:0;
}
.homePremiumHeroVisual::before{
  content:"";
  position:absolute;
  inset:8% -5% -8% 13%;
  z-index:-1;
  border-radius:50%;
  background:radial-gradient(circle,rgba(0,85,164,.11),rgba(239,65,53,.04) 46%,transparent 72%);
  filter:blur(18px);
}
.homePremiumHeroVisual img{
  display:block;
  width:100%;
  height:auto;
  border-radius:20px;
  box-shadow:0 34px 88px rgba(17,17,19,.18);
}

.homePremiumProof{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr)) minmax(170px,.72fr);
  align-items:stretch;
  margin:0;
  border-bottom:1px solid var(--line);
}
.homePremiumProof article,
.homePremiumProof > a{
  min-width:0;
  padding:30px clamp(18px,2vw,34px);
  border-right:1px solid var(--line);
}
.homePremiumProof article:first-child{ padding-left:0; }
.homePremiumProof article strong{
  display:block;
  margin-bottom:8px;
  color:#111113;
  font:650 clamp(28px,2.2vw,40px)/1 var(--serif);
  letter-spacing:-.04em;
}
.homePremiumProof article span{
  display:block;
  color:rgba(17,17,19,.57);
  font-size:12.5px;
  line-height:1.45;
}
.homePremiumProof > a{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border-right:0;
  color:#111113;
  font-size:12px;
  font-weight:800;
  text-decoration:none;
}
.homePremiumProof > a:hover{ background:rgba(17,17,19,.035); }

.homePremiumEditorial{
  display:grid;
  grid-template-columns:minmax(0,1.04fr) minmax(480px,.96fr);
  gap:clamp(70px,7vw,132px);
  align-items:center;
  padding:clamp(92px,8vw,150px) 0;
}
.homePremiumEditorialCopy h2,
.homePremiumAxes h2,
.homePremiumMethod h2,
.homePremiumConclusion h2{
  max-width:18ch;
  margin:0;
  color:#111113;
  font:650 clamp(44px,4.1vw,72px)/.98 var(--serif);
  letter-spacing:-.052em;
  text-wrap:balance;
}
.homePremiumEditorialCopy > p:not(.homePremiumEyebrow):not(.homePremiumStandfirst),
.homePremiumAxes > div > p:not(.homePremiumEyebrow):not(.homePremiumStandfirst),
.homePremiumMethodCopy > p:not(.homePremiumEyebrow):not(.homePremiumStandfirst){
  max-width:72ch;
  margin:18px 0 0;
  color:rgba(17,17,19,.68);
  font-size:16.5px;
  line-height:1.78;
}
.homePremiumStandfirst{
  max-width:64ch;
  margin:28px 0 0;
  color:#222226;
  font:520 clamp(20px,1.55vw,25px)/1.55 var(--serif);
  letter-spacing:-.018em;
}
.homePremiumSteps{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
  margin-top:42px;
  border-top:1px solid #111113;
  border-bottom:1px solid var(--line);
}
.homePremiumSteps article{
  min-width:0;
  padding:25px 22px 27px 0;
  border-right:1px solid var(--line);
}
.homePremiumSteps article+article{ padding-left:22px; }
.homePremiumSteps article:last-child{ border-right:0; }
.homePremiumSteps span{
  display:block;
  margin-bottom:22px;
  color:rgba(17,17,19,.36);
  font:650 28px/1 var(--serif);
}
.homePremiumSteps h3{
  margin:0 0 9px;
  font:650 23px/1.05 var(--serif);
}
.homePremiumSteps p{
  margin:0;
  color:rgba(17,17,19,.58);
  font-size:12.5px;
  line-height:1.6;
}
.homePremiumEditorialVisual{
  margin:0;
}
.homePremiumEditorialVisual img{
  display:block;
  width:100%;
  height:auto;
  border-radius:18px;
  box-shadow:0 30px 80px rgba(17,17,19,.11);
}
.homePremiumEditorialVisual figcaption{
  margin-top:15px;
  color:rgba(17,17,19,.48);
  font-size:12px;
  line-height:1.5;
  text-align:right;
}

.homePremiumAxes{
  display:grid;
  grid-template-columns:minmax(420px,.82fr) minmax(0,1.18fr);
  gap:clamp(64px,7vw,132px);
  align-items:center;
  margin:0 0 clamp(92px,8vw,150px);
  padding:clamp(52px,5vw,92px);
  border-radius:16px;
  background:#111113;
  color:#fff;
  box-shadow:0 34px 90px rgba(17,17,19,.16);
}
.homePremiumAxes figure{ margin:0; }
.homePremiumAxes figure img{
  display:block;
  width:100%;
  height:auto;
  border-radius:14px;
}
.homePremiumAxes .homePremiumEyebrow{ color:rgba(255,255,255,.48); }
.homePremiumAxes h2{ max-width:14ch; color:#fff; }
.homePremiumAxes .homePremiumStandfirst{ color:rgba(255,255,255,.88); }
.homePremiumAxes > div > p:not(.homePremiumEyebrow):not(.homePremiumStandfirst){ color:rgba(255,255,255,.66); }
.homePremiumAxisLinks{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-top:34px;
}
.homePremiumAxisLinks a{
  display:flex;
  min-height:64px;
  align-items:center;
  padding:16px 18px;
  border:1px solid rgba(255,255,255,.15);
  border-radius:8px;
  color:#fff;
  font-size:12.5px;
  font-weight:750;
  line-height:1.4;
  text-decoration:none;
}
.homePremiumAxisLinks a:hover{ background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.28); }

.homePremiumMethod{
  display:grid;
  grid-template-columns:minmax(0,.95fr) minmax(520px,1.05fr);
  gap:clamp(72px,7vw,132px);
  align-items:center;
  padding:0 0 clamp(96px,8vw,154px);
}
.homePremiumMethodCopy h2{ max-width:16ch; }
.homePremiumMethodLinks{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1px;
  margin-top:38px;
  border:1px solid var(--line);
  background:var(--line);
}
.homePremiumMethodLinks a{
  display:block;
  min-height:112px;
  padding:22px 24px;
  background:#fff;
  text-decoration:none;
}
.homePremiumMethodLinks a:hover{ background:#f8f7f3; }
.homePremiumMethodLinks strong{
  display:block;
  color:#111113;
  font:650 19px/1.1 var(--serif);
}
.homePremiumMethodLinks span{
  display:block;
  margin-top:8px;
  color:rgba(17,17,19,.55);
  font-size:12px;
  line-height:1.45;
}
.homePremiumMethodVisual{ margin:0; }
.homePremiumMethodVisual img{
  display:block;
  width:100%;
  height:auto;
  border-radius:18px;
  box-shadow:0 30px 80px rgba(17,17,19,.10);
}

.homePremiumConclusion{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(360px,.75fr);
  gap:clamp(60px,8vw,160px);
  align-items:start;
  margin-bottom:clamp(78px,7vw,126px);
  padding:clamp(54px,5vw,88px) 0;
  border-top:1px solid #111113;
  border-bottom:1px solid var(--line);
}
.homePremiumConclusion h2{ max-width:15ch; }
.homePremiumConclusion > div:last-child p{
  margin:0 0 26px;
  color:rgba(17,17,19,.67);
  font-size:17px;
  line-height:1.78;
}

/* Aucun libellé individuel sous les portraits : la précision reste générale. */
.peopleEncyclopediaCardMedia > span,
.personProfileV14Portrait figcaption,
.personVisualCaption{
  display:none !important;
}

@media (max-width:1260px){
  .homePremiumHero{
    grid-template-columns:minmax(0,1fr) minmax(430px,.82fr);
    gap:52px;
    min-height:auto;
  }
  .homePremiumHero h1{ font-size:clamp(58px,6.6vw,88px); }
  .homePremiumProof{ grid-template-columns:repeat(4,minmax(0,1fr)); }
  .homePremiumProof > a{ grid-column:1/-1; min-height:62px; border-top:1px solid var(--line); }
  .homePremiumEditorial,
  .homePremiumMethod{ grid-template-columns:minmax(0,1fr) minmax(420px,.88fr); gap:60px; }
  .homePremiumAxes{ grid-template-columns:minmax(360px,.78fr) minmax(0,1.22fr); gap:56px; }
}

@media (max-width:1020px){
  .homePremiumHero,
  .homePremiumEditorial,
  .homePremiumMethod,
  .homePremiumAxes,
  .homePremiumConclusion{
    grid-template-columns:1fr;
  }
  .homePremiumHero{ gap:48px; padding-bottom:74px; }
  .homePremiumHeroCopy{ max-width:900px; }
  .homePremiumHero h1{ max-width:14ch; font-size:clamp(58px,10vw,92px); }
  .homePremiumHeroVisual{ max-width:820px; margin-inline:auto; }
  .homePremiumProof{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .homePremiumProof article:nth-child(2){ border-right:0; }
  .homePremiumProof article:nth-child(-n+2){ border-bottom:1px solid var(--line); }
  .homePremiumEditorial{ gap:54px; }
  .homePremiumEditorialVisual{ max-width:780px; margin-inline:auto; }
  .homePremiumAxes{ padding:54px; }
  .homePremiumAxes figure{ max-width:620px; margin-inline:auto; order:2; }
  .homePremiumAxes > div{ order:1; }
  .homePremiumMethodVisual{ max-width:820px; margin-inline:auto; }
  .homePremiumConclusion{ gap:32px; }
  .homePremiumConclusion > div:last-child{ max-width:760px; }
}

@media (max-width:680px){
  .route-home .homeMain{ padding-top:24px; }
  .homePremiumEyebrow{ margin-bottom:14px; font-size:9.5px; letter-spacing:.12em; }
  .homePremiumHero{ padding:18px 0 54px; gap:34px; }
  .homePremiumHeroCopy::before{ width:90px; height:3px; margin-bottom:24px; }
  .homePremiumHero h1{ font-size:clamp(46px,14vw,66px); line-height:.94; letter-spacing:-.055em; }
  .homePremiumHeroLead{ margin-top:22px; font-size:16.5px; line-height:1.66; }
  .homePremiumHeroActions{ align-items:stretch; margin-top:26px; }
  .homePremiumHeroActions .btn{ width:100%; justify-content:center; }
  .homePremiumTextLink{ font-size:13px; }
  .homePremiumHeroFoot{ gap:8px 16px; margin-top:28px; font-size:11.5px; }
  .homePremiumHeroVisual img{ border-radius:12px; box-shadow:0 22px 54px rgba(17,17,19,.15); }
  .homePremiumProof{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .homePremiumProof article{ padding:22px 14px; }
  .homePremiumProof article:first-child{ padding-left:0; }
  .homePremiumProof article strong{ font-size:27px; }
  .homePremiumProof article span{ font-size:11.5px; }
  .homePremiumEditorial{ padding:72px 0; gap:42px; }
  .homePremiumEditorialCopy h2,
  .homePremiumAxes h2,
  .homePremiumMethod h2,
  .homePremiumConclusion h2{ font-size:clamp(38px,11vw,52px); line-height:1; }
  .homePremiumStandfirst{ margin-top:22px; font-size:19px; line-height:1.5; }
  .homePremiumEditorialCopy > p:not(.homePremiumEyebrow):not(.homePremiumStandfirst),
  .homePremiumAxes > div > p:not(.homePremiumEyebrow):not(.homePremiumStandfirst),
  .homePremiumMethodCopy > p:not(.homePremiumEyebrow):not(.homePremiumStandfirst){ font-size:15.5px; line-height:1.72; }
  .homePremiumSteps{ grid-template-columns:1fr; }
  .homePremiumSteps article,
  .homePremiumSteps article+article{ padding:22px 0; border-right:0; border-bottom:1px solid var(--line); }
  .homePremiumSteps article:last-child{ border-bottom:0; }
  .homePremiumSteps span{ margin-bottom:10px; font-size:22px; }
  .homePremiumEditorialVisual figcaption{ font-size:11px; text-align:left; }
  .homePremiumAxes{ margin-bottom:72px; padding:38px 22px; border-radius:12px; gap:38px; }
  .homePremiumAxisLinks{ grid-template-columns:1fr; }
  .homePremiumMethod{ gap:42px; padding-bottom:78px; }
  .homePremiumMethodLinks{ grid-template-columns:1fr; }
  .homePremiumMethodLinks a{ min-height:94px; padding:19px 20px; }
  .homePremiumConclusion{ margin-bottom:62px; padding:45px 0; }
  .homePremiumConclusion > div:last-child p{ font-size:15.5px; line-height:1.72; }
}

/* ========================================================================== 
   POLITIQUEMENT.ORG — HOME V16
   Direction artistique éditoriale : atlas politique, hiérarchie claire,
   typographie confortable, peu d'ombres, aucune esthétique de dashboard SaaS.
   ========================================================================== */

body.route-home{
  background:
    radial-gradient(circle at 12% 0%, rgba(0,85,164,.045), transparent 28%),
    radial-gradient(circle at 88% 6%, rgba(239,65,53,.035), transparent 24%),
    linear-gradient(180deg, #fbfcff 0%, #f7f9fd 44%, #f5f7fb 100%);
}
.route-home .breadcrumbWrap.isTop,
.route-home .breadcrumbWrap.isBottom{
  display:none;
}
.route-home main.homeMain{
  padding:0 0 clamp(64px,6vw,112px);
}
.route-home .homeMain > .shell{
  padding-inline:clamp(22px,3vw,58px);
}
.route-home .homeMain p,
.route-home .homeMain li,
.route-home .homeMain a,
.route-home .homeMain small,
.route-home .homeMain summary,
.route-home .homeMain div{
  text-rendering:optimizeLegibility;
}

.homeV16Eyebrow{
  margin:0 0 20px;
  color:rgba(17,17,19,.52);
  font-family:var(--sans);
  font-size:12px;
  line-height:1.35;
  font-weight:780;
  letter-spacing:.17em;
  text-transform:uppercase;
}
.homeV16Eyebrow::before{
  content:"";
  display:inline-block;
  width:40px;
  height:2px;
  margin:0 13px 4px 0;
  background:linear-gradient(90deg,#1b6fb5 0 34%,#d7d3cb 34% 66%,#e34a40 66% 100%);
}
.homeV16Standfirst{
  margin:26px 0 0;
  max-width:62ch;
  color:#29292d;
  font-family:var(--serif);
  font-size:clamp(22px,1.55vw,28px);
  line-height:1.48;
  letter-spacing:-.024em;
}
.homeV16Button{
  display:inline-flex;
  min-height:54px;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:14px 22px;
  border:1px solid #111113;
  border-radius:2px;
  color:#111113;
  font-size:14px;
  line-height:1;
  font-weight:760;
  text-decoration:none;
  transition:background .18s ease,color .18s ease,transform .18s ease,border-color .18s ease;
}
.homeV16Button:hover{
  transform:translateY(-1px);
}
.homeV16ButtonPrimary{
  background:#111113;
  color:#fff;
}
.homeV16ButtonPrimary:hover{
  background:#29292d;
}
.homeV16ButtonText{
  border-color:transparent;
  padding-inline:0;
  min-height:auto;
  border-bottom:1px solid rgba(17,17,19,.32);
}
.homeV16ButtonText:hover{
  border-bottom-color:#111113;
}
.homeV16InlineLink{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:30px;
  color:#111113;
  font-size:14px;
  font-weight:760;
  text-decoration:none;
  border-bottom:1px solid rgba(17,17,19,.30);
  padding-bottom:5px;
}
.homeV16InlineLink:hover{ border-bottom-color:#111113; }

/* Ouverture */
.homeV16Hero{
  padding:clamp(48px,5.2vw,94px) 0 0;
}
.homeV16HeroGrid{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(500px,.92fr);
  gap:clamp(64px,6.2vw,122px);
  align-items:center;
}
.homeV16HeroCopy{
  max-width:940px;
}
.homeV16HeroCopy h1{
  max-width:13.8ch;
  margin:0;
  color:#101012;
  font-family:var(--serif);
  font-size:clamp(68px,5.2vw,94px);
  font-weight:650;
  line-height:.93;
  letter-spacing:-.068em;
  text-wrap:balance;
}
.homeV16HeroCopy h1 span{
  display:block;
  color:#55545a;
  font-weight:520;
}
.homeV16HeroLead{
  max-width:66ch;
  margin:32px 0 0;
  color:rgba(17,17,19,.72);
  font-size:clamp(19px,1.18vw,22px);
  line-height:1.62;
}
.homeV16HeroLead strong{ color:#111113; font-weight:780; }
.homeV16HeroActions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:18px 30px;
  margin-top:34px;
}
.homeV16Trust{
  display:flex;
  flex-wrap:wrap;
  gap:10px 26px;
  margin:34px 0 0;
  padding:20px 0 0;
  list-style:none;
  border-top:1px solid rgba(17,17,19,.16);
  color:rgba(17,17,19,.59);
  font-size:13.5px;
  line-height:1.4;
  font-weight:650;
}
.homeV16Trust li{
  position:relative;
  padding-left:14px;
}
.homeV16Trust li::before{
  content:"";
  position:absolute;
  left:0;
  top:.52em;
  width:5px;
  height:5px;
  border-radius:50%;
  background:#1b6fb5;
}
.homeV16Trust li:nth-child(3n)::before{ background:#e34a40; }
.homeV16HeroVisual{
  position:relative;
  margin:0;
}
.homeV16HeroVisual::before{
  content:"";
  position:absolute;
  inset:20px -18px -20px 24px;
  z-index:-1;
  border:1px solid rgba(17,17,19,.13);
}
.homeV16HeroVisual img{
  display:block;
  width:100%;
  height:auto;
  border:1px solid rgba(17,17,19,.35);
  border-radius:3px;
  box-shadow:0 26px 70px rgba(17,17,19,.12);
}

/* Quatre portes d'entrée */
.homeV16Gateways{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  margin-top:clamp(62px,6vw,112px);
  border:1px solid rgba(17,17,19,.14);
  background:rgba(255,255,255,.72);
  backdrop-filter:saturate(118%) blur(3px);
}
.homeV16Gateway{
  position:relative;
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:22px;
  min-height:230px;
  align-items:start;
  padding:31px 30px 32px;
  border-right:1px solid rgba(17,17,19,.16);
  color:#111113;
  text-decoration:none;
  transition:background .2s ease,color .2s ease;
}
.homeV16Gateway:last-child{ border-right:0; }
.homeV16Gateway:hover{ background:#eef3fa; }
.homeV16GatewayFeatured{
  background:#111113;
  color:#fff;
}
.homeV16GatewayFeatured:hover{ background:#29292d; }
.homeV16GatewayIndex{
  padding-top:4px;
  color:rgba(17,17,19,.40);
  font-size:11px;
  font-weight:780;
  letter-spacing:.14em;
}
.homeV16GatewayFeatured .homeV16GatewayIndex{ color:rgba(255,255,255,.46); }
.homeV16GatewayContent{
  display:block;
}
.homeV16GatewayContent strong{
  display:block;
  max-width:14ch;
  color:inherit;
  font-family:var(--serif);
  font-size:clamp(25px,1.65vw,32px);
  line-height:1.02;
  font-weight:650;
  letter-spacing:-.035em;
}
.homeV16GatewayContent small{
  display:block;
  max-width:32ch;
  margin-top:18px;
  color:rgba(17,17,19,.64);
  font-size:15px;
  line-height:1.62;
}
.homeV16GatewayFeatured .homeV16GatewayContent small{ color:rgba(255,255,255,.67); }
.homeV16GatewayArrow{
  align-self:end;
  color:inherit;
  font-family:var(--serif);
  font-size:28px;
  line-height:1;
}

/* Explication */
.homeV16How{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(420px,.72fr);
  gap:clamp(80px,8vw,164px);
  align-items:start;
  padding:clamp(104px,8vw,158px) 0 clamp(96px,8vw,150px);
  border-bottom:1px solid rgba(17,17,19,.18);
}
.homeV16HowIntro h2,
.homeV16SectionHead h2,
.homeV16MethodCopy h2,
.homeV16FinalIntro h2{
  max-width:18ch;
  margin:0;
  color:#111113;
  font-family:var(--serif);
  font-size:clamp(48px,3.65vw,70px);
  line-height:.99;
  font-weight:650;
  letter-spacing:-.052em;
  text-wrap:balance;
}
.homeV16HowIntro > p:not(.homeV16Eyebrow):not(.homeV16Standfirst),
.homeV16MethodCopy > p:not(.homeV16Eyebrow):not(.homeV16Standfirst),
.homeV16FinalIntro > p:not(.homeV16Eyebrow):not(.homeV16Standfirst){
  max-width:70ch;
  margin:22px 0 0;
  color:rgba(17,17,19,.69);
  font-size:17.5px;
  line-height:1.78;
}
.homeV16Steps{
  margin:0;
  padding:0;
  list-style:none;
  border-top:1px solid #111113;
}
.homeV16Steps li{
  display:grid;
  grid-template-columns:54px 1fr;
  gap:24px;
  min-height:155px;
  align-items:start;
  padding:28px 0;
  border-bottom:1px solid rgba(17,17,19,.16);
}
.homeV16Steps li > span{
  color:rgba(17,17,19,.36);
  font-family:var(--serif);
  font-size:24px;
  line-height:1;
}
.homeV16Steps strong{
  display:block;
  font-family:var(--serif);
  font-size:29px;
  line-height:1.05;
  font-weight:650;
  letter-spacing:-.035em;
}
.homeV16Steps p{
  max-width:42ch;
  margin:10px 0 0;
  color:rgba(17,17,19,.62);
  font-size:15px;
  line-height:1.65;
}

/* Introduction du questionnaire */
.homeV16QuizLead{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(340px,.68fr);
  gap:clamp(60px,8vw,150px);
  align-items:end;
  padding:clamp(92px,7vw,132px) 0 34px;
}
.homeV16QuizLead h2{
  max-width:14ch;
  margin:0;
  font-family:var(--serif);
  font-size:clamp(52px,4vw,76px);
  line-height:.96;
  font-weight:650;
  letter-spacing:-.055em;
}
.homeV16QuizLead > p{
  max-width:53ch;
  margin:0;
  color:rgba(17,17,19,.66);
  font-size:17px;
  line-height:1.72;
}

/* Questionnaire : contenu utile avant le contenant */
.route-home #quiz-card{
  overflow:hidden;
  margin:0 0 clamp(112px,9vw,174px);
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.route-home #quiz-card::before,
.route-home #quiz-card::after{ display:none; }
.route-home #quiz-card .panelHeadDark{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(360px,.62fr);
  gap:clamp(46px,6vw,110px);
  min-height:auto;
  align-items:end;
  padding:clamp(46px,4.5vw,78px) clamp(42px,4.5vw,82px);
  border:0 !important;
  border-radius:3px 3px 0 0 !important;
  background:
    radial-gradient(circle at 90% 20%,rgba(27,111,181,.18),transparent 32%),
    #101012;
  box-shadow:none !important;
}
.route-home #quiz-card .panelHeadDark::before{
  left:clamp(42px,4.5vw,82px);
  right:auto;
  top:0;
  width:116px;
  height:4px;
}
.route-home #quiz-card .panelTitle{
  color:rgba(255,255,255,.48);
  font-family:var(--sans);
  font-size:11px;
  letter-spacing:.16em;
}
.route-home #quiz-card .partyPageTitle{
  max-width:13ch;
  margin-top:18px;
  font-size:clamp(48px,3.5vw,68px);
  line-height:.95;
  letter-spacing:-.055em;
}
.route-home #quiz-card .panelSub{
  max-width:72ch;
  margin-top:18px;
  color:rgba(255,255,255,.68) !important;
  font-size:15.5px;
  line-height:1.7;
}
.route-home #quiz-card .quizTop{
  display:grid;
  gap:18px;
  align-self:center;
}
.route-home #quiz-card .progress{
  width:100%;
  max-width:none;
  height:4px;
  border:0;
  border-radius:0;
  background:rgba(255,255,255,.17);
}
.route-home #quiz-card .statPills{
  justify-content:space-between;
  gap:14px;
}
.route-home #quiz-card .statPill{
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:rgba(255,255,255,.56);
  font-family:var(--sans);
  font-size:12px;
  letter-spacing:.08em;
}
.route-home #quiz-card .statPill strong{ color:#fff; font-size:14px; }
.route-home #quiz-card .panelBody{
  margin:0;
  padding:clamp(42px,5vw,82px);
  border:1px solid rgba(17,17,19,.14);
  border-top:0;
  border-radius:0 0 3px 3px;
  background:#f0f3f8;
  box-shadow:none;
}
.route-home #quiz-card .step{
  max-width:1380px;
  margin-inline:auto;
  padding:clamp(38px,4vw,66px);
  border:1px solid rgba(17,17,19,.15);
  border-radius:2px;
  background:#fff;
  box-shadow:none;
}
.route-home #quiz-card .stepMeta{
  padding-bottom:18px;
  border-bottom:1px solid rgba(17,17,19,.13);
}
.route-home #quiz-card .stepMeta .m{
  font-size:11px;
  letter-spacing:.13em;
}
.route-home #quiz-card .statement{
  max-width:35ch;
  margin-top:clamp(30px,3vw,48px);
  font-size:clamp(34px,2.8vw,52px);
  line-height:1.06;
  letter-spacing:-.045em;
}
.route-home #quiz-card .scale{
  gap:12px;
  margin-top:clamp(32px,3vw,50px);
}
.route-home #quiz-card .opt{
  min-height:86px;
  padding:17px 15px;
  border:1px solid rgba(17,17,19,.16);
  border-radius:2px;
  background:#fcfdff;
  box-shadow:none;
}
.route-home #quiz-card .opt:hover{
  transform:none;
  border-color:rgba(17,17,19,.40);
  background:#fff;
}
.route-home #quiz-card .optNum{
  font-size:17px;
}
.route-home #quiz-card .optLabel{
  font-size:14px;
  line-height:1.35;
}
.route-home #quiz-card .navRow{
  max-width:1380px;
  margin:22px auto 0;
}
.route-home #quiz-card .btn{
  min-height:48px;
  border-radius:2px;
  font-size:13px;
}

/* En-têtes éditoriaux */
.homeV16Explore,
.homeV16People,
.homeV16Parties,
.homeV16Method,
.homeV16Final{
  margin-bottom:clamp(110px,9vw,176px);
}
.homeV16SectionHead{
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(340px,.55fr);
  gap:clamp(62px,8vw,150px);
  align-items:end;
  margin-bottom:clamp(44px,4vw,70px);
  padding-top:24px;
  border-top:1px solid #111113;
}
.homeV16SectionHead h2{ max-width:20ch; }
.homeV16SectionHead > p{
  max-width:52ch;
  margin:0;
  color:rgba(17,17,19,.65);
  font-size:16.5px;
  line-height:1.72;
}

/* Comparatifs et idées */
.homeV16ExploreGrid{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(300px,.55fr) minmax(360px,.72fr);
  gap:24px;
  align-items:stretch;
}
.homeV16CompareLead{
  position:relative;
  min-height:560px;
  padding:40px 42px 44px;
  border:1px solid rgba(17,17,19,.17);
  background:#fff;
}
.homeV16CompareLead::before{
  content:"";
  position:absolute;
  left:-1px;
  right:-1px;
  top:-1px;
  height:4px;
  background:linear-gradient(90deg,#1b6fb5 0 34%,#edf2f8 34% 66%,#e34a40 66% 100%);
}
.homeV16CompareTopline{
  display:flex;
  justify-content:space-between;
  gap:20px;
  color:rgba(17,17,19,.48);
  font-size:10.5px;
  font-weight:780;
  letter-spacing:.15em;
  text-transform:uppercase;
}
.homeV16CompareMonogram{
  display:flex;
  align-items:baseline;
  gap:14px;
  margin:70px 0 24px;
  font-family:var(--serif);
  font-size:clamp(72px,6vw,112px);
  line-height:.78;
  font-weight:650;
  letter-spacing:-.08em;
}
.homeV16CompareMonogram i{
  color:rgba(17,17,19,.25);
  font-size:.48em;
  font-style:normal;
  font-weight:400;
}
.homeV16CompareLead h3{
  max-width:16ch;
  margin:0;
  font-family:var(--serif);
  font-size:clamp(35px,2.6vw,50px);
  line-height:1;
  font-weight:650;
  letter-spacing:-.045em;
}
.homeV16CompareLead > p:not(.homeV16CompareMonogram){
  max-width:56ch;
  margin:22px 0 0;
  color:rgba(17,17,19,.65);
  font-size:16px;
  line-height:1.72;
}
.homeV16CompareLead > a{
  display:inline-flex;
  gap:10px;
  margin-top:34px;
  padding-bottom:5px;
  color:#111113;
  font-size:14px;
  font-weight:780;
  text-decoration:none;
  border-bottom:1px solid rgba(17,17,19,.35);
}
.homeV16CompareStack{
  display:grid;
  grid-template-rows:1fr 1fr auto;
  gap:16px;
}
.homeV16CompareCompact{
  position:relative;
  display:flex;
  flex-direction:column;
  min-height:220px;
  padding:28px;
  border:1px solid rgba(17,17,19,.16);
  background:#f6f8fc;
  color:#111113;
  text-decoration:none;
  transition:background .18s ease,border-color .18s ease;
}
.homeV16CompareCompact:hover{
  background:#fff;
  border-color:rgba(17,17,19,.34);
}
.homeV16CompareLabel{
  color:rgba(17,17,19,.46);
  font-size:10px;
  font-weight:780;
  letter-spacing:.15em;
  text-transform:uppercase;
}
.homeV16CompareCompact strong{
  display:block;
  margin-top:auto;
  font-family:var(--serif);
  font-size:31px;
  line-height:1;
  letter-spacing:-.04em;
}
.homeV16CompareCompact small{
  display:block;
  margin-top:12px;
  color:rgba(17,17,19,.63);
  font-size:14px;
  line-height:1.55;
}
.homeV16CompareCompact em{
  position:absolute;
  right:25px;
  top:24px;
  font-family:var(--serif);
  font-size:24px;
  font-style:normal;
}
.homeV16CompareAll{
  display:flex;
  justify-content:space-between;
  gap:14px;
  padding:17px 2px 4px;
  color:#111113;
  font-size:13.5px;
  font-weight:760;
  text-decoration:none;
  border-bottom:1px solid #111113;
}
.homeV16IdeasIndex{
  padding:38px 38px 28px;
  background:#111113;
  color:#fff;
}
.homeV16IdeasIndex .homeV16Eyebrow{ color:rgba(255,255,255,.46); }
.homeV16IdeasIndex h3{
  max-width:13ch;
  margin:0 0 32px;
  font-family:var(--serif);
  font-size:clamp(34px,2.5vw,48px);
  line-height:1;
  font-weight:650;
  letter-spacing:-.045em;
}
.homeV16IdeasIndex nav{
  border-top:1px solid rgba(255,255,255,.28);
}
.homeV16IdeasIndex nav a{
  display:grid;
  grid-template-columns:36px 1fr auto;
  gap:14px;
  align-items:center;
  min-height:64px;
  border-bottom:1px solid rgba(255,255,255,.16);
  color:#fff;
  text-decoration:none;
}
.homeV16IdeasIndex nav a span{
  color:rgba(255,255,255,.38);
  font-size:10px;
  font-weight:760;
  letter-spacing:.12em;
}
.homeV16IdeasIndex nav a strong{
  font-family:var(--serif);
  font-size:21px;
  font-weight:600;
}
.homeV16IdeasIndex nav a em{
  font-family:var(--serif);
  font-size:21px;
  font-style:normal;
}
.homeV16IdeasIndex nav a:hover strong{ text-decoration:underline; text-underline-offset:5px; }

/* Personnalités : grandes images, aucune pastille parasite */
.homeV16People{
  padding:clamp(72px,6vw,110px) 0 clamp(64px,6vw,100px);
  border-top:1px solid rgba(17,17,19,.18);
  border-bottom:1px solid rgba(17,17,19,.18);
}
.homeV16SectionHeadPeople{ border-top:0; padding-top:0; }
.homeV16PeopleGrid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(22px,2.2vw,40px);
}
.homeV16Person{
  display:block;
  color:#111113;
  text-decoration:none;
}
.homeV16PersonImage{
  display:block;
  overflow:hidden;
  aspect-ratio:4/3;
  background:#dbe1eb;
}
.homeV16PersonImage img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  filter:grayscale(1) contrast(1.02);
  transform:scale(1.002);
  transition:transform .28s ease,filter .28s ease;
}
.homeV16Person:hover .homeV16PersonImage img{
  transform:scale(1.025);
  filter:grayscale(.92) contrast(1.04);
}
.homeV16PersonMeta{
  display:block;
  padding:22px 0 0;
}
.homeV16PersonMeta small{
  display:block;
  color:rgba(17,17,19,.48);
  font-size:11px;
  line-height:1.3;
  font-weight:760;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.homeV16PersonMeta strong{
  display:block;
  margin-top:9px;
  font-family:var(--serif);
  font-size:clamp(27px,1.8vw,35px);
  line-height:1;
  font-weight:650;
  letter-spacing:-.04em;
}
.homeV16PersonMeta em{
  display:block;
  max-width:36ch;
  margin-top:12px;
  color:rgba(17,17,19,.64);
  font-size:15px;
  line-height:1.58;
  font-style:normal;
}
.homeV16PeopleFooter{
  display:flex;
  justify-content:flex-end;
  margin-top:38px;
  padding-top:20px;
  border-top:1px solid rgba(17,17,19,.18);
}
.homeV16PeopleFooter a{
  color:#111113;
  font-size:14px;
  font-weight:760;
  text-decoration:none;
}

/* Index des partis */
.homeV16SectionHeadParties h2{ max-width:17ch; }
.homeV16PartyIndex{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border-top:1px solid #111113;
}
.homeV16PartyIndex a{
  position:relative;
  display:grid;
  grid-template-columns:38px 1fr auto;
  grid-template-areas:"num title arrow" ". family arrow";
  gap:7px 15px;
  min-height:132px;
  align-content:center;
  padding:24px 28px 24px 0;
  border-right:1px solid rgba(17,17,19,.15);
  border-bottom:1px solid rgba(17,17,19,.15);
  color:#111113;
  text-decoration:none;
}
.homeV16PartyIndex a:nth-child(3n){ border-right:0; padding-left:28px; }
.homeV16PartyIndex a:nth-child(3n+2){ padding-left:28px; }
.homeV16PartyIndex a > span{
  grid-area:num;
  color:rgba(17,17,19,.36);
  font-size:10px;
  font-weight:780;
  letter-spacing:.14em;
}
.homeV16PartyIndex a > strong{
  grid-area:title;
  font-family:var(--serif);
  font-size:24px;
  line-height:1.05;
  font-weight:650;
  letter-spacing:-.03em;
}
.homeV16PartyIndex a > small{
  grid-area:family;
  color:rgba(17,17,19,.56);
  font-size:13.5px;
  line-height:1.45;
}
.homeV16PartyIndex a > em{
  grid-area:arrow;
  align-self:center;
  font-family:var(--serif);
  font-size:22px;
  font-style:normal;
}
.homeV16PartyIndex a:hover{ background:#eef3fa; }

/* Méthode */
.homeV16Method{
  display:grid;
  grid-template-columns:minmax(500px,.92fr) minmax(0,1.08fr);
  gap:clamp(70px,7vw,134px);
  align-items:center;
  padding:clamp(50px,5vw,86px);
  border:1px solid rgba(17,17,19,.16);
  background:#fff;
}
.homeV16MethodVisual{ margin:0; }
.homeV16MethodVisual img{
  display:block;
  width:100%;
  height:auto;
  border:1px solid rgba(17,17,19,.14);
}
.homeV16MethodCopy h2{ max-width:15ch; }
.homeV16Principles{
  margin-top:34px;
  border-top:1px solid #111113;
}
.homeV16Principles article{
  display:grid;
  grid-template-columns:42px 1fr;
  gap:18px;
  padding:22px 0;
  border-bottom:1px solid rgba(17,17,19,.15);
}
.homeV16Principles article > span{
  color:rgba(17,17,19,.34);
  font-size:10px;
  font-weight:780;
  letter-spacing:.13em;
}
.homeV16Principles strong{
  font-family:var(--serif);
  font-size:23px;
  font-weight:650;
}
.homeV16Principles p{
  margin:7px 0 0;
  color:rgba(17,17,19,.64);
  font-size:15px;
  line-height:1.6;
}
.homeV16MethodLinks{
  display:flex;
  flex-wrap:wrap;
  gap:10px 22px;
  margin-top:28px;
}
.homeV16MethodLinks a{
  color:#111113;
  font-size:14px;
  font-weight:760;
  text-decoration:none;
  border-bottom:1px solid rgba(17,17,19,.32);
  padding-bottom:4px;
}

/* Conclusion + FAQ */
.homeV16Final{
  display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(520px,1.18fr);
  gap:clamp(78px,8vw,156px);
  align-items:start;
  padding-top:clamp(34px,3vw,54px);
  border-top:1px solid #111113;
}
.homeV16FinalIntro h2{ max-width:14ch; }
.homeV16FinalIntro .homeV16Button{ margin-top:34px; }
.homeV16Faq{
  border-top:1px solid #111113;
}
.homeV16FaqHeading{
  padding:28px 0 22px;
  border-bottom:1px solid rgba(17,17,19,.16);
}
.homeV16FaqHeading .homeV16Eyebrow{ margin-bottom:12px; }
.homeV16FaqHeading h3{
  max-width:18ch;
  margin:0;
  font-family:var(--serif);
  font-size:32px;
  line-height:1.03;
  font-weight:650;
  letter-spacing:-.035em;
}
.homeV16Faq details{
  border-bottom:1px solid rgba(17,17,19,.16);
}
.homeV16Faq summary{
  display:grid;
  grid-template-columns:1fr auto;
  gap:24px;
  align-items:center;
  min-height:64px;
  padding:17px 0;
  color:#111113;
  font-size:15px;
  line-height:1.4;
  font-weight:720;
  cursor:pointer;
  list-style:none;
}
.homeV16Faq summary::-webkit-details-marker{ display:none; }
.homeV16Faq summary span{
  color:rgba(17,17,19,.42);
  font-family:var(--serif);
  font-size:25px;
  font-weight:400;
  transition:transform .18s ease;
}
.homeV16Faq details[open] summary span{ transform:rotate(45deg); }
.homeV16Faq details > div{
  max-width:72ch;
  padding:0 44px 22px 0;
  color:rgba(17,17,19,.64);
  font-size:14.5px;
  line-height:1.68;
}

/* Ajustements généraux de lisibilité sur l'accueil */
.route-home .panelSub,
.route-home .panelBody,
.route-home .faqAns,
.route-home .callout .small,
.route-home .prioIntro,
.route-home .prioItem .t{
  font-size:max(14px,1em);
}
.route-home .miniBadge,
.route-home .panelTitle,
.route-home .stepMeta .m,
.route-home .prioChip{
  font-size:11px;
}

@media (max-width:1420px){
  .homeV16HeroGrid{ grid-template-columns:minmax(0,1.05fr) minmax(460px,.85fr); gap:70px; }
  .homeV16HeroCopy h1{ font-size:clamp(68px,6vw,94px); }
  .homeV16Gateways{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .homeV16Gateway:nth-child(2){ border-right:0; }
  .homeV16Gateway:nth-child(-n+2){ border-bottom:1px solid rgba(17,17,19,.16); }
  .homeV16ExploreGrid{ grid-template-columns:minmax(0,1.05fr) minmax(300px,.65fr); }
  .homeV16IdeasIndex{ grid-column:1/-1; }
  .homeV16IdeasIndex nav{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
  .homeV16IdeasIndex nav a{ padding-inline:18px; border-right:1px solid rgba(255,255,255,.16); }
  .homeV16IdeasIndex nav a:nth-child(3n){ border-right:0; }
}

@media (max-width:1120px){
  .homeV16HeroGrid,
  .homeV16How,
  .homeV16QuizLead,
  .homeV16SectionHead,
  .homeV16Method,
  .homeV16Final{
    grid-template-columns:1fr;
  }
  .homeV16HeroCopy{ max-width:980px; }
  .homeV16HeroCopy h1{ max-width:13ch; }
  .homeV16HeroVisual{ max-width:900px; }
  .homeV16How{ gap:58px; }
  .homeV16Steps{ max-width:820px; }
  .homeV16QuizLead{ gap:24px; }
  .homeV16QuizLead > p{ max-width:68ch; }
  .homeV16SectionHead{ gap:25px; }
  .homeV16SectionHead > p{ max-width:72ch; }
  .route-home #quiz-card .panelHeadDark{ grid-template-columns:1fr; gap:34px; }
  .route-home #quiz-card .quizTop{ max-width:720px; }
  .homeV16PeopleGrid{ grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:50px; }
  .homeV16PartyIndex{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .homeV16PartyIndex a:nth-child(n){ padding-left:0; border-right:1px solid rgba(17,17,19,.15); }
  .homeV16PartyIndex a:nth-child(2n){ padding-left:28px; border-right:0; }
  .homeV16MethodVisual{ max-width:900px; }
  .homeV16Final{ gap:64px; }
}

@media (max-width:760px){
  .route-home .homeMain > .shell{ padding-inline:18px; }
  .homeV16Eyebrow{ margin-bottom:14px; font-size:10px; letter-spacing:.13em; }
  .homeV16Eyebrow::before{ width:28px; margin-right:9px; }
  .homeV16Hero{ padding-top:32px; }
  .homeV16HeroGrid{ gap:38px; }
  .homeV16HeroCopy h1{
    max-width:none;
    font-size:clamp(48px,13vw,66px);
    line-height:.95;
    letter-spacing:-.055em;
  }
  .homeV16HeroLead{ margin-top:24px; font-size:17px; line-height:1.62; }
  .homeV16HeroActions{ display:grid; gap:13px; margin-top:26px; }
  .homeV16Button{ width:100%; min-height:50px; }
  .homeV16ButtonText{ width:max-content; }
  .homeV16Trust{ gap:9px 16px; margin-top:25px; font-size:12.5px; }
  .homeV16HeroVisual::before{ inset:10px -8px -10px 10px; }
  .homeV16Gateways{ grid-template-columns:1fr; margin-top:62px; }
  .homeV16Gateway{
    min-height:170px;
    padding:25px 20px;
    border-right:0;
    border-bottom:1px solid rgba(17,17,19,.16);
  }
  .homeV16Gateway:nth-child(-n+2){ border-bottom:1px solid rgba(17,17,19,.16); }
  .homeV16Gateway:last-child{ border-bottom:0; }
  .homeV16GatewayContent strong{ font-size:27px; }
  .homeV16GatewayContent small{ font-size:13.5px; }
  .homeV16How{ padding:76px 0 74px; gap:44px; }
  .homeV16HowIntro h2,
  .homeV16SectionHead h2,
  .homeV16MethodCopy h2,
  .homeV16FinalIntro h2{
    max-width:none;
    font-size:clamp(39px,10.6vw,54px);
    line-height:1;
  }
  .homeV16Standfirst{ font-size:20px; line-height:1.48; }
  .homeV16HowIntro > p:not(.homeV16Eyebrow):not(.homeV16Standfirst),
  .homeV16MethodCopy > p:not(.homeV16Eyebrow):not(.homeV16Standfirst),
  .homeV16FinalIntro > p:not(.homeV16Eyebrow):not(.homeV16Standfirst){ font-size:16px; line-height:1.72; }
  .homeV16Steps li{ min-height:auto; grid-template-columns:40px 1fr; padding:23px 0; }
  .homeV16Steps strong{ font-size:25px; }
  .homeV16QuizLead{ padding:72px 0 24px; }
  .homeV16QuizLead h2{ max-width:none; font-size:44px; }
  .homeV16QuizLead > p{ font-size:15.5px; }
  .route-home #quiz-card{ margin-bottom:84px; }
  .route-home #quiz-card .panelHeadDark{ padding:42px 22px 34px; border-radius:2px 2px 0 0 !important; }
  .route-home #quiz-card .panelHeadDark::before{ left:22px; width:82px; }
  .route-home #quiz-card .partyPageTitle{ font-size:41px; max-width:none; }
  .route-home #quiz-card .panelSub{ font-size:14.5px; }
  .route-home #quiz-card .panelBody{ padding:18px 12px 24px; }
  .route-home #quiz-card .step{ padding:27px 18px 30px; }
  .route-home #quiz-card .statement{ margin-top:25px; font-size:29px; }
  .route-home #quiz-card .scale{ gap:8px; margin-top:26px; }
  .route-home #quiz-card .opt{ min-height:65px; padding:12px 10px; }
  .route-home #quiz-card .optLabel{ font-size:12.5px; }
  .homeV16Explore,
  .homeV16People,
  .homeV16Parties,
  .homeV16Method,
  .homeV16Final{ margin-bottom:84px; }
  .homeV16SectionHead{ margin-bottom:34px; }
  .homeV16SectionHead > p{ font-size:15.5px; }
  .homeV16ExploreGrid{ grid-template-columns:1fr; }
  .homeV16CompareLead{ min-height:auto; padding:32px 24px 36px; }
  .homeV16CompareMonogram{ margin-top:52px; font-size:76px; }
  .homeV16CompareLead h3{ font-size:38px; }
  .homeV16CompareCompact{ min-height:190px; padding:24px; }
  .homeV16IdeasIndex{ grid-column:auto; padding:32px 24px 24px; }
  .homeV16IdeasIndex nav{ display:block; }
  .homeV16IdeasIndex nav a{ padding-inline:0; border-right:0; }
  .homeV16People{ padding:58px 0 52px; }
  .homeV16PeopleGrid{ grid-template-columns:1fr; gap:42px; }
  .homeV16PersonMeta strong{ font-size:31px; }
  .homeV16PeopleFooter{ justify-content:flex-start; }
  .homeV16PartyIndex{ grid-template-columns:1fr; }
  .homeV16PartyIndex a:nth-child(n){ padding:22px 0; border-right:0; }
  .homeV16PartyIndex a > strong{ font-size:22px; }
  .homeV16Method{ padding:24px 18px 36px; gap:40px; }
  .homeV16Principles article{ grid-template-columns:34px 1fr; }
  .homeV16Final{ gap:54px; }
  .homeV16FaqHeading h3{ font-size:29px; }
  .homeV16Faq summary{ min-height:60px; font-size:14px; }
  .homeV16Faq details > div{ padding-right:0; font-size:14px; }
}

@media (prefers-reduced-motion:reduce){
  .homeV16Button,
  .homeV16Gateway,
  .homeV16PersonImage img,
  .homeV16CompareCompact,
  .homeV16Faq summary span{ transition:none !important; }
}

/* HOME V16.1 — finitions de lisibilité et prévention des collisions historiques */
.route-home .homeV16Method{
  background:#fff;
  color:#111113;
}
.route-home .homeV16MethodCopy h2,
.route-home .homeV16MethodCopy .homeV16Standfirst,
.route-home .homeV16MethodCopy .homeV16Principles strong,
.route-home .homeV16MethodCopy .homeV16Principles p,
.route-home .homeV16MethodCopy .homeV16MethodLinks a{
  color:inherit;
}
.route-home .homeV16MethodCopy .homeV16Standfirst,
.route-home .homeV16MethodCopy .homeV16Principles p{
  color:rgba(17,17,19,.66);
}
.route-home .homeV16MethodCopy .homeV16Eyebrow{
  color:rgba(17,17,19,.52);
}
.route-home .homeV16MethodCopy .homeV16Principles{
  border-top-color:#111113;
}
.route-home .homeV16MethodCopy .homeV16Principles article{
  border-bottom-color:rgba(17,17,19,.15);
}

/* Les micro-informations restent réellement lisibles. */
.route-home .homeV16GatewayIndex,
.route-home .homeV16CompareTopline,
.route-home .homeV16CompareLabel,
.route-home .homeV16IdeasIndex nav a span,
.route-home .homeV16PersonMeta small,
.route-home .homeV16PartyIndex a > span,
.route-home .homeV16Principles article > span,
.route-home #quiz-card .panelTitle,
.route-home #quiz-card .stepMeta .m{
  font-size:12px;
}
.route-home #quiz-card .statPill{
  font-size:12.5px;
}

@media (max-width:760px){
  .route-home .homeV16Eyebrow{
    font-size:11.5px;
    letter-spacing:.12em;
  }
  .route-home .homeV16PeopleGrid{
    display:flex;
    gap:18px;
    overflow-x:auto;
    margin-right:-18px;
    padding:0 18px 12px 0;
    scroll-snap-type:x mandatory;
    scrollbar-width:thin;
    overscroll-behavior-inline:contain;
  }
  .route-home .homeV16Person{
    flex:0 0 min(82vw,320px);
    scroll-snap-align:start;
  }
  .route-home .homeV16PersonMeta strong{
    font-size:29px;
  }
  .route-home .homeV16PeopleFooter{
    margin-top:20px;
  }
}

/* Étape des priorités : même langage éditorial que le nouveau questionnaire. */
.route-home #quiz-card .prioToolbar{
  padding:14px 16px;
  border-radius:2px;
  background:rgba(255,255,255,.96);
  box-shadow:none;
}
.route-home #quiz-card .prioChip,
.route-home #quiz-card .prioBlockTitle,
.route-home #quiz-card .prioBlockMeta{
  font-size:12px;
  letter-spacing:.11em;
}
.route-home #quiz-card .prioNotice{
  font-size:13.5px;
}
.route-home #quiz-card details.prioBlock{
  border-radius:2px;
  box-shadow:none;
}
.route-home #quiz-card .prioItem{
  border-radius:2px;
  min-height:70px;
  box-shadow:none;
  transition:background .14s ease,border-color .14s ease;
}
.route-home #quiz-card .prioItem:hover{
  transform:none;
  box-shadow:none;
}
.route-home #quiz-card .prioItem .t{
  font-size:14px;
  line-height:1.45;
}
.route-home #quiz-card .prioItem.selected{
  box-shadow:none;
}

@media (max-width:760px){
  .route-home .homeV16Eyebrow{ font-size:12px; }
}

/* ========================================================================== 
   POLITIQUEMENT.ORG — HOME V18
   Direction artistique : référence éditoriale contemporaine, large, claire,
   sans teinte beige vieillissante et sans esthétique de landing-page SaaS.
   ========================================================================== */

:root{
  --canvas:#f6f8fc;
  --canvas2:#edf2f8;
  --paper:#ffffff;
  --ink:#10131a;
  --navy:#0a1426;
  --navy2:#111d31;
  --blue:#1f6fb5;
  --red:#df5149;
  --muted:rgba(16,19,26,.68);
  --muted2:rgba(16,19,26,.50);
  --line:rgba(16,19,26,.14);
  --line2:rgba(16,19,26,.08);
  --soft:rgba(31,111,181,.055);
  --max:1840px;
  --serif:"Iowan Old Style", Baskerville, "Times New Roman", Georgia, serif;
  --sans:"Aptos", "Helvetica Neue", Helvetica, Arial, system-ui, sans-serif;
}

body{
  background:
    radial-gradient(circle at 8% -8%, rgba(31,111,181,.055), transparent 27%),
    radial-gradient(circle at 92% -5%, rgba(223,81,73,.035), transparent 24%),
    linear-gradient(180deg,#fbfcff 0,#f6f8fc 430px,#f4f7fb 100%);
}

/* Header plus présent et plus lisible sur tout le site */
.topbar{ background:rgba(8,14,25,.985); box-shadow:0 1px 0 rgba(255,255,255,.08),0 10px 30px rgba(7,13,23,.14); }
.topbarInner{ min-height:78px; padding-block:13px; }
.logoMark{ width:20px; height:28px; border-radius:3px; }
.logoName{ font-size:20px; letter-spacing:-.028em; }
.logoTag{ font-size:9.5px; letter-spacing:.15em; }
.navLink{ padding:13px 15px 12px; font-size:13.5px; }
.nav .cta{ min-height:45px; padding:12px 20px; font-size:13px; border-radius:5px; }

body.route-home{
  background:
    radial-gradient(circle at 9% -6%, rgba(31,111,181,.06), transparent 28%),
    radial-gradient(circle at 92% 0%, rgba(223,81,73,.04), transparent 24%),
    linear-gradient(180deg,#fbfcff 0,#f7f9fd 42%,#f4f7fb 100%);
}
.route-home .breadcrumbWrap.isTop,
.route-home .breadcrumbWrap.isBottom{ display:none; }
.route-home main.homeMain{ padding:0 0 clamp(72px,6vw,120px); }
.route-home .homeMain > .shell{ padding-inline:clamp(24px,3.7vw,70px); }
.route-home .homeMain p,
.route-home .homeMain li,
.route-home .homeMain a,
.route-home .homeMain summary,
.route-home .homeMain small{ text-rendering:optimizeLegibility; }

.homeV18Eyebrow{
  margin:0 0 18px;
  color:rgba(16,19,26,.55);
  font-family:var(--sans);
  font-size:12px;
  line-height:1.35;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.homeV18Eyebrow::before{
  content:"";
  display:inline-block;
  width:42px;
  height:3px;
  margin:0 13px 4px 0;
  background:linear-gradient(90deg,var(--blue) 0 33%,#d9e0ea 33% 67%,var(--red) 67% 100%);
}
.homeV18Standfirst{
  margin:25px 0 0;
  color:#273141;
  font-family:var(--serif);
  font-size:clamp(22px,1.42vw,27px);
  line-height:1.5;
  letter-spacing:-.026em;
}
.homeV18Button{
  display:inline-flex;
  min-height:54px;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:14px 23px;
  border:1px solid #111827;
  border-radius:4px;
  color:#111827;
  font-size:14.5px;
  font-weight:780;
  line-height:1;
  text-decoration:none;
  transition:transform .18s ease,background .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.homeV18Button:hover{ transform:translateY(-2px); }
.homeV18ButtonPrimary{ background:#111827; color:#fff; box-shadow:0 14px 32px rgba(10,20,38,.13); }
.homeV18ButtonPrimary:hover{ background:#1a2940; box-shadow:0 18px 38px rgba(10,20,38,.18); }
.homeV18ButtonSecondary{ border-color:rgba(16,19,26,.22); background:rgba(255,255,255,.62); }
.homeV18ButtonSecondary:hover{ background:#fff; border-color:rgba(16,19,26,.42); }
.homeV18TextLink{
  display:inline-flex;
  align-items:center;
  gap:9px;
  margin-top:30px;
  padding-bottom:5px;
  border-bottom:1px solid rgba(16,19,26,.36);
  color:#10131a;
  font-size:14.5px;
  font-weight:780;
  text-decoration:none;
}
.homeV18TextLink:hover{ border-bottom-color:#10131a; }

/* Hero */
.homeV18Hero{ padding:clamp(54px,5.3vw,96px) 0 0; }
.homeV18HeroGrid{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(520px,.92fr);
  gap:clamp(68px,6.5vw,126px);
  align-items:center;
}
.homeV18HeroCopy{ max-width:930px; }
.homeV18HeroCopy h1{
  max-width:13.2ch;
  margin:0;
  color:#0f141e;
  font-family:var(--serif);
  font-size:clamp(68px,5.35vw,98px);
  font-weight:680;
  line-height:.94;
  letter-spacing:-.064em;
  text-wrap:balance;
}
.homeV18HeroCopy h1 span{ display:block; color:#536071; font-weight:420; font-style:italic; }
.homeV18Lead{
  max-width:64ch;
  margin:31px 0 0;
  color:rgba(16,19,26,.72);
  font-size:clamp(18px,1.15vw,22px);
  line-height:1.67;
}
.homeV18Lead strong{ color:#10131a; font-weight:800; }
.homeV18Actions{ display:flex; flex-wrap:wrap; gap:14px 20px; margin-top:34px; }
.homeV18Proof{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  max-width:820px;
  margin-top:42px;
  border-top:1px solid rgba(16,19,26,.18);
  border-bottom:1px solid rgba(16,19,26,.12);
}
.homeV18Proof div{ min-height:84px; padding:17px 20px 15px 0; border-right:1px solid rgba(16,19,26,.12); }
.homeV18Proof div:not(:first-child){ padding-left:20px; }
.homeV18Proof div:last-child{ border-right:0; }
.homeV18Proof strong{ display:block; font-family:var(--serif); font-size:30px; line-height:1; letter-spacing:-.035em; }
.homeV18Proof span{ display:block; margin-top:8px; color:rgba(16,19,26,.57); font-size:13px; line-height:1.35; }
.homeV18HeroVisual{ position:relative; margin:0; }
.homeV18HeroVisual::before{
  content:"";
  position:absolute;
  inset:26px -24px -26px 30px;
  z-index:-1;
  border:1px solid rgba(31,111,181,.18);
  background:linear-gradient(135deg,rgba(31,111,181,.06),rgba(223,81,73,.035));
}
.homeV18HeroVisual img{
  display:block;
  width:100%;
  height:auto;
  border-radius:8px;
  box-shadow:0 34px 78px rgba(10,20,38,.20);
}

/* Portes d'entrée */
.homeV18Gateways{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  margin-top:clamp(70px,6.5vw,118px);
  border:1px solid rgba(16,19,26,.14);
  background:#fff;
  box-shadow:0 18px 48px rgba(10,20,38,.04);
}
.homeV18Gateway{
  display:grid;
  grid-template-columns:42px 1fr auto;
  gap:18px;
  min-height:188px;
  align-items:start;
  padding:28px 28px 26px;
  border-right:1px solid rgba(16,19,26,.12);
  color:#10131a;
  text-decoration:none;
  transition:background .18s ease,color .18s ease,transform .18s ease;
}
.homeV18Gateway:last-child{ border-right:0; }
.homeV18Gateway:hover{ background:#eef4fb; }
.homeV18GatewayTest{ background:#0c1729; color:#fff; }
.homeV18GatewayTest:hover{ background:#14233a; }
.homeV18GatewayNo{ color:rgba(16,19,26,.38); font-size:11px; font-weight:800; letter-spacing:.13em; }
.homeV18GatewayTest .homeV18GatewayNo{ color:rgba(255,255,255,.42); }
.homeV18Gateway > span:nth-child(2){ display:block; }
.homeV18Gateway strong{ display:block; max-width:14ch; font-family:var(--serif); font-size:clamp(26px,1.55vw,31px); line-height:1.02; letter-spacing:-.038em; }
.homeV18Gateway small{ display:block; max-width:31ch; margin-top:15px; color:rgba(16,19,26,.62); font-size:14.5px; line-height:1.56; }
.homeV18GatewayTest small{ color:rgba(255,255,255,.68); }
.homeV18Gateway i{ align-self:end; font-family:var(--serif); font-size:27px; font-style:normal; }

/* Manifeste */
.homeV18Manifesto{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(430px,.72fr);
  gap:clamp(80px,8vw,160px);
  align-items:start;
  padding:clamp(105px,8vw,156px) 0 clamp(96px,7.5vw,146px);
  border-bottom:1px solid rgba(16,19,26,.16);
}
.homeV18ManifestoCopy h2,
.homeV18SectionHead h2,
.homeV18PeopleHead h2,
.homeV18MethodCopy h2,
.homeV18FinalIntro h2{
  margin:0;
  color:#10131a;
  font-family:var(--serif);
  font-size:clamp(46px,3.4vw,66px);
  line-height:1.01;
  font-weight:680;
  letter-spacing:-.052em;
  text-wrap:balance;
}
.homeV18ManifestoCopy h2{ max-width:19ch; }
.homeV18ManifestoCopy h2 span{ color:#536071; font-weight:420; font-style:italic; }
.homeV18ManifestoCopy > p:not(.homeV18Eyebrow):not(.homeV18Standfirst){
  max-width:72ch;
  margin:22px 0 0;
  color:rgba(16,19,26,.69);
  font-size:17.5px;
  line-height:1.78;
}
.homeV18Principles{ border-top:1px solid #10131a; }
.homeV18Principles article{
  display:grid;
  grid-template-columns:54px 1fr;
  gap:22px;
  min-height:148px;
  padding:27px 0;
  border-bottom:1px solid rgba(16,19,26,.14);
}
.homeV18Principles article > span{ color:rgba(16,19,26,.35); font-family:var(--serif); font-size:25px; line-height:1; }
.homeV18Principles h3{ margin:0; font-family:var(--serif); font-size:29px; line-height:1.05; font-weight:680; letter-spacing:-.035em; }
.homeV18Principles p{ max-width:42ch; margin:10px 0 0; color:rgba(16,19,26,.62); font-size:15.5px; line-height:1.65; }

/* Introduction du quiz */
.homeV18QuizLead{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(430px,.72fr);
  gap:clamp(70px,7vw,142px);
  align-items:end;
  padding:clamp(88px,7vw,132px) 0 35px;
}
.homeV18QuizLead h2{ max-width:15ch; margin:0; font-family:var(--serif); font-size:clamp(50px,3.8vw,72px); line-height:.98; font-weight:680; letter-spacing:-.055em; }
.homeV18QuizIntro p{ max-width:54ch; margin:0; color:rgba(16,19,26,.66); font-size:17px; line-height:1.72; }
.homeV18QuizIntro ul{ display:flex; flex-wrap:wrap; gap:8px 18px; margin:22px 0 0; padding:0; list-style:none; color:rgba(16,19,26,.58); font-size:13.5px; }
.homeV18QuizIntro li::before{ content:""; display:inline-block; width:7px; height:7px; margin:0 8px 1px 0; border-radius:50%; background:var(--blue); }
.homeV18QuizIntro li:nth-child(2)::before{ background:#8b98aa; }
.homeV18QuizIntro li:nth-child(3)::before{ background:var(--red); }

/* Questionnaire V18 */
.route-home #quiz-card{
  overflow:hidden;
  margin:0 0 clamp(110px,8.5vw,168px) !important;
  border:1px solid rgba(16,19,26,.14);
  border-radius:8px;
  background:#fff;
  box-shadow:0 30px 72px rgba(10,20,38,.11);
}
.route-home #quiz-card::before,
.route-home #quiz-card::after{ display:none; }
.route-home #quiz-card .panelHeadDark{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(370px,.58fr);
  gap:clamp(48px,6vw,110px);
  align-items:end;
  min-height:auto;
  padding:clamp(44px,4.3vw,72px) clamp(42px,4.5vw,82px);
  border:0 !important;
  border-radius:0 !important;
  background:
    radial-gradient(circle at 86% 15%,rgba(31,111,181,.20),transparent 36%),
    linear-gradient(135deg,#091426,#111d31);
  box-shadow:none !important;
}
.route-home #quiz-card .panelHeadDark::before{ left:clamp(42px,4.5vw,82px); right:auto; top:0; width:132px; height:5px; }
.route-home #quiz-card .panelTitle{ color:rgba(255,255,255,.52); font-size:12px; letter-spacing:.15em; }
.route-home #quiz-card .partyPageTitle{ max-width:12ch; margin-top:17px; font-size:clamp(46px,3.25vw,64px); line-height:.97; letter-spacing:-.052em; }
.route-home #quiz-card .panelSub{ max-width:68ch; margin-top:17px; color:rgba(255,255,255,.70) !important; font-size:15.5px; line-height:1.68; }
.route-home #quiz-card .quizTop{ display:grid; gap:18px; align-self:center; }
.route-home #quiz-card .progress{ width:100%; height:5px; border:0; border-radius:999px; background:rgba(255,255,255,.16); }
.route-home #quiz-card .statPills{ justify-content:space-between; gap:14px; }
.route-home #quiz-card .statPill{ padding:0; border:0; background:transparent; color:rgba(255,255,255,.60); font-size:13px; letter-spacing:.04em; }
.route-home #quiz-card .statPill strong{ color:#fff; font-size:14.5px; }
.route-home #quiz-card .panelBody{ margin:0; padding:clamp(38px,4.7vw,76px); border:0; border-radius:0; background:#eef3f8; box-shadow:none; }
.route-home #quiz-card .step{ max-width:1420px; margin-inline:auto; padding:clamp(34px,3.8vw,60px); border:1px solid rgba(16,19,26,.13); border-radius:5px; background:#fff; box-shadow:0 14px 34px rgba(10,20,38,.045); }
.route-home #quiz-card .stepMeta{ padding-bottom:18px; border-bottom:1px solid rgba(16,19,26,.12); }
.route-home #quiz-card .stepMeta .m{ font-size:12px; letter-spacing:.12em; }
.route-home #quiz-card .statement{ max-width:37ch; margin-top:clamp(28px,2.8vw,44px); font-size:clamp(32px,2.45vw,48px); line-height:1.08; letter-spacing:-.043em; }
.route-home #quiz-card .scale{ gap:12px; margin-top:clamp(30px,2.8vw,46px); }
.route-home #quiz-card .opt{ min-height:88px; padding:18px 15px; border:1px solid rgba(16,19,26,.15); border-radius:4px; background:#fbfcfe; box-shadow:none; }
.route-home #quiz-card .opt:hover{ transform:translateY(-1px); border-color:rgba(31,111,181,.48); background:#fff; box-shadow:0 9px 24px rgba(10,20,38,.06); }
.route-home #quiz-card .optNum{ font-size:18px; }
.route-home #quiz-card .optLabel{ font-size:14.5px; line-height:1.35; }
.route-home #quiz-card .navRow{ max-width:1420px; margin:23px auto 0; }
.route-home #quiz-card .btn{ min-height:49px; border-radius:4px; font-size:13.5px; }
.route-home #quiz-card p[style*="font-size:12.5px"]{ font-size:14px !important; line-height:1.7 !important; }

/* En-têtes de section */
.homeV18Editorial,
.homeV18Parties,
.homeV18Method,
.homeV18Final{ margin-bottom:clamp(112px,8.5vw,170px); }
.homeV18SectionHead,
.homeV18PeopleHead{
  display:grid;
  grid-template-columns:minmax(0,1.18fr) minmax(360px,.62fr);
  gap:clamp(64px,7vw,142px);
  align-items:end;
  margin-bottom:clamp(43px,4vw,68px);
  padding-top:24px;
  border-top:1px solid #10131a;
}
.homeV18SectionHead h2{ max-width:19ch; }
.homeV18SectionHead > p,
.homeV18PeopleHead > p{ max-width:54ch; margin:0; color:rgba(16,19,26,.65); font-size:16.5px; line-height:1.72; }

/* Comparatifs + idées */
.homeV18EditorialGrid{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(300px,.54fr) minmax(355px,.68fr);
  gap:22px;
  align-items:stretch;
}
.homeV18CompareFeature{
  position:relative;
  min-height:560px;
  padding:40px 42px 44px;
  overflow:hidden;
  border:1px solid rgba(16,19,26,.14);
  background:
    linear-gradient(90deg,rgba(31,111,181,.055) 0 49.8%,rgba(223,81,73,.045) 50.2% 100%),
    #fff;
}
.homeV18CompareFeature::before{ content:""; position:absolute; inset:0 auto 0 50%; width:1px; background:rgba(16,19,26,.11); }
.homeV18CompareFeature::after{ content:""; position:absolute; left:-1px; right:-1px; top:-1px; height:5px; background:linear-gradient(90deg,var(--blue) 0 48%,#e7edf5 48% 52%,var(--red) 52% 100%); }
.homeV18CompareKicker{ display:flex; justify-content:space-between; gap:20px; color:rgba(16,19,26,.48); font-size:11px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.homeV18CompareNames{ position:relative; z-index:1; display:flex; align-items:baseline; gap:22px; margin:72px 0 26px; font-family:var(--serif); }
.homeV18CompareNames b{ font-size:clamp(76px,5.8vw,108px); line-height:.8; letter-spacing:-.075em; }
.homeV18CompareNames i{ color:rgba(16,19,26,.38); font-size:17px; font-weight:400; }
.homeV18CompareFeature h3{ position:relative; z-index:1; max-width:16ch; margin:0; font-family:var(--serif); font-size:clamp(35px,2.45vw,48px); line-height:1.02; font-weight:680; letter-spacing:-.045em; }
.homeV18CompareFeature > p{ position:relative; z-index:1; max-width:57ch; margin:21px 0 0; color:rgba(16,19,26,.66); font-size:16px; line-height:1.72; }
.homeV18CompareFeature > a{ position:relative; z-index:1; display:inline-flex; gap:10px; margin-top:32px; padding-bottom:5px; border-bottom:1px solid rgba(16,19,26,.34); color:#10131a; font-size:14.5px; font-weight:780; text-decoration:none; }
.homeV18CompareSide{ display:grid; grid-template-rows:1fr 1fr auto; gap:14px; }
.homeV18CompareSide > a{ position:relative; display:flex; flex-direction:column; min-height:220px; padding:27px; border:1px solid rgba(16,19,26,.13); background:#fff; color:#10131a; text-decoration:none; transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease; }
.homeV18CompareSide > a:hover{ transform:translateY(-2px); border-color:rgba(31,111,181,.35); box-shadow:0 14px 30px rgba(10,20,38,.06); }
.homeV18CompareSide small{ color:rgba(16,19,26,.48); font-size:11px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.homeV18CompareSide strong{ display:block; margin-top:auto; font-family:var(--serif); font-size:31px; line-height:1; letter-spacing:-.04em; }
.homeV18CompareSide span{ display:block; margin-top:12px; color:rgba(16,19,26,.62); font-size:14px; line-height:1.55; }
.homeV18CompareSide i{ position:absolute; right:24px; top:22px; font-family:var(--serif); font-size:24px; font-style:normal; }
.homeV18CompareSide .homeV18CompareAll{ min-height:auto; display:grid; grid-template-columns:1fr auto; align-items:center; padding:18px 2px 6px; border:0; border-bottom:1px solid #10131a; background:transparent; box-shadow:none; }
.homeV18CompareSide .homeV18CompareAll strong{ margin:0; font-family:var(--sans); font-size:14px; }
.homeV18CompareSide .homeV18CompareAll i{ position:static; }
.homeV18Ideas{ padding:38px 36px 30px; background:#0b1629; color:#fff; }
.homeV18Ideas .homeV18Eyebrow{ color:rgba(255,255,255,.50); }
.homeV18Ideas h3{ max-width:13ch; margin:0 0 30px; font-family:var(--serif); font-size:clamp(34px,2.35vw,46px); line-height:1.02; font-weight:680; letter-spacing:-.045em; }
.homeV18Ideas nav{ border-top:1px solid rgba(255,255,255,.26); }
.homeV18Ideas nav a{ display:grid; grid-template-columns:35px 1fr auto; gap:14px; align-items:center; min-height:64px; border-bottom:1px solid rgba(255,255,255,.15); color:#fff; text-decoration:none; }
.homeV18Ideas nav a span{ color:rgba(255,255,255,.38); font-size:10.5px; font-weight:800; letter-spacing:.11em; }
.homeV18Ideas nav a strong{ font-family:var(--serif); font-size:21px; font-weight:600; }
.homeV18Ideas nav a i{ font-family:var(--serif); font-size:21px; font-style:normal; }
.homeV18Ideas nav a:hover strong{ text-decoration:underline; text-underline-offset:5px; }

/* Biographies */
.homeV18People{
  margin:0 calc(clamp(24px,3.7vw,70px) * -1) clamp(112px,8.5vw,170px);
  padding:clamp(78px,6.5vw,116px) clamp(24px,3.7vw,70px) clamp(70px,6vw,108px);
  background:
    radial-gradient(circle at 90% 12%,rgba(31,111,181,.18),transparent 30%),
    radial-gradient(circle at 8% 96%,rgba(223,81,73,.10),transparent 26%),
    #0b1629;
  color:#fff;
}
.homeV18PeopleHead{ border-top-color:rgba(255,255,255,.42); }
.homeV18PeopleHead h2{ max-width:19ch; color:#fff; }
.homeV18PeopleHead > p{ color:rgba(255,255,255,.66); }
.homeV18People .homeV18Eyebrow{ color:rgba(255,255,255,.52); }
.homeV18PeopleGrid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(20px,2vw,36px); }
.homeV18Person{ color:#fff; text-decoration:none; }
.homeV18PersonImage{ display:block; overflow:hidden; aspect-ratio:4/3; background:#1a263a; }
.homeV18PersonImage img{ display:block; width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.04); transition:transform .28s ease,filter .28s ease; }
.homeV18Person:hover .homeV18PersonImage img{ transform:scale(1.025); filter:grayscale(.93) contrast(1.06); }
.homeV18PersonText{ display:block; padding-top:20px; }
.homeV18PersonText small{ display:block; color:rgba(255,255,255,.48); font-size:11px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.homeV18PersonText strong{ display:block; margin-top:9px; font-family:var(--serif); font-size:clamp(26px,1.65vw,33px); line-height:1; font-weight:680; letter-spacing:-.04em; }
.homeV18PersonText em{ display:block; max-width:36ch; margin-top:11px; color:rgba(255,255,255,.65); font-size:14.5px; line-height:1.55; font-style:normal; }
.homeV18PeopleAll{ display:flex; justify-content:flex-end; gap:10px; margin-top:36px; padding-top:20px; border-top:1px solid rgba(255,255,255,.18); color:#fff; font-size:14.5px; font-weight:760; text-decoration:none; }

/* Partis regroupés */
.homeV18PartyGroups{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid #10131a; }
.homeV18PartyGroup{ padding:27px 27px 8px; border-right:1px solid rgba(16,19,26,.13); border-bottom:1px solid rgba(16,19,26,.13); background:rgba(255,255,255,.55); }
.homeV18PartyGroup:first-child{ padding-left:0; }
.homeV18PartyGroup:last-child{ border-right:0; padding-right:0; }
.homeV18PartyGroup > header{ display:grid; grid-template-columns:36px 1fr; gap:12px; min-height:72px; align-items:start; }
.homeV18PartyGroup > header span{ color:rgba(16,19,26,.38); font-size:11px; font-weight:800; letter-spacing:.13em; }
.homeV18PartyGroup h3{ margin:0; font-family:var(--serif); font-size:27px; line-height:1.05; font-weight:680; letter-spacing:-.035em; }
.homeV18PartyGroup > div{ border-top:1px solid rgba(16,19,26,.16); }
.homeV18PartyGroup a{ position:relative; display:block; min-height:102px; padding:20px 30px 19px 0; border-bottom:1px solid rgba(16,19,26,.12); color:#10131a; text-decoration:none; }
.homeV18PartyGroup a:last-child{ border-bottom:0; }
.homeV18PartyGroup a strong{ display:block; font-family:var(--serif); font-size:20px; line-height:1.08; font-weight:680; }
.homeV18PartyGroup a small{ display:block; margin-top:8px; color:rgba(16,19,26,.58); font-size:13px; line-height:1.45; }
.homeV18PartyGroup a i{ position:absolute; right:0; top:20px; font-family:var(--serif); font-size:20px; font-style:normal; }
.homeV18PartyGroup a:hover strong{ color:var(--blue); }

/* Méthode */
.homeV18Method{
  display:grid;
  grid-template-columns:minmax(510px,.92fr) minmax(0,1.08fr);
  gap:clamp(72px,7vw,136px);
  align-items:center;
  padding:clamp(50px,5vw,84px);
  border:1px solid rgba(16,19,26,.13);
  background:#fff;
  box-shadow:0 24px 62px rgba(10,20,38,.055);
}
.homeV18MethodVisual{ margin:0; }
.homeV18MethodVisual img{ display:block; width:100%; height:auto; border:1px solid rgba(16,19,26,.11); }
.homeV18MethodCopy h2{ max-width:15ch; }
.homeV18MethodPoints{ margin-top:32px; border-top:1px solid #10131a; }
.homeV18MethodPoints article{ display:grid; grid-template-columns:42px 1fr; gap:18px; padding:21px 0; border-bottom:1px solid rgba(16,19,26,.13); }
.homeV18MethodPoints article > span{ color:rgba(16,19,26,.36); font-size:11px; font-weight:800; letter-spacing:.12em; }
.homeV18MethodPoints strong{ font-family:var(--serif); font-size:22px; font-weight:680; }
.homeV18MethodPoints p{ margin:7px 0 0; color:rgba(16,19,26,.63); font-size:14.5px; line-height:1.58; }
.homeV18MethodLinks{ display:flex; flex-wrap:wrap; gap:10px 22px; margin-top:27px; }
.homeV18MethodLinks a{ padding-bottom:4px; border-bottom:1px solid rgba(16,19,26,.31); color:#10131a; font-size:13.5px; font-weight:760; text-decoration:none; }

/* Conclusion */
.homeV18Final{
  display:grid;
  grid-template-columns:minmax(0,.84fr) minmax(520px,1.16fr);
  gap:clamp(80px,8vw,156px);
  align-items:start;
  padding-top:clamp(34px,3vw,54px);
  border-top:1px solid #10131a;
}
.homeV18FinalIntro h2{ max-width:14ch; }
.homeV18FinalIntro > p:not(.homeV18Eyebrow):not(.homeV18Standfirst){ max-width:66ch; margin:22px 0 0; color:rgba(16,19,26,.68); font-size:16.5px; line-height:1.73; }
.homeV18FinalIntro .homeV18Button{ margin-top:32px; }
.homeV18Faq{ border-top:1px solid #10131a; }
.homeV18FaqHead{ padding:27px 0 21px; border-bottom:1px solid rgba(16,19,26,.14); }
.homeV18FaqHead .homeV18Eyebrow{ margin-bottom:12px; }
.homeV18FaqHead h3{ max-width:18ch; margin:0; font-family:var(--serif); font-size:31px; line-height:1.04; font-weight:680; letter-spacing:-.035em; }
.homeV18Faq details{ border-bottom:1px solid rgba(16,19,26,.14); }
.homeV18Faq summary{ display:grid; grid-template-columns:1fr auto; gap:24px; align-items:center; min-height:64px; padding:17px 0; color:#10131a; font-size:15px; line-height:1.45; font-weight:700; cursor:pointer; list-style:none; }
.homeV18Faq summary::-webkit-details-marker{ display:none; }
.homeV18Faq summary span{ font-family:var(--serif); font-size:24px; font-weight:400; transition:transform .18s ease; }
.homeV18Faq details[open] summary span{ transform:rotate(45deg); }
.homeV18Faq details > div{ max-width:68ch; padding:0 34px 20px 0; color:rgba(16,19,26,.65); font-size:14.5px; line-height:1.65; }

/* Tablettes */
@media (max-width:1500px){
  .homeV18HeroGrid{ grid-template-columns:minmax(0,1.04fr) minmax(460px,.82fr); gap:70px; }
  .homeV18HeroCopy h1{ font-size:clamp(64px,5.6vw,88px); }
  .homeV18Gateways{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .homeV18Gateway:nth-child(2){ border-right:0; }
  .homeV18Gateway:nth-child(-n+2){ border-bottom:1px solid rgba(16,19,26,.12); }
  .homeV18EditorialGrid{ grid-template-columns:minmax(0,1.04fr) minmax(300px,.62fr); }
  .homeV18Ideas{ grid-column:1/-1; }
  .homeV18Ideas nav{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
  .homeV18Ideas nav a{ padding-inline:18px; border-right:1px solid rgba(255,255,255,.15); }
  .homeV18Ideas nav a:nth-child(3n){ border-right:0; }
  .homeV18PartyGroups{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .homeV18PartyGroup:nth-child(2n){ border-right:0; }
  .homeV18PartyGroup:nth-child(n){ padding-left:26px; padding-right:26px; }
}

@media (max-width:1120px){
  .homeV18HeroGrid,
  .homeV18Manifesto,
  .homeV18QuizLead,
  .homeV18SectionHead,
  .homeV18PeopleHead,
  .homeV18Method,
  .homeV18Final{ grid-template-columns:1fr; }
  .homeV18HeroCopy{ max-width:1040px; }
  .homeV18HeroVisual{ max-width:880px; }
  .homeV18HeroCopy h1{ max-width:13.5ch; }
  .homeV18Manifesto{ gap:58px; }
  .homeV18Principles{ max-width:860px; }
  .homeV18QuizLead{ gap:24px; }
  .homeV18QuizIntro{ max-width:760px; }
  .route-home #quiz-card .panelHeadDark{ grid-template-columns:1fr; gap:32px; }
  .homeV18SectionHead,
  .homeV18PeopleHead{ gap:24px; }
  .homeV18SectionHead > p,
  .homeV18PeopleHead > p{ max-width:74ch; }
  .homeV18PeopleGrid{ grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:48px; }
  .homeV18MethodVisual{ max-width:900px; }
  .homeV18Final{ gap:58px; }
}

@media (max-width:760px){
  .topbarInner{ min-height:68px; }
  .logoName{ font-size:17px; }
  .route-home .homeMain > .shell{ padding-inline:20px; }
  .homeV18Eyebrow{ margin-bottom:13px; font-size:10px; letter-spacing:.13em; }
  .homeV18Eyebrow::before{ width:28px; margin-right:9px; }
  .homeV18Hero{ padding-top:34px; }
  .homeV18HeroGrid{ gap:38px; }
  .homeV18HeroCopy h1{ max-width:none; font-size:clamp(48px,13vw,65px); line-height:.96; letter-spacing:-.055em; }
  .homeV18Lead{ margin-top:23px; font-size:17px; line-height:1.62; }
  .homeV18Actions{ display:grid; gap:11px; margin-top:26px; }
  .homeV18Button{ width:100%; min-height:50px; }
  .homeV18Proof{ grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:30px; }
  .homeV18Proof div{ min-height:75px; border-bottom:1px solid rgba(16,19,26,.11); }
  .homeV18Proof div:nth-child(2){ border-right:0; }
  .homeV18Proof div:nth-child(n+3){ border-bottom:0; }
  .homeV18HeroVisual::before{ inset:12px -8px -12px 12px; }
  .homeV18Gateways{ grid-template-columns:1fr; margin-top:64px; }
  .homeV18Gateway{ min-height:auto; padding:24px 21px; border-right:0; border-bottom:1px solid rgba(16,19,26,.12); }
  .homeV18Gateway:last-child{ border-bottom:0; }
  .homeV18Gateway strong{ font-size:26px; }
  .homeV18Gateway small{ font-size:14px; }
  .homeV18Manifesto{ padding:76px 0 72px; gap:42px; }
  .homeV18ManifestoCopy h2,
  .homeV18SectionHead h2,
  .homeV18PeopleHead h2,
  .homeV18MethodCopy h2,
  .homeV18FinalIntro h2{ font-size:clamp(39px,10.5vw,52px); }
  .homeV18Standfirst{ font-size:20px; line-height:1.48; }
  .homeV18ManifestoCopy > p:not(.homeV18Eyebrow):not(.homeV18Standfirst){ font-size:16px; line-height:1.72; }
  .homeV18Principles article{ min-height:auto; grid-template-columns:42px 1fr; padding:22px 0; }
  .homeV18Principles h3{ font-size:25px; }
  .homeV18QuizLead{ padding:72px 0 24px; }
  .homeV18QuizLead h2{ max-width:none; font-size:43px; }
  .homeV18QuizIntro p{ font-size:15.5px; }
  .route-home #quiz-card{ border-radius:5px; margin-bottom:92px !important; }
  .route-home #quiz-card .panelHeadDark{ padding:38px 24px; }
  .route-home #quiz-card .panelHeadDark::before{ left:24px; width:88px; }
  .route-home #quiz-card .partyPageTitle{ font-size:42px; }
  .route-home #quiz-card .panelBody{ padding:22px 15px 26px; }
  .route-home #quiz-card .step{ padding:28px 20px; }
  .route-home #quiz-card .statement{ font-size:30px; }
  .route-home #quiz-card .scale{ grid-template-columns:1fr; }
  .route-home #quiz-card .opt{ min-height:58px; display:grid; grid-template-columns:34px 1fr; text-align:left; }
  .homeV18Editorial,
  .homeV18Parties,
  .homeV18Method,
  .homeV18Final{ margin-bottom:84px; }
  .homeV18SectionHead,
  .homeV18PeopleHead{ margin-bottom:32px; }
  .homeV18SectionHead > p,
  .homeV18PeopleHead > p{ font-size:15.5px; }
  .homeV18EditorialGrid{ grid-template-columns:1fr; }
  .homeV18CompareFeature{ min-height:auto; padding:31px 24px 35px; }
  .homeV18CompareNames{ margin-top:52px; }
  .homeV18CompareNames b{ font-size:70px; }
  .homeV18CompareFeature h3{ font-size:36px; }
  .homeV18CompareSide > a{ min-height:185px; padding:23px; }
  .homeV18Ideas{ grid-column:auto; padding:31px 24px 25px; }
  .homeV18Ideas nav{ display:block; }
  .homeV18Ideas nav a{ padding-inline:0; border-right:0; }
  .homeV18People{ margin-inline:-20px; padding:68px 20px 64px; }
  .homeV18PeopleGrid{ grid-template-columns:1fr; }
  .homeV18PersonImage{ aspect-ratio:16/10; }
  .homeV18PartyGroups{ grid-template-columns:1fr; }
  .homeV18PartyGroup:nth-child(n){ padding:24px 0 7px; border-right:0; }
  .homeV18Method{ padding:27px 21px; gap:38px; }
  .homeV18MethodLinks{ gap:10px 18px; }
  .homeV18Final{ gap:48px; }
  .homeV18Faq summary{ font-size:14.5px; }
}

@media (max-width:420px){
  .homeV18HeroCopy h1{ font-size:46px; }
  .homeV18Proof strong{ font-size:27px; }
  .homeV18Proof span{ font-size:12.5px; }
  .homeV18Gateway{ grid-template-columns:34px 1fr auto; gap:12px; }
  .homeV18QuizLead h2{ font-size:39px; }
  .homeV18CompareNames{ gap:12px; }
  .homeV18CompareNames b{ font-size:60px; }
}

/* V18 — neutralisation des derniers restes beiges et de toute légende sur les portraits */
.cleanTable th,
.dataTable th,
.electionTable th{ background:#eef2f7; }
.cleanTable tbody tr:hover,
.dataTable tbody tr:hover,
.electionTable tbody tr:hover{ background:#f6f9fd; }
.noteBox,
.methodNote{ background:#edf3f9; }
.aiSummary{ background:#f3f6fa; }
.personPortraitCard .portraitHint,
.personVisualCaption,
.portraitCaption{ display:none !important; }

/* ========================================================================== 
   POLITIQUEMENT.ORG — HOME V19
   Promesse immédiate, palette froide contemporaine, hiérarchie éditoriale.
   ========================================================================== */

body.route-home{
  --v19-ink:#0a1220;
  --v19-navy:#07172e;
  --v19-navy2:#0c2341;
  --v19-blue:#175f9f;
  --v19-blue2:#2d79b9;
  --v19-red:#cf4d46;
  --v19-bg:#f5f8fc;
  --v19-paper:#ffffff;
  --v19-soft:#edf3f9;
  --v19-line:#d9e2ec;
  --v19-muted:#5b6778;
  background:
    radial-gradient(circle at 7% -5%, rgba(23,95,159,.065), transparent 28%),
    radial-gradient(circle at 93% 2%, rgba(207,77,70,.035), transparent 23%),
    linear-gradient(180deg,#fbfdff 0,#f6f9fd 45%,#f3f7fb 100%);
}
.route-home main.homeMain{ padding-bottom:clamp(78px,6vw,124px); }
.route-home .homeMain > .shell{ padding-inline:clamp(22px,3.7vw,72px); }

.homeV19Eyebrow{
  margin:0 0 18px;
  color:#667387;
  font-family:var(--sans);
  font-size:12.5px;
  line-height:1.35;
  font-weight:800;
  letter-spacing:.145em;
  text-transform:uppercase;
}
.homeV19Eyebrow::before{
  content:"";
  display:inline-block;
  width:36px;
  height:2px;
  margin:0 12px 4px 0;
  background:linear-gradient(90deg,var(--v19-blue) 0 44%,#dce4ee 44% 62%,var(--v19-red) 62% 100%);
}
.homeV19Button{
  display:inline-flex;
  min-height:54px;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:14px 23px;
  border:1px solid rgba(10,18,32,.20);
  border-radius:7px;
  font-size:14.5px;
  line-height:1;
  font-weight:800;
  text-decoration:none;
  transition:transform .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.homeV19Button:hover{ transform:translateY(-2px); }
.homeV19ButtonPrimary{
  border-color:var(--v19-navy);
  background:var(--v19-navy);
  color:#fff;
  box-shadow:0 14px 30px rgba(7,23,46,.14);
}
.homeV19ButtonPrimary:hover{ background:#102846; box-shadow:0 18px 34px rgba(7,23,46,.19); }
.homeV19ButtonSecondary{ background:rgba(255,255,255,.78); color:var(--v19-ink); }
.homeV19ButtonSecondary:hover{ background:#fff; border-color:rgba(10,18,32,.42); }
.homeV19TextLink{
  display:inline-flex;
  align-items:center;
  gap:9px;
  margin-top:30px;
  padding-bottom:5px;
  border-bottom:1px solid rgba(10,18,32,.34);
  color:var(--v19-ink);
  font-size:14.5px;
  font-weight:800;
  text-decoration:none;
}
.homeV19TextLink:hover{ border-bottom-color:var(--v19-ink); }

/* Ouverture : la promesse et la preuve en un seul écran. */
.homeV19Hero{ padding:clamp(54px,5vw,92px) 0 0; }
.homeV19HeroGrid{
  display:grid;
  grid-template-columns:minmax(0,1.13fr) minmax(500px,.87fr);
  gap:clamp(58px,6vw,116px);
  align-items:center;
}
.homeV19HeroCopy{ max-width:980px; }
.homeV19HeroCopy h1{
  max-width:14.2ch;
  margin:0;
  color:var(--v19-ink);
  font-family:var(--serif);
  font-size:clamp(66px,5vw,92px);
  line-height:.95;
  font-weight:690;
  letter-spacing:-.062em;
  text-wrap:balance;
}
.homeV19HeroCopy h1 span{
  display:block;
  margin-top:7px;
  color:#53657c;
  font-weight:470;
  letter-spacing:-.052em;
}
.homeV19Lead{
  max-width:68ch;
  margin:30px 0 0;
  color:#4e5b6c;
  font-size:clamp(18.5px,1.14vw,21px);
  line-height:1.68;
}
.homeV19Lead strong{ color:var(--v19-ink); font-weight:800; }
.homeV19Actions{ display:flex; flex-wrap:wrap; gap:13px 17px; margin-top:33px; }
.homeV19Assurance{
  display:flex;
  align-items:center;
  gap:9px;
  margin:27px 0 0;
  color:#677487;
  font-size:13.5px;
  line-height:1.5;
  font-weight:650;
}
.homeV19Assurance span{
  display:inline-grid;
  width:20px;
  height:20px;
  place-items:center;
  border-radius:50%;
  background:#e8f2fb;
  color:var(--v19-blue);
  font-size:12px;
  font-weight:900;
}
.homeV19HeroProof{
  position:relative;
  overflow:hidden;
  min-height:560px;
  padding:34px 36px 31px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:16px;
  background:
    radial-gradient(circle at 86% 14%,rgba(45,121,185,.30),transparent 34%),
    linear-gradient(145deg,var(--v19-navy) 0%,#0b203c 64%,#0c1c33 100%);
  color:#fff;
  box-shadow:0 30px 70px rgba(7,23,46,.18);
}
.homeV19HeroProof::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:56px 56px;
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.9),transparent 88%);
}
.homeV19HeroProof::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:4px;
  background:linear-gradient(90deg,var(--v19-blue) 0 36%,#f4f7fb 36% 64%,var(--v19-red) 64% 100%);
}
.homeV19HeroProof > *{ position:relative; z-index:1; }
.homeV19HeroProofHead{
  display:flex;
  justify-content:space-between;
  gap:24px;
  color:rgba(255,255,255,.58);
  font-size:11px;
  line-height:1.35;
  font-weight:800;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.homeV19HeroProofHead em{ color:rgba(255,255,255,.82); font-style:normal; }
.homeV19Equation{ margin-top:78px; }
.homeV19Equation strong{
  display:block;
  font-family:var(--serif);
  font-size:clamp(78px,5.8vw,112px);
  line-height:.84;
  font-weight:690;
  letter-spacing:-.075em;
}
.homeV19Equation p{
  max-width:31ch;
  margin:24px 0 0;
  color:rgba(255,255,255,.72);
  font-size:17px;
  line-height:1.6;
}
.homeV19ProofGrid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1px;
  margin-top:62px;
  border:1px solid rgba(255,255,255,.15);
  background:rgba(255,255,255,.15);
}
.homeV19ProofGrid > div{ min-height:124px; padding:21px 22px; background:rgba(7,23,46,.72); }
.homeV19ProofGrid span{
  display:block;
  color:rgba(255,255,255,.48);
  font-size:11px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.homeV19ProofGrid strong{
  display:block;
  margin-top:13px;
  font-family:var(--serif);
  font-size:23px;
  line-height:1.18;
  font-weight:620;
}
.homeV19HeroProofFoot{
  display:flex;
  flex-wrap:wrap;
  gap:8px 18px;
  margin-top:23px;
  color:rgba(255,255,255,.53);
  font-size:12px;
  font-weight:650;
}
.homeV19HeroProofFoot span::before{ content:"•"; margin-right:8px; color:#7eb5e2; }
.homeV19HeroProofFoot span:first-child::before{ content:""; margin:0; }
.homeV19Facts{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  margin-top:clamp(55px,5vw,84px);
  border-top:1px solid var(--v19-line);
  border-bottom:1px solid var(--v19-line);
  background:rgba(255,255,255,.58);
}
.homeV19Facts > div{ min-height:104px; padding:21px 25px; border-right:1px solid var(--v19-line); }
.homeV19Facts > div:last-child{ border-right:0; }
.homeV19Facts strong{ display:block; color:var(--v19-ink); font-family:var(--serif); font-size:32px; line-height:1; letter-spacing:-.04em; }
.homeV19Facts span{ display:block; margin-top:9px; color:#667386; font-size:13.5px; line-height:1.4; }

/* Quatre usages clairement identifiés. */
.homeV19Routes{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  margin-top:clamp(42px,4vw,66px);
  border:1px solid var(--v19-line);
  border-radius:12px;
  background:#fff;
  box-shadow:0 16px 45px rgba(12,29,52,.045);
}
.homeV19Routes a{
  position:relative;
  display:grid;
  grid-template-columns:32px 1fr auto;
  gap:13px;
  min-height:174px;
  align-content:start;
  padding:25px 23px;
  border-right:1px solid var(--v19-line);
  color:var(--v19-ink);
  text-decoration:none;
  transition:background .18s ease,transform .18s ease;
}
.homeV19Routes a:last-child{ border-right:0; }
.homeV19Routes a:hover{ background:#f0f5fb; transform:translateY(-2px); }
.homeV19Routes a:first-child{ background:var(--v19-navy); color:#fff; border-radius:11px 0 0 11px; }
.homeV19Routes a:first-child:hover{ background:#102846; }
.homeV19Routes a > span{ color:#8390a1; font-size:10.5px; font-weight:800; letter-spacing:.12em; }
.homeV19Routes a:first-child > span{ color:rgba(255,255,255,.46); }
.homeV19Routes strong{ display:block; font-family:var(--serif); font-size:26px; line-height:1.05; font-weight:670; letter-spacing:-.035em; }
.homeV19Routes small{ display:block; max-width:30ch; margin-top:13px; color:#657286; font-size:14px; line-height:1.55; }
.homeV19Routes a:first-child small{ color:rgba(255,255,255,.68); }
.homeV19Routes i{ align-self:end; font-family:var(--serif); font-size:24px; font-style:normal; }

/* Introduction du questionnaire. */
.homeV19QuizLead{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(380px,.72fr);
  gap:clamp(62px,7vw,140px);
  align-items:end;
  padding:clamp(90px,7vw,132px) 0 32px;
}
.homeV19QuizLead h2,
.homeV19SectionHead h2,
.homeV19TrustIntro h2,
.homeV19FinalIntro h2{
  margin:0;
  color:var(--v19-ink);
  font-family:var(--serif);
  font-size:clamp(46px,3.45vw,66px);
  line-height:1;
  font-weight:680;
  letter-spacing:-.052em;
  text-wrap:balance;
}
.homeV19QuizLead h2{ max-width:15ch; }
.homeV19QuizIntro p{ max-width:57ch; margin:0; color:#5b6778; font-size:17px; line-height:1.72; }
.homeV19QuizIntro ul{ display:flex; flex-wrap:wrap; gap:9px 18px; margin:22px 0 0; padding:0; list-style:none; color:#667386; font-size:13.5px; }
.homeV19QuizIntro li::before{ content:""; display:inline-block; width:7px; height:7px; margin:0 8px 1px 0; border-radius:50%; background:var(--v19-blue); }
.homeV19QuizIntro li:nth-child(2)::before{ background:#8b98aa; }
.homeV19QuizIntro li:nth-child(3)::before{ background:var(--v19-red); }

/* Questionnaire V19 : lisibilité avant décor. */
.route-home #quiz-card{
  margin-top:32px !important;
  margin-bottom:clamp(104px,8vw,154px) !important;
  border-radius:14px;
  box-shadow:0 28px 70px rgba(9,27,52,.10);
}
.route-home #quiz-card .panelHeadDark{
  grid-template-columns:minmax(0,1.12fr) minmax(340px,.58fr);
  gap:clamp(42px,5vw,88px);
  padding:clamp(42px,4vw,68px) clamp(34px,4.4vw,76px);
  border-radius:14px 14px 0 0 !important;
  background:
    radial-gradient(circle at 90% 16%,rgba(45,121,185,.22),transparent 32%),
    linear-gradient(145deg,var(--v19-navy) 0%,#0a1e38 100%);
}
.route-home #quiz-card .panelHeadDark::before{ left:clamp(34px,4.4vw,76px); width:104px; height:4px; }
.route-home #quiz-card .panelTitle{ font-size:12px; letter-spacing:.14em; }
.route-home #quiz-card .partyPageTitle{ max-width:14ch; font-size:clamp(43px,3.1vw,59px); line-height:.98; }
.route-home #quiz-card .panelSub{ max-width:74ch; font-size:16px; line-height:1.68; }
.route-home #quiz-card .statPill{ font-size:13px; }
.route-home #quiz-card .statPill strong{ font-size:14.5px; }
.route-home #quiz-card .panelBody{ padding:clamp(32px,4vw,64px); border-radius:0 0 14px 14px; background:#edf2f8; }
.route-home #quiz-card .step{ padding:clamp(34px,3.7vw,58px); border:1px solid #d7e0ea; border-radius:10px; background:#fff; }
.route-home #quiz-card .stepMeta .m{ font-size:12px; }
.route-home #quiz-card .statement{ max-width:37ch; font-size:clamp(34px,2.45vw,47px); line-height:1.08; }
.route-home #quiz-card .opt{ min-height:80px; border-color:#d8e1eb; border-radius:7px; background:#fbfdff; }
.route-home #quiz-card .opt:hover{ border-color:#7fa4c5; background:#f5f9fd; }
.route-home #quiz-card .optLabel{ font-size:14.5px; }
.route-home #quiz-card .prioItem .t{ font-size:14.5px; line-height:1.5; }

/* Sections éditoriales communes. */
.homeV19Difference,
.homeV19Explore,
.homeV19Parties,
.homeV19Trust,
.homeV19Final{ margin-bottom:clamp(105px,8vw,158px); }
.homeV19SectionHead{
  display:grid;
  grid-template-columns:minmax(0,1.16fr) minmax(360px,.66fr);
  gap:clamp(60px,7vw,132px);
  align-items:end;
  margin-bottom:clamp(38px,3.8vw,62px);
  padding-top:24px;
  border-top:1px solid #9aa8b8;
}
.homeV19SectionHead h2{ max-width:19ch; }
.homeV19SectionHead > p,
.homeV19SectionHead > div + p{
  max-width:56ch;
  margin:0;
  color:#5b6778;
  font-size:16.5px;
  line-height:1.74;
}
.homeV19SectionHeadCentered{
  display:block;
  max-width:980px;
  margin-inline:auto;
  padding-top:0;
  border-top:0;
  text-align:center;
}
.homeV19SectionHeadCentered .homeV19Eyebrow::before{ display:none; }
.homeV19SectionHeadCentered h2{ max-width:17ch; margin-inline:auto; }
.homeV19SectionHeadCentered > p{ max-width:67ch; margin:23px auto 0; }

/* Trois preuves de valeur. */
.homeV19Difference{
  padding:clamp(82px,7vw,126px) clamp(26px,4vw,64px);
  border:1px solid var(--v19-line);
  border-radius:16px;
  background:#fff;
  box-shadow:0 22px 58px rgba(12,29,52,.045);
}
.homeV19DifferenceGrid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin-top:clamp(46px,4vw,66px);
  border-top:1px solid var(--v19-line);
  border-bottom:1px solid var(--v19-line);
}
.homeV19DifferenceGrid article{
  display:grid;
  grid-template-columns:60px 1fr;
  gap:20px;
  min-height:250px;
  padding:33px 30px;
  border-right:1px solid var(--v19-line);
}
.homeV19DifferenceGrid article:last-child{ border-right:0; }
.homeV19Icon{
  display:grid;
  width:52px;
  height:52px;
  place-items:center;
  border-radius:12px;
  background:#eaf2fa;
  color:var(--v19-blue);
}
.homeV19Icon svg{ width:31px; height:31px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.homeV19DifferenceGrid small{ color:#8a96a7; font-size:10.5px; font-weight:800; letter-spacing:.12em; }
.homeV19DifferenceGrid h3{ margin:12px 0 0; font-family:var(--serif); font-size:29px; line-height:1.05; font-weight:670; letter-spacing:-.035em; }
.homeV19DifferenceGrid p{ margin:15px 0 0; color:#5d697a; font-size:15.5px; line-height:1.68; }
.homeV19Difference > .homeV19TextLink{ display:flex; width:max-content; margin:31px auto 0; }

/* Exploration : comparatifs, idées et biographies. */
.homeV19ExploreGrid{ display:grid; grid-template-columns:minmax(0,1.15fr) minmax(360px,.65fr); gap:22px; }
.homeV19CompareFeature{
  position:relative;
  min-height:540px;
  padding:39px 42px 43px;
  border:1px solid var(--v19-line);
  border-radius:12px;
  background:#fff;
  overflow:hidden;
}
.homeV19CompareFeature::before{ content:""; position:absolute; inset:0 auto 0 50%; width:1px; background:#e3e9f0; }
.homeV19CompareFeature::after{ content:""; position:absolute; left:0; right:0; top:0; height:4px; background:linear-gradient(90deg,var(--v19-blue) 0 48%,#eef2f7 48% 52%,var(--v19-red) 52% 100%); }
.homeV19CompareFeature > *{ position:relative; z-index:1; }
.homeV19CompareTop{ display:flex; justify-content:space-between; gap:20px; color:#7a8798; font-size:11px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.homeV19CompareTop em{ font-style:normal; }
.homeV19CompareNames{ display:flex; align-items:baseline; gap:20px; margin:72px 0 26px; font-family:var(--serif); }
.homeV19CompareNames b{ font-size:clamp(76px,5.7vw,108px); line-height:.8; letter-spacing:-.075em; }
.homeV19CompareNames i{ color:#8a96a7; font-size:17px; font-style:normal; font-weight:500; }
.homeV19CompareFeature h3{ max-width:17ch; margin:0; font-family:var(--serif); font-size:clamp(35px,2.5vw,49px); line-height:1.01; font-weight:680; letter-spacing:-.045em; }
.homeV19CompareFeature p{ max-width:58ch; margin:22px 0 0; color:#5c6879; font-size:16px; line-height:1.72; }
.homeV19CompareFeature a{ display:inline-flex; gap:10px; margin-top:31px; padding-bottom:5px; border-bottom:1px solid #738195; color:var(--v19-ink); font-size:14.5px; font-weight:800; text-decoration:none; }
.homeV19Ideas{
  padding:36px 34px 31px;
  border-radius:12px;
  background:linear-gradient(145deg,var(--v19-navy) 0%,#0b223f 100%);
  color:#fff;
}
.homeV19Ideas .homeV19Eyebrow{ color:rgba(255,255,255,.50); }
.homeV19Ideas h3{ margin:0 0 28px; font-family:var(--serif); font-size:clamp(38px,2.7vw,51px); line-height:1; font-weight:670; letter-spacing:-.045em; }
.homeV19Ideas nav{ border-top:1px solid rgba(255,255,255,.24); }
.homeV19Ideas nav a{ display:grid; grid-template-columns:34px 1fr auto; gap:13px; align-items:center; min-height:65px; border-bottom:1px solid rgba(255,255,255,.14); color:#fff; text-decoration:none; }
.homeV19Ideas nav a span{ color:rgba(255,255,255,.38); font-size:10.5px; font-weight:800; }
.homeV19Ideas nav a strong{ font-family:var(--serif); font-size:21px; font-weight:600; }
.homeV19Ideas nav a i{ font-family:var(--serif); font-size:20px; font-style:normal; }
.homeV19Ideas nav a:hover strong{ text-decoration:underline; text-underline-offset:5px; }
.homeV19IdeasAll{ display:flex; justify-content:space-between; gap:15px; margin-top:25px; color:rgba(255,255,255,.78); font-size:13.5px; font-weight:800; text-decoration:none; }
.homeV19PeopleHead{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(330px,.55fr);
  gap:60px;
  align-items:end;
  margin:clamp(64px,5vw,84px) 0 29px;
  padding-top:23px;
  border-top:1px solid #a0adbd;
}
.homeV19PeopleHead h3{ max-width:17ch; margin:0; font-family:var(--serif); font-size:clamp(38px,2.7vw,51px); line-height:1; font-weight:680; letter-spacing:-.047em; }
.homeV19PeopleHead > p{ max-width:48ch; margin:0; color:#5b6778; font-size:15.5px; line-height:1.7; }
.homeV19PeopleGrid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.homeV19Person{
  overflow:hidden;
  border:1px solid var(--v19-line);
  border-radius:10px;
  background:#fff;
  color:var(--v19-ink);
  text-decoration:none;
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.homeV19Person:hover{ transform:translateY(-3px); border-color:#b9c7d7; box-shadow:0 16px 34px rgba(12,29,52,.07); }
.homeV19Person > span{ display:block; overflow:hidden; aspect-ratio:4/3; background:#dce4ed; }
.homeV19Person img{ display:block; width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.03); transition:transform .28s ease; }
.homeV19Person:hover img{ transform:scale(1.025); }
.homeV19Person > div{ padding:20px 20px 22px; }
.homeV19Person small{ color:#778497; font-size:10.5px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.homeV19Person strong{ display:block; margin-top:9px; font-family:var(--serif); font-size:28px; line-height:1; font-weight:670; letter-spacing:-.038em; }
.homeV19Person p{ margin:12px 0 0; color:#5d697a; font-size:14px; line-height:1.58; }
.homeV19PeopleAll{ float:right; }

/* Fiches de partis : compactes, mais toutes accessibles. */
.homeV19PartyGrid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid #8f9daf; }
.homeV19PartyGrid a{
  display:grid;
  grid-template-columns:1fr auto;
  grid-template-areas:"title arrow" "family arrow";
  gap:7px 18px;
  min-height:118px;
  align-content:center;
  padding:23px 27px;
  border-right:1px solid var(--v19-line);
  border-bottom:1px solid var(--v19-line);
  color:var(--v19-ink);
  text-decoration:none;
  transition:background .18s ease;
}
.homeV19PartyGrid a:nth-child(3n){ border-right:0; }
.homeV19PartyGrid a:hover{ background:#edf4fa; }
.homeV19PartyGrid strong{ grid-area:title; font-family:var(--serif); font-size:23px; line-height:1.05; font-weight:670; letter-spacing:-.03em; }
.homeV19PartyGrid small{ grid-area:family; color:#6c798b; font-size:13px; line-height:1.4; }
.homeV19PartyGrid span{ grid-area:arrow; align-self:center; font-family:var(--serif); font-size:22px; }

/* Un seul grand moment sombre : la preuve méthodologique. */
.homeV19Trust{
  display:grid;
  grid-template-columns:minmax(0,.94fr) minmax(500px,1.06fr);
  gap:clamp(68px,7vw,132px);
  padding:clamp(52px,5vw,84px);
  border-radius:16px;
  background:
    radial-gradient(circle at 92% 0%,rgba(45,121,185,.22),transparent 28%),
    linear-gradient(145deg,var(--v19-navy) 0%,#0a213d 100%);
  color:#fff;
  box-shadow:0 28px 66px rgba(7,23,46,.14);
}
.homeV19Trust .homeV19Eyebrow{ color:rgba(255,255,255,.48); }
.homeV19TrustIntro h2{ max-width:15ch; color:#fff; }
.homeV19TrustIntro > p:not(.homeV19Eyebrow){ max-width:61ch; margin:24px 0 0; color:rgba(255,255,255,.70); font-size:16.5px; line-height:1.72; }
.homeV19TrustPoints{ border-top:1px solid rgba(255,255,255,.24); }
.homeV19TrustPoints article{ display:grid; grid-template-columns:46px 1fr; gap:18px; padding:22px 0; border-bottom:1px solid rgba(255,255,255,.14); }
.homeV19TrustPoints article > span{ color:rgba(255,255,255,.36); font-size:10.5px; font-weight:800; letter-spacing:.12em; }
.homeV19TrustPoints strong{ font-family:var(--serif); font-size:23px; font-weight:630; }
.homeV19TrustPoints p{ margin:7px 0 0; color:rgba(255,255,255,.64); font-size:14.5px; line-height:1.58; }
.homeV19TrustPoints nav{ display:flex; flex-wrap:wrap; gap:10px 22px; margin-top:27px; }
.homeV19TrustPoints nav a{ padding-bottom:4px; border-bottom:1px solid rgba(255,255,255,.30); color:#fff; font-size:13.5px; font-weight:800; text-decoration:none; }

/* Conclusion courte et FAQ limitée. */
.homeV19Final{
  display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(500px,1.18fr);
  gap:clamp(72px,8vw,150px);
  align-items:start;
  padding-top:35px;
  border-top:1px solid #8f9daf;
}
.homeV19FinalIntro h2{ max-width:15ch; }
.homeV19FinalIntro > p:not(.homeV19Eyebrow){ max-width:57ch; margin:24px 0 0; color:#5a6677; font-size:17px; line-height:1.72; }
.homeV19FinalIntro .homeV19Button{ margin-top:31px; }
.homeV19Faq{ border-top:1px solid #8f9daf; }
.homeV19FaqHead{ padding:25px 0 20px; border-bottom:1px solid var(--v19-line); }
.homeV19FaqHead .homeV19Eyebrow{ margin-bottom:10px; }
.homeV19FaqHead h3{ margin:0; font-family:var(--serif); font-size:31px; line-height:1.05; font-weight:670; letter-spacing:-.035em; }
.homeV19Faq details{ border-bottom:1px solid var(--v19-line); }
.homeV19Faq summary{ display:grid; grid-template-columns:1fr auto; gap:24px; align-items:center; min-height:66px; padding:17px 0; color:var(--v19-ink); font-size:15px; line-height:1.45; font-weight:780; cursor:pointer; list-style:none; }
.homeV19Faq summary::-webkit-details-marker{ display:none; }
.homeV19Faq summary span{ color:#8190a2; font-size:22px; font-weight:400; transition:transform .18s ease; }
.homeV19Faq details[open] summary span{ transform:rotate(45deg); }
.homeV19Faq details > div{ padding:0 42px 22px 0; color:#5c6879; font-size:14.5px; line-height:1.66; }

@media (max-width:1320px){
  .homeV19HeroGrid{ grid-template-columns:minmax(0,1.05fr) minmax(430px,.8fr); gap:58px; }
  .homeV19HeroCopy h1{ font-size:clamp(62px,5.3vw,82px); }
  .homeV19HeroProof{ min-height:520px; }
  .homeV19Equation{ margin-top:60px; }
  .homeV19Equation strong{ font-size:88px; }
  .homeV19ProofGrid{ margin-top:50px; }
  .homeV19Routes{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .homeV19Routes a:nth-child(2){ border-right:0; }
  .homeV19Routes a:nth-child(-n+2){ border-bottom:1px solid var(--v19-line); }
  .homeV19Routes a:first-child{ border-radius:11px 0 0 0; }
  .homeV19PeopleGrid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:1020px){
  .homeV19HeroGrid,
  .homeV19QuizLead,
  .homeV19SectionHead,
  .homeV19PeopleHead,
  .homeV19Trust,
  .homeV19Final{ grid-template-columns:1fr; }
  .homeV19HeroCopy{ max-width:940px; }
  .homeV19HeroCopy h1{ max-width:15ch; }
  .homeV19HeroProof{ max-width:820px; min-height:auto; }
  .homeV19SectionHead{ gap:24px; }
  .homeV19SectionHead > p,
  .homeV19SectionHead > div + p{ max-width:72ch; }
  .homeV19QuizLead{ gap:25px; }
  .homeV19QuizIntro p{ max-width:72ch; }
  .homeV19DifferenceGrid{ grid-template-columns:1fr; }
  .homeV19DifferenceGrid article{ min-height:auto; border-right:0; border-bottom:1px solid var(--v19-line); }
  .homeV19DifferenceGrid article:last-child{ border-bottom:0; }
  .homeV19ExploreGrid{ grid-template-columns:1fr; }
  .homeV19Ideas{ min-height:auto; }
  .homeV19PeopleHead{ gap:20px; }
  .homeV19PeopleHead > p{ max-width:72ch; }
  .homeV19PartyGrid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .homeV19PartyGrid a:nth-child(3n){ border-right:1px solid var(--v19-line); }
  .homeV19PartyGrid a:nth-child(2n){ border-right:0; }
  .homeV19Trust{ gap:48px; }
  .homeV19Final{ gap:58px; }
  .route-home #quiz-card .panelHeadDark{ grid-template-columns:1fr; }
}

@media (max-width:760px){
  .route-home .homeMain > .shell{ padding-inline:18px; }
  .homeV19Eyebrow{ font-size:11.5px; letter-spacing:.12em; }
  .homeV19Hero{ padding-top:34px; }
  .homeV19HeroGrid{ gap:38px; }
  .homeV19HeroCopy h1{ max-width:none; font-size:clamp(46px,13.6vw,58px); line-height:.97; }
  .homeV19Lead{ margin-top:23px; font-size:17px; line-height:1.65; }
  .homeV19Actions{ display:grid; margin-top:27px; }
  .homeV19Button{ width:100%; min-height:51px; }
  .homeV19Assurance{ align-items:flex-start; font-size:13px; }
  .homeV19HeroProof{ padding:28px 23px 25px; border-radius:12px; }
  .homeV19HeroProofHead{ display:grid; gap:7px; }
  .homeV19Equation{ margin-top:47px; }
  .homeV19Equation strong{ font-size:71px; }
  .homeV19Equation p{ font-size:15.5px; }
  .homeV19ProofGrid{ grid-template-columns:1fr; margin-top:39px; }
  .homeV19ProofGrid > div{ min-height:auto; }
  .homeV19ProofGrid strong{ font-size:21px; }
  .homeV19HeroProofFoot{ font-size:11.5px; }
  .homeV19Facts{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .homeV19Facts > div{ min-height:90px; padding:18px; }
  .homeV19Facts > div:nth-child(2){ border-right:0; }
  .homeV19Facts > div:nth-child(-n+2){ border-bottom:1px solid var(--v19-line); }
  .homeV19Facts strong{ font-size:28px; }
  .homeV19Facts span{ font-size:12.5px; }
  .homeV19Routes{ grid-template-columns:1fr; margin-top:38px; }
  .homeV19Routes a{ min-height:auto; padding:22px 19px; border-right:0; border-bottom:1px solid var(--v19-line); }
  .homeV19Routes a:nth-child(-n+2){ border-bottom:1px solid var(--v19-line); }
  .homeV19Routes a:last-child{ border-bottom:0; }
  .homeV19Routes a:first-child{ border-radius:11px 11px 0 0; }
  .homeV19Routes strong{ font-size:24px; }
  .homeV19QuizLead{ padding:70px 0 24px; }
  .homeV19QuizLead h2,
  .homeV19SectionHead h2,
  .homeV19TrustIntro h2,
  .homeV19FinalIntro h2{ max-width:none; font-size:clamp(38px,10.5vw,48px); }
  .homeV19QuizIntro p,
  .homeV19SectionHead > p,
  .homeV19SectionHead > div + p{ font-size:15.5px; }
  .route-home #quiz-card{ margin-bottom:88px !important; border-radius:10px; }
  .route-home #quiz-card .panelHeadDark{ padding:35px 22px; border-radius:10px 10px 0 0 !important; }
  .route-home #quiz-card .panelHeadDark::before{ left:22px; width:84px; }
  .route-home #quiz-card .partyPageTitle{ font-size:39px; }
  .route-home #quiz-card .panelSub{ font-size:15px; }
  .route-home #quiz-card .panelBody{ padding:18px 13px 23px; border-radius:0 0 10px 10px; }
  .route-home #quiz-card .step{ padding:27px 19px; }
  .route-home #quiz-card .statement{ font-size:29px; }
  .route-home #quiz-card .scale{ grid-template-columns:1fr; }
  .route-home #quiz-card .opt{ min-height:58px; display:grid; grid-template-columns:34px 1fr; text-align:left; }
  .homeV19Difference,
  .homeV19Explore,
  .homeV19Parties,
  .homeV19Trust,
  .homeV19Final{ margin-bottom:82px; }
  .homeV19Difference{ padding:64px 20px; border-radius:12px; }
  .homeV19SectionHead{ margin-bottom:31px; }
  .homeV19DifferenceGrid article{ grid-template-columns:48px 1fr; gap:16px; padding:25px 4px; }
  .homeV19Icon{ width:44px; height:44px; }
  .homeV19Icon svg{ width:26px; height:26px; }
  .homeV19DifferenceGrid h3{ font-size:25px; }
  .homeV19CompareFeature{ min-height:auto; padding:30px 23px 34px; }
  .homeV19CompareNames{ margin:52px 0 22px; gap:12px; }
  .homeV19CompareNames b{ font-size:64px; }
  .homeV19CompareFeature h3{ font-size:35px; }
  .homeV19Ideas{ padding:30px 23px 25px; }
  .homeV19PeopleHead{ margin-top:58px; }
  .homeV19PeopleGrid{ grid-template-columns:1fr; }
  .homeV19Person > span{ aspect-ratio:16/10; }
  .homeV19PeopleAll{ float:none; }
  .homeV19PartyGrid{ grid-template-columns:1fr; }
  .homeV19PartyGrid a:nth-child(n){ border-right:0; }
  .homeV19Trust{ padding:39px 23px; border-radius:12px; }
  .homeV19TrustIntro > p:not(.homeV19Eyebrow){ font-size:15.5px; }
  .homeV19Final{ gap:46px; }
  .homeV19FinalIntro > p:not(.homeV19Eyebrow){ font-size:16px; }
  .homeV19Faq summary{ font-size:14.5px; }
}

@media (max-width:420px){
  .homeV19HeroCopy h1{ font-size:44px; }
  .homeV19Equation strong{ font-size:64px; }
  .homeV19Facts > div{ padding:16px 14px; }
  .homeV19CompareNames b{ font-size:56px; }
}

/* V19.1 — affinage des portes d’entrée et du comparatif vedette. */
.homeV19Routes a > div{ min-width:0; }
.homeV19Routes a > div strong{ display:block; }
.homeV19Routes a > div small{ display:block; }
.homeV19Routes i{ justify-self:end; }
.homeV19CompareFeature::before{ display:none; }
.homeV19CompareBody{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(280px,.72fr);
  gap:clamp(45px,5vw,86px);
  align-items:end;
  margin-top:68px;
}
.homeV19CompareCopy{ min-width:0; }
.homeV19CompareNames{ margin:0 0 26px; }
.homeV19CompareCopy h3{ max-width:17ch; margin:0; font-family:var(--serif); font-size:clamp(35px,2.5vw,49px); line-height:1.01; font-weight:680; letter-spacing:-.045em; }
.homeV19CompareCopy > p{ max-width:58ch; margin:22px 0 0; color:#5c6879; font-size:16px; line-height:1.72; }
.homeV19CompareCopy > a{ display:inline-flex; gap:10px; margin-top:31px; padding-bottom:5px; border-bottom:1px solid #738195; color:var(--v19-ink); font-size:14.5px; font-weight:800; text-decoration:none; }
.homeV19CompareContrast{ border-top:1px solid #aab6c4; }
.homeV19CompareContrast > div{ padding:24px 0; border-bottom:1px solid var(--v19-line); }
.homeV19CompareContrast span{ display:block; color:#7b8899; font-size:10.5px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.homeV19CompareContrast strong{ display:block; margin-top:10px; font-family:var(--serif); font-size:24px; line-height:1.08; font-weight:660; letter-spacing:-.03em; }
.homeV19CompareContrast p{ margin:10px 0 0; color:#647184; font-size:14px; line-height:1.58; }
@media (max-width:1020px){
  .homeV19CompareBody{ grid-template-columns:1fr; gap:44px; }
  .homeV19CompareContrast{ display:grid; grid-template-columns:1fr 1fr; gap:24px; border-top:0; }
  .homeV19CompareContrast > div{ border-top:1px solid #aab6c4; }
}
@media (max-width:760px){
  .homeV19Routes a{ grid-template-columns:30px 1fr auto; }
  .homeV19CompareBody{ margin-top:50px; }
  .homeV19CompareContrast{ grid-template-columns:1fr; gap:0; }
  .homeV19CompareContrast > div{ border-top:1px solid #aab6c4; }
}

/* V19.2 — aucune information utile en micro-typographie. */
.logoTag{ font-size:10.5px; }
.homeV19HeroProofHead,
.homeV19ProofGrid span,
.homeV19CompareTop{ font-size:11.5px; }
.homeV19Routes a > span,
.homeV19DifferenceGrid small,
.homeV19CompareContrast span,
.homeV19Ideas nav a span,
.homeV19Person small,
.homeV19TrustPoints article > span{ font-size:11.5px; }
.footerColTitle{ font-size:11.5px; }
.footerTrustKicker{ font-size:10.5px; }
.footerBottom{ font-size:11.5px; }

/* ========================================================================== 
   POLITIQUEMENT.ORG — HOME V20
   Héros photographique plein écran : promesse, désirabilité, hiérarchie.
   ========================================================================== */

.route-home,
.route-home body{
  overflow-x:clip;
}
.homeV20Hero{
  position:relative;
  left:auto;
  right:auto;
  width:100%;
  max-width:none;
  min-height:clamp(690px,48vw,850px);
  margin:0;
  overflow:hidden;
  display:flex;
  align-items:stretch;
  color:#fff;
  background:#07111e;
  isolation:isolate;
}
.homeV20HeroMedia{
  position:absolute;
  inset:0;
  z-index:-3;
  display:block;
}
.homeV20HeroMedia img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center center;
  filter:saturate(.92) contrast(1.02) brightness(.90);
  transform:none;
}
.homeV20HeroOverlay{
  position:absolute;
  inset:0;
  z-index:-2;
  background:
    linear-gradient(90deg,rgba(6,16,30,.78) 0%,rgba(6,16,30,.66) 18%,rgba(6,16,30,.42) 34%,rgba(6,16,30,.18) 50%,rgba(6,16,30,.06) 66%,rgba(6,16,30,0) 80%),
    linear-gradient(180deg,rgba(4,10,19,.12) 0%,rgba(4,10,19,.05) 46%,rgba(4,10,19,.46) 100%);
}
.homeV20Hero::after{
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:1px;
  background:linear-gradient(90deg,#175f9f 0 33.333%,rgba(255,255,255,.78) 33.333% 66.666%,#cf4d46 66.666% 100%);
  opacity:.9;
}
.homeV20HeroInner{
  width:min(100%,1840px);
  min-height:inherit;
  margin:0 auto;
  padding:clamp(72px,6vw,112px) clamp(24px,5vw,92px) clamp(72px,5.7vw,98px);
  display:flex;
  align-items:center;
}
.homeV20HeroCopy{
  width:min(920px,62vw);
  padding-top:4px;
}
.homeV20Eyebrow{
  margin:0 0 24px;
  color:rgba(225,235,248,.74);
  font-family:var(--sans);
  font-size:12.5px;
  line-height:1.4;
  font-weight:800;
  letter-spacing:.19em;
  text-transform:uppercase;
}
.homeV20Eyebrow::before{
  content:"";
  display:inline-block;
  width:52px;
  height:3px;
  margin:0 15px 4px 0;
  background:linear-gradient(90deg,#2d79b9 0 34%,rgba(255,255,255,.92) 34% 66%,#df5b53 66% 100%);
}
.homeV20Hero h1{
  max-width:12.6ch;
  margin:0;
  color:#fff;
  font-family:var(--serif);
  font-size:clamp(66px,5.25vw,102px);
  line-height:.94;
  font-weight:650;
  letter-spacing:-.062em;
  text-wrap:balance;
  text-shadow:0 4px 28px rgba(0,0,0,.24);
}
.homeV20Hero h1 span{
  display:block;
  margin-top:8px;
  color:#b8cee8;
  font-weight:470;
  letter-spacing:-.052em;
}
.homeV20Lead{
  max-width:63ch;
  margin:29px 0 0;
  color:rgba(244,248,253,.80);
  font-size:clamp(18px,1.08vw,21px);
  line-height:1.68;
  text-shadow:0 2px 16px rgba(0,0,0,.24);
}
.homeV20Actions{
  display:flex;
  flex-wrap:wrap;
  gap:14px 16px;
  margin-top:34px;
}
.homeV20Button{
  min-height:56px;
  padding:15px 24px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  border:1px solid rgba(255,255,255,.56);
  border-radius:4px;
  color:#fff;
  font-size:14.5px;
  line-height:1;
  font-weight:820;
  text-decoration:none;
  transition:transform .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.homeV20Button:hover{ transform:translateY(-2px); }
.homeV20ButtonPrimary{
  border-color:#fff;
  background:#fff;
  color:#07172e;
  box-shadow:0 16px 34px rgba(0,0,0,.18);
}
.homeV20ButtonPrimary:hover{ background:#eef4fb; border-color:#eef4fb; box-shadow:0 21px 42px rgba(0,0,0,.23); }
.homeV20ButtonGhost{ background:rgba(8,20,37,.26); backdrop-filter:blur(6px); }
.homeV20ButtonGhost:hover{ background:rgba(255,255,255,.10); border-color:#fff; }
.homeV20Stats{
  width:min(780px,100%);
  margin-top:38px;
  padding-top:24px;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  border-top:1px solid rgba(255,255,255,.24);
}
.homeV20Stats > div{
  min-width:0;
  padding:0 22px;
  border-right:1px solid rgba(255,255,255,.20);
}
.homeV20Stats > div:first-child{ padding-left:0; }
.homeV20Stats > div:last-child{ padding-right:0; border-right:0; }
.homeV20Stats strong{
  display:block;
  color:#fff;
  font-family:var(--serif);
  font-size:clamp(26px,1.7vw,34px);
  line-height:1;
  font-weight:630;
  letter-spacing:-.035em;
}
.homeV20Stats span{
  display:block;
  margin-top:7px;
  color:rgba(236,243,251,.64);
  font-size:13px;
  line-height:1.35;
}

/* La navigation éditoriale prolonge le héros au lieu de devenir un bloc séparé. */
.homeV20Hero + .shell > .homeV19Routes{
  position:relative;
  z-index:8;
  margin-top:-34px;
  border-color:#d6e0eb;
  box-shadow:0 20px 46px rgba(7,23,46,.10);
}
.homeV20Hero + .shell > .homeV19Routes a{
  min-height:162px;
  background:#fff;
}
.homeV20Hero + .shell > .homeV19Routes a:first-child{
  background:linear-gradient(145deg,#07172e 0%,#0d294b 100%);
}
.homeV20Hero + .shell > .homeV19Routes strong{ font-size:27px; }
.homeV20Hero + .shell > .homeV19Routes small{ font-size:14.5px; }

@media (max-width:1280px){
  .homeV20Hero{ min-height:730px; }
  .homeV20HeroCopy{ width:min(760px,63vw); }
  .homeV20Hero h1{ font-size:clamp(60px,5.5vw,82px); }
  .homeV20Lead{ max-width:57ch; }
}

@media (max-width:900px){
  .homeV20Hero{ min-height:760px; }
  .homeV20HeroMedia img{ object-position:60% center; }
  .homeV20HeroOverlay{
    background:
      linear-gradient(90deg,rgba(4,14,29,.72) 0%,rgba(5,16,31,.56) 26%,rgba(5,16,31,.30) 48%,rgba(5,16,31,.12) 68%,rgba(5,16,31,0) 86%),
      linear-gradient(180deg,rgba(4,10,19,.16) 0%,rgba(4,10,19,.05) 45%,rgba(4,10,19,.64) 100%);
  }
  .homeV20HeroCopy{ width:min(720px,82vw); }
  .homeV20Stats{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 0; }
  .homeV20Stats > div:nth-child(2){ border-right:0; }
  .homeV20Stats > div:nth-child(3){ padding-left:0; }
}

@media (max-width:760px){
  .homeV20Hero{
    min-height:830px;
    align-items:flex-end;
  }
  .homeV20HeroMedia img{
    object-position:63% center;
    filter:saturate(.88) contrast(1.02) brightness(.74);
  }
  .homeV20HeroOverlay{
    background:
      linear-gradient(180deg,rgba(3,10,19,.28) 0%,rgba(3,11,22,.60) 30%,rgba(3,11,22,.95) 68%,rgba(3,11,22,.99) 100%),
      linear-gradient(90deg,rgba(3,10,20,.58),rgba(3,10,20,.18));
  }
  .homeV20HeroInner{
    min-height:inherit;
    padding:94px 20px 78px;
    align-items:flex-end;
  }
  .homeV20HeroCopy{ width:100%; }
  .homeV20Eyebrow{ margin-bottom:18px; font-size:11px; letter-spacing:.145em; }
  .homeV20Eyebrow::before{ width:36px; margin-right:11px; }
  .homeV20Hero h1{
    max-width:11.8ch;
    font-size:clamp(47px,13.3vw,60px);
    line-height:.96;
  }
  .homeV20Hero h1 span{ margin-top:7px; }
  .homeV20Lead{ margin-top:22px; font-size:16.5px; line-height:1.62; }
  .homeV20Actions{ display:grid; margin-top:27px; }
  .homeV20Button{ width:100%; min-height:52px; }
  .homeV20Stats{ margin-top:29px; padding-top:20px; }
  .homeV20Stats > div{ padding:0 15px; }
  .homeV20Stats strong{ font-size:26px; }
  .homeV20Stats span{ font-size:12.5px; }
  .homeV20Hero + .shell > .homeV19Routes{ margin-top:-24px; }
}

@media (max-width:420px){
  .homeV20Hero{ min-height:865px; }
  .homeV20Hero h1{ font-size:44px; }
  .homeV20Stats{ gap:16px 0; }
}

/* V20.1 — cadrage du premier écran : quatre lignes fortes, pas un mur typographique. */
@media (min-width:901px){
  .homeV20Hero{ min-height:clamp(720px,44vw,830px); }
  .homeV20HeroInner{ padding-top:clamp(64px,4.8vw,88px); padding-bottom:clamp(66px,4.8vw,90px); }
  .homeV20HeroCopy{ width:min(980px,64vw); }
  .homeV20Hero h1{
    max-width:16.2ch;
    font-size:clamp(60px,4.25vw,84px);
    line-height:.95;
  }
  .homeV20Lead{ max-width:67ch; font-size:clamp(18px,1vw,20px); }
}


.route-home .homeMain{
  overflow-x:clip;
}
.route-home .shell{
  overflow:visible;
}


/* V24 — le héros est désormais un vrai bloc pleine largeur.
   Aucun 100vw/50vw : ces unités incluaient la barre de défilement et créaient
   précisément les bandes latérales visibles sur certains écrans. */
html,
body.route-home,
body.route-home main.homeMain{
  width:100%;
  max-width:100%;
  overflow-x:hidden;
}
body.route-home .homeV20Hero{
  left:auto !important;
  right:auto !important;
  width:100% !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
}


/* ==========================================================================
   POLITIQUEMENT.ORG — V25 SEO/GEO éditorial
   Ajustements textuels et de confiance sans modifier la direction graphique.
   ========================================================================== */
.homeV25CardLink{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:18px;
  padding-bottom:4px;
  color:#0b2441;
  font-size:13.5px;
  line-height:1.35;
  font-weight:800;
  text-decoration:none;
  border-bottom:1px solid rgba(11,36,65,.30);
}
.homeV25CardLink:hover{ border-bottom-color:#0b2441; }
.homeV25EditorialByline{
  margin:22px 0 0 !important;
  padding:18px 0 0;
  border-top:1px solid rgba(255,255,255,.16);
  color:rgba(239,246,255,.72) !important;
  font-size:14px !important;
  line-height:1.65 !important;
}
.homeV25EditorialByline strong{ color:#fff; }
.homeV25EditorialByline a{
  color:#fff;
  font-weight:800;
  text-decoration:none;
  border-bottom:1px solid rgba(255,255,255,.34);
}
.homeV25EditorialByline a:hover{ border-bottom-color:#fff; }
@media (max-width:760px){
  .homeV25CardLink{ font-size:13px; }
  .homeV25EditorialByline{ font-size:13.5px !important; }
}
.homeV19DifferenceGrid article > div{ min-width:0; display:flex; flex-direction:column; }
.homeV19DifferenceGrid .homeV25CardLink{ margin-top:auto; padding-top:18px; }
