1<!DOCTYPE html><html lang="fr"><head> 2 <meta charset="UTF-8"> 3 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 4 <title>Les Présidentielles AI · Comparateur IA des programmes 2027</title> 5 <meta name="description" content="Dialoguez avec une IA qui analyse, compare et cite les programmes officiels des candidats à l'élection présidentielle française. Neutre, sourcé, gratuit."> 6 <meta name="author" content="Les Présidentielles AI"> 7 <meta name="theme-color" content="#003189"> 8 <link rel="icon" href="/favicon.ico" sizes="any"> 9 <link rel="icon" type="image/svg+xml" href="/favicon.svg"> 10 <!-- Canonical, og:url et hreflang injectes par DynamicSeo (SPA) ou postProcess vite (prerender). 11 Pas de tag statique ici â ils seraient dupliques ou herités par toutes les pages. --> 12 13 <!-- Open Graph --> 14 <meta property="og:title" content="Les Présidentielles AI · Comparateur IA des programmes 2027"> 15 <meta property="og:description" content="Dialoguez avec une IA qui analyse, compare et cite les programmes officiels des candidats à l'élection présidentielle française. Neutre, sourcé, gratuit."> 16 <meta property="og:type" content="website"> 17 <meta property="og:site_name" content="Les Présidentielles AI"> 18 <meta property="og:image" content="https://www.lespresidentielles.ai/images/og-news-default.png"> 19 <meta property="og:image:width" content="1200"> 20 <meta property="og:image:height" content="630"> 21 <meta property="og:image:alt" content="Les Présidentielles AI â Présidentielle 2027 éclairée par l'IA"> 22 <meta property="og:locale" content="fr_FR"> 23 24 <!-- Twitter / X --> 25 <meta name="twitter:card" content="summary_large_image"> 26 <meta name="twitter:title" content="Les Présidentielles AI · Comparateur IA des programmes 2027"> 27 <meta name="twitter:description" content="Dialoguez avec une IA qui analyse, compare et cite les programmes officiels des candidats à l'élection présidentielle française."> 28 <meta name="twitter:image" content="https://www.lespresidentielles.ai/images/og-news-default.png"> 29 30 <!-- Schema.org â NewsMediaOrganization --> 31
31<script type="application/ld+json"> 32 { 33 "@context": "https://schema.org", 34 "@type": "NewsMediaOrganization", 35 "@id": "https://www.lespresidentielles.ai/#organization", 36 "name": "Les Présidentielles AI", 37 "legalName": "DSIA CONSEIL", 38 "url": "https://www.lespresidentielles.ai", 39 "description": "Comparateur indépendant des programmes des candidats à l'élection présidentielle française. Ãdité par DSIA CONSEIL, sans affiliation politique.", 40 "foundingDate": "2026", 41 "inLanguage": "fr-FR", 42 "knowsAbout": "Ãlection présidentielle française 2027", 43 "address": { 44 "@type": "PostalAddress", 45 "streetAddress": "60 rue François Ier", 46 "addressLocality": "Paris", 47 "postalCode": "75008", 48 "addressCountry": "FR" 49 }, 50 "identifier": { 51 "@type": "PropertyValue", 52 "name": "SIREN", 53 "value": "993541184" 54 }, 55 "vatID": "FR95993541184", 56 "masthead": "https://www.lespresidentielles.ai/methodologie" 57 } 58 </script>
58 59 60 <!-- Schema.org â WebSite avec SearchAction --> 61
61<script type="application/ld+json"> 62 { 63 "@context": "https://schema.org", 64 "@type": "WebSite", 65 "@id": "https://www.lespresidentielles.ai/#website", 66 "name": "Les Présidentielles AI", 67 "alternateName": "Comparateur IA des programmes électoraux", 68 "url": "https://www.lespresidentielles.ai", 69 "description": "Dialoguez avec une IA qui analyse, compare et cite les programmes officiels des candidats à l'élection présidentielle française. Neutre, sourcé, gratuit.", 70 "inLanguage": "fr-FR", 71 "publisher": { "@id": "https://www.lespresidentielles.ai/#organization" }, 72 "potentialAction": { 73 "@type": "SearchAction", 74 "target": { 75 "@type": "EntryPoint", 76 "urlTemplate": "https://www.lespresidentielles.ai/#chat?q={search_term_string}" 77 }, 78 "query-input": "required name=search_term_string" 79 } 80 } 81 </script>
81 82 83 <!-- Google Analytics 4 -->
vendor: 71 bytes, lines 83-84
83 84 <script async="" src="https://www.googletagmanager.com/gtag/js?id=
84G-2H11TR9WXF
vendor: 16 bytes, lines 84-85
84"></script> 85
85<script> 86
vendor: 145 bytes, lines 86-89
86window.dataLayer = window.dataLayer || []; 87 function gtag(){dataLayer.push(arguments);} 88 gtag('js', new Date()); 89 gtag('config', '
89G-2H11TR9WXF
vendor: 8 bytes, lines 89-90
89'); 90
90</script>
90 91 92 <!-- Preload LCP image --> 93 <link rel="preload" as="image" href="/images/elysee/elysee_facade.webp" fetchpriority="high" type="image/webp"> 94 95
95<script type="module" crossorigin="" src="/assets/index-FzVJRTI8.js"></script>
95 96 <link rel="stylesheet" crossorigin="" href="/assets/index-Bv46si4o.css"> 97 <style type="text/css">:where(html[dir="ltr"]),:where([data-sonner-toaster][dir="ltr"]){--toast-icon-margin-start: -3px;--toast-icon-margin-end: 4px;--toast-svg-margin-start: -1px;--toast-svg-margin-end: 0px;--toast-button-margin-start: auto;--toast-button-margin-end: 0;--toast-close-button-start: 0;--toast-close-button-end: unset;--toast-close-button-transform: translate(-35%, -35%)}:where(html[dir="rtl"]),:where([data-sonner-toaster][dir="rtl"]){--toast-icon-margin-start: 4px;--toast-icon-margin-end: -3px;--toast-svg-margin-start: 0px;--toast-svg-margin-end: -1px;--toast-button-margin-start: 0;--toast-button-margin-end: auto;--toast-close-button-start: unset;--toast-close-button-end: 0;--toast-close-button-transform: translate(35%, -35%)}:where([data-sonner-toaster]){position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1: hsl(0, 0%, 99%);--gray2: hsl(0, 0%, 97.3%);--gray3: hsl(0, 0%, 95.1%);--gray4: hsl(0, 0%, 93%);--gray5: hsl(0, 0%, 90.9%);--gray6: hsl(0, 0%, 88.7%);--gray7: hsl(0, 0%, 85.8%);--gray8: hsl(0, 0%, 78%);--gray9: hsl(0, 0%, 56.1%);--gray10: hsl(0, 0%, 52.3%);--gray11: hsl(0, 0%, 43.5%);--gray12: hsl(0, 0%, 9%);--border-radius: 8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:none;z-index:999999999;transition:transform .4s ease}:where([data-sonner-toaster][data-lifted="true"]){transform:translateY(-10px)}@media (hover: none) and (pointer: coarse){:where([data-sonner-toaster][data-lifted="true"]){transform:none}}:where([data-sonner-toaster][data-x-position="right"]){right:var(--offset-right)}:where([data-sonner-toaster][data-x-position="left"]){left:var(--offset-left)}:where([data-sonner-toaster][data-x-position="center"]){left:50%;transform:translate(-50%)}:where([data-sonner-toaster][data-y-position="top"]){top:var(--offset-top)}:where([data-sonner-toaster][data-y-position="bottom"]){bottom:var(--offset-bottom)}:where([data-sonner-toast]){--y: translateY(100%);--lift-amount: calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);filter:blur(0);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:none;overflow-wrap:anywhere}:where([data-sonner-toast][data-styled="true"]){padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a;width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}:where([data-sonner-toast]:focus-visible){box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast][data-y-position="top"]){top:0;--y: translateY(-100%);--lift: 1;--lift-amount: calc(1 * var(--gap))}:where([data-sonner-toast][data-y-position="bottom"]){bottom:0;--y: translateY(100%);--lift: -1;--lift-amount: calc(var(--lift) * var(--gap))}:where([data-sonner-toast]) :where([data-description]){font-weight:400;line-height:1.4;color:inherit}:where([data-sonner-toast]) :where([data-title]){font-weight:500;line-height:1.5;color:inherit}:where([data-sonner-toast]) :where([data-icon]){display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}:where([data-sonner-toast][data-promise="true"]) :where([data-icon])>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}:where([data-sonner-toast]) :where([data-icon])>*{flex-shrink:0}:where([data-sonner-toast]) :where([data-icon]) svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}:where([data-sonner-toast]) :where([data-content]){display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;cursor:pointer;outline:none;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}:where([data-sonner-toast]) :where([data-button]):focus-visible{box-shadow:0 0 0 2px #0006}:where([data-sonner-toast]) :where([data-button]):first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}:where([data-sonner-toast]) :where([data-cancel]){color:var(--normal-text);background:rgba(0,0,0,.08)}:where([data-sonner-toast][data-theme="dark"]) :where([data-cancel]){background:rgba(255,255,255,.3)}:where([data-sonner-toast]) :where([data-close-button]){position:absolute;
97left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast] [data-close-button]{background:var(--gray1)}:where([data-sonner-toast]) :where([data-close-button]):focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast]) :where([data-disabled="true"]){cursor:not-allowed}:where([data-sonner-toast]):hover :where([data-close-button]):hover{background:var(--gray2);border-color:var(--gray5)}:where([data-sonner-toast][data-swiping="true"]):before{content:"";position:absolute;left:-50%;right:-50%;height:100%;z-index:-1}:where([data-sonner-toast][data-y-position="top"][data-swiping="true"]):before{bottom:50%;transform:scaleY(3) translateY(50%)}:where([data-sonner-toast][data-y-position="bottom"][data-swiping="true"]):before{top:50%;transform:scaleY(3) translateY(-50%)}:where([data-sonner-toast][data-swiping="false"][data-removed="true"]):before{content:"";position:absolute;inset:0;transform:scaleY(2)}:where([data-sonner-toast]):after{content:"";position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}:where([data-sonner-toast][data-mounted="true"]){--y: translateY(0);opacity:1}:where([data-sonner-toast][data-expanded="false"][data-front="false"]){--scale: var(--toasts-before) * .05 + 1;--y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}:where([data-sonner-toast])>*{transition:opacity .4s}:where([data-sonner-toast][data-expanded="false"][data-front="false"][data-styled="true"])>*{opacity:0}
97:where([data-sonner-toast][data-visible="false"]){opacity:0;pointer-events:none}:where([data-sonner-toast][data-mounted="true"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}:where([data-sonner-toast][data-removed="true"][data-front="true"][data-swipe-out="false"]){--y: translateY(calc(var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="false"]){--y: translateY(40%);opacity:0;transition:transform .5s,opacity .2s}:where([data-sonner-toast][data-removed="true"][data-front="false"]):before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y, 0px)) translate(var(--swipe-amount-x, 0px));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width: 600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-theme=light]{--normal-bg: #fff;--normal-border: var(--gray4);--normal-text: var(--gray12);--success-bg: hsl(143, 85%, 96%);--success-border: hsl(145, 92%, 91%);--success-text: hsl(140, 100%, 27%);--info-bg: hsl(208, 100%, 97%);--info-border: hsl(221, 91%, 91%);--info-text: hsl(210, 92%, 45%);--warning-bg: hsl(49, 100%, 97%);--warning-border: hsl(49, 91%, 91%);--warning-text: hsl(31, 92%, 45%);--error-bg: hsl(359, 100%, 97%);--error-border: hsl(359, 100%, 94%);--error-text: hsl(360, 100%, 45%)}[data-sonner-toaster][data-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg: #000;--normal-border: hsl(0, 0%, 20%);--normal-text: var(--gray1)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg: #fff;--normal-border: var(--gray3);--normal-text: var(--gray12)}[data-sonner-toaster][data-theme=dark]{--normal-bg: #000;--normal-bg-hover: hsl(0, 0%, 12%);--normal-border: hsl(0, 0%, 20%);--normal-border-hover: hsl(0, 0%, 25%);--normal-text: var(--gray1);--success-bg: hsl(150, 100%, 6%);--success-border: hsl(147, 100%, 12%);--success-text: hsl(150, 86%, 65%);--info-bg: hsl(215, 100%, 6%);--info-border: hsl(223, 100%, 12%);--info-text: hsl(216, 87%, 65%);--warning-bg: hsl(64, 100%, 6%);--warning-border: hsl(60, 100%, 12%);--warning-text: hsl(46, 87%, 65%);--error-bg: hsl(358, 76%, 10%);--error-border: hsl(357, 89%, 16%);
97--error-text: hsl(358, 100%, 81%)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success],[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info],[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning],[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error],[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size: 16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:nth-child(1){animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}to{opacity:.15}}@media (prefers-reduced-motion){[data-sonner-toast],[data-sonner-toast]>*,.sonner-loading-bar{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)} 98</style><link rel="canonical" href="https://www.lespresidentielles.ai/"/><meta property="og:url" content="https://www.lespresidentielles.ai/"/><link rel="alternate" hreflang="fr" href="https://www.lespresidentielles.ai/"/><link rel="alternate" hreflang="x-default" href="https://www.lespresidentielles.ai/"/></head> 99 100 <body> 101 <div id="root"><div role="region" aria-label="Notifications (F8)" tabindex="-1" style="pointer-events: none;"><ol tabindex="-1" class="fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]"></ol></div>
101<section aria-label="Notifications alt+T" tabindex="-1" aria-live="polite" aria-relevant="additions text" aria-atomic="false"></section><button type="button" class="fixed bottom-5 right-5 z-40 bg-gold hover:bg-gold/90 text-republic-blue rounded-full shadow-lg shadow-republic-blue/30 p-4 transition-all hover:scale-105 group" aria-label="Donner un feedback"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-square h-5 w-5"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg><span class="hidden group-hover:inline absolute right-full mr-2 top-1/2 -translate-y-1/2 bg-republic-blue text-paper text-xs px-2 py-1 rounded whitespace-nowrap font-ui">Un bug ? Une idée ?</span></button><main class="min-h-screen bg-background"><header class="fixed left-0 right-0 z-30 bg-republic-blue/95 backdrop-blur-md shadow-lg" style="top: var(--beta-banner-h, 0px);"><div class="mx-auto max-w-[1600px] px-6 md:px-10 py-3 flex items-center justify-between gap-6"><div class="flex flex-col items-start gap-1 shrink-0"><a href="/" class="flex items-start gap-3 group"><div class="flex flex-col"><span class="block font-display text-xl md:text-2xl tracking-tight text-paper">Les <span class="italic text-gold">Présidentielles</span> AI</span><span class="block font-serif-body italic text-[13px] text-gold leading-tight mt-1 whitespace-nowrap">Faites de votre vote un acte éclairé.</span></div></a><button type="button" title="Version bêta publique â lire la mise en garde" class="inline-flex items-center rounded-full border border-gold/50 bg-gold/10 px-2 py-0.5 font-ui text-[9px] uppercase tracking-[0.16em] text-gold whitespace-nowrap hover:bg-gold/20 transition-colors">Version bêta publique</button></div><nav class="hidden md:flex flex-1 flex-wrap items-center justify-center gap-x-6 gap-y-1 font-ui text-[13px] leading-tight text-paper/90"><a href="/election-presidentielle-2027-candidats" class="hover:text-gold transition-colors text-center max-w-[8.5rem]">Candidats pressentis et déclarés</a><a href="/election-presidentielle-2027-politiciens" class="hover:text-gold transition-colors text-center max-w-[8.5rem]">Hommes & femmes politiques</a><a href="/election-presidentielle-2027-partis" class="hover:text-gold transition-colors text-center max-w-[8.5rem]">Partis & mouvements politiques</a><a href="/election-presidentielle-2027-sondages" class="hover:text-gold transition-colors text-center max-w-[8.5rem]">Sondages en vue des élections 2027</a><a href="/election-presidentielle-resultats" class="hover:text-gold transition-colors text-center max-w-[8.5rem]">Résultats des élections 2022</a><a href="/election-presidentielle-2027-news" class="hover:text-gold transition-colors text-center max-w-[8.5rem]">Revue de presse élections 2027</a><a href="/methodologie" class="hover:text-gold transition-colors text-center max-w-[8.5rem]">Notre équipe d'agents IA</a></nav><div class="hidden md:block relative shrink-0"><button type="button" aria-label="Compte" aria-expanded="false" class="flex items-center justify-center h-9 w-9 rounded-full border border-gold/40 text-gold hover:bg-gold/10 transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user h-4 w-4"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg></button></div><button type="button" aria-label="Ouvrir le menu" aria-expanded="false" class="md:hidden text-paper p-1 -mr-1 shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-menu h-6 w-6"><line x1="4" x2="20" y1="12" y2="12"></line><line x1="4" x2="20" y1="6" y2="6"></line><line x1="4" x2="20" y1="18" y2="18"></line></svg></button></div></header><section id="hero" class="relative min-h-[100svh] w-full overflow-hidden bg-republic-blue text-paper"><div class="absolute inset-0 overflow-hidden"><picture><source srcset="/images/elysee/elysee_facade.webp" type="image/webp"><img src="/images/elysee/elysee_facade.jpg" alt="Façade du Palais de l'Ãlysée, Paris â siège de la présidence de la République française" class="h-full w-full object-cover hero-bg-anim" loading="eager" fetchpriority="high"></picture><div class="absolute inset-0" style="background: linear-gradient(180deg, hsl(var(--republic-blue) / 0.78) 0%, hsl(var(--republic-blue) / 0.62) 35%, hsl(var(--republic-blue) / 0.92) 100%); mix-blend-mode: multiply;"></div><div class="absolute inset-0 bg-[radial-gradient(ellipse_at_center,transparent_30%,hsl(var(--republic-blue)/0.7)_100%)]"></div></div><div class="relative z-10 mx-auto max-w-[1400px] px-6 md:px-10 pt-32 md:pt-40 pb-24 md:pb-32 min-h-[100svh] flex flex-col"><div class="flex items-center justify-center gap-4 mb-10"><span class="h-px w-16 bg-gold/60 hero-rule-anim"></span><span class="roman-num hero-fade hero-delay-1">
101â I â</span><span class="h-px w-16 bg-gold/60 hero-rule-anim"></span></div><div class="flex-1 flex flex-col items-center justify-center text-center max-w-5xl mx-auto"><p class="eyebrow mb-8 hero-rise hero-delay-2">Comparateur indépendant · Ãlection présidentielle 2027</p><h1 class="font-display text-[clamp(2.5rem,6.5vw,5.75rem)] leading-[1.02] tracking-tight font-medium text-paper hero-rise hero-delay-3">Comprendre les programmes politiques,<br><span class="italic text-gold-soft">en dialoguant avec l'IA.</span></h1><p class="mt-10 max-w-2xl font-serif-body text-lg md:text-xl leading-relaxed text-paper/85 hero-rise hero-delay-4">Posez n'importe quelle question. Notre intelligence artificielle analyse les programmes officiels des candidats déclarés pour 2027, les compare et cite chaque source.</p><div class="mt-12 flex flex-col sm:flex-row items-center gap-5 hero-rise hero-delay-5"><a href="#chat" class="group font-ui text-sm uppercase tracking-[0.2em] bg-gold text-republic-blue px-8 py-4 hover:bg-paper transition-colors flex items-center gap-3">Démarrer le chat IA · 2027<span class="transition-transform group-hover:translate-x-1">â</span></a></div><div class="mt-14 hero-rise hero-delay-5"><div class="inline-flex flex-col items-center gap-2.5 border-t border-b border-gold/30 py-5 px-10"><span class="font-ui text-[10px] uppercase tracking-[0.28em] text-gold-soft">Premier tour · Présidentielle 2027</span><div class="flex items-baseline gap-3"><span class="font-display text-5xl md:text-6xl leading-none tracking-tight text-paper tabular-nums">Jâ237</span></div><span class="font-ui text-xs uppercase tracking-[0.18em] text-paper/65">dimanche 18 avril 2027</span></div></div></div><div class="flex items-end justify-between mt-16 font-ui text-[10px] uppercase tracking-[0.22em] text-paper/55 hero-fade hero-delay-5"><span>Palais de l'Ãlysée · Paris VIII<sup>e</sup></span><span class="hidden md:inline">Faites défiler pour explorer</span></div></div></section><section id="chat" class="bg-paper pt-16 md:pt-20 pb-24 md:pb-32"><div class="mx-auto max-w-[1280px] px-6 md:px-10"><div class="flex items-center justify-center gap-4 mb-8"><span class="h-px w-12 bg-gold/60"></span><span class="roman-num">â II â</span><span class="h-px w-12 bg-gold/60"></span></div><header class="text-center max-w-3xl mx-auto mb-16"><p class="eyebrow mb-4">Démonstration · Le chat en action</p><h2 class="font-display text-4xl md:text-5xl leading-tight tracking-tight text-foreground">Une question. <span class="italic text-republic-blue">Toutes les réponses, sourcées.</span></h2><p class="mt-6 font-serif-body text-lg text-muted-foreground leading-relaxed">Notre IA conversationnelle s'appuie sur les programmes officiels publiés par chaque candidat. Chaque affirmation est rattachée à une référence vérifiable.</p><p class="mt-6 font-ui uppercase tracking-[0.22em] text-[10px] text-muted-foreground">Vous interrogez la campagne présidentielle 2027 en direct</p></header><div class="mb-10"><div class="relative w-full h-[170px] flex flex-col border border-border bg-paper overflow-hidden"><div class="px-3 py-2.5 border-b border-border bg-secondary flex items-center justify-between gap-3 flex-shrink-0"><div class="flex items-center gap-2 flex-shrink-0"><span class="h-2 w-2 rounded-full bg-republic-red"></span><span class="h-2 w-2 rounded-full bg-gold"></span><span class="h-2 w-2 rounded-full bg-republic-blue"></span><span class="ml-3 font-ui text-[10px] uppercase tracking-[0.22em] text-muted-foreground whitespace-nowrap">Candidats 2027 (15)</span></div><div class="flex items-center gap-1.5 flex-1 max-w-[220px] border border-border bg-paper px-2 py-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search h-3 w-3 text-muted-foreground flex-shrink-0"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.3-4.3"></path></svg><input type="text" placeholder="Rechercherâ¦" class="flex-1 min-w-0 bg-transparent font-ui text-[10px] text-foreground placeholder:text-muted-foreground
101/60 focus:outline-none" value=""></div></div><div class="relative flex-1 overflow-hidden group px-4 py-3" style="mask-image: linear-gradient(to right, transparent 0%, black 5%, black 95%, transparent 100%);"><div class="flex flex-row gap-3 w-max animate-marquee-left group-hover:[animation-play-state:paused]"><div class="w-[240px] flex-shrink-0"><article class="group/card border bg-paper transition-colors border-border hover:border-gold"><div class="flex gap-3 p-2.5"><a aria-label="Voir la fiche de Nathalie Arthaud" class="relative w-[72px] h-24 flex-shrink-0 overflow-hidden bg-muted block" href="/election-presidentielle-2027-candidat-nathalie-arthaud"><img src="/storage/politiciens/nathalie-arthaud/nathalie-arthaud.jpg" alt="Portrait de Nathalie Arthaud, Lutte ouvrière" class="absolute inset-0 h-full w-full object-cover transition-[filter,transform] duration-500 grayscale group-hover/card:grayscale-0 group-hover/card:scale-105" loading="lazy"><span class="absolute top-1 left-1 h-px w-3 bg-gold"></span><span class="absolute top-1 left-1 h-3 w-px bg-gold"></span></a><div class="flex-1 min-w-0 flex flex-col justify-between py-0.5"><div><div class="flex items-start justify-between gap-1.5"><span class="font-display font-bold text-[10px] text-republic-blue border border-republic-blue/40 px-1.5 py-0.5 leading-none tracking-wider">LO</span><span class="font-ui uppercase tracking-[0.18em] text-[7px] px-1 py-0.5 border bg-gold text-foreground border-gold font-bold">Déclaré</span></div><h3 class="mt-1.5 font-display text-[12px] leading-tight text-foreground truncate">Nathalie Arthaud</h3><p class="font-serif-body italic text-[10px] text-muted-foreground truncate">Lutte ouvrière</p></div><div class="mt-1.5 flex items-center justify-between gap-2"><a class="font-ui text-[8px] uppercase tracking-[0.2em] text-republic-blue hover:text-gold transition-colors flex items-center gap-1" href="/election-presidentielle-2027-candidat-nathalie-arthaud">Voir la fiche <span aria-hidden="true">â</span></a><button type="button" aria-pressed="false" title="Suivre Nathalie Arthaud gratuitement" aria-label="Suivre ce candidat gratuitement" class="grid place-items-center h-8 w-8 rounded-full border shadow-sm transition-colors disabled:opacity-50 bg-paper/90 text-republic-blue border-border hover:bg-republic-blue hover:text-paper hover:border-republic-blue backdrop-blur-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell h-3.5 w-3.5"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"></path><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"></path></svg></button></div></div></div></article></div><div class="w-[240px] flex-shrink-0"><article class="group/card border bg-paper transition-colors border-border hover:border-gold"><div class="flex gap-3 p-2.5"><a aria-label="Voir la fiche de François Asselineau" class="relative w-[72px] h-24 flex-shrink-0 overflow-hidden bg-muted block" href="/election-presidentielle-2027-candidat-francois-asselineau"><img src="/storage/politiciens/francois-asselineau/francois-asselineau.jpg" alt="Portrait de François Asselineau, Union populaire républicaine" class="absolute inset-0 h-full w-full object-cover transition-[filter,transform] duration-500 grayscale group-hover/card:grayscale-0 group-hover/card:scale-105" loading="lazy"><span class="absolute top-1 left-1 h-px w-3 bg-gold"></span><span class="absolute top-1 left-1 h-3 w-px bg-gold"></span></a><div class="flex-1 min-w-0 flex flex-col justify-between py-0.5"><div><div class="flex items-start justify-between gap-1.5"><span class="font-display font-bold text-[10px] text-republic-blue border border-republic-blue/40 px-1.5 py-0.5 leading-none tracking-wider">UPR</span><span class="font-ui uppercase tracking-[0.18em] text-[7px] px-1 py-0.5 border bg-gold text-foreground border-gold font-bold">Déclaré</span></div><h3 class="mt-1.5 font-display text-[12px] leading-tight text-foreground truncate">François Asselineau</h3><p class="font-serif-body italic text-[10px] text-muted-foreground truncate">Union populaire républicaine</p></div><div class="mt-1.5 flex items-center justify-between gap-2"><a class="font-ui text-[8px] uppercase tracking-[0.2em] text-republic-blue hover:text-gold transition-colors flex items-center gap-1" href="/election-
101presidentielle-2027-candidat-francois-asselineau">Voir la fiche <span aria-hidden="true">â</span></a><button type="button" aria-pressed="false" title="Suivre François Asselineau gratuitement" aria-label="Suivre ce candidat gratuitement" class="grid place-items-center h-8 w-8 rounded-full border shadow-sm transition-colors disabled:opacity-50 bg-paper/90 text-republic-blue border-border hover:bg-republic-blue hover:text-paper hover:border-republic-blue backdrop-blur-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell h-3.5 w-3.5"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"></path><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"></path></svg></button></div></div></div></article></div><div class="w-[240px] flex-shrink-0"><article class="group/card border bg-paper transition-colors border-border hover:border-gold"><div class="flex gap-3 p-2.5"><a aria-label="Voir la fiche de Gabriel Attal" class="relative w-[72px] h-24 flex-shrink-0 overflow-hidden bg-muted block" href="/election-presidentielle-2027-candidat-gabriel-attal"><img src="/storage/politiciens/gabriel-attal/gabriel-attal.jpg" alt="Portrait de Gabriel Attal, Renaissance" class="absolute inset-0 h-full w-full object-cover transition-[filter,transform] duration-500 grayscale group-hover/card:grayscale-0 group-hover/card:scale-105" loading="lazy"><span class="absolute top-1 left-1 h-px w-3 bg-gold"></span><span class="absolute top-1 left-1 h-3 w-px bg-gold"></span></a><div class="flex-1 min-w-0 flex flex-col justify-between py-0.5"><div><div class="flex items-start justify-between gap-1.5"><span class="font-display font-bold text-[10px] text-republic-blue border border-republic-blue/40 px-1.5 py-0.5 leading-none tracking-wider">RE</span><span class="font-ui uppercase tracking-[0.18em] text-[7px] px-1 py-0.5 border bg-gold text-foreground border-gold font-bold">Déclaré</span></div><h3 class="mt-1.5 font-display text-[12px] leading-tight text-foreground truncate">Gabriel Attal</h3><p class="font-serif-body italic text-[10px] text-muted-foreground truncate">Renaissance</p></div><div class="mt-1.5 flex items-center justify-between gap-2"><a class="font-ui text-[8px] uppercase tracking-[0.2em] text-republic-blue hover:text-gold transition-colors flex items-center gap-1" href="/election-presidentielle-2027-candidat-gabriel-attal">Voir la fiche <span aria-hidden="true">â</span></a><button type="button" aria-pressed="false" title="Suivre Gabriel Attal gratuitement" aria-label="Suivre ce candidat gratuitement" class="grid place-items-center h-8 w-8 rounded-full border shadow-sm transition-colors disabled:opacity-50 bg-paper/90 text-republic-blue border-border hover:bg-republic-blue hover:text-paper hover:border-republic-blue backdrop-blur-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell h-3.5 w-3.5"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"></path><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"></path></svg></button></div></div></div></article></div><div class="w-[240px] flex-shrink-0"><article class="group/card border bg-paper transition-colors border-border hover:border-gold"><div class="flex gap-3 p-2.5"><a aria-label="Voir la fiche de Delphine Batho" class="relative w-[72px] h-24 flex-shrink-0 overflow-hidden bg-muted block" href="/election-presidentielle-2027-candidat-delphine-batho"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/c/c2/Delphine_Batho_%28cropped-2%29.png/500px-Delphine_Batho_%28cropped-2%29.png" alt="Portrait de Delphine Batho, Génération écologie" class="absolute inset-0 h-full w-full object-cover transition-[filter,transform] duration-500 grayscale group-hover/card:grayscale-0 group-hover/card:scale-105" loading="lazy"><span class="absolute top-1 left-1 h-px w-3 bg-gold"></span><span class="absolute top-1 left-1 h-3 w-px bg-gold"></span></a><div class="flex-1 min-w-0 flex flex-col justify-between py-0.5"><div><div class="flex items-start justify-between gap-1.5"><span class="font-display font-bold text-[10px] text-republic-blue border border-republic-blue/40 px-1.5 py-0.5 leading-none tracking-wider">GE</span><span class="font-ui uppercase tracking-[0.18em] text-[7px] px-1 py-0.5 border bg-gold text-foreground border-gold font-bold">Déclaré</span></div><h3 class="mt-1.5 font-display text-[12px] leading-tight text-foreground truncate">Delphine Batho</h3><p class="font-serif-body italic text-[10px] text-muted-foreground truncate">Génération écologie</p></div><div class="mt-1.5 flex items-center justify-between gap-2"><a class="font-ui text-[8px] uppercase tracking-[0.2em] text-republic-blue hover:text-gold transition-colors flex items-center gap-1" href="/election-
101presidentielle-2027-candidat-delphine-batho">Voir la fiche <span aria-hidden="true">â</span></a><button type="button" aria-pressed="false" title="Suivre Delphine Batho gratuitement" aria-label="Suivre ce candidat gratuitement" class="grid place-items-center h-8 w-8 rounded-full border shadow-sm transition-colors disabled:opacity-50 bg-paper/90 text-republic-blue border-border hover:bg-republic-blue hover:text-paper hover:border-republic-blue backdrop-blur-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell h-3.5 w-3.5"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"></path><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"></path></svg></button></div></div></div></article></div><div class="w-[240px] flex-shrink-0"><article class="group/card border bg-paper transition-colors border-border hover:border-gold"><div class="flex gap-3 p-2.5"><a aria-label="Voir la fiche de Xavier Bertrand" class="relative w-[72px] h-24 flex-shrink-0 overflow-hidden bg-muted block" href="/election-presidentielle-2027-candidat-xavier-bertrand"><img src="/storage/politiciens/xavier-bertrand/xavier-bertrand.jpg" alt="Portrait de Xavier Bertrand, Les Républicains" class="absolute inset-0 h-full w-full object-cover transition-[filter,transform] duration-500 grayscale group-hover/card:grayscale-0 group-hover/card:scale-105" loading="lazy"><span class="absolute top-1 left-1 h-px w-3 bg-gold"></span><span class="absolute top-1 left-1 h-3 w-px bg-gold"></span></a><div class="flex-1 min-w-0 flex flex-col justify-between py-0.5"><div><div class="flex items-start justify-between gap-1.5"><span class="font-display font-bold text-[10px] text-republic-blue border border-republic-blue/40 px-1.5 py-0.5 leading-none tracking-wider">LR</span><span class="font-ui uppercase tracking-[0.18em] text-[7px] px-1 py-0.5 border bg-gold text-foreground border-gold font-bold">Déclaré</span></div><h3 class="mt-1.5 font-display text-[12px] leading-tight text-foreground truncate">Xavier Bertrand</h3><p class="font-serif-body italic text-[10px] text-muted-foreground truncate">Les Républicains</p></div><div class="mt-1.5 flex items-center justify-between gap-2"><a class="font-ui text-[8px] uppercase tracking-[0.2em] text-republic-blue hover:text-gold transition-colors flex items-center gap-1" href="/election-presidentielle-2027-candidat-xavier-bertrand">Voir la fiche <span aria-hidden="true">â</span></a><button type="button" aria-pressed="false" title="Suivre Xavier Bertrand gratuitement" aria-label="Suivre ce candidat gratuitement" class="grid place-items-center h-8 w-8 rounded-full border shadow-sm transition-colors disabled:opacity-50 bg-paper/90 text-republic-blue border-border hover:bg-republic-blue hover:text-paper hover:border-republic-blue backdrop-blur-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell h-3.5 w-3.5"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"></path><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"></path></svg></button></div></div></div></article></div><div class="w-[240px] flex-shrink-0"><article class="group/card border bg-paper transition-colors border-border hover:border-gold"><div class="flex gap-3 p-2.5"><a aria-label="Voir la fiche de Karim Bouamrane" class="relative w-[72px] h-24 flex-shrink-0 overflow-hidden bg-muted block" href="/election-presidentielle-2027-candidat-karim-bouamrane"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/2/25/Karim_B.-2027.png/500px-Karim_B.-2027.png" alt="Portrait de Karim Bouamrane, Parti socialiste" class="absolute inset-0 h-full w-full object-cover transition-[filter,transform] duration-500 grayscale group-hover/card:grayscale-0 group-hover/card:scale-105" loading="lazy"><span class="absolute top-1 left-1 h-px w-3 bg-gold"></span><span class="absolute top-1 left-1 h-3 w-px bg-gold"></span></a><div class="flex-1 min-w-0 flex flex-col justify-between py-0.5"><div><div class="flex items-start justify-between gap-1.5"><span class="font-display font-bold text-[10px] text-republic-blue border border-republic-blue/40 px-1.5 py-0.5 leading-none tracking-wider">PS</span><span class="font-ui uppercase tracking-[0.18em] text-[7px] px-1 py-0.5 border bg-gold text-foreground border-gold font-bold">Déclaré</span></div><h3 class="mt-1.5 font-display text-[12px] leading-tight text-foreground truncate">Karim Bouamrane</h3><p class="font-serif-body italic text-[10px] text-muted-foreground truncate">Parti socialiste</p></div><div class="mt-1.5 flex items-center justify-between gap-2"><a class="font-ui text-[8px] uppercase tracking-[0.2em] text-republic-blue hover:text-gold transition-colors flex items-center gap-1" href="/election-
101presidentielle-2027-candidat-karim-bouamrane">Voir la fiche <span aria-hidden="true">â</span></a><button type="button" aria-pressed="false" title="Suivre Karim Bouamrane gratuitement" aria-label="Suivre ce candidat gratuitement" class="grid place-items-center h-8 w-8 rounded-full border shadow-sm transition-colors disabled:opacity-50 bg-paper/90 text-republic-blue border-border hover:bg-republic-blue hover:text-paper hover:border-republic-blue backdrop-blur-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell h-3.5 w-3.5"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"></path><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"></path></svg></button></div></div></div></article></div><div class="w-[240px] flex-shrink-0"><article class="group/card border bg-paper transition-colors border-border hover:border-gold"><div class="flex gap-3 p-2.5"><a aria-label="Voir la fiche de Bernard Cazeneuve" class="relative w-[72px] h-24 flex-shrink-0 overflow-hidden bg-muted block" href="/election-presidentielle-2027-candidat-bernard-cazeneuve"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/a/ac/Bernard_Cazeneuve%2C_%2842399145362%29_%28cropped%29.jpg/500px-Bernard_Cazeneuve%2C_%2842399145362%29_%28cropped%29.jpg" alt="Portrait de Bernard Cazeneuve, L'Ordre Juste" class="absolute inset-0 h-full w-full object-cover transition-[filter,transform] duration-500 grayscale group-hover/card:grayscale-0 group-hover/card:scale-105" loading="lazy"><span class="absolute top-1 left-1 h-px w-3 bg-gold"></span><span class="absolute top-1 left-1 h-3 w-px bg-gold"></span></a><div class="flex-1 min-w-0 flex flex-col justify-between py-0.5"><div><div class="flex items-start justify-between gap-1.5"><span class="font-display font-bold text-[10px] text-republic-blue border border-republic-blue/40 px-1.5 py-0.5 leading-none tracking-wider">DVG</span><span class="font-ui uppercase tracking-[0.18em] text-[7px] px-1 py-0.5 border bg-gold text-foreground border-gold font-bold">Déclaré</span></div><h3 class="mt-1.5 font-display text-[12px] leading-tight text-foreground truncate">Bernard Cazeneuve</h3><p class="font-serif-body italic text-[10px] text-muted-foreground truncate">L'Ordre Juste</p></div><div class="mt-1.5 flex items-center justify-between gap-2"><a class="font-ui text-[8px] uppercase tracking-[0.2em] text-republic-blue hover:text-gold transition-colors flex items-center gap-1" href="/election-presidentielle-2027-candidat-bernard-cazeneuve">Voir la fiche <span aria-hidden="true">â</span></a><button type="button" aria-pressed="false" title="Suivre Bernard Cazeneuve gratuitement" aria-label="Suivre ce candidat gratuitement" class="grid place-items-center h-8 w-8 rounded-full border shadow-sm transition-colors disabled:opacity-50 bg-paper/90 text-republic-blue border-border hover:bg-republic-blue hover:text-paper hover:border-republic-blue backdrop-blur-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell h-3.5 w-3.5"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"></path><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"></path></svg></button></div></div></div></article></div><div class="w-[240px] flex-shrink-0"><article class="group/card border bg-paper transition-colors border-border hover:border-gold"><div class="flex gap-3 p-2.5"><a aria-label="Voir la fiche de Nicolas Dupont-Aignan" class="relative w-[72px] h-24 flex-shrink-0 overflow-hidden bg-muted block" href="/election-presidentielle-2027-candidat-nicolas-dupont-aignan"><img src="/storage/politiciens/nicolas-dupont-aignan/nicolas-dupont-aignan.jpg" alt="Portrait de Nicolas Dupont-Aignan, Debout la France" class="absolute inset-0 h-full w-full object-cover transition-[filter,transform] duration-500 grayscale group-hover/card:grayscale-0 group-hover/card:scale-105" loading="lazy"><span class="absolute top-1 left-1 h-px w-3 bg-gold"></span><span class="absolute top-1 left-1 h-3 w-px bg-gold"></span></a><div class="flex-1 min-w-0 flex flex-col justify-between py-0.5"><div><div class="flex items-start justify-between gap-1.5"><span class="font-display font-bold text-[10px] text-republic-blue border border-republic-blue/40 px-1.5 py-0.5 leading-none tracking-wider">DLF</span><span class="font-ui uppercase tracking-[0.18em] text-[7px] px-1 py-0.5 border bg-gold text-foreground border-gold font-bold">Déclaré</span></div><h3 class="mt-1.5 font-display text-[12px] leading-tight text-foreground truncate">Nicolas Dupont-Aignan</h3><p class="font-serif-body italic text-[10px] text-muted-foreground truncate">Debout la France</p></div><div class="mt-1.5 flex items-center justify-between gap-2"><a class="font-ui text-[8px] uppercase tracking-[0.2em] text-republic-blue hover:text-gold transition-colors flex items-center gap-1" href="/election-
101presidentielle-2027-candidat-nicolas-dupont-aignan">Voir la fiche <span aria-hidden="true">â</span></a><button type="button" aria-pressed="false" title="Suivre Nicolas Dupont-Aignan gratuitement" aria-label="Suivre ce candidat gratuitement" class="grid place-items-center h-8 w-8 rounded-full border shadow-sm transition-colors disabled:opacity-50 bg-paper/90 text-republic-blue border-border hover:bg-republic-blue hover:text-paper hover:border-republic-blue backdrop-blur-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell h-3.5 w-3.5"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"></path><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"></path></svg></button></div></div></div></article></div><div class="w-[240px] flex-shrink-0"><article class="group/card border bg-paper transition-colors border-border hover:border-gold"><div class="flex gap-3 p-2.5"><a aria-label="Voir la fiche de Jérôme Guedj" class="relative w-[72px] h-24 flex-shrink-0 overflow-hidden bg-muted block" href="/election-presidentielle-2027-candidat-jerome-guedj"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/2/27/J%C3%A9r%C3%B4me_Guedj_2010.jpg/500px-J%C3%A9r%C3%B4me_Guedj_2010.jpg" alt="Portrait de Jérôme Guedj, Parti socialiste" class="absolute inset-0 h-full w-full object-cover transition-[filter,transform] duration-500 grayscale group-hover/card:grayscale-0 group-hover/card:scale-105" loading="lazy"><span class="absolute top-1 left-1 h-px w-3 bg-gold"></span><span class="absolute top-1 left-1 h-3 w-px bg-gold"></span></a><div class="flex-1 min-w-0 flex flex-col justify-between py-0.5"><div><div class="flex items-start justify-between gap-1.5"><span class="font-display font-bold text-[10px] text-republic-blue border border-republic-blue/40 px-1.5 py-0.5 leading-none tracking-wider">PS</span><span class="font-ui uppercase tracking-[0.18em] text-[7px] px-1 py-0.5 border bg-gold text-foreground border-gold font-bold">Déclaré</span></div><h3 class="mt-1.5 font-display text-[12px] leading-tight text-foreground truncate">Jérôme Guedj</h3><p class="font-serif-body italic text-[10px] text-muted-foreground truncate">Parti socialiste</p></div><div class="mt-1.5 flex items-center justify-between gap-2"><a class="font-ui text-[8px] uppercase tracking-[0.2em] text-republic-blue hover:text-gold transition-colors flex items-center gap-1" href="/election-presidentielle-2027-candidat-jerome-guedj">Voir la fiche <span aria-hidden="true">â</span></a><button type="button" aria-pressed="false" title="Suivre Jérôme Guedj gratuitement" aria-label="Suivre ce candidat gratuitement" class="grid place-items-center h-8 w-8 rounded-full border shadow-sm transition-colors disabled:opacity-50 bg-paper/90 text-republic-blue border-border hover:bg-republic-blue hover:text-paper hover:border-republic-blue backdrop-blur-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell h-3.5 w-3.5"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"></path><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"></path></svg></button></div></div></div></article></div><div class="w-[240px] flex-shrink-0"><article class="group/card border bg-paper transition-colors border-border hover:border-gold"><div class="flex gap-3 p-2.5"><a aria-label="Voir la fiche de François Hollande" class="relative w-[72px] h-24 flex-shrink-0 overflow-hidden bg-muted block" href="/election-presidentielle-2027-candidat-francois-hollande"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/f/fd/Fran%C3%A7ois_Hollande_-_Ceremony_of_Honour_for_Jacques_Delors_-_2024.jpg/500px-Fran%C3%A7ois_Hollande_-_Ceremony_of_Honour_for_Jacques_Delors_-_2024.jpg" alt="Portrait de François Hollande, Parti socialiste" class="absolute inset-0 h-full w-full object-cover transition-[filter,transform] duration-500 grayscale group-hover/card:grayscale-0 group-hover/card:scale-105" loading="lazy"><span class="absolute top-1 left-1 h-px w-3 bg-gold"></span><span class="absolute top-1 left-1 h-3 w-px bg-gold"></span></a><div class="flex-1 min-w-0 flex flex-col justify-between py-0.5"><div><div class="flex items-start justify-between gap-1.5"><span class="font-display font-bold text-[10px] text-republic-blue border border-republic-blue/40 px-1.5 py-0.5 leading-none tracking-wider">PS</span><span class="font-ui uppercase tracking-[0.18em] text-[7px] px-1 py-0.5 border bg-gold text-foreground border-gold font-bold">Déclaré</span></div><h3 class="mt-1.5 font-display text-[12px] leading-tight text-foreground truncate">François Hollande</h3><p class="font-serif-body italic text-[10px] text-muted-foreground truncate">Parti socialiste</p></div><div class="mt-1.5 flex items-center justify-between gap-2"><a class="font-ui text-[8px] uppercase tracking-[0.2em] text-republic-blue hover:text-gold transition-colors flex items-center gap-1" href="/election-
101presidentielle-2027-candidat-francois-hollande">Voir la fiche <span aria-hidden="true">â</span></a><button type="button" aria-pressed="false" title="Suivre François Hollande gratuitement" aria-label="Suivre ce candidat gratuitement" class="grid place-items-center h-8 w-8 rounded-full border shadow-sm transition-colors disabled:opacity-50 bg-paper/90 text-republic-blue border-border hover:bg-republic-blue hover:text-paper hover:border-republic-blue backdrop-blur-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell h-3.5 w-3.5"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"></path><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"></path></svg></button></div></div></div></article></div><div class="w-[240px] flex-shrink-0"><article class="group/card border bg-paper transition-colors border-border hover:border-gold"><div class="flex gap-3 p-2.5"><a aria-label="Voir la fiche de Anasse Kazib" class="relative w-[72px] h-24 flex-shrink-0 overflow-hidden bg-muted block" href="/election-presidentielle-2027-candidat-anasse-kazib"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/b/b9/Anasse_Kazib%2C_d%C3%A9cembre_2021.jpg/500px-Anasse_Kazib%2C_d%C3%A9cembre_2021.jpg" alt="Portrait de Anasse Kazib, Révolution permanente" class="absolute inset-0 h-full w-full object-cover transition-[filter,transform] duration-500 grayscale group-hover/card:grayscale-0 group-hover/card:scale-105" loading="lazy"><span class="absolute top-1 left-1 h-px w-3 bg-gold"></span><span class="absolute top-1 left-1 h-3 w-px bg-gold"></span></a><div class="flex-1 min-w-0 flex flex-col justify-between py-0.5"><div><div class="flex items-start justify-between gap-1.5"><span class="font-display font-bold text-[10px] text-republic-blue border border-republic-blue/40 px-1.5 py-0.5 leading-none tracking-wider">RP</span><span class="font-ui uppercase tracking-[0.18em] text-[7px] px-1 py-0.5 border bg-gold text-foreground border-gold font-bold">Déclaré</span></div><h3 class="mt-1.5 font-display text-[12px] leading-tight text-foreground truncate">Anasse Kazib</h3><p class="font-serif-body italic text-[10px] text-muted-foreground truncate">Révolution permanente</p></div><div class="mt-1.5 flex items-center justify-between gap-2"><a class="font-ui text-[8px] uppercase tracking-[0.2em] text-republic-blue hover:text-gold transition-colors flex items-center gap-1" href="/election-presidentielle-2027-candidat-anasse-kazib">Voir la fiche <span aria-hidden="true">â</span></a><button type="button" aria-pressed="false" title="Suivre Anasse Kazib gratuitement" aria-label="Suivre ce candidat gratuitement" class="grid place-items-center h-8 w-8 rounded-full border shadow-sm transition-colors disabled:opacity-50 bg-paper/90 text-republic-blue border-border hover:bg-republic-blue hover:text-paper hover:border-republic-blue backdrop-blur-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell h-3.5 w-3.5"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"></path><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"></path></svg></button></div></div></div></article></div><div class="w-[240px] flex-shrink-0"><article class="group/card border bg-paper transition-colors border-border hover:border-gold"><div class="flex gap-3 p-2.5"><a aria-label="Voir la fiche de Selma Labib" class="relative w-[72px] h-24 flex-shrink-0 overflow-hidden bg-muted block" href="/election-presidentielle-2027-candidat-selma-labib"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/1/1a/Selma_Labib.jpg/500px-Selma_Labib.jpg" alt="Portrait de Selma Labib, Nouveau Parti Anticapitaliste" class="absolute inset-0 h-full w-full object-cover transition-[filter,transform] duration-500 grayscale group-hover/card:grayscale-0 group-hover/card:scale-105" loading="lazy"><span class="absolute top-1 left-1 h-px w-3 bg-gold"></span><span class="absolute top-1 left-1 h-3 w-px bg-gold"></span></a><div class="flex-1 min-w-0 flex flex-col justify-between py-0.5"><div><div class="flex items-start justify-between gap-1.5"><span class="font-display font-bold text-[10px] text-republic-blue border border-republic-blue/40 px-1.5 py-0.5 leading-none tracking-wider">NPA</span><span class="font-ui uppercase tracking-[0.18em] text-[7px] px-1 py-0.5 border bg-gold text-foreground border-gold font-bold">Déclaré</span></div><h3 class="mt-1.5 font-display text-[12px] leading-tight text-foreground truncate">Selma Labib</h3><p class="font-serif-body italic text-[10px] text-muted-foreground truncate">Nouveau Parti Anticapitaliste</p></div><div class="mt-1.5 flex items-center justify-between gap-2"><a class="font-ui text-[8px] uppercase tracking-[0.2em] text-republic-blue hover:text-gold transition-colors flex items-center gap-1" href="/election-
101presidentielle-2027-candidat-selma-labib">Voir la fiche <span aria-hidden="true">â</span></a><button type="button" aria-pressed="false" title="Suivre Selma Labib gratuitement" aria-label="Suivre ce candidat gratuitement" class="grid place-items-center h-8 w-8 rounded-full border shadow-sm transition-colors disabled:opacity-50 bg-paper/90 text-republic-blue border-border hover:bg-republic-blue hover:text-paper hover:border-republic-blue backdrop-blur-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell h-3.5 w-3.5"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"></path><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"></path></svg></button></div></div></div></article></div><div class="w-[240px] flex-shrink-0"><article class="group/card border bg-paper transition-colors border-border hover:border-gold"><div class="flex gap-3 p-2.5"><a aria-label="Voir la fiche de Marine Le Pen" class="relative w-[72px] h-24 flex-shrink-0 overflow-hidden bg-muted block" href="/election-presidentielle-2027-candidat-marine-le-pen"><img src="/storage/politiciens/marine-le-pen/marine-le-pen.jpg" alt="Portrait de Marine Le Pen, Rassemblement national" class="absolute inset-0 h-full w-full object-cover transition-[filter,transform] duration-500 grayscale group-hover/card:grayscale-0 group-hover/card:scale-105" loading="lazy"><span class="absolute top-1 left-1 h-px w-3 bg-gold"></span><span class="absolute top-1 left-1 h-3 w-px bg-gold"></span></a><div class="flex-1 min-w-0 flex flex-col justify-between py-0.5"><div><div class="flex items-start justify-between gap-1.5"><span class="font-display font-bold text-[10px] text-republic-blue border border-republic-blue/40 px-1.5 py-0.5 leading-none tracking-wider">RN</span><span class="font-ui uppercase tracking-[0.18em] text-[7px] px-1 py-0.5 border bg-gold text-foreground border-gold font-bold">Déclaré</span></div><h3 class="mt-1.5 font-display text-[12px] leading-tight text-foreground truncate">Marine Le Pen</h3><p class="font-serif-body italic text-[10px] text-muted-foreground truncate">Rassemblement national</p></div><div class="mt-1.5 flex items-center justify-between gap-2"><a class="font-ui text-[8px] uppercase tracking-[0.2em] text-republic-blue hover:text-gold transition-colors flex items-center gap-1" href="/election-presidentielle-2027-candidat-marine-le-pen">Voir la fiche <span aria-hidden="true">â</span></a><button type="button" aria-pressed="false" title="Suivre Marine Le Pen gratuitement" aria-label="Suivre ce candidat gratuitement" class="grid place-items-center h-8 w-8 rounded-full border shadow-sm transition-colors disabled:opacity-50 bg-paper/90 text-republic-blue border-border hover:bg-republic-blue hover:text-paper hover:border-republic-blue backdrop-blur-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell h-3.5 w-3.5"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"></path><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"></path></svg></button></div></div></div></article></div><div class="w-[240px] flex-shrink-0"><article class="group/card border bg-paper transition-colors border-border hover:border-gold"><div class="flex gap-3 p-2.5"><a aria-label="Voir la fiche de Ãdouard Philippe" class="relative w-[72px] h-24 flex-shrink-0 overflow-hidden bg-muted block" href="/election-presidentielle-2027-candidat-edouard-philippe"><img src="/storage/politiciens/edouard-philippe/edouard-philippe.jpg" alt="Portrait de Ãdouard Philippe, Horizons" class="absolute inset-0 h-full w-full object-cover transition-[filter,transform] duration-500 grayscale group-hover/card:grayscale-0 group-hover/card:scale-105" loading="lazy"><span class="absolute top-1 left-1 h-px w-3 bg-gold"></span><span class="absolute top-1 left-1 h-3 w-px bg-gold"></span></a><div class="flex-1 min-w-0 flex flex-col justify-between py-0.5"><div><div class="flex items-start justify-between gap-1.5"><span class="font-display font-bold text-[10px] text-republic-blue border border-republic-blue/40 px-1.5 py-0.5 leading-none tracking-wider">HOR</span><span class="font-ui uppercase tracking-[0.18em] text-[7px] px-1 py-0.5 border bg-gold text-foreground border-gold font-bold">Déclaré</span></div><h3 class="mt-1.5 font-display text-[12px] leading-tight text-foreground truncate">Ãdouard Philippe</h3><p class="font-serif-body italic text-[10px] text-muted-foreground truncate">Horizons</p></div><div class="mt-1.5 flex items-center justify-between gap-2"><a class="font-ui text-[8px] uppercase tracking-[0.2em] text-republic-blue hover:text-gold transition-colors flex items-center gap-1" href="/election-
101presidentielle-2027-candidat-edouard-philippe">Voir la fiche <span aria-hidden="true">â</span></a><button type="button" aria-pressed="false" title="Suivre Ãdouard Philippe gratuitement" aria-label="Suivre ce candidat gratuitement" class="grid place-items-center h-8 w-8 rounded-full border shadow-sm transition-colors disabled:opacity-50 bg-paper/90 text-republic-blue border-border hover:bg-republic-blue hover:text-paper hover:border-republic-blue backdrop-blur-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell h-3.5 w-3.5"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"></path><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"></path></svg></button></div></div></div></article></div><div class="w-[240px] flex-shrink-0"><article class="group/card border bg-paper transition-colors border-border hover:border-gold"><div class="flex gap-3 p-2.5"><a aria-label="Voir la fiche de Fabien Roussel" class="relative w-[72px] h-24 flex-shrink-0 overflow-hidden bg-muted block" href="/election-presidentielle-2027-candidat-fabien-roussel"><img src="/storage/politiciens/fabien-roussel/fabien-roussel.jpg" alt="Portrait de Fabien Roussel, Parti communiste français" class="absolute inset-0 h-full w-full object-cover transition-[filter,transform] duration-500 grayscale group-hover/card:grayscale-0 group-hover/card:scale-105" loading="lazy"><span class="absolute top-1 left-1 h-px w-3 bg-gold"></span><span class="absolute top-1 left-1 h-3 w-px bg-gold"></span></a><div class="flex-1 min-w-0 flex flex-col justify-between py-0.5"><div><div class="flex items-start justify-between gap-1.5"><span class="font-display font-bold text-[10px] text-republic-blue border border-republic-blue/40 px-1.5 py-0.5 leading-none tracking-wider">PCF</span><span class="font-ui uppercase tracking-[0.18em] text-[7px] px-1 py-0.5 border bg-gold text-foreground border-gold font-bold">Déclaré</span></div><h3 class="mt-1.5 font-display text-[12px] leading-tight text-foreground truncate">Fabien Roussel</h3><p class="font-serif-body italic text-[10px] text-muted-foreground truncate">Parti communiste français</p></div><div class="mt-1.5 flex items-center justify-between gap-2"><a class="font-ui text-[8px] uppercase tracking-[0.2em] text-republic-blue hover:text-gold transition-colors flex items-center gap-1" href="/election-presidentielle-2027-candidat-fabien-roussel">Voir la fiche <span aria-hidden="true">â</span></a><button type="button" aria-pressed="false" title="Suivre Fabien Roussel gratuitement" aria-label="Suivre ce candidat gratuitement" class="grid place-items-center h-8 w-8 rounded-full border shadow-sm transition-colors disabled:opacity-50 bg-paper/90 text-republic-blue border-border hover:bg-republic-blue hover:text-paper hover:border-republic-blue backdrop-blur-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell h-3.5 w-3.5"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"></path><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"></path></svg></button></div></div></div></article></div><div class="w-[240px] flex-shrink-0"><article class="group/card border bg-paper transition-colors border-border hover:border-gold"><div class="flex gap-3 p-2.5"><a aria-label="Voir la fiche de Nathalie Arthaud" class="relative w-[72px] h-24 flex-shrink-0 overflow-hidden bg-muted block" href="/election-presidentielle-2027-candidat-nathalie-arthaud"><img src="/storage/politiciens/nathalie-arthaud/nathalie-arthaud.jpg" alt="Portrait de Nathalie Arthaud, Lutte ouvrière" class="absolute inset-0 h-full w-full object-cover transition-[filter,transform] duration-500 grayscale group-hover/card:grayscale-0 group-hover/card:scale-105" loading="lazy"><span class="absolute top-1 left-1 h-px w-3 bg-gold"></span><span class="absolute top-1 left-1 h-3 w-px bg-gold"></span></a><div class="flex-1 min-w-0 flex flex-col justify-between py-0.5"><div><div class="flex items-start justify-between gap-1.5"><span class="font-display font-bold text-[10px] text-republic-blue border border-republic-blue/40 px-1.5 py-0.5 leading-none tracking-wider">LO</span><span class="font-ui uppercase tracking-[0.18em] text-[7px] px-1 py-0.5 border bg-gold text-foreground border-gold font-bold">Déclaré</span></div><h3 class="mt-1.5 font-display text-[12px] leading-tight text-foreground truncate">Nathalie Arthaud</h3><p class="font-serif-body italic text-[10px] text-muted-foreground truncate">
101Lutte ouvrière</p></div><div class="mt-1.5 flex items-center justify-between gap-2"><a class="font-ui text-[8px] uppercase tracking-[0.2em] text-republic-blue hover:text-gold transition-colors flex items-center gap-1" href="/election-presidentielle-2027-candidat-nathalie-arthaud">Voir la fiche <span aria-hidden="true">â</span></a><button type="button" aria-pressed="false" title="Suivre Nathalie Arthaud gratuitement" aria-label="Suivre ce candidat gratuitement" class="grid place-items-center h-8 w-8 rounded-full border shadow-sm transition-colors disabled:opacity-50 bg-paper/90 text-republic-blue border-border hover:bg-republic-blue hover:text-paper hover:border-republic-blue backdrop-blur-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell h-3.5 w-3.5"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"></path><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"></path></svg></button></div></div></div></article></div><div class="w-[240px] flex-shrink-0"><article class="group/card border bg-paper transition-colors border-border hover:border-gold"><div class="flex gap-3 p-2.5"><a aria-label="Voir la fiche de François Asselineau" class="relative w-[72px] h-24 flex-shrink-0 overflow-hidden bg-muted block" href="/election-presidentielle-2027-candidat-francois-asselineau"><img src="/storage/politiciens/francois-asselineau/francois-asselineau.jpg" alt="Portrait de François Asselineau, Union populaire républicaine" class="absolute inset-0 h-full w-full object-cover transition-[filter,transform] duration-500 grayscale group-hover/card:grayscale-0 group-hover/card:scale-105" loading="lazy"><span class="absolute top-1 left-1 h-px w-3 bg-gold"></span><span class="absolute top-1 left-1 h-3 w-px bg-gold"></span></a><div class="flex-1 min-w-0 flex flex-col justify-between py-0.5"><div><div class="flex items-start justify-between gap-1.5"><span class="font-display font-bold text-[10px] text-republic-blue border border-republic-blue/40 px-1.5 py-0.5 leading-none tracking-wider">UPR</span><span class="font-ui uppercase tracking-[0.18em] text-[7px] px-1 py-0.5 border bg-gold text-foreground border-gold font-bold">Déclaré</span></div><h3 class="mt-1.5 font-display text-[12px] leading-tight text-foreground truncate">François Asselineau</h3><p class="font-serif-body italic text-[10px] text-muted-foreground truncate">Union populaire républicaine</p></div><div class="mt-1.5 flex items-center justify-between gap-2"><a class="font-ui text-[8px] uppercase tracking-[0.2em] text-republic-blue hover:text-gold transition-colors flex items-center gap-1" href="/election-presidentielle-2027-candidat-francois-asselineau">Voir la fiche <span aria-hidden="true">â</span></a><button type="button" aria-pressed="false" title="Suivre François Asselineau gratuitement" aria-label="Suivre ce candidat gratuitement" class="grid place-items-center h-8 w-8 rounded-full border shadow-sm transition-colors disabled:opacity-50 bg-paper/90 text-republic-blue border-border hover:bg-republic-blue hover:text-paper hover:border-republic-blue backdrop-blur-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell h-3.5 w-3.5"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"></path><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"></path></svg></button></div></div></div></article></div><div class="w-[240px] flex-shrink-0"><article class="group/card border bg-paper transition-colors border-border hover:border-gold"><div class="flex gap-3 p-2.5"><a aria-label="Voir la fiche de Gabriel Attal" class="relative w-[72px] h-24 flex-shrink-0 overflow-hidden bg-muted block" href="/election-presidentielle-2027-candidat-gabriel-attal"><img src="/storage/politiciens/gabriel-attal/gabriel-attal.jpg" alt="Portrait de Gabriel Attal, Renaissance" class="absolute inset-0 h-full w-full object-cover transition-[filter,transform] duration-500 grayscale group-hover/card:grayscale-0 group-hover/card:scale-105" loading="lazy"><span class="absolute top-1 left-1 h-px w-3 bg-gold"></span><span class="absolute top-1 left-1 h-3 w-px bg-gold"></span></a><div class="flex-1 min-w-0 flex flex-col justify-between py-0.5"><div><div class="flex items-start justify-between gap-1.5"><span class="font-display font-bold text-[10px] text-republic-blue border border-republic-blue/40 px-1.5 py-0.5 leading-none tracking-wider">RE</span><span class="font-ui uppercase tracking-[0.18em] text-[7px] px-1 py-0.5 border bg-gold text-foreground border-gold font-bold">Déclaré</span></div><h3 class="mt-1.5 font-display text-[12px] leading-tight text-foreground truncate">Gabriel Attal</h3><p class="font-serif-body italic text-[10px] text-muted-foreground truncate">Renaissance</p></div><div class="mt-1.5 flex items-center justify-between gap-2"><a class="font-ui text-[8px] uppercase tracking-[0.2em] text-republic-blue hover:text-gold transition-colors flex items-center gap-1" href="/election-
101presidentielle-2027-candidat-gabriel-attal">Voir la fiche <span aria-hidden="true">â</span></a><button type="button" aria-pressed="false" title="Suivre Gabriel Attal gratuitement" aria-label="Suivre ce candidat gratuitement" class="grid place-items-center h-8 w-8 rounded-full border shadow-sm transition-colors disabled:opacity-50 bg-paper/90 text-republic-blue border-border hover:bg-republic-blue hover:text-paper hover:border-republic-blue backdrop-blur-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell h-3.5 w-3.5"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"></path><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"></path></svg></button></div></div></div></article></div><div class="w-[240px] flex-shrink-0"><article class="group/card border bg-paper transition-colors border-border hover:border-gold"><div class="flex gap-3 p-2.5"><a aria-label="Voir la fiche de Delphine Batho" class="relative w-[72px] h-24 flex-shrink-0 overflow-hidden bg-muted block" href="/election-presidentielle-2027-candidat-delphine-batho"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/c/c2/Delphine_Batho_%28cropped-2%29.png/500px-Delphine_Batho_%28cropped-2%29.png" alt="Portrait de Delphine Batho, Génération écologie" class="absolute inset-0 h-full w-full object-cover transition-[filter,transform] duration-500 grayscale group-hover/card:grayscale-0 group-hover/card:scale-105" loading="lazy"><span class="absolute top-1 left-1 h-px w-3 bg-gold"></span><span class="absolute top-1 left-1 h-3 w-px bg-gold"></span></a><div class="flex-1 min-w-0 flex flex-col justify-between py-0.5"><div><div class="flex items-start justify-between gap-1.5"><span class="font-display font-bold text-[10px] text-republic-blue border border-republic-blue/40 px-1.5 py-0.5 leading-none tracking-wider">GE</span><span class="font-ui uppercase tracking-[0.18em] text-[7px] px-1 py-0.5 border bg-gold text-foreground border-gold font-bold">Déclaré</span></div><h3 class="mt-1.5 font-display text-[12px] leading-tight text-foreground truncate">Delphine Batho</h3><p class="font-serif-body italic text-[10px] text-muted-foreground truncate">Génération écologie</p></div><div class="mt-1.5 flex items-center justify-between gap-2"><a class="font-ui text-[8px] uppercase tracking-[0.2em] text-republic-blue hover:text-gold transition-colors flex items-center gap-1" href="/election-presidentielle-2027-candidat-delphine-batho">Voir la fiche <span aria-hidden="true">â</span></a><button type="button" aria-pressed="false" title="Suivre Delphine Batho gratuitement" aria-label="Suivre ce candidat gratuitement" class="grid place-items-center h-8 w-8 rounded-full border shadow-sm transition-colors disabled:opacity-50 bg-paper/90 text-republic-blue border-border hover:bg-republic-blue hover:text-paper hover:border-republic-blue backdrop-blur-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell h-3.5 w-3.5"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"></path><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"></path></svg></button></div></div></div></article></div><div class="w-[240px] flex-shrink-0"><article class="group/card border bg-paper transition-colors border-border hover:border-gold"><div class="flex gap-3 p-2.5"><a aria-label="Voir la fiche de Xavier Bertrand" class="relative w-[72px] h-24 flex-shrink-0 overflow-hidden bg-muted block" href="/election-presidentielle-2027-candidat-xavier-bertrand"><img src="/storage/politiciens/xavier-bertrand/xavier-bertrand.jpg" alt="Portrait de Xavier Bertrand, Les Républicains" class="absolute inset-0 h-full w-full object-cover transition-[filter,transform] duration-500 grayscale group-hover/card:grayscale-0 group-hover/card:scale-105" loading="lazy"><span class="absolute top-1 left-1 h-px w-3 bg-gold"></span><span class="absolute top-1 left-1 h-3 w-px bg-gold"></span></a><div class="flex-1 min-w-0 flex flex-col justify-between py-0.5"><div><div class="flex items-start justify-between gap-1.5"><span class="font-display font-bold text-[10px] text-republic-blue border border-republic-blue/40 px-1.5 py-0.5 leading-none tracking-wider">LR</span><span class="font-ui uppercase tracking-[0.18em] text-[7px] px-1 py-0.5 border bg-gold text-foreground border-gold font-bold">Déclaré</span></div><h3 class="mt-1.5 font-display text-[12px] leading-tight text-foreground truncate">Xavier Bertrand</h3><p class="font-serif-body italic text-[10px] text-muted-foreground truncate">Les Républicains</p></div><div class="mt-1.5 flex items-center justify-between gap-2"><a class="font-ui text-[8px] uppercase tracking-[0.2em] text-republic-blue hover:text-gold transition-colors flex items-center gap-1" href="/election-
101presidentielle-2027-candidat-xavier-bertrand">Voir la fiche <span aria-hidden="true">â</span></a><button type="button" aria-pressed="false" title="Suivre Xavier Bertrand gratuitement" aria-label="Suivre ce candidat gratuitement" class="grid place-items-center h-8 w-8 rounded-full border shadow-sm transition-colors disabled:opacity-50 bg-paper/90 text-republic-blue border-border hover:bg-republic-blue hover:text-paper hover:border-republic-blue backdrop-blur-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell h-3.5 w-3.5"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"></path><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"></path></svg></button></div></div></div></article></div><div class="w-[240px] flex-shrink-0"><article class="group/card border bg-paper transition-colors border-border hover:border-gold"><div class="flex gap-3 p-2.5"><a aria-label="Voir la fiche de Karim Bouamrane" class="relative w-[72px] h-24 flex-shrink-0 overflow-hidden bg-muted block" href="/election-presidentielle-2027-candidat-karim-bouamrane"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/2/25/Karim_B.-2027.png/500px-Karim_B.-2027.png" alt="Portrait de Karim Bouamrane, Parti socialiste" class="absolute inset-0 h-full w-full object-cover transition-[filter,transform] duration-500 grayscale group-hover/card:grayscale-0 group-hover/card:scale-105" loading="lazy"><span class="absolute top-1 left-1 h-px w-3 bg-gold"></span><span class="absolute top-1 left-1 h-3 w-px bg-gold"></span></a><div class="flex-1 min-w-0 flex flex-col justify-between py-0.5"><div><div class="flex items-start justify-between gap-1.5"><span class="font-display font-bold text-[10px] text-republic-blue border border-republic-blue/40 px-1.5 py-0.5 leading-none tracking-wider">PS</span><span class="font-ui uppercase tracking-[0.18em] text-[7px] px-1 py-0.5 border bg-gold text-foreground border-gold font-bold">Déclaré</span></div><h3 class="mt-1.5 font-display text-[12px] leading-tight text-foreground truncate">Karim Bouamrane</h3><p class="font-serif-body italic text-[10px] text-muted-foreground truncate">Parti socialiste</p></div><div class="mt-1.5 flex items-center justify-between gap-2"><a class="font-ui text-[8px] uppercase tracking-[0.2em] text-republic-blue hover:text-gold transition-colors flex items-center gap-1" href="/election-presidentielle-2027-candidat-karim-bouamrane">Voir la fiche <span aria-hidden="true">â</span></a><button type="button" aria-pressed="false" title="Suivre Karim Bouamrane gratuitement" aria-label="Suivre ce candidat gratuitement" class="grid place-items-center h-8 w-8 rounded-full border shadow-sm transition-colors disabled:opacity-50 bg-paper/90 text-republic-blue border-border hover:bg-republic-blue hover:text-paper hover:border-republic-blue backdrop-blur-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell h-3.5 w-3.5"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"></path><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"></path></svg></button></div></div></div></article></div><div class="w-[240px] flex-shrink-0"><article class="group/card border bg-paper transition-colors border-border hover:border-gold"><div class="flex gap-3 p-2.5"><a aria-label="Voir la fiche de Bernard Cazeneuve" class="relative w-[72px] h-24 flex-shrink-0 overflow-hidden bg-muted block" href="/election-presidentielle-2027-candidat-bernard-cazeneuve"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/a/ac/Bernard_Cazeneuve%2C_%2842399145362%29_%28cropped%29.jpg/500px-Bernard_Cazeneuve%2C_%2842399145362%29_%28cropped%29.jpg" alt="Portrait de Bernard Cazeneuve, L'Ordre Juste" class="absolute inset-0 h-full w-full object-cover transition-[filter,transform] duration-500 grayscale group-hover/card:grayscale-0 group-hover/card:scale-105" loading="lazy"><span class="absolute top-1 left-1 h-px w-3 bg-gold"></span><span class="absolute top-1 left-1 h-3 w-px bg-gold"></span></a><div class="flex-1 min-w-0 flex flex-col justify-between py-0.5"><div><div class="flex items-start justify-between gap-1.5"><span class="font-display font-bold text-[10px] text-republic-blue border border-republic-blue/40 px-1.5 py-0.5 leading-none tracking-wider">DVG</span><span class="font-ui uppercase tracking-[0.18em] text-[7px] px-1 py-0.5 border bg-gold text-foreground border-gold font-bold">Déclaré</span></div><h3 class="mt-1.5 font-display text-[12px] leading-tight text-foreground truncate">Bernard Cazeneuve</h3><p class="font-serif-body italic text-[10px] text-muted-foreground truncate">L'Ordre Juste</p></div><div class="mt-1.5 flex items-center justify-between gap-2"><a class="font-ui text-[8px] uppercase tracking-[0.2em] text-republic-blue hover:text-gold transition-colors flex items-center gap-1" href="/election-
101presidentielle-2027-candidat-bernard-cazeneuve">Voir la fiche <span aria-hidden="true">â</span></a><button type="button" aria-pressed="false" title="Suivre Bernard Cazeneuve gratuitement" aria-label="Suivre ce candidat gratuitement" class="grid place-items-center h-8 w-8 rounded-full border shadow-sm transition-colors disabled:opacity-50 bg-paper/90 text-republic-blue border-border hover:bg-republic-blue hover:text-paper hover:border-republic-blue backdrop-blur-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell h-3.5 w-3.5"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"></path><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"></path></svg></button></div></div></div></article></div><div class="w-[240px] flex-shrink-0"><article class="group/card border bg-paper transition-colors border-border hover:border-gold"><div class="flex gap-3 p-2.5"><a aria-label="Voir la fiche de Nicolas Dupont-Aignan" class="relative w-[72px] h-24 flex-shrink-0 overflow-hidden bg-muted block" href="/election-presidentielle-2027-candidat-nicolas-dupont-aignan"><img src="/storage/politiciens/nicolas-dupont-aignan/nicolas-dupont-aignan.jpg" alt="Portrait de Nicolas Dupont-Aignan, Debout la France" class="absolute inset-0 h-full w-full object-cover transition-[filter,transform] duration-500 grayscale group-hover/card:grayscale-0 group-hover/card:scale-105" loading="lazy"><span class="absolute top-1 left-1 h-px w-3 bg-gold"></span><span class="absolute top-1 left-1 h-3 w-px bg-gold"></span></a><div class="flex-1 min-w-0 flex flex-col justify-between py-0.5"><div><div class="flex items-start justify-between gap-1.5"><span class="font-display font-bold text-[10px] text-republic-blue border border-republic-blue/40 px-1.5 py-0.5 leading-none tracking-wider">DLF</span><span class="font-ui uppercase tracking-[0.18em] text-[7px] px-1 py-0.5 border bg-gold text-foreground border-gold font-bold">Déclaré</span></div><h3 class="mt-1.5 font-display text-[12px] leading-tight text-foreground truncate">Nicolas Dupont-Aignan</h3><p class="font-serif-body italic text-[10px] text-muted-foreground truncate">Debout la France</p></div><div class="mt-1.5 flex items-center justify-between gap-2"><a class="font-ui text-[8px] uppercase tracking-[0.2em] text-republic-blue hover:text-gold transition-colors flex items-center gap-1" href="/election-presidentielle-2027-candidat-nicolas-dupont-aignan">Voir la fiche <span aria-hidden="true">â</span></a><button type="button" aria-pressed="false" title="Suivre Nicolas Dupont-Aignan gratuitement" aria-label="Suivre ce candidat gratuitement" class="grid place-items-center h-8 w-8 rounded-full border shadow-sm transition-colors disabled:opacity-50 bg-paper/90 text-republic-blue border-border hover:bg-republic-blue hover:text-paper hover:border-republic-blue backdrop-blur-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell h-3.5 w-3.5"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"></path><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"></path></svg></button></div></div></div></article></div><div class="w-[240px] flex-shrink-0"><article class="group/card border bg-paper transition-colors border-border hover:border-gold"><div class="flex gap-3 p-2.5"><a aria-label="Voir la fiche de Jérôme Guedj" class="relative w-[72px] h-24 flex-shrink-0 overflow-hidden bg-muted block" href="/election-presidentielle-2027-candidat-jerome-guedj"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/2/27/J%C3%A9r%C3%B4me_Guedj_2010.jpg/500px-J%C3%A9r%C3%B4me_Guedj_2010.jpg" alt="Portrait de Jérôme Guedj, Parti socialiste" class="absolute inset-0 h-full w-full object-cover transition-[filter,transform] duration-500 grayscale group-hover/card:grayscale-0 group-hover/card:scale-105" loading="lazy"><span class="absolute top-1 left-1 h-px w-3 bg-gold"></span><span class="absolute top-1 left-1 h-3 w-px bg-gold"></span></a><div class="flex-1 min-w-0 flex flex-col justify-between py-0.5"><div><div class="flex items-start justify-between gap-1.5"><span class="font-display font-bold text-[10px] text-republic-blue border border-republic-blue/40 px-1.5 py-0.5 leading-none tracking-wider">PS</span><span class="font-ui uppercase tracking-[0.18em] text-[7px] px-1 py-0.5 border bg-gold text-foreground border-gold font-bold">Déclaré</span></div><h3 class="mt-1.5 font-display text-[12px] leading-tight text-foreground truncate">Jérôme Guedj</h3><p class="font-serif-body italic text-[10px] text-muted-foreground truncate">Parti socialiste</p></div><div class="mt-1.5 flex items-center justify-between gap-2"><a class="font-ui text-[8px] uppercase tracking-[0.2em] text-republic-blue hover:text-gold transition-colors flex items-center gap-1" href="/election-
101presidentielle-2027-candidat-jerome-guedj">Voir la fiche <span aria-hidden="true">â</span></a><button type="button" aria-pressed="false" title="Suivre Jérôme Guedj gratuitement" aria-label="Suivre ce candidat gratuitement" class="grid place-items-center h-8 w-8 rounded-full border shadow-sm transition-colors disabled:opacity-50 bg-paper/90 text-republic-blue border-border hover:bg-republic-blue hover:text-paper hover:border-republic-blue backdrop-blur-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell h-3.5 w-3.5"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"></path><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"></path></svg></button></div></div></div></article></div><div class="w-[240px] flex-shrink-0"><article class="group/card border bg-paper transition-colors border-border hover:border-gold"><div class="flex gap-3 p-2.5"><a aria-label="Voir la fiche de François Hollande" class="relative w-[72px] h-24 flex-shrink-0 overflow-hidden bg-muted block" href="/election-presidentielle-2027-candidat-francois-hollande"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/f/fd/Fran%C3%A7ois_Hollande_-_Ceremony_of_Honour_for_Jacques_Delors_-_2024.jpg/500px-Fran%C3%A7ois_Hollande_-_Ceremony_of_Honour_for_Jacques_Delors_-_2024.jpg" alt="Portrait de François Hollande, Parti socialiste" class="absolute inset-0 h-full w-full object-cover transition-[filter,transform] duration-500 grayscale group-hover/card:grayscale-0 group-hover/card:scale-105" loading="lazy"><span class="absolute top-1 left-1 h-px w-3 bg-gold"></span><span class="absolute top-1 left-1 h-3 w-px bg-gold"></span></a><div class="flex-1 min-w-0 flex flex-col justify-between py-0.5"><div><div class="flex items-start justify-between gap-1.5"><span class="font-display font-bold text-[10px] text-republic-blue border border-republic-blue/40 px-1.5 py-0.5 leading-none tracking-wider">PS</span><span class="font-ui uppercase tracking-[0.18em] text-[7px] px-1 py-0.5 border bg-gold text-foreground border-gold font-bold">Déclaré</span></div><h3 class="mt-1.5 font-display text-[12px] leading-tight text-foreground truncate">François Hollande</h3><p class="font-serif-body italic text-[10px] text-muted-foreground truncate">Parti socialiste</p></div><div class="mt-1.5 flex items-center justify-between gap-2"><a class="font-ui text-[8px] uppercase tracking-[0.2em] text-republic-blue hover:text-gold transition-colors flex items-center gap-1" href="/election-presidentielle-2027-candidat-francois-hollande">Voir la fiche <span aria-hidden="true">â</span></a><button type="button" aria-pressed="false" title="Suivre François Hollande gratuitement" aria-label="Suivre ce candidat gratuitement" class="grid place-items-center h-8 w-8 rounded-full border shadow-sm transition-colors disabled:opacity-50 bg-paper/90 text-republic-blue border-border hover:bg-republic-blue hover:text-paper hover:border-republic-blue backdrop-blur-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell h-3.5 w-3.5"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"></path><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"></path></svg></button></div></div></div></article></div><div class="w-[240px] flex-shrink-0"><article class="group/card border bg-paper transition-colors border-border hover:border-gold"><div class="flex gap-3 p-2.5"><a aria-label="Voir la fiche de Anasse Kazib" class="relative w-[72px] h-24 flex-shrink-0 overflow-hidden bg-muted block" href="/election-presidentielle-2027-candidat-anasse-kazib"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/b/b9/Anasse_Kazib%2C_d%C3%A9cembre_2021.jpg/500px-Anasse_Kazib%2C_d%C3%A9cembre_2021.jpg" alt="Portrait de Anasse Kazib, Révolution permanente" class="absolute inset-0 h-full w-full object-cover transition-[filter,transform] duration-500 grayscale group-hover/card:grayscale-0 group-hover/card:scale-105" loading="lazy"><span class="absolute top-1 left-1 h-px w-3 bg-gold"></span><span class="absolute top-1 left-1 h-3 w-px bg-gold"></span></a><div class="flex-1 min-w-0 flex flex-col justify-between py-0.5"><div><div class="flex items-start justify-between gap-1.5"><span class="font-display font-bold text-[10px] text-republic-blue border border-republic-blue/40 px-1.5 py-0.5 leading-none tracking-wider">RP</span><span class="font-ui uppercase tracking-[0.18em] text-[7px] px-1 py-0.5 border bg-gold text-foreground border-gold font-bold">Déclaré</span></div><h3 class="mt-1.5 font-display text-[12px] leading-tight text-foreground truncate">Anasse Kazib</h3><p class="font-serif-body italic text-[10px] text-muted-foreground truncate">Révolution permanente</p></div><div class="mt-1.5 flex items-center justify-between gap-2"><a class="font-ui text-[8px] uppercase tracking-[0.2em] text-republic-blue hover:text-gold transition-colors flex items-center gap-1" href="/election-
101presidentielle-2027-candidat-anasse-kazib">Voir la fiche <span aria-hidden="true">â</span></a><button type="button" aria-pressed="false" title="Suivre Anasse Kazib gratuitement" aria-label="Suivre ce candidat gratuitement" class="grid place-items-center h-8 w-8 rounded-full border shadow-sm transition-colors disabled:opacity-50 bg-paper/90 text-republic-blue border-border hover:bg-republic-blue hover:text-paper hover:border-republic-blue backdrop-blur-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell h-3.5 w-3.5"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"></path><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"></path></svg></button></div></div></div></article></div><div class="w-[240px] flex-shrink-0"><article class="group/card border bg-paper transition-colors border-border hover:border-gold"><div class="flex gap-3 p-2.5"><a aria-label="Voir la fiche de Selma Labib" class="relative w-[72px] h-24 flex-shrink-0 overflow-hidden bg-muted block" href="/election-presidentielle-2027-candidat-selma-labib"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/1/1a/Selma_Labib.jpg/500px-Selma_Labib.jpg" alt="Portrait de Selma Labib, Nouveau Parti Anticapitaliste" class="absolute inset-0 h-full w-full object-cover transition-[filter,transform] duration-500 grayscale group-hover/card:grayscale-0 group-hover/card:scale-105" loading="lazy"><span class="absolute top-1 left-1 h-px w-3 bg-gold"></span><span class="absolute top-1 left-1 h-3 w-px bg-gold"></span></a><div class="flex-1 min-w-0 flex flex-col justify-between py-0.5"><div><div class="flex items-start justify-between gap-1.5"><span class="font-display font-bold text-[10px] text-republic-blue border border-republic-blue/40 px-1.5 py-0.5 leading-none tracking-wider">NPA</span><span class="font-ui uppercase tracking-[0.18em] text-[7px] px-1 py-0.5 border bg-gold text-foreground border-gold font-bold">Déclaré</span></div><h3 class="mt-1.5 font-display text-[12px] leading-tight text-foreground truncate">Selma Labib</h3><p class="font-serif-body italic text-[10px] text-muted-foreground truncate">Nouveau Parti Anticapitaliste</p></div><div class="mt-1.5 flex items-center justify-between gap-2"><a class="font-ui text-[8px] uppercase tracking-[0.2em] text-republic-blue hover:text-gold transition-colors flex items-center gap-1" href="/election-presidentielle-2027-candidat-selma-labib">Voir la fiche <span aria-hidden="true">â</span></a><button type="button" aria-pressed="false" title="Suivre Selma Labib gratuitement" aria-label="Suivre ce candidat gratuitement" class="grid place-items-center h-8 w-8 rounded-full border shadow-sm transition-colors disabled:opacity-50 bg-paper/90 text-republic-blue border-border hover:bg-republic-blue hover:text-paper hover:border-republic-blue backdrop-blur-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell h-3.5 w-3.5"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"></path><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"></path></svg></button></div></div></div></article></div><div class="w-[240px] flex-shrink-0"><article class="group/card border bg-paper transition-colors border-border hover:border-gold"><div class="flex gap-3 p-2.5"><a aria-label="Voir la fiche de Marine Le Pen" class="relative w-[72px] h-24 flex-shrink-0 overflow-hidden bg-muted block" href="/election-presidentielle-2027-candidat-marine-le-pen"><img src="/storage/politiciens/marine-le-pen/marine-le-pen.jpg" alt="Portrait de Marine Le Pen, Rassemblement national" class="absolute inset-0 h-full w-full object-cover transition-[filter,transform] duration-500 grayscale group-hover/card:grayscale-0 group-hover/card:scale-105" loading="lazy"><span class="absolute top-1 left-1 h-px w-3 bg-gold"></span><span class="absolute top-1 left-1 h-3 w-px bg-gold"></span></a><div class="flex-1 min-w-0 flex flex-col justify-between py-0.5"><div><div class="flex items-start justify-between gap-1.5"><span class="font-display font-bold text-[10px] text-republic-blue border border-republic-blue/40 px-1.5 py-0.5 leading-none tracking-wider">RN</span><span class="font-ui uppercase tracking-[0.18em] text-[7px] px-1 py-0.5 border bg-gold text-foreground border-gold font-bold">Déclaré</span></div><h3 class="mt-1.5 font-display text-[12px] leading-tight text-foreground truncate">Marine Le Pen</h3><p class="font-serif-body italic text-[10px] text-muted-foreground truncate">Rassemblement national</p></div><div class="mt-1.5 flex items-center justify-between gap-2"><a class="font-ui text-[8px] uppercase tracking-[0.2em] text-republic-blue hover:text-gold transition-colors flex items-center gap-1" href="/election-
101presidentielle-2027-candidat-marine-le-pen">Voir la fiche <span aria-hidden="true">â</span></a><button type="button" aria-pressed="false" title="Suivre Marine Le Pen gratuitement" aria-label="Suivre ce candidat gratuitement" class="grid place-items-center h-8 w-8 rounded-full border shadow-sm transition-colors disabled:opacity-50 bg-paper/90 text-republic-blue border-border hover:bg-republic-blue hover:text-paper hover:border-republic-blue backdrop-blur-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell h-3.5 w-3.5"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"></path><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"></path></svg></button></div></div></div></article></div><div class="w-[240px] flex-shrink-0"><article class="group/card border bg-paper transition-colors border-border hover:border-gold"><div class="flex gap-3 p-2.5"><a aria-label="Voir la fiche de Ãdouard Philippe" class="relative w-[72px] h-24 flex-shrink-0 overflow-hidden bg-muted block" href="/election-presidentielle-2027-candidat-edouard-philippe"><img src="/storage/politiciens/edouard-philippe/edouard-philippe.jpg" alt="Portrait de Ãdouard Philippe, Horizons" class="absolute inset-0 h-full w-full object-cover transition-[filter,transform] duration-500 grayscale group-hover/card:grayscale-0 group-hover/card:scale-105" loading="lazy"><span class="absolute top-1 left-1 h-px w-3 bg-gold"></span><span class="absolute top-1 left-1 h-3 w-px bg-gold"></span></a><div class="flex-1 min-w-0 flex flex-col justify-between py-0.5"><div><div class="flex items-start justify-between gap-1.5"><span class="font-display font-bold text-[10px] text-republic-blue border border-republic-blue/40 px-1.5 py-0.5 leading-none tracking-wider">HOR</span><span class="font-ui uppercase tracking-[0.18em] text-[7px] px-1 py-0.5 border bg-gold text-foreground border-gold font-bold">Déclaré</span></div><h3 class="mt-1.5 font-display text-[12px] leading-tight text-foreground truncate">Ãdouard Philippe</h3><p class="font-serif-body italic text-[10px] text-muted-foreground truncate">Horizons</p></div><div class="mt-1.5 flex items-center justify-between gap-2"><a class="font-ui text-[8px] uppercase tracking-[0.2em] text-republic-blue hover:text-gold transition-colors flex items-center gap-1" href="/election-presidentielle-2027-candidat-edouard-philippe">Voir la fiche <span aria-hidden="true">â</span></a><button type="button" aria-pressed="false" title="Suivre Ãdouard Philippe gratuitement" aria-label="Suivre ce candidat gratuitement" class="grid place-items-center h-8 w-8 rounded-full border shadow-sm transition-colors disabled:opacity-50 bg-paper/90 text-republic-blue border-border hover:bg-republic-blue hover:text-paper hover:border-republic-blue backdrop-blur-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell h-3.5 w-3.5"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"></path><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"></path></svg></button></div></div></div></article></div><div class="w-[240px] flex-shrink-0"><article class="group/card border bg-paper transition-colors border-border hover:border-gold"><div class="flex gap-3 p-2.5"><a aria-label="Voir la fiche de Fabien Roussel" class="relative w-[72px] h-24 flex-shrink-0 overflow-hidden bg-muted block" href="/election-presidentielle-2027-candidat-fabien-roussel"><img src="/storage/politiciens/fabien-roussel/fabien-roussel.jpg" alt="Portrait de Fabien Roussel, Parti communiste français" class="absolute inset-0 h-full w-full object-cover transition-[filter,transform] duration-500 grayscale group-hover/card:grayscale-0 group-hover/card:scale-105" loading="lazy"><span class="absolute top-1 left-1 h-px w-3 bg-gold"></span><span class="absolute top-1 left-1 h-3 w-px bg-gold"></span></a><div class="flex-1 min-w-0 flex flex-col justify-between py-0.5"><div><div class="flex items-start justify-between gap-1.5"><span class="font-display font-bold text-[10px] text-republic-blue border border-republic-blue/40 px-1.5 py-0.5 leading-none tracking-wider">PCF</span><span class="font-ui uppercase tracking-[0.18em] text-[7px] px-1 py-0.5 border bg-gold text-foreground border-gold font-bold">Déclaré</span></div><h3 class="mt-1.5 font-display text-[12px] leading-tight text-foreground truncate">Fabien Roussel</h3><p class="font-serif-body italic text-[10px] text-muted-foreground truncate">Parti communiste français</p></div><div class="mt-1.5 flex items-center justify-between gap-2"><a class="font-ui text-[8px] uppercase tracking-[0.2em] text-republic-blue hover:text-gold transition-colors flex items-center gap-1" href="/election-
101presidentielle-2027-candidat-fabien-roussel">Voir la fiche <span aria-hidden="true">â</span></a><button type="button" aria-pressed="false" title="Suivre Fabien Roussel gratuitement" aria-label="Suivre ce candidat gratuitement" class="grid place-items-center h-8 w-8 rounded-full border shadow-sm transition-colors disabled:opacity-50 bg-paper/90 text-republic-blue border-border hover:bg-republic-blue hover:text-paper hover:border-republic-blue backdrop-blur-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell h-3.5 w-3.5"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"></path><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"></path></svg></button></div></div></div></article></div></div></div><button type="button" aria-label="Accélérer vers la gauche" class="absolute left-0 top-12 bottom-0 z-10 w-10 flex items-center justify-center bg-gradient-to-r from-paper via-paper/80 to-transparent hover:from-republic-blue/10 transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-left h-5 w-5 text-republic-blue"><path d="m15 18-6-6 6-6"></path></svg></button><button type="button" aria-label="Accélérer vers la droite" class="absolute right-0 top-12 bottom-0 z-10 w-10 flex items-center justify-center bg-gradient-to-l from-paper via-paper/80 to-transparent hover:from-republic-blue/10 transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right h-5 w-5 text-republic-blue"><path d="m9 18 6-6-6-6"></path></svg></button></div></div><div class="mb-8 flex items-center justify-center gap-3"><button type="button" aria-pressed="false" class="font-ui text-sm uppercase tracking-[0.18em] px-7 py-3 border-2 transition-colors bg-paper text-republic-blue border-republic-blue/30 hover:border-republic-blue">2022</button><button type="button" aria-pressed="true" class="font-ui text-sm uppercase tracking-[0.18em] px-7 py-3 border-2 transition-colors bg-republic-blue text-paper border-republic-blue">2027</button></div><div class="grid grid-cols-1 gap-8 items-stretch"><div class="border border-border bg-paper shadow-[0_30px_80px_-40px_hsl(var(--republic-blue)/0.4)] flex flex-col overflow-hidden min-w-[320px] min-h-[480px] max-w-full" style="resize: both; width: 100%; height: 760px;"><div class="flex items-center justify-between border-b border-border px-6 py-3 bg-secondary"><div class="flex items-center gap-2"><span class="h-2 w-2 rounded-full bg-republic-red"></span><span class="h-2 w-2 rounded-full bg-gold"></span><span class="h-2 w-2 rounded-full bg-republic-blue"></span><span class="ml-3 font-ui text-[10px] uppercase tracking-[0.22em] text-muted-foreground">lespresidentielles.ai / chat</span></div><span class="font-ui text-[10px] uppercase tracking-[0.22em] text-republic-blue">Live 2027</span></div><div class="relative p-6 md:p-10 space-y-8 flex-1 min-h-0 overflow-y-scroll scroll-smooth" style="scrollbar-width: auto; scrollbar-color: hsl(var(--republic-blue) / 0.5) hsl(var(--gold) / 0.1);"><div class="grid min-h-full place-items-center p-6 text-center"><div class="max-w-md"><p class="eyebrow mb-3 text-republic-blue">Présidentielle 2027 â en direct</p><h3 class="font-display text-2xl md:text-3xl leading-tight text-foreground">Interrogez les positions des candidats.</h3><p class="mt-4 font-serif-body text-muted-foreground leading-relaxed">Posez une question sur un thème : chaque réponse s'appuie sur les positions officielles déclarées et les sources vérifiées, ou signale « pas de position connue ».</p></div></div></div><form class="relative border-t-2 border-border bg-paper flex items-stretch transition-all duration-300 focus-within:bg-gold/10 focus-within:border-t-gold focus-within:ring-4 focus-within:ring-gold/40 focu
101s-within:shadow-[0_-20px_50px_-15px_hsl(var(--gold)/0.55),inset_0_4px_0_0_hsl(var(--gold))]"><input placeholder="Posez votre question aux programmes des candidatsâ¦" class="flex-1 px-6 py-5 bg-transparent font-serif-body text-base text-foreground placeholder:text-muted-foreground/70 focus:outline-none focus:placeholder:text-republic-blue/60" value=""><button type="submit" disabled="" class="font-ui text-xs uppercase tracking-[0.22em] bg-republic-blue text-paper px-6 hover:bg-gold hover:text-republic-blue transition-colors disabled:opacity-40 disabled:cursor-not-allowed flex items-center gap-2">Envoyer<span>â</span></button></form><div class="border-t border-border bg-secondary/50 px-4 py-3"><p class="font-ui text-[10px] uppercase tracking-[0.22em] text-muted-foreground mb-2">Comparer sur un thème</p><div class="flex flex-wrap gap-2"><button type="button" class="inline-flex items-center gap-1.5 font-ui text-[11px] uppercase tracking-[0.18em] px-3 py-1.5 border border-republic-blue/30 text-republic-blue bg-paper hover:bg-republic-blue hover:text-paper hover:border-republic-blue transition-colors disabled:opacity-40 disabled:cursor-not-allowed rounded-full" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-leaf h-3.5 w-3.5"><path d="M11 20A7 7 0 0 1 9.8 6.1C15.5 5 17 4.48 19 2c1 2 2 4.18 2 8 0 5.5-4.78 10-10 10Z"></path><path d="M2 21c0-3 1.85-5.36 5.08-6C9.5 14.52 12 13 13 12"></path></svg>Ãcologie</button><button type="button" class="inline-flex items-center gap-1.5 font-ui text-[11px] uppercase tracking-[0.18em] px-3 py-1.5 border border-republic-blue/30 text-republic-blue bg-paper hover:bg-republic-blue hover:text-paper hover:border-republic-blue transition-colors disabled:opacity-40 disabled:cursor-not-allowed rounded-full" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-banknote h-3.5 w-3.5"><rect width="20" height="12" x="2" y="6" rx="2"></rect><circle cx="12" cy="12" r="2"></circle><path d="M6 12h.01M18 12h.01"></path></svg>Ãconomie</button><button type="button" class="inline-flex items-center gap-1.5 font-ui text-[11px] uppercase tracking-[0.18em] px-3 py-1.5 border border-republic-blue/30 text-republic-blue bg-paper hover:bg-republic-blue hover:text-paper hover:border-republic-blue transition-colors disabled:opacity-40 disabled:cursor-not-allowed rounded-full" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-graduation-cap h-3.5 w-3.5"><path d="M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z"></path><path d="M22 10v6"></path><path d="M6 12.5V16a6 3 0 0 0 12 0v-3.5"></path></svg>Ãducation</button><button type="button" class="inline-flex items-center gap-1.5 font-ui text-[11px] uppercase tracking-[0.18em] px-3 py-1.5 border border-republic-blue/30 text-republic-blue bg-paper hover:bg-republic-blue hover:text-paper hover:border-republic-blue transition-colors disabled:opacity-40 disabled:cursor-not-allowed rounded-full" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-coins h-3.5 w-3.5"><circle cx="8" cy="8" r="6"></circle><path d="M18.09 10.37A6 6 0 1 1 10.34 18"></path><path d="M7 6h1v4"></path><path d="m16.71 13.88.7.71-2.82 2.82"></path></svg>Fiscalité</button><button type="button" class="inline-flex items-center gap-1.5 font-ui text-[11px] uppercase tracking-[0.18em] px-3 py-1.5 border border-republic-blue/30 text-republic-blue bg-paper hover:bg-republic-blue hover:text-paper hover:border-republic-blue transition-colors disabled:opacity-40 disabled:cursor-not-allowed rounded-full" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-globe h-3.5 w-3.5"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg>Immigration</button><button type="button" class="inline-flex items-center gap-1.5 font-ui text-[11px] uppercase tracking-[0.18em] px-3 py-1.5 border border-republic-blue/30 text-republic-blue bg-paper hover:bg-republic-blue hover:text-paper hover:border-republic-blue transition-colors disabled:opacity-40 disabled:cursor-not-allowed rounded-full" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-landmark h-3.5 w-3.5">
101<line x1="3" x2="21" y1="22" y2="22"></line><line x1="6" x2="6" y1="18" y2="11"></line><line x1="10" x2="10" y1="18" y2="11"></line><line x1="14" x2="14" y1="18" y2="11"></line><line x1="18" x2="18" y1="18" y2="11"></line><polygon points="12 2 20 7 4 7"></polygon></svg>Institutions</button><button type="button" class="inline-flex items-center gap-1.5 font-ui text-[11px] uppercase tracking-[0.18em] px-3 py-1.5 border border-republic-blue/30 text-republic-blue bg-paper hover:bg-republic-blue hover:text-paper hover:border-republic-blue transition-colors disabled:opacity-40 disabled:cursor-not-allowed rounded-full" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-flag h-3.5 w-3.5"><path d="M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z"></path><line x1="4" x2="4" y1="22" y2="15"></line></svg>International</button><button type="button" class="inline-flex items-center gap-1.5 font-ui text-[11px] uppercase tracking-[0.18em] px-3 py-1.5 border border-republic-blue/30 text-republic-blue bg-paper hover:bg-republic-blue hover:text-paper hover:border-republic-blue transition-colors disabled:opacity-40 disabled:cursor-not-allowed rounded-full" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-house h-3.5 w-3.5"><path d="M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8"></path><path d="M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path></svg>Logement</button><button type="button" class="inline-flex items-center gap-1.5 font-ui text-[11px] uppercase tracking-[0.18em] px-3 py-1.5 border border-republic-blue/30 text-republic-blue bg-paper hover:bg-republic-blue hover:text-paper hover:border-republic-blue transition-colors disabled:opacity-40 disabled:cursor-not-allowed rounded-full" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag h-3.5 w-3.5"><path d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z"></path><circle cx="7.5" cy="7.5" r=".5" fill="currentColor"></circle></svg>Retraites</button><button type="button" class="inline-flex items-center gap-1.5 font-ui text-[11px] uppercase tracking-[0.18em] px-3 py-1.5 border border-republic-blue/30 text-republic-blue bg-paper hover:bg-republic-blue hover:text-paper hover:border-republic-blue transition-colors disabled:opacity-40 disabled:cursor-not-allowed rounded-full" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-heart-pulse h-3.5 w-3.5"><path d="M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z"></path><path d="M3.22 12H9.5l.5-1 2 4.5 2-7 1.5 3.5h5.27"></path></svg>Santé</button><button type="button" class="inline-flex items-center gap-1.5 font-ui text-[11px] uppercase tracking-[0.18em] px-3 py-1.5 border border-republic-blue/30 text-republic-blue bg-paper hover:bg-republic-blue hover:text-paper hover:border-republic-blue transition-colors disabled:opacity-40 disabled:cursor-not-allowed rounded-full" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield h-3.5 w-3.5"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg>Sécurité</button><button type="button" class="inline-flex items-center gap-1.5 font-ui text-[11px] uppercase tracking-[0.18em] px-3 py-1.5 border border-republic-blue/30 text-republic-blue bg-paper hover:bg-republic-blue hover:text-paper hover:border-republic-blue transition-colors disabled:opacity-40 disabled:cursor-not-allowed rounded-full" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-briefcase h-3.5 w-3.5"><path d="M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"></path><rect width="20" height="14" x="2" y="6" rx="2"></rect></svg>Travail</button></div></div></div></div><p class="text-center mt-6 font-ui text-xs text-muted-foreground">Démonstration · Réponses générées à partir des programmes officiels. Aucune opinion éditoriale n'est ajoutée.</p></div></section><section id="actualite" class="bg-paper py-24 md:py-32 border-t border-border"><div class="mx-auto max-w-[1400px] px-6 md:px-10"><div class="flex items-center justify-center gap-4 mb-8"><span class="h-px w-12 bg-gold/60"></span><span class="roman-num">
101â IV â</span><span class="h-px w-12 bg-gold/60"></span></div><header class="max-w-3xl mx-auto text-center mb-16"><p class="eyebrow mb-4">Le fil de la campagne · En direct</p><h2 class="font-display text-4xl md:text-5xl leading-tight tracking-tight text-foreground">La revue de presse <span class="italic text-republic-blue">de la présidentielle 2027.</span></h2></header><div class="grid sm:grid-cols-2 lg:grid-cols-3 gap-6"><div class="border border-border rounded-lg overflow-hidden animate-pulse"><div class="aspect-[16/10] bg-foreground/10"></div><div class="p-4 space-y-2"><div class="h-3 w-28 bg-foreground/10"></div><div class="h-4 w-full bg-foreground/10"></div><div class="h-4 w-2/3 bg-foreground/10"></div></div></div><div class="border border-border rounded-lg overflow-hidden animate-pulse"><div class="aspect-[16/10] bg-foreground/10"></div><div class="p-4 space-y-2"><div class="h-3 w-28 bg-foreground/10"></div><div class="h-4 w-full bg-foreground/10"></div><div class="h-4 w-2/3 bg-foreground/10"></div></div></div><div class="border border-border rounded-lg overflow-hidden animate-pulse">
101<div class="aspect-[16/10] bg-foreground/10"></div><div class="p-4 space-y-2"><div class="h-3 w-28 bg-foreground/10"></div><div class="h-4 w-full bg-foreground/10"></div><div class="h-4 w-2/3 bg-foreground/10"></div></div></div><div class="border border-border rounded-lg overflow-hidden animate-pulse"><div class="aspect-[16/10] bg-foreground/10"></div><div class="p-4 space-y-2"><div class="h-3 w-28 bg-foreground/10"></div><div class="h-4 w-full bg-foreground/10"></div><div class="h-4 w-2/3 bg-foreground/10"></div></div></div><div class="border border-border rounded-lg overflow-hidden animate-pulse"><div class="aspect-[16/10] bg-foreground/10"></div><div class="p-4 space-y-2"><div class="h-3 w-28 bg-foreground/10"></div><div class="h-4 w-full bg-foreground/10"></div><div class="h-4 w-2/3 bg-foreground/10"></div></div></div><div class="border border-border rounded-lg overflow-hidden animate-pulse"><div class="aspect-[16/10] bg-foreground/10"></div><div class="p-4 space-y-2"><div class="h-3 w-28 bg-foreground/10"></div>
101<div class="h-4 w-full bg-foreground/10"></div><div class="h-4 w-2/3 bg-foreground/10"></div></div></div></div><div class="text-center mt-16"><a href="/election-presidentielle-2027-news" class="font-ui text-xs uppercase tracking-[0.22em] text-republic-blue border-b border-gold pb-1 hover:text-gold transition-colors">Consulter toutes les actualités â</a></div></div></section><section id="ia-souveraine" class="bg-background py-24 md:py-32 border-t border-border"><div class="mx-auto max-w-[1300px] px-6 md:px-10"><div class="flex items-center justify-center gap-4 mb-8"><span class="h-px w-12 bg-gold/60"></span><span class="roman-num">â V â</span><span class="h-px w-12 bg-gold/60"></span></div><header class="max-w-3xl mx-auto text-center mb-16"><p class="eyebrow mb-4 inline-flex items-center gap-2"><span class="inline-flex overflow-hidden rounded-[1px] border border-border align-middle h-3 w-[18px]" aria-label="France" role="img"><span class="flex-1" style="background: rgb(0, 85, 164);"></span><span class="flex-1 bg-white"></span><span class="flex-1" style="background: rgb(239, 65, 53);"></span></span>Souveraineté</p><h2 class="font-display text-4xl md:text-5xl leading-tight tracking-tight text-foreground">Une IA française, <span class="italic text-republic-blue">hébergée en France.</span></h2><div class="mt-8 space-y-5 text-left font-serif-body text-lg text-muted-foreground leading-relaxed"><p>à l'heure où la quasi-totalité de l'IA grand public passe par des serveurs californiens, nous avons fait un autre pari. Le moteur d'analyse repose sur Mistral, modèle développé à Paris. Les vecteurs d'embeddings sont calculés par Mistral. La base PostgreSQL et le bucket de stockage tournent sur un VPS situé en France métropolitaine.</p><p>Aucun document, aucune question, aucun fragment de programme ne quitte le territoire européen. Aucun mot tapé dans le chat ne traverse l'Atlantique.</p><p class="text-foreground">C'est un choix politique avant d'être technique : un débat présidentiel français mérite des outils français, et des serveurs sur lesquels la République garde la main.</p></div></header><div class="grid md:grid-cols-3 gap-px bg-border"><div class="bg-background p-8 md:p-10"><div class="flex items-center gap-4 mb-6"><a href="https://mistral.ai" target="_blank" rel="noopener noreferrer" aria-label="Site de Mistral AI" class="transition-opacity hover:opacity-70"><svg viewBox="0 0 24 24" role="img" aria-label="Mistral AI" class="h-7 w-7" fill="#FA500F"><path d="M17.143 3.429v3.428h-3.429v3.429h-3.428V6.857H6.857V3.43H3.43v13.714H0v3.428h10.286v-3.428H6.857v-3.429h3.429v3.429h3.429v-3.429h3.428v3.429h-3.428v3.428H24v-3.428h-3.43V3.429z"></path></svg></a><span class="h-px flex-1 bg-gold/40"></span></div><p class="font-ui uppercase tracking-[0.18em] text-[11px] text-muted-foreground mb-2">Modèle d'analyse</p><a href="https://mistral.ai" target="_blank" rel="noopener noreferrer" class="font-display text-2xl text-foreground hover:text-republic-blue transition-colors">Mistral</a><p class="mt-1 font-serif-body text-base text-muted-foreground">Paris, France</p></div><div class="bg-background p-8 md:p-10"><div class="flex items-center gap-4 mb-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-binary h-7 w-7 text-gold"><rect x="14" y="14" width="4" height="6" rx="2"></rect><rect x="6" y="4" width="4" height="6" rx="2"></rect><path d="M6 20h4"></path><path d="M14 10h4"></path><path d="M6 14h2v6"></path><path d="M14 4h2v6"></path></svg><span class="h-px flex-1 bg-gold/40"></span></div><p class="font-ui uppercase tracking-[0.18em] text-[11px] text-muted-foreground mb-2">Embeddings</p><p class="font-display text-2xl text-foreground">mistral-embed</p><p class="mt-1 font-serif-body text-base text-muted-foreground">1024 dimensions</p></div><div class="bg-background p-8 md:p-10"><div class="flex items-center gap-4 mb-6"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-server h-7 w-7 text-gold"><rect width="20" height="8" x="2" y="2" rx="2" ry="2"></rect><rect width="20" height="8" x="2" y="14" rx="2" ry="2"></rect><line x1="6" x2="6.01" y1="6" y2="6"></line><line x1="6" x2="6.01" y1="18" y2="18"></line></svg><span class="h-px flex-1 bg-gold/40"></span></div><p class="font-ui uppercase tracking-[0.18em] text-[11px] text-muted-foreground mb-2">Hébergement</p><p class="font-display text-2xl text-foreground">VPS France</p><p class="mt-1 font-serif-body text-base text-muted-foreground">
101Infrastructure souveraine</p></div></div></div></section><footer class="bg-foreground text-paper py-16"><div class="mx-auto max-w-[1400px] px-6 md:px-10"><div class="grid md:grid-cols-4 gap-12 mb-12"><div class="md:col-span-2"><div class="font-display text-2xl">Les <span class="italic text-gold">Présidentielles</span> AI</div><p class="font-serif-body italic text-sm text-paper/75 mt-1 mb-4">Faites de votre vote un acte éclairé.</p><p class="font-serif-body text-sm text-paper/70 leading-relaxed max-w-md">Comparateur indépendant des programmes des candidats à l'élection présidentielle française. Ãdité par <a href="https://www.dsia-conseil.fr/lespresidentielles-ai" target="_blank" rel="noopener noreferrer" class="underline hover:text-gold transition-colors">DSIA CONSEIL</a>, sans affiliation politique.</p><div class="flex mt-6 h-1 w-32"><span class="flex-1 bg-republic-blue"></span><span class="flex-1 bg-paper/90"></span><span class="flex-1 bg-republic-red"></span></div></div><div><p class="eyebrow mb-4">Le site</p><ul class="space-y-2 font-serif-body text-sm text-paper/80"><li><a href="#chat" class="hover:text-gold transition-colors">Chat IA</a></li><li><a href="/election-presidentielle-2027-candidats" class="hover:text-gold transition-colors">Candidats</a></li><li><a href="/election-presidentielle-2027-politiciens" class="hover:text-gold transition-colors">Politiques français</a></li><li><a href="/election-presidentielle-2027-sondages" class="hover:text-gold transition-colors">Sondages</a></li><li><a href="/election-presidentielle-resultats" class="hover:text-gold transition-colors">Résultats</a></li><li><a href="#actualite" class="hover:text-gold transition-colors">Actualité</a></li></ul></div><div><p class="eyebrow mb-4">Institutionnel</p><ul class="space-y-2 font-serif-body text-sm text-paper/80"><li><a href="#" class="hover:text-gold transition-colors">Méthodologie</a></li><li><a href="/presse" class="hover:text-gold transition-colors">Dossier presse</a></li><li><a href="/relations-presse" class="hover:text-gold transition-colors">Relations presse</a></li><li><a href="/partenariats" class="hover:text-gold transition-colors">Partenariats</a></li><li><a href="/credits" class="hover:text-gold transition-colors">Crédits photographiques</a></li><li><a href="/mentions-legales" class="hover:text-gold transition-colors">Mentions légales</a></li><li><a href="/confidentialite" class="hover:text-gold transition-colors">Politique de confidentialité</a></li><li><a href="/conditions-utilisation" class="hover:text-gold transition-colors">Conditions d'utilisation</a></li><li><button type="button" class="hover:text-gold transition-colors text-left">Gestion des cookies</button></li></ul></div></div><div class="border-t border-paper/15 pt-10 mb-10 grid gap-6 md:grid-cols-[1fr_auto] md:items-center"><div><p class="eyebrow text-gold mb-2">Contacter</p><p class="font-serif-body text-sm text-paper/70 max-w-md leading-relaxed">Ãcrivez-nous pour un partenariat éditorial ou pédagogique, ou pour une demande presse.</p><p class="font-ui text-[11px] mt-2"><a href="/cdn-cgi/l/email-protection#3c5f5352485d5f487c50594f4c4e594f555859524855595050594f125d55" class="text-gold hover:underline"><span class="__cf_email__" data-cfemail="aecdc1c0dacfcddaeec2cbdddedccbddc7cacbc0dac7cbc2c2cbdd80cfc7">[email protected]</span></a></p></div><div class="flex flex-wrap gap-3 md:justify-end"><button type="button" title="Médias & institutions" class="font-ui text-[11px] uppercase tracking-[0.18em] bg-gold text-republic-blue px-5 py-3 hover:bg-paper transition-colors">Partenariats</button><button type="button" title="Service de presse" class="font-ui text-[11px] uppercase tracking-[0.18em] border border-paper/25 text-paper/85 px-5 py-3 hover:border-gold hover:text-gold transition-colors">Presse</button></div></div><div class="border-t border-paper/15 pt-8 flex flex-col md:flex-row items-center justify-between gap-4"><p class="font-ui text-[11px] uppercase tracking-[0.22em] text-paper/55">© 2026 Les Présidentielles AI · Tous droits réservés</p><p class="font-serif-body italic text-sm text-paper/55">« Liberté, Ãgalité, Fraternité »</p><p class="font-ui text-[10px] tracking-[0.18em] text-paper/35">V1.533</p></div></div></footer></main></div>
vendor: 113 bytes, lines 101-104
101 102 103 104<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
104</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.