/* ==========================================================================
   IziiClean — feuille de style commune
   Basée sur la charte graphique v1.0. Ne pas coder de couleur en dur :
   utiliser les variables ci-dessous.
   ========================================================================== */

/* --- Polices auto-hébergées (RGPD : aucun appel à Google) ---------------- */
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/hanken-400.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/hanken-500.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/hanken-600.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/hanken-700.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Schibsted Grotesk';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/schibsted-400.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Schibsted Grotesk';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/schibsted-500.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Schibsted Grotesk';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/schibsted-600.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Schibsted Grotesk';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/schibsted-700.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Schibsted Grotesk';font-style:normal;font-weight:800;font-display:swap;src:url('fonts/schibsted-800.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

:root{
  --blue-50:#EEF4FF;  --blue-100:#DAE7FF; --blue-200:#BCD3FF; --blue-300:#8FB4FE;
  --blue-400:#5C8BFA; --blue-500:#3A6BF4; --blue-600:#2563EB; --blue-700:#1B4FCC;
  --blue-800:#1B43A4; --blue-900:#1B3B82; --blue-950:#15264F;
  --green-50:#ECFDF3; --green-100:#D2F8E0; --green-200:#A7F0C6; --green-300:#6FE3A6;
  --green-400:#36CE83; --green-500:#16B968; --green-600:#16A34A; --green-700:#128140;
  --green-800:#136535; --green-900:#11522E;
  --neutral-0:#FFFFFF;   --neutral-50:#F6F8FB;  --neutral-100:#EDF1F6; --neutral-200:#DCE3EC;
  --neutral-300:#C2CCD9; --neutral-400:#94A2B5; --neutral-500:#677488; --neutral-600:#4C5868;
  --neutral-700:#3A4452; --neutral-800:#232C38; --neutral-900:#131A24; --neutral-950:#0B1017;

  --brand:var(--blue-600); --brand-strong:var(--blue-700); --brand-soft:var(--blue-50);
  --accent:var(--green-600); --accent-strong:var(--green-700); --accent-soft:var(--green-50);
  --surface-subtle:var(--neutral-50); --surface-muted:var(--neutral-100);
  --surface-brand-deep:var(--blue-950);
  --text-strong:var(--neutral-900); --text-body:var(--neutral-700);
  --text-muted:var(--neutral-500);
  --border-default:var(--neutral-200); --border-subtle:var(--neutral-100);
  --danger:#DC3B45; --danger-surface:#FDECEC;
  --success:#16A34A; --success-surface:#ECFDF3;

  --font-display:"Schibsted Grotesk",system-ui,-apple-system,sans-serif;
  --font-body:"Hanken Grotesk",system-ui,-apple-system,sans-serif;
  --text-display:clamp(2.4rem,4.4vw,3.6rem); --text-h1:clamp(2rem,3.4vw,2.85rem);
  --text-h2:clamp(1.55rem,2.5vw,2.15rem); --text-h3:1.4rem; --text-h4:1.2rem;
  --weight-medium:500; --weight-semibold:600; --weight-bold:700; --weight-extra:800;
  --leading-tight:1.08; --leading-snug:1.2; --leading-relaxed:1.65;
  --tracking-tight:-.02em; --tracking-overline:.12em;

  --space-2:.5rem; --space-3:.75rem; --space-4:1rem; --space-5:1.25rem; --space-6:1.5rem;
  --space-8:2rem; --space-10:2.5rem; --space-12:3rem; --space-16:4rem; --space-20:5rem;
  --container-max:1200px; --container-narrow:760px;
  --gutter:clamp(1.25rem,.5rem + 3vw,3rem);
  --radius-sm:8px; --radius-md:12px; --radius-lg:16px; --radius-xl:24px; --radius-pill:999px;
  --shadow-sm:0 1px 3px rgba(19,26,36,.08),0 1px 2px rgba(19,26,36,.04);
  --shadow-md:0 4px 12px rgba(19,26,36,.08),0 2px 4px rgba(19,26,36,.04);
  --shadow-lg:0 12px 28px rgba(19,26,36,.10),0 4px 8px rgba(19,26,36,.04);
  --shadow-brand:0 8px 20px rgba(37,99,235,.28);
  --shadow-accent:0 8px 20px rgba(22,163,74,.26);
  --focus-ring:0 0 0 3px rgba(37,99,235,.35);
  --dur-fast:140ms; --ease-out:cubic-bezier(.22,1,.36,1);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--text-body);font-family:var(--font-body);
  font-size:1rem;line-height:var(--leading-relaxed);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto}
a{color:var(--brand)}
.wrap{max-width:var(--container-max);margin:0 auto;padding:0 var(--gutter)}
.narrow{max-width:var(--container-narrow);margin:0 auto}
h1,h2,h3,h4{font-family:var(--font-display);color:var(--text-strong);
  line-height:var(--leading-snug);margin:0}
h1{font-size:var(--text-h1);font-weight:var(--weight-extra);
  letter-spacing:var(--tracking-tight);line-height:var(--leading-tight)}
h2{font-size:var(--text-h2);font-weight:var(--weight-bold);letter-spacing:-.01em}
h3{font-size:var(--text-h3);font-weight:var(--weight-semibold)}
h4{font-size:var(--text-h4);font-weight:var(--weight-semibold)}
.overline{font-size:.75rem;text-transform:uppercase;letter-spacing:var(--tracking-overline);
  font-weight:var(--weight-semibold);color:var(--brand)}
.lead{font-size:1.125rem;color:var(--text-body)}
.muted{color:var(--text-muted);font-size:.9375rem}

/* Accessibilité clavier */
a:focus-visible,button:focus-visible,input:focus-visible,
select:focus-visible,textarea:focus-visible{outline:none;box-shadow:var(--focus-ring);
  border-radius:var(--radius-sm)}
.skip{position:absolute;left:-9999px;top:0;background:#fff;color:var(--brand);
  padding:var(--space-3) var(--space-4);z-index:100;border-radius:0 0 var(--radius-md) 0}
.skip:focus{left:0}

/* --- En-tête ------------------------------------------------------------ */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--border-subtle)}
.site-header .bar{display:flex;align-items:center;justify-content:space-between;
  gap:var(--space-4);padding:var(--space-3) 0;flex-wrap:wrap}
.logo{display:flex;align-items:center;gap:9px;text-decoration:none;
  font-family:var(--font-display);font-weight:var(--weight-extra);font-size:1.35rem;
  letter-spacing:var(--tracking-tight)}
.logo .izii{color:var(--blue-600)} .logo .clean{color:var(--green-600)}
.logo svg{width:30px;height:30px;flex:0 0 30px}
/* V1.7.9 — logos Header/Footer réellement responsives.
   Le ratio d'origine est toujours conservé et le logo ne peut jamais dépasser
   l'espace disponible dans son conteneur. */
.site-header .header-brand-logo.has-custom-logo{
  display:flex;align-items:center;min-width:0;min-height:40px;
  max-width:min(100%,clamp(150px,22vw,280px));overflow:visible;flex:0 1 auto
}
.site-header .header-logo-image{
  display:block!important;visibility:visible!important;opacity:1!important;
  width:auto!important;height:auto!important;
  max-width:min(100%,clamp(145px,20vw,260px));
  max-height:clamp(42px,5vw,58px);
  object-fit:contain;object-position:left center;flex:0 1 auto
}
@media(max-width:900px){
  .site-header .header-brand-logo.has-custom-logo{max-width:min(64vw,230px)}
  .site-header .header-logo-image{max-width:min(64vw,220px);max-height:52px}
}
@media(max-width:600px){
  .site-header .header-brand-logo.has-custom-logo{max-width:min(60vw,190px);min-height:36px}
  .site-header .header-logo-image{max-width:min(60vw,185px);max-height:46px}
}
@media(max-width:380px){
  .site-header .header-brand-logo.has-custom-logo{max-width:56vw}
  .site-header .header-logo-image{max-width:56vw;max-height:42px}
}
.site-nav{display:flex;align-items:center;gap:var(--space-5);flex-wrap:wrap}
.site-nav a{color:var(--text-body);text-decoration:none;font-size:.9375rem;
  font-weight:var(--weight-medium)}
.site-nav a:hover{color:var(--brand)}
/* Un bouton placé dans le menu garde SA couleur de libellé : sans cette règle,
   « .site-nav a » l'emporte en spécificité et le texte redevient gris foncé. */
.site-nav a.btn-primary{color:#fff;font-weight:var(--weight-bold)}
.site-nav a.btn-primary:hover{color:#fff}
.site-nav a.btn-accent{color:#062A16;font-weight:var(--weight-bold)}
.site-nav a.btn-accent:hover{color:#041F10}
.site-nav a.btn-outline{color:var(--brand)}


/* --- Menus déroulants de l'en-tête -------------------------------------- */
.nav-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:0;
  font-family:var(--font-body);font-size:.9375rem;font-weight:var(--weight-medium);
  color:var(--text-body);cursor:pointer;padding:6px 2px}
.nav-btn:hover{color:var(--brand)}
.has-menu{position:relative}
.has-menu .chev{transition:transform var(--dur-fast) var(--ease-out)}
.has-menu.open > .nav-btn{color:var(--brand)}
.has-menu.open .chev{transform:rotate(180deg)}
.dropdown{display:none;position:absolute;top:calc(100% + 10px);left:-12px;min-width:264px;
  background:#fff;border:1px solid var(--border-default);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);padding:var(--space-2);z-index:60}
.has-menu.open .dropdown{display:grid;gap:2px}
.dropdown a{display:block;padding:9px 12px;border-radius:var(--radius-sm);
  font-size:.9375rem;color:var(--text-body);text-decoration:none;white-space:nowrap}
.dropdown a:hover{background:var(--brand-soft);color:var(--brand)}
.dropdown .dropdown-all{margin-top:4px;padding-top:11px;border-top:1px solid var(--border-subtle);
  border-radius:0 0 var(--radius-sm) var(--radius-sm);
  font-weight:var(--weight-semibold);color:var(--brand)}
/* Sur ordinateur, le survol doit rester stable entre le bouton et le sous-menu.
   Le pont invisible évite la fermeture du menu pendant le déplacement de la souris
   dans l'espace de 10 px séparant le bouton du panneau. Le breakpoint commence à
   901 px pour ne jamais entrer en conflit avec le menu hamburger (<= 900 px). */
@media (hover:hover) and (pointer:fine) and (min-width:901px){
  .has-menu::after{content:"";position:absolute;left:-14px;right:-14px;top:100%;height:14px;
    z-index:59;display:none}
  .has-menu:hover::after,.has-menu:focus-within::after,.has-menu.open::after{display:block}
  .has-menu:hover > .dropdown,.has-menu:focus-within > .dropdown,.has-menu.open > .dropdown{display:grid;gap:2px}
  .has-menu:hover > .nav-btn,.has-menu:focus-within > .nav-btn{color:var(--brand)}
  .has-menu:hover .chev,.has-menu:focus-within .chev{transform:rotate(180deg)}
}

/* --- Bouton du menu mobile ---------------------------------------------- */
.burger{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;
  padding:0 10px;background:none;border:1px solid var(--border-default);
  border-radius:var(--radius-sm);cursor:pointer}
.burger span{display:block;height:2px;background:var(--text-strong);border-radius:2px;
  transition:transform var(--dur-fast) var(--ease-out),opacity var(--dur-fast) var(--ease-out)}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* --- Boutons ------------------------------------------------------------ */
.btn{display:inline-block;font-family:var(--font-body);font-weight:var(--weight-semibold);
  font-size:1rem;padding:13px 24px;border-radius:var(--radius-pill);border:1.5px solid transparent;
  cursor:pointer;text-decoration:none;text-align:center;
  transition:transform var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}
.btn:hover{transform:translateY(-1px)}
/* CTA devis : vert électrique très vif, indépendant du vert de marque.
   Le texte bleu nuit garantit une forte lisibilité sur ce vert lumineux. */
.btn-accent{background:#00E653;color:#062A16;font-weight:var(--weight-bold);
  border-color:#00E653;box-shadow:0 9px 26px rgba(0,230,83,.38)}
.btn-accent:hover{background:#00C946;color:#041F10;border-color:#00C946;
  box-shadow:0 12px 32px rgba(0,201,70,.48)}
.btn-accent:focus-visible{outline:3px solid rgba(0,230,83,.38);outline-offset:3px}
.mobile-cta .btn-accent,.mobile-cta .btn-accent:hover{color:#062A16}
.btn-primary{background:var(--brand);color:#fff;box-shadow:var(--shadow-brand)}
.btn-primary:hover{background:var(--brand-strong)}
.btn-outline{background:#fff;color:var(--brand);border-color:var(--border-default)}
.btn-outline:hover{border-color:var(--brand);background:var(--brand-soft)}
.btn-sm{padding:9px 18px;font-size:.9375rem}

/* --- Bandeau de page ---------------------------------------------------- */
.page-hero{background:linear-gradient(180deg,var(--brand-soft),#fff);
  padding:var(--space-16) 0 var(--space-12);border-bottom:1px solid var(--border-subtle)}
.page-hero h1{margin:var(--space-3) 0 var(--space-4);max-width:20ch}
.page-hero .lead{max-width:60ch;margin:0}
.page-hero .actions{display:flex;gap:var(--space-3);flex-wrap:wrap;margin-top:var(--space-8)}
.breadcrumb{font-size:.8125rem;color:var(--text-muted);margin-bottom:var(--space-2)}
.breadcrumb a{color:var(--text-muted);text-decoration:none}
.breadcrumb a:hover{color:var(--brand)}

/* --- Sections & cartes -------------------------------------------------- */
section{padding:var(--space-16) 0}
section.tinted{background:var(--surface-subtle)}
.section-head{max-width:65ch;margin-bottom:var(--space-8)}
.section-head h2{margin:var(--space-2) 0 var(--space-3)}
.section-head p{margin:0;color:var(--text-muted)}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--space-4)}
.card{background:#fff;border:1px solid var(--border-default);border-radius:var(--radius-lg);
  padding:var(--space-5);box-shadow:var(--shadow-sm);
  transition:box-shadow var(--dur-fast) var(--ease-out)}
.card:hover{box-shadow:var(--shadow-md)}
.card h3{font-size:1.125rem;margin-bottom:var(--space-2)}
.card p{margin:0;font-size:.9375rem;color:var(--text-muted)}
.card .ico{width:40px;height:40px;border-radius:var(--radius-md);background:var(--brand-soft);
  display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-3);
  color:var(--brand);font-size:1.25rem}

.checklist{list-style:none;padding:0;margin:0;display:grid;gap:var(--space-3)}
.checklist li{display:flex;gap:var(--space-3);align-items:flex-start;font-size:.9375rem}
.checklist li::before{content:"";flex:0 0 20px;height:20px;margin-top:3px;border-radius:50%;
  background:var(--accent-soft) url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2316A34A' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/12px no-repeat}

.pill{display:inline-block;padding:3px 12px;border-radius:var(--radius-pill);
  font-size:.8125rem;font-weight:var(--weight-semibold);background:var(--brand-soft);
  color:var(--blue-700);border:1px solid var(--blue-200);text-decoration:none}
.pill:hover{background:var(--blue-100)}
.pills{display:flex;flex-wrap:wrap;gap:var(--space-2)}

/* --- FAQ ---------------------------------------------------------------- */
details{background:#fff;border:1px solid var(--border-default);border-radius:var(--radius-md);
  padding:var(--space-4) var(--space-5);margin-bottom:var(--space-3)}
details[open]{box-shadow:var(--shadow-sm)}
summary{cursor:pointer;font-family:var(--font-display);font-weight:var(--weight-semibold);
  color:var(--text-strong);list-style:none}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";float:right;color:var(--brand);font-size:1.25rem;line-height:1}
details[open] summary::after{content:"–"}
details p{margin:var(--space-3) 0 0;font-size:.9375rem;color:var(--text-muted)}

/* --- Appel à l'action --------------------------------------------------- */
.cta{background:var(--surface-brand-deep);color:#fff;border-radius:var(--radius-xl);
  padding:var(--space-12);text-align:center}
.cta h2{color:#fff;margin-bottom:var(--space-3)}
.cta p{color:rgba(255,255,255,.72);max-width:50ch;margin:0 auto var(--space-8)}
.cta .actions{display:flex;gap:var(--space-3);justify-content:center;flex-wrap:wrap}

/* --- Formulaire --------------------------------------------------------- */
.form-card{background:#fff;border:1px solid var(--border-default);
  border-radius:var(--radius-lg);padding:var(--space-8);box-shadow:var(--shadow-lg)}
.field{margin-bottom:var(--space-5)}
.field label{display:block;font-size:.9375rem;font-weight:var(--weight-semibold);
  color:var(--text-strong);margin-bottom:var(--space-2)}
.field .req{color:var(--danger)}
.field input,.field select,.field textarea{width:100%;padding:12px 14px;
  border:1px solid var(--border-default);border-radius:var(--radius-sm);
  font-family:var(--font-body);font-size:1rem;color:var(--text-strong);background:#fff}
.field textarea{min-height:120px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;
  border-color:var(--brand);box-shadow:var(--focus-ring)}
.field .hint{font-size:.8125rem;color:var(--text-muted);margin-top:6px}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}
@media(max-width:640px){.field-row{grid-template-columns:1fr}}
.hp{position:absolute;left:-9999px}   /* piège à robots, ne pas supprimer */
.consent{display:flex;gap:var(--space-3);align-items:flex-start;font-size:.875rem;
  color:var(--text-muted)}
.consent input{width:auto;margin-top:4px;flex:0 0 auto}
.alert{padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);
  margin-bottom:var(--space-6);font-size:.9375rem;border-left:3px solid}
.alert-ok{background:var(--success-surface);border-color:var(--success);color:var(--green-800)}
.alert-err{background:var(--danger-surface);border-color:var(--danger);color:#8B1F26}

/* --- Contenu long (pages légales) -------------------------------------- */
.legal h2{margin:var(--space-10) 0 var(--space-4);font-size:1.45rem}
.legal h3{margin:var(--space-6) 0 var(--space-2);font-size:1.1rem}
.legal p,.legal li{font-size:.9375rem}
.legal ul{padding-left:1.2rem}
.legal .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:var(--space-4) 0}
.legal table{width:100%;border-collapse:collapse;font-size:.875rem;margin:var(--space-4) 0;
  table-layout:fixed}
.legal td,.legal th{overflow-wrap:anywhere}
@media(max-width:400px){
  .legal th,.legal td{padding:8px 8px;font-size:.8125rem}
  .legal table{font-size:.8125rem}
}
.legal th,.legal td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border-subtle);
  vertical-align:top}
.legal th{background:var(--surface-subtle);font-weight:var(--weight-semibold);
  color:var(--text-strong)}
.todo{background:#FEF5E7;border-left:3px solid #E08600;padding:var(--space-3) var(--space-4);
  border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-size:.875rem;margin:var(--space-3) 0}

/* --- Pied de page ------------------------------------------------------- */
.site-footer{background:var(--surface-brand-deep);color:rgba(255,255,255,.66);
  padding:var(--space-16) 0 var(--space-8);font-size:.9375rem;margin-top:var(--space-16)}
.site-footer h4{color:#fff;font-size:.9375rem;margin-bottom:var(--space-4);
  text-transform:uppercase;letter-spacing:var(--tracking-overline);font-size:.75rem}
.site-footer a{color:rgba(255,255,255,.66);text-decoration:none}
.site-footer a:hover{color:#fff}
.footer-grid{display:grid;grid-template-columns:minmax(0,1fr) max-content max-content;column-gap:clamp(2rem,5vw,5rem);row-gap:var(--space-8);align-items:start}
.footer-grid>div:nth-child(2),.footer-grid>div:nth-child(3){justify-self:end}
@media(max-width:820px){.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}.footer-grid>div:nth-child(2),.footer-grid>div:nth-child(3){justify-self:start}}
@media(max-width:520px){.footer-grid{grid-template-columns:1fr}.footer-grid>div:first-child{grid-column:auto}.footer-grid>div:nth-child(2),.footer-grid>div:nth-child(3){justify-self:start}}
.footer-grid ul{list-style:none;padding:0;margin:0;display:grid;gap:var(--space-2)}
.social{display:inline-flex;align-items:center;gap:10px;padding:9px 16px 9px 12px;
  border-radius:var(--radius-pill);background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.82);
  text-decoration:none;font-size:.875rem;font-weight:var(--weight-semibold);
  transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
.social:hover{background:rgba(255,255,255,.16);color:#fff}
.social svg{flex:0 0 auto}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:var(--space-10);
  padding-top:var(--space-5);display:flex;justify-content:space-between;gap:var(--space-4);
  flex-wrap:wrap;font-size:.8125rem;color:rgba(255,255,255,.5)}

/* --- Barre d'action mobile --------------------------------------------- */
.mobile-cta{display:none}
/* Le menu complet ne tient plus sous 900 px : on passe au bouton hamburger. */
@media(max-width:900px){
  .burger{display:flex}
  .site-nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;
    align-items:stretch;gap:0;background:#fff;border-bottom:1px solid var(--border-default);
    box-shadow:var(--shadow-lg);padding:var(--space-3) var(--gutter) var(--space-5);
    max-height:calc(100vh - 70px);overflow-y:auto}
  .site-nav.open{display:flex}
  .site-nav > a{padding:12px 2px;border-bottom:1px solid var(--border-subtle)}
  .site-nav > a.btn{margin-top:var(--space-4);border-bottom:0;text-align:center}
  .nav-btn{width:100%;justify-content:space-between;padding:12px 2px;
    border-bottom:1px solid var(--border-subtle)}
  .dropdown{position:static;box-shadow:none;border:0;border-bottom:1px solid var(--border-subtle);
    min-width:0;padding:var(--space-2) 0 var(--space-3) var(--space-3);border-radius:0}
  .dropdown a{white-space:normal}
}

@media(max-width:720px){
  .mobile-cta{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:60;gap:var(--space-2);
    padding:10px 12px;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);
    border-top:1px solid var(--border-default)}
  .mobile-cta .btn{flex:1;padding:12px 10px;font-size:.9375rem}
  body{padding-bottom:74px}
  section{padding:var(--space-12) 0}
  .cta{padding:var(--space-8) var(--space-5)}
  .form-card{padding:var(--space-5)}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto}}

/* V1.6.3 — footer: groupes Prestations + Contact réellement ancrés à droite */
.footer-grid.footer-grid-v163{
  display:grid;
  grid-template-columns:minmax(0,1fr) max-content;
  column-gap:clamp(3rem,8vw,8rem);
  row-gap:var(--space-8);
  align-items:start;
  width:100%;
}
.footer-grid-v163>.footer-brand-col{min-width:0;justify-self:start}
.footer-grid-v163>.footer-right-groups{
  display:grid;
  grid-template-columns:max-content max-content;
  column-gap:clamp(2.5rem,5vw,5rem);
  justify-content:end;
  justify-self:end;
  margin-left:auto;
}
.footer-grid-v163 .footer-services-col,
.footer-grid-v163 .footer-contact-col{justify-self:end;text-align:left}
@media(max-width:820px){
  .footer-grid.footer-grid-v163{grid-template-columns:1fr;column-gap:0}
  .footer-grid-v163>.footer-right-groups{justify-self:start;margin-left:0;grid-template-columns:1fr 1fr;column-gap:var(--space-10)}
  .footer-grid-v163 .footer-services-col,.footer-grid-v163 .footer-contact-col{justify-self:start}
}
@media(max-width:520px){
  .footer-grid-v163>.footer-right-groups{grid-template-columns:1fr;row-gap:var(--space-8)}
}

/* V1.7.3 — footer entièrement éditable */
.footer-grid.footer-grid-editable{
  display:grid;
  gap:clamp(2rem,5vw,4.5rem);
  align-items:start;
  width:100%;
}
.footer-grid-editable>.footer-block{min-width:0}
.footer-grid-editable>.footer-block:not(:first-child){justify-self:end;text-align:left}
.footer-grid-editable .footer-editable-description{margin:0 0 var(--space-5);max-width:36rem}
.footer-grid-editable .footer-editable-socials{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:var(--space-5)}
.site-footer .footer-editable-logo{max-width:100%;min-width:0;flex-wrap:wrap}
.site-footer .footer-editable-logo img{
  display:block;width:auto;height:auto;
  max-width:min(100%,clamp(170px,24vw,250px));
  max-height:clamp(56px,7vw,82px);
  object-fit:contain;object-position:left center;flex:0 1 auto
}
@media(max-width:900px){
  .site-footer .footer-editable-logo img{max-width:min(70vw,230px);max-height:76px}
}
@media(max-width:600px){
  .site-footer .footer-editable-logo img{max-width:min(72vw,210px);max-height:70px}
}
@media(max-width:380px){
  .site-footer .footer-editable-logo img{max-width:min(74vw,190px);max-height:64px}
}
.footer-grid-editable .footer-block ul{margin:0;padding:0;list-style:none}
.footer-grid-editable .footer-block li+li{margin-top:.45rem}
@media(max-width:900px){
  .footer-grid.footer-grid-editable{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .footer-grid-editable>.footer-block,.footer-grid-editable>.footer-block:not(:first-child){justify-self:start}
  .footer-grid-editable>.footer-block-brand{grid-column:1/-1}
}
@media(max-width:600px){
  .footer-grid.footer-grid-editable{grid-template-columns:1fr!important}
  .footer-grid-editable>.footer-block-brand{grid-column:auto}
}

/* V1.9.0 — GEO : blocs éditoriaux visibles, pensés d'abord pour les lecteurs. */
.geo-brief{padding-block:var(--space-8);background:var(--surface-subtle,#f8fafc)}
.geo-brief-card{background:#fff;border:1px solid var(--border-default,#e5e7eb);border-radius:var(--radius-lg,18px);padding:clamp(1.25rem,2.5vw,2rem);box-shadow:var(--shadow-sm,0 1px 3px rgba(15,23,42,.06))}
.geo-brief-card h2{margin:.35rem 0 .9rem}
.geo-brief-card h3{font-size:1rem;margin:1.25rem 0 .55rem}
.geo-summary{font-size:1.05rem;line-height:1.7;margin:0}
.geo-facts,.geo-sources{margin:.5rem 0 0;padding-left:1.25rem}
.geo-facts li,.geo-sources li{margin:.38rem 0}
.geo-reviewed{margin:1.15rem 0 0;font-size:.9rem}
@media(max-width:640px){.geo-brief{padding-block:var(--space-6)}.geo-brief-card{border-radius:var(--radius-md,14px)}}


/* V1.9.2 — Changelog public + version cliquable dans le footer */
.footer-version{display:inline-flex;align-items:center;margin-left:.55rem;padding:.18rem .48rem;border:1px solid rgba(255,255,255,.18);border-radius:999px;font-size:.74rem;font-weight:700;line-height:1;color:var(--neutral-300)!important;text-decoration:none;vertical-align:middle;transition:border-color .18s ease,color .18s ease,background .18s ease}
.footer-version:hover,.footer-version:focus-visible{color:#fff!important;border-color:rgba(255,255,255,.42);background:rgba(255,255,255,.07);outline:none}
.changelog-hero{padding-bottom:2.75rem}.changelog-current{display:inline-flex;align-items:center;gap:.65rem;margin-top:1.25rem;padding:.65rem .8rem;border:1px solid var(--neutral-200);border-radius:999px;background:#fff;box-shadow:var(--shadow-sm)}.changelog-current strong{font-size:.84rem}.changelog-current span{font:800 .85rem/1 var(--font-display);color:var(--brand)}
.changelog-section{padding:3.5rem 0 5rem}.changelog-list{display:grid;gap:1rem}.changelog-entry{position:relative;padding:1.5rem 1.6rem;border:1px solid var(--neutral-200);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow-sm)}.changelog-entry.is-current{border-color:rgba(37,99,235,.35);box-shadow:0 12px 30px rgba(37,99,235,.08)}.changelog-entry-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.changelog-version{font:800 .88rem/1 var(--font-display);color:var(--brand);letter-spacing:.01em}.changelog-badge{display:inline-flex;margin-left:.5rem;padding:.24rem .48rem;border-radius:999px;background:#ECFDF3;color:#14733A;font-size:.7rem;font-weight:800}.changelog-entry time{font-size:.78rem;color:var(--text-muted)}.changelog-entry h2{margin:.2rem 0 .85rem;font-size:clamp(1.18rem,2.2vw,1.45rem)}.changelog-changes{margin:0;padding-left:1.2rem;display:grid;gap:.42rem}.changelog-changes li{color:var(--text-muted);line-height:1.55}.changelog-source{margin-top:2rem;font-size:.82rem}.changelog-source code{font-size:.8em}
@media(max-width:640px){.changelog-entry{padding:1.2rem}.changelog-entry-head{align-items:flex-start;flex-direction:column;gap:.45rem}.footer-version{margin-left:.35rem}}

/* ========================================================================
   V1.9.15 — Site public : Concept 1 Figma « Minimal Premium Public »
   Administration CMS/CRM inchangée. Ces règles ciblent exclusivement le
   shell public généré par app/render.php.
   ======================================================================== */
.site-header{background:rgba(255,255,255,.94);backdrop-filter:blur(16px);border-bottom:1px solid var(--border-subtle);box-shadow:none}
.site-header .bar{min-height:76px;padding:10px var(--gutter);gap:20px}.site-header .logo{font-size:1.28rem}.site-header .logo svg{width:28px;height:28px;flex-basis:28px}.site-nav{gap:5px}.site-nav>a,.site-nav>.has-menu>.nav-btn{padding:9px 12px;border-radius:999px;font-size:.9rem;font-weight:600}.site-nav>a:not(.btn):hover,.site-nav>.has-menu>.nav-btn:hover{background:var(--surface-subtle);color:var(--text-strong)}.site-nav>a[aria-current="page"]{background:var(--brand-soft);color:var(--brand-strong)}.site-nav>a.btn-accent{margin-left:8px;padding:10px 17px}.dropdown{border-radius:16px;border-color:var(--border-subtle);box-shadow:0 24px 60px rgba(19,26,36,.12);padding:10px}.dropdown a{border-radius:9px;padding:9px 10px}.dropdown a:hover{background:var(--surface-subtle)}
.site-footer{background:var(--surface-brand-deep);padding-top:72px}.site-footer h4{color:var(--blue-200);font-size:.7rem}.footer-bottom{margin-top:42px}.site-footer .social{background:rgba(255,255,255,.05)}
@media(max-width:900px){.site-header .bar{min-height:70px}.site-nav{gap:0}.site-nav>a,.site-nav>.has-menu>.nav-btn{border-radius:10px}.site-nav>a.btn-accent{margin-left:0}.dropdown{border-radius:0;box-shadow:none}}


/* V3.0.4 / V2.0.5 — éditeur de texte riche IziiClean Premium */
.richtext-editor{
  --rt-blue:var(--blue-600,var(--blue,var(--brand,#2563EB)));
  --rt-blue-strong:var(--blue-700,#1B4FCC);
  --rt-blue-soft:var(--blue-50,var(--brand-soft,#EEF4FF));
  --rt-deep:var(--blue-950,var(--navy,var(--deep,#15264F)));
  --rt-green:var(--green-600,var(--green,#16A34A));
  --rt-border:var(--n-200,var(--border,var(--border-subtle,#DCE3EC)));
  --rt-bg:var(--n-50,var(--surface-subtle,#F6F8FB));
  --rt-text:var(--n-900,var(--text,var(--text-strong,#131A24)));
  --rt-muted:var(--n-500,var(--muted,var(--text-muted,#677488)));
  margin-top:4px;border:1px solid var(--rt-border);border-radius:16px;background:#fff;overflow:hidden;
  box-shadow:0 1px 3px rgba(19,26,36,.06),0 8px 24px rgba(21,38,79,.035);
  transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease
}
.richtext-editor:focus-within{border-color:#8FB2FF;box-shadow:0 0 0 4px rgba(37,99,235,.11),0 10px 28px rgba(21,38,79,.06)}
.richtext-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:9px 10px;border-bottom:1px solid #E5EAF1;background:linear-gradient(180deg,#FAFBFD 0%,#F5F7FA 100%)}
.richtext-group{display:inline-flex;align-items:center;gap:2px;padding:3px;border:1px solid rgba(220,227,236,.95);border-radius:10px;background:rgba(255,255,255,.9);box-shadow:0 1px 2px rgba(19,26,36,.025)}
.richtext-btn{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:32px;padding:0 8px;border:0;border-radius:7px;background:transparent;color:var(--rt-deep);font:700 12px/1 var(--font-body,"Hanken Grotesk",system-ui,-apple-system,sans-serif);letter-spacing:0;cursor:pointer;transition:background .14s ease,color .14s ease,box-shadow .14s ease,transform .14s ease;white-space:nowrap}
.richtext-btn b,.richtext-btn i,.richtext-btn u,.richtext-btn s{font-size:13px}
.richtext-btn:hover{background:var(--rt-blue-soft);color:var(--rt-blue-strong)}
.richtext-btn:active{transform:translateY(1px)}
.richtext-btn:focus-visible{outline:0;box-shadow:0 0 0 3px rgba(37,99,235,.18)}
.richtext-btn.is-active,.richtext-btn[aria-pressed="true"]{background:#EAF2FF;color:var(--rt-blue-strong);box-shadow:inset 0 0 0 1px #BCD3FF}
.richtext-btn[data-cmd="createLink"]{min-width:48px;color:var(--rt-blue-strong)}
.richtext-btn[data-cmd="removeFormat"]{color:var(--rt-muted)}
.richtext-area{min-height:168px;max-height:520px;padding:17px 18px;background:#fff;color:var(--rt-text);font:400 15px/1.65 var(--font-body,"Hanken Grotesk",system-ui,-apple-system,sans-serif);outline:none;overflow:auto;word-break:break-word;caret-color:var(--rt-blue)}
.richtext-area:empty:before{content:attr(data-placeholder);color:#94A2B5;pointer-events:none;font-style:normal}
.richtext-area.richtext-invalid{box-shadow:inset 0 0 0 2px rgba(220,59,69,.45);background:#FFFBFB}
.richtext-area p{margin:0 0 .7em}.richtext-area p:last-child{margin-bottom:0}
.richtext-area ul,.richtext-area ol{margin:.55em 0 .8em;padding-left:1.5em}.richtext-area li+li{margin-top:.22em}
.richtext-area h2,.richtext-area h3{font-family:var(--font-display,"Schibsted Grotesk",system-ui,-apple-system,sans-serif);color:var(--rt-deep);line-height:1.25;margin:.8em 0 .4em}
.richtext-area h2{font-size:1.3rem}.richtext-area h3{font-size:1.12rem}
.richtext-area blockquote{margin:.7em 0;padding:9px 13px;border-left:3px solid var(--rt-blue);border-radius:0 8px 8px 0;background:var(--rt-blue-soft);color:#3A4452}
.richtext-area a{color:var(--rt-blue);font-weight:650;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}
.richtext-editor.is-disabled{background:var(--rt-bg);box-shadow:none}.richtext-editor.is-disabled .richtext-area{min-height:90px;background:var(--rt-bg);color:var(--rt-muted)}
.richtext-source[hidden]{display:none!important}
.message-contenu-riche,.portal-message-rich,.message-rich{line-height:1.62}.message-contenu-riche p,.portal-message-rich p,.message-rich p{margin:.3em 0 .65em}.message-contenu-riche p:last-child,.portal-message-rich p:last-child,.message-rich p:last-child{margin-bottom:0}
@media(max-width:700px){
  .richtext-editor{border-radius:14px}.richtext-toolbar{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;padding:8px;gap:6px;-webkit-overflow-scrolling:touch}.richtext-group{flex:0 0 auto}.richtext-btn{min-width:33px;height:33px;padding:0 8px}.richtext-area{min-height:150px;padding:15px 14px;font-size:16px}
}



/* ==== IZII-CORRECTIF-MENU-MOBILE-V1 stamp=202608151635 ========================
   Le menu mobile basculait en deux colonnes et rejetait les derniers liens
   (« Être rappelé », « Demander un devis ») hors de l'écran.
   Cause : .site-nav hérite de flex-wrap:wrap (règle bureau) ; en colonne avec
   une hauteur bornée, le contenu qui déborde ne défile pas, il passe en
   seconde colonne. nowrap rétablit le défilement vertical attendu.
   100dvh suit la barre d'outils rétractable des navigateurs mobiles ; la
   ligne 100vh reste en repli pour ceux qui l'ignorent.
   ============================================================== */
@media(max-width:900px){
  .site-nav{
    flex-wrap:nowrap;
    max-height:calc(100vh - 70px);
    max-height:calc(100dvh - 70px);
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }
}
