/* ==========================================================================
   Eurl Jauseau Patrice : feuille unique (tokens, base, composants)
   Maquette Nicolam Studio. Palette, typographie et réglages : Invariants du prompt.
   ========================================================================== */

/* ---------- Polices hébergées sur le site : Carlito 400/700, Kalam 400, Source Sans 3 400/600/700, latin ---------- */
@font-face{ font-family:"Carlito"; font-style:normal; font-weight:400; font-display:swap; src:url("../fonts/carlito-400-latin.woff2") format("woff2"); }
@font-face{ font-family:"Carlito"; font-style:normal; font-weight:700; font-display:swap; src:url("../fonts/carlito-700-latin.woff2") format("woff2"); }
@font-face{ font-family:"Kalam"; font-style:normal; font-weight:400; font-display:swap; src:url("../fonts/kalam-400-latin.woff2") format("woff2"); }
@font-face{ font-family:"Source Sans 3"; font-style:normal; font-weight:400; font-display:swap; src:url("../fonts/source-sans-3-400-latin.woff2") format("woff2"); }
@font-face{ font-family:"Source Sans 3"; font-style:normal; font-weight:600; font-display:swap; src:url("../fonts/source-sans-3-600-latin.woff2") format("woff2"); }
@font-face{ font-family:"Source Sans 3"; font-style:normal; font-weight:700; font-display:swap; src:url("../fonts/source-sans-3-700-latin.woff2") format("woff2"); }

/* ---------- Tokens ---------- */
:root{
  --bg:#F7F5F0;                                   /* fond A, crème */
  --primary-light:#E6EAF8; --primary:#2E3B94;     /* principale : couleur B des fonds, structure de la page */
  --accent-light:#FBE5E4; --accent:#D3262C;       /* secondaire : réservée à l'action */
  --accent-vivid:#FF8A80; --accent-ink:#5A0D10;   /* action vive sur l'aplat de la principale */
  --text:#1A1F33; --text-2:#50566B;
  --gold:#F2B01E;
  --grad-sign:linear-gradient(135deg,#2E3B94,#2AA4DC);          /* dégradé signature : pastilles d'icônes et d'initiale, bordure de la carte de confiance */
  --grad-clair:linear-gradient(135deg,#E6EAF8,#FFFFFF 60%);     /* rond et état rempli de l'Arrow Fill : même angle, interpolation classique */

  /* rôles repris par les composants */
  --fond:var(--bg); --principale:var(--primary); --principale-claire:var(--primary-light); --secondaire-claire:var(--primary-light);
  --texte:var(--text); --texte-2:var(--text-2); --or:var(--gold); --grad:var(--grad-sign);
  --surface:#FFFEFC;
  --erreur:#B42318;
  --carmin:#9B1C3C;
  --filet:rgba(26,31,51,.14);
  --annonce-top:#4A57B0;
  --hover-ghost:rgba(46,59,148,.08);
  --principale-hover:#263280;
  --action-hover:#B81F25;

  --f-titre:"Carlito",Calibri,"Helvetica Neue",Arial,sans-serif;
  --f-texte:"Source Sans 3",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-acc:"Kalam","Segoe Print",cursive;
  --h1:clamp(2.25rem,1.55rem + 2.8vw,3.75rem);
  --h1-page:clamp(2rem,1.5rem + 2vw,3.125rem);
  --h2:clamp(1.75rem,1.35rem + 1.6vw,2.625rem);
  --h3:clamp(1.25rem,1.12rem + .55vw,1.5rem);
  --h4:1.1875rem;
  --corps:clamp(1rem,.97rem + .15vw,1.0625rem);
  --chapo:clamp(1.0625rem,1rem + .4vw,1.25rem);
  --caption:.875rem;
  --surtitre:.8125rem;

  --r-btn:12px; --r-card:16px; --r-pill:999px;
  --container:1200px; --container-header:1320px; --pad:24px; --gap:24px;
  --ann-h:40px; --hdr-h:80px; --stack-h:calc(var(--ann-h) + var(--hdr-h));
  --logo-h:56px;
  --sh-card:0 1px 2px rgba(26,31,51,.08),0 2px 6px rgba(26,31,51,.06),0 10px 26px rgba(26,31,51,.10),inset 0 1px 0 rgba(255,252,247,.7);
  --sh-soft:0 1px 2px rgba(26,31,51,.06),0 6px 16px rgba(26,31,51,.07);
  --ease:ease-in-out; --dur:.4s; --dur-in:.9s; --dur-open:.5s; --fill-dur:.6s; --dur-zoom:1.2s;
  --tk-lead:96px; --tk-fade:24px;
}
@media (max-width:767px){ :root{ --pad:16px; --gap:16px; --tk-fade:16px; --tk-lead:64px; --ann-h:36px; --hdr-h:68px; --logo-h:46px; } }

/* ---------- Base ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; -webkit-tap-highlight-color:transparent; scroll-padding-top:calc(var(--hdr-h) + 24px); }
body{ margin:0; background:var(--fond); color:var(--texte); overflow-x:clip; font-family:var(--f-texte);
  font-size:var(--corps); line-height:1.6; -webkit-font-smoothing:antialiased; }
img{ max-width:100%; height:auto; display:block; }
svg{ display:block; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; letter-spacing:inherit; color:inherit; background:transparent; border:0; padding:0; margin:0; cursor:pointer; }
h1,h2,h3,h4,p,ul,ol,figure,blockquote{ margin:0; }
ul,ol{ padding:0; }
[hidden]{ display:none !important; }
::selection{ background:var(--accent); color:#FFF7F6; }
:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; }
.nw{ white-space:nowrap; }

h1,h2,h3,h4{ font-family:var(--f-titre); color:var(--texte); font-weight:700; letter-spacing:-.015em; text-wrap:wrap; font-feature-settings:"lnum" 1; }
h1{ font-size:var(--h1); font-weight:700; line-height:1.12; }
h2{ font-size:var(--h2); line-height:1.2; }
h3{ font-size:var(--h3); line-height:1.2; }
h4{ font-size:var(--h4); line-height:1.3; }

/* ---------- Layout ---------- */
.container{ width:100%; max-width:var(--container); margin-inline:auto; padding-inline:var(--pad); }
.section{ position:relative; isolation:isolate; padding:96px 0; }
.section > .container,.section > .defile,.section > .chips,.section > .rvt{ position:relative; z-index:1; }
.section.is-tight{ padding-top:48px; }
.section::before,.qband::before{ content:""; position:absolute; inset:0; z-index:0; pointer-events:none; opacity:.04;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
@media (max-width:767px){ .section{ padding-block:64px; } .section.is-tight{ padding-top:32px; } }
.bg-ab{ background:linear-gradient(180deg,#F7F5F0,#E6EAF8); }
.bg-ba{ background:linear-gradient(180deg,#E6EAF8,#F7F5F0); }
.bg-aba{ background:linear-gradient(180deg,#F7F5F0,#E6EAF8 50%,#F7F5F0); }
.bg-bab{ background:linear-gradient(180deg,#E6EAF8,#F7F5F0 50%,#E6EAF8); }

/* en-tête de section : le chapô prend la largeur de son titre, plancher ~70 caractères */
.shead{ display:flex; flex-direction:column; align-items:flex-start; gap:16px; margin-bottom:48px; width:fit-content; max-width:100%; min-width:min(100%,40rem); }
.shead .lead{ align-self:stretch; contain:inline-size; min-width:min(100%,40rem); }
.shead.center{ align-items:center; text-align:center; margin-inline:auto; }
.shead.center h2{ text-wrap:balance; }
@media (max-width:767px){ .shead{ margin-bottom:32px; width:auto; } }

/* ---------- Icônes (Phosphor light, tracés d'origine) ---------- */
.ic{ width:20px; height:20px; flex:0 0 auto; }
.kic{ width:24px; height:24px; flex:0 0 auto; }

/* ---------- Boutons : coins doux 10px, icône à droite dans la couleur du libellé ---------- */
.btn{ position:relative; display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:48px; padding:12px 22px;
  border-radius:var(--r-btn); border:1.5px solid transparent; white-space:nowrap; font-family:var(--f-texte);
  font-weight:700; font-size:1.0625rem; line-height:1.2; cursor:pointer; text-align:center;
  transition:transform var(--dur) var(--ease),background-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),
    color var(--dur) var(--ease),border-color var(--dur) var(--ease); }
.btn .ic{ width:20px; height:20px; }
.btn--ghost{ color:var(--principale); border-color:var(--principale); background-color:transparent; }
.btn--ghost:hover{ background-color:var(--hover-ghost); transform:translateY(-2px); box-shadow:var(--sh-soft); }
.btn--ghost:active{ transform:translateY(0) scale(.985); background-color:rgba(46,59,148,.18); }
.btn--on-photo{ color:var(--fond); border-color:rgba(247,245,240,.92); }
.btn--on-photo:hover{ background-color:rgba(247,245,240,.18); }
.btn--on-photo:active{ background-color:rgba(247,245,240,.26); }
.btn--on-photo:focus-visible{ outline-color:var(--fond); }
.btn-row{ display:flex; flex-wrap:wrap; gap:16px; }
.btn-row--center{ justify-content:center; }
.btn-row.is-stacked{ flex-direction:column; align-items:stretch; width:max-content; max-width:100%; margin-inline:auto; }
.btn-row.is-stacked .btn{ width:100%; }

/* ---- Arrow Fill Button : tous les boutons pleins ---- */
.btn-fill{
  --btn-h:48px; --dot:28px;
  --dm:calc((var(--btn-h) - 3px - var(--dot)) / 2);
  --fxr:24px;
  --fill-ease:var(--ease);
  --f-bg:var(--grad-clair); --f-fg:var(--accent);
  --d-fg:var(--accent);
  --i-bg:var(--accent); --i-fg:#FFF7F6;
  height:var(--btn-h); min-height:var(--btn-h);
  padding:0 calc(var(--dm) + var(--dot) + 12px) 0 24px;
  gap:0; justify-content:center; color:#FFF7F6;
  background:var(--accent); border:1.5px solid rgba(255,255,255,.85);
  background-clip:padding-box; background-origin:padding-box; background-repeat:no-repeat;
  box-shadow:var(--sh-card); overflow:visible; -webkit-tap-highlight-color:transparent; }
.btn-fill:hover,.btn-fill:active{ transform:none; box-shadow:var(--sh-card); }
.btn-fill.is-wide{ padding-left:12px; }
.btn-fill__txt{ position:relative; z-index:1; display:inline-flex; align-items:center; }
.btn-fill__layer{ position:absolute; inset:-1.5px; z-index:2; display:flex; align-items:center; justify-content:inherit;
  padding:inherit; border:1.5px solid transparent; border-radius:inherit;
  background:var(--f-bg); color:var(--f-fg); background-origin:border-box; background-repeat:no-repeat;
  -webkit-clip-path:circle(calc(var(--dot) / 2) at right var(--fxr) top 50%);
  clip-path:circle(calc(var(--dot) / 2) at right var(--fxr) top 50%);
  transition:clip-path var(--fill-dur) var(--fill-ease),-webkit-clip-path var(--fill-dur) var(--fill-ease);
  pointer-events:none; }
.btn-fill__dot{ position:absolute; right:var(--dm); top:50%; width:var(--dot); height:var(--dot); margin-top:calc(var(--dot) / -2);
  border-radius:50%; display:grid; place-items:center; color:var(--d-fg); transition:color var(--fill-dur) var(--fill-ease); }
.btn-fill__dot > *{ grid-area:1 / 1; }
.btn-fill__inv{ position:absolute; inset:0; border-radius:50%; background:var(--i-bg); opacity:0; transition:opacity var(--fill-dur) var(--fill-ease); }
.btn-fill .btn-fill__ic{ position:relative; width:calc(var(--dot) * .57); height:calc(var(--dot) * .57); transition:transform var(--fill-dur) var(--fill-ease); }
.btn-fill__spin{ display:none; position:relative; width:calc(var(--dot) * .5); height:calc(var(--dot) * .5); border-radius:50%;
  border:2px solid currentColor; border-top-color:transparent; animation:btn-spin .8s linear infinite; }
@keyframes btn-spin{ to{ transform:rotate(360deg); } }
.btn-fill.is-filled .btn-fill__layer,.btn-fill:focus-visible .btn-fill__layer{
  -webkit-clip-path:circle(var(--fr, 600px) at right var(--fxr) top 50%);
  clip-path:circle(var(--fr, 600px) at right var(--fxr) top 50%); }
.btn-fill.is-filled .btn-fill__inv,.btn-fill:focus-visible .btn-fill__inv{ opacity:1; }
.btn-fill.is-filled .btn-fill__dot,.btn-fill:focus-visible .btn-fill__dot{ color:var(--i-fg); }
.btn-fill--pivot.is-filled .btn-fill__ic,.btn-fill--pivot:focus-visible .btn-fill__ic{ transform:rotate(45deg); }
@media (hover:hover){
  .btn-fill:not(:disabled):hover .btn-fill__layer{
    -webkit-clip-path:circle(var(--fr, 600px) at right var(--fxr) top 50%);
    clip-path:circle(var(--fr, 600px) at right var(--fxr) top 50%); }
  .btn-fill:not(:disabled):hover .btn-fill__inv{ opacity:1; }
  .btn-fill:not(:disabled):hover .btn-fill__dot{ color:var(--i-fg); }
  .btn-fill--pivot:not(:disabled):hover .btn-fill__ic{ transform:rotate(45deg); }
}
.btn-fill:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; }

.btn-fill.is-busy,.btn-fill[aria-busy="true"]{ cursor:progress; pointer-events:none; }
.btn-fill.is-busy .btn-fill__ic{ display:none; }
.btn-fill.is-busy .btn-fill__spin{ display:block; }
.btn-fill:disabled:not(.is-busy){ opacity:.5; cursor:not-allowed; }
.btn-fill--sm{ --btn-h:44px; --dot:26px; --fxr:22px; padding-left:20px; font-size:1rem; }
@media (max-width:359px){ .btn-fill{ padding-left:18px; font-size:1rem; } .btn-fill.is-wide{ padding-left:12px; } }

/* ---------- Badges ---------- */
.badges{ display:flex; flex-wrap:wrap; gap:12px; }
.badge{ display:inline-flex; align-items:center; gap:8px; padding:6px 12px; border-radius:var(--r-btn); background:var(--secondaire-claire);
  color:var(--texte); font-weight:700; font-size:.875rem; line-height:1.3; white-space:nowrap; }
.badge .ic{ width:16px; height:16px; color:var(--texte); }
.g-g{ width:16px; height:16px; flex:0 0 auto; }
.g-word{ width:auto; }

/* ---------- Étoiles ---------- */
.stars{ display:inline-flex; gap:2px; color:var(--or); }
.star{ width:16px; height:16px; flex:0 0 auto; fill:currentColor; }

/* ---------- Barre d'annonce ---------- */
.annonce{ position:relative; z-index:51; height:var(--ann-h); display:flex; align-items:center; overflow:hidden;
  background:linear-gradient(180deg,var(--annonce-top) 0%,var(--principale) 100%); color:var(--fond); }
.annonce__in{ width:100%; max-width:var(--container-header); margin-inline:auto; padding-inline:var(--pad); overflow:hidden; }
.annonce .tk{ justify-content:center; }
.annonce__set{ list-style:none; margin:0; padding:0; display:flex; align-items:center; gap:16px; flex:0 0 auto; }
.annonce li{ display:inline-flex; align-items:center; gap:8px; font-size:.9375rem; font-weight:700; line-height:1; white-space:nowrap; }
.annonce li .ic{ width:18px; height:18px; color:var(--fond); }
.annonce li.sep{ opacity:.75; }
.annonce .tk > .annonce__set[aria-hidden]{ display:none; }
@media (max-width:859px){   /* bascule mesurée sur la ligne réelle : 791px + marges 2 × 24 + barre de défilement 15 = 854px ; en dessous, ticker, vide de lecture devant CHAQUE copie */
  .annonce__in{ padding-inline:0;
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 var(--tk-fade),#000 calc(100% - var(--tk-fade)),transparent);
    mask-image:linear-gradient(90deg,transparent,#000 var(--tk-fade),#000 calc(100% - var(--tk-fade)),transparent); }
  .annonce .tk{ justify-content:flex-start; width:max-content; }
  .annonce .tk > .annonce__set[aria-hidden]{ display:flex; }
  .annonce__set{ padding-left:var(--tk-lead); }
  .annonce li.sep:first-child{ display:none; }
}
@media (max-width:767px){ .annonce li{ font-size:.875rem; } .annonce li .ic{ width:16px; height:16px; } }

/* ---------- Tickers ---------- */
.tk{ display:flex; }
.tk.run{ animation:tk var(--tk-dur,30s) linear infinite; will-change:transform; }
.tk.paused{ animation-play-state:paused !important; }
@keyframes tk{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@keyframes tk-in{ from{ transform:translateX(var(--lead,96px)); } to{ transform:translateX(0); } }

/* ---------- Header : verre de la crème densifié, un seul état ---------- */
.hdr{ position:sticky; top:0; z-index:50; }
.hdr__bar{ position:relative; height:var(--hdr-h);
  background:linear-gradient(180deg,rgba(247,245,240,.94),rgba(247,245,240,.76));
  -webkit-backdrop-filter:blur(14px) saturate(1.2); backdrop-filter:blur(14px) saturate(1.2);
  box-shadow:var(--sh-soft); }
.hdr__bar::after{ content:""; position:absolute; inset:0; background:var(--fond); opacity:0; pointer-events:none; transition:opacity var(--dur-open) var(--ease); }
.hdr.is-open .hdr__bar::after{ opacity:1; }
.hdr__bar > .container{ max-width:var(--container-header); height:100%; display:flex; align-items:center; gap:24px; flex-wrap:nowrap; position:relative; z-index:1; }
.hdr__logo{ flex:0 0 auto; display:flex; align-items:center; min-height:44px; border-radius:var(--r-btn); transition:opacity var(--dur) var(--ease); }
.hdr__logo:hover{ opacity:.85; }
.nav{ display:flex; align-items:center; gap:8px; margin-inline:auto; flex-wrap:nowrap; }
.nav__link{ display:inline-flex; align-items:center; gap:6px; flex:0 0 auto; white-space:nowrap; min-height:44px;
  padding:10px 16px; border-radius:var(--r-btn); font-weight:700; font-size:1.0625rem; color:var(--texte);
  transition:color var(--dur) var(--ease),background-color var(--dur) var(--ease); }
.nav__link:hover{ background:var(--hover-ghost); color:var(--principale); }
.nav__link[aria-current="page"],.nav__toggle[data-current]{ color:var(--principale); }
.nav__link[aria-current="page"]{ box-shadow:inset 0 -2px 0 var(--principale); border-radius:var(--r-btn) var(--r-btn) 0 0; }
.nav__link .ic{ width:16px; height:16px; color:var(--principale); transition:transform var(--dur) var(--ease); }
.nav__has{ position:relative; }
.nav__toggle[aria-expanded="true"] .ic{ transform:rotate(180deg); }
.submenu{ position:absolute; top:calc(50% + var(--hdr-h) / 2 + 8px); left:50%; min-width:440px; padding:8px; display:flex; flex-direction:column; gap:2px;
  background:var(--surface); border-radius:var(--r-card); box-shadow:var(--sh-card);
  opacity:0; visibility:hidden; transform:translate(-50%,6px);
  transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease),visibility var(--dur) var(--ease); }
.submenu::before{ content:""; position:absolute; left:0; right:0; top:-40px; height:40px; }
.nav__has:hover .submenu,.submenu.is-open{ opacity:1; visibility:visible; transform:translate(-50%,0); }
.submenu a{ display:flex; align-items:center; gap:12px; padding:8px 16px 8px 8px; border-radius:var(--r-btn); color:var(--texte);
  transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease); }
.submenu a:hover,.submenu a[aria-current]{ background:var(--principale-claire); }
.submenu a:hover .submenu__t,.submenu a[aria-current] .submenu__t{ color:var(--principale); }
.submenu__txt{ display:block; min-width:0; }
.submenu__t{ display:block; font-weight:700; font-size:1.0625rem; line-height:1.3; white-space:nowrap; transition:color var(--dur) var(--ease); }
.submenu__d{ display:block; font-size:var(--caption); line-height:1.4; color:var(--texte-2); white-space:nowrap; }
.kchip{ flex:0 0 auto; width:40px; height:40px; border-radius:var(--r-btn); background:linear-gradient(0deg,rgba(26,31,51,.12),rgba(26,31,51,.12)),var(--grad);
  display:inline-flex; align-items:center; justify-content:center;
  box-shadow:0 1px 2px rgba(26,31,51,.16),0 4px 10px rgba(46,59,148,.18),inset 0 1px 0 rgba(255,252,247,.3); }
.kchip .kic{ width:22px; height:22px; color:var(--fond); }
.hdr__cta{ flex:0 0 auto; }
.burger{ display:none; flex:0 0 auto; margin-left:auto; width:44px; height:44px; border-radius:var(--r-btn);
  border:1.5px solid rgba(26,31,51,.22); align-items:center; justify-content:center; color:var(--principale);
  transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease); }
.burger:hover{ background:var(--hover-ghost); border-color:var(--principale); }
.burger .ic{ width:24px; height:24px; }
.burger .ic-x,.hdr.is-open .burger .ic-menu{ display:none; }
.hdr.is-open .burger .ic-x{ display:block; }
.hdr__panel{ display:none; }
@media (max-width:879px){   /* bascule burger mesurée : logo 62 + nav 454 + CTA 200 + gouttières 2 × 24 + 24px d'air de part et d'autre de la nav + marges 2 × 24 + barre de défilement 15 = 875px */
  .nav,.hdr__cta{ display:none; }
  .burger{ display:inline-flex; }
  .hdr__panel{ display:grid; grid-template-rows:0fr; position:absolute; top:100%; left:0; right:0; z-index:2; background:var(--fond);
    box-shadow:0 12px 24px rgba(26,31,51,.12); visibility:hidden;
    transition:grid-template-rows var(--dur-open) var(--ease),visibility 0s linear var(--dur-open); }
  .hdr.is-open .hdr__panel{ grid-template-rows:1fr; visibility:visible; transition:grid-template-rows var(--dur-open) var(--ease),visibility 0s; }
  .hdr__scroll{ min-height:0; max-height:calc(100svh - var(--stack-h)); overflow:hidden; }
  .hdr.is-open .hdr__scroll{ overflow-y:auto; }
  .hdr__panel .container{ display:flex; flex-direction:column; gap:4px; padding-block:16px 32px; }
  .hdr__panel a:not(.btn),.macc__btn{ display:flex; align-items:center; min-height:48px; padding:12px 8px; border-radius:var(--r-btn);
    font-weight:700; font-size:1.0625rem; color:var(--texte); text-align:left;
    transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease); }
  .hdr__panel a:not(.btn):hover,.macc__btn:hover{ background:var(--principale-claire); color:var(--principale); }
  .hdr__panel a[aria-current]:not(.btn),.macc__btn[data-current]{ color:var(--principale); }
  .macc__btn{ width:100%; justify-content:space-between; }
  .macc__btn .ic{ width:20px; height:20px; color:var(--principale); transition:transform var(--dur-open) var(--ease); }
  .macc.is-open .macc__btn .ic{ transform:rotate(180deg); }
  .macc__panel{ display:grid; grid-template-rows:0fr; visibility:hidden;
    transition:grid-template-rows var(--dur-open) var(--ease),visibility 0s linear var(--dur-open); }
  .macc.is-open .macc__panel{ grid-template-rows:1fr; visibility:visible; transition:grid-template-rows var(--dur-open) var(--ease),visibility 0s; }
  .macc__in{ overflow:hidden; min-height:0; display:flex; flex-direction:column; }
  .hdr__panel .macc__in a:not(.btn){ display:flex; align-items:center; gap:12px; height:48px; min-height:48px; padding:0 8px; line-height:1.2; }
  .hdr__panel .kchip{ width:36px; height:36px; }
  .hdr__panel .kchip .kic{ width:20px; height:20px; }
  .hdr__panel .btn{ margin-top:16px; align-self:stretch; }
}

/* ---------- Placeholder image ---------- */
.ph{ position:absolute; inset:0; overflow:hidden; background:radial-gradient(circle at center,#EEF0F6 0%,#E6EAF8 72%); }
.ph::before{ content:""; position:absolute; inset:0; background:url("../img/jauseau-logo.png") center / min(42%,240px) auto no-repeat; opacity:.34; mix-blend-mode:multiply; }
.ph__cap{ position:absolute; left:12px; bottom:12px; max-width:calc(100% - 24px); padding:6px 12px; border-radius:var(--r-btn);
  background:rgba(247,245,240,.92); color:var(--texte-2); font-size:var(--caption); line-height:1.3; }
.ph--right .ph__cap{ left:auto; right:12px; text-align:right; }

/* ---------- Photos ---------- */
.frame{ position:relative; display:block; border-radius:var(--r-card); overflow:hidden; box-shadow:var(--sh-card); background:var(--principale-claire); }
.frame--43::before{ content:""; display:block; padding-top:75%; }
.frame > img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform var(--dur-zoom) var(--ease); }

/* ---------- Notes de maquette ---------- */
.note{ display:flex; align-items:flex-start; gap:12px; margin-top:48px; padding:16px 24px; border-radius:var(--r-card);
  border:1px solid rgba(155,28,60,.3); background:rgba(155,28,60,.06); color:var(--texte); font-size:1rem; line-height:1.5; }
.note .ic{ width:22px; height:22px; color:var(--carmin); margin-top:1px; }
.note__l{ font-weight:700; color:var(--carmin); margin-right:4px; }
.note--clair{ border-color:rgba(247,245,240,.42); background:rgba(247,245,240,.1); color:var(--fond); }
.note--clair .ic,.note--clair .note__l{ color:var(--fond); }
.note--tight{ margin-top:24px; }
.gnote{ margin-bottom:64px; }
.gnote .note{ margin-top:0; max-width:880px; margin-inline:auto; }
@media (max-width:767px){ .note{ padding:16px; margin-top:32px; } .gnote{ margin-bottom:48px; } .note--tight{ margin-top:16px; } }

/* ---------- Cartes ---------- */
.card{ background:var(--surface); border-radius:var(--r-card); box-shadow:var(--sh-card); }

/* ---------- Bande de qualités ---------- */
.qband{ position:relative; isolation:isolate; padding:64px 0; background:linear-gradient(90deg,#E6EAF8,#F0EADC); }
.qband > *{ position:relative; z-index:1; }
.qband__t{ display:block; text-align:center; margin:0 auto 32px; padding-inline:var(--pad); }
.qband__t .g-word{ display:inline-block; height:1.486em; width:auto; vertical-align:-.388em; }
.qband__tk{ overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 var(--tk-fade),#000 calc(100% - var(--tk-fade)),transparent);
  mask-image:linear-gradient(90deg,transparent,#000 var(--tk-fade),#000 calc(100% - var(--tk-fade)),transparent); }
.tk--q{ width:max-content; transform:translateX(var(--lead,96px)); }
.tk--q.run,.tk--q.is-done{ transform:none; }
.qt__set{ list-style:none; margin:0; padding:0; display:flex; align-items:center; flex:0 0 auto; }
.qt__it{ display:inline-flex; flex-direction:column; align-items:center; gap:6px; white-space:nowrap; }
.qt__q{ font-family:var(--f-titre); font-weight:600; font-size:clamp(1.375rem,1.2rem + .7vw,1.75rem); line-height:1.3; letter-spacing:-.01em; color:var(--texte); }
.qt__who{ font-size:var(--caption); line-height:1; color:var(--texte-2); }
.qt__sep{ display:inline-flex; align-items:center; margin:0 32px; color:var(--principale); }
.qt__sep .ic{ width:18px; height:18px; }
@media (max-width:767px){ .qband{ padding:48px 0; } .qband__t{ margin-bottom:24px; } .qt__sep{ margin:0 24px; } }

/* ---------- Réalisations : défilé de tuiles ---------- */
.defile{ --padL:max(var(--pad),calc((100vw - var(--container)) / 2 + var(--pad)));
  --tile:min(340px,calc((100vw - var(--padL) - 3 * var(--gap)) / 3.5)); }
.defile__track{ display:flex; gap:var(--gap); overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory; scroll-padding-left:var(--padL);
  padding:8px 0 40px var(--padL); scrollbar-width:none; -ms-overflow-style:none; cursor:grab; -webkit-overflow-scrolling:touch; }
.defile__track::-webkit-scrollbar{ display:none; }
.defile__track::after{ content:""; flex:0 0 0; }
.defile__track.is-drag{ cursor:grabbing; scroll-snap-type:none; }
.defile__track.is-drag .tile{ pointer-events:none; }
.defile__track:focus-visible{ outline-offset:-4px; }
.tile{ flex:0 0 var(--tile); width:var(--tile); scroll-snap-align:start; display:flex; flex-direction:column; gap:16px; border-radius:var(--r-card); }
.tile__t{ font-weight:700; font-size:1.0625rem; line-height:1.35; color:var(--texte); transition:color var(--dur) var(--ease); }
.tile__img img{ user-select:none; -webkit-user-drag:none; }
@media (hover:hover){
  .tile:hover .frame > img{ transform:scale(1.04); }
  .tile:hover .tile__t{ color:var(--principale); }
}
.chevs{ display:flex; justify-content:center; gap:20px; margin-top:-8px; }
.chev{ position:relative; width:24px; height:24px; border-radius:50%; background:var(--principale); color:var(--fond);
  display:inline-flex; align-items:center; justify-content:center;
  transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease),background-color var(--dur) var(--ease); }
.chev::before{ content:""; position:absolute; inset:-10px; }
.chev .ic{ width:12px; height:12px; }
.chev:hover:not(:disabled){ transform:scale(1.12); background:var(--principale-hover); }
.chev:disabled{ opacity:.35; cursor:default; }
.real__foot{ display:flex; justify-content:center; align-items:center; gap:16px 32px; flex-wrap:wrap; margin-top:32px; }
@media (max-width:1023px){ .defile{ --tile:calc((100vw - var(--pad) - 2 * var(--gap)) / 2.5); } }
@media (max-width:767px){
  .defile{ --tile:calc((100vw - var(--pad) - var(--gap)) / 1.5); }
  .tile{ gap:12px; }
  .real__foot{ flex-direction:column; }
  .real__foot .pquote{ text-align:center; }
}

.section--contrast{ background:var(--principale); color:var(--fond); }
.section--contrast::before{ opacity:.025; }

.lmap{ container-type:inline-size; border-radius:var(--r-card); overflow:hidden; box-shadow:var(--sh-card); }
.lmap__in{ position:relative; padding-top:72.2%; }
.lmap__svg{ position:absolute; inset:0; width:100%; height:100%; }
.lmap__sea{ fill:var(--principale-claire); }
.lmap__land{ fill:var(--fond); }
.lmap__bord{ fill:none; stroke:rgba(26,31,51,.2); stroke-width:1; vector-effect:non-scaling-stroke; }
.lmap__coast{ fill:none; stroke:rgba(46,59,148,.4); stroke-width:1; vector-effect:non-scaling-stroke; }
.lmap__pin{ position:absolute; left:var(--x); top:var(--y); width:0; height:0; font-size:clamp(11px,2.8cqw,15px); }
.lmap__ic{ position:absolute; width:3em; height:3em; left:-1.5em; top:-2.8125em; color:var(--principale); paint-order:stroke; stroke:var(--fond); stroke-width:14; }
.lmap__lbl{ position:absolute; left:0; bottom:calc(2.8125em + .4em); transform:translateX(-50%); padding:.3em .8em; border-radius:var(--r-pill);
  background:var(--fond); box-shadow:var(--sh-soft); font-weight:700; font-size:1.1em; line-height:1.3; color:var(--principale); white-space:nowrap; }
.cities{ list-style:none; }
.cities li{ position:relative; display:flex; align-items:center; gap:12px; min-height:48px; padding-block:6px; font-weight:700; line-height:1.3; color:var(--texte); }
.cities li + li::before{ content:""; position:absolute; top:0; right:0; left:44px; height:1px; background:var(--filet); }
.pchip{ width:32px; height:32px; flex:0 0 auto; border-radius:var(--r-pill); display:grid; place-items:center; background:var(--secondaire-claire); color:var(--texte); }
.pchip .ic{ width:18px; height:18px; }
.stats{ position:relative; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:24px; border-radius:var(--r-card); background:rgba(247,245,240,.08); }
.stat{ position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:8px; padding:32px 16px; }
.stat + .stat::before{ content:""; position:absolute; left:0; top:24px; bottom:24px; width:1px; background:rgba(247,245,240,.28); }
.stat__n{ display:inline-flex; align-items:center; gap:6px; font-family:var(--f-texte); font-weight:700; font-size:clamp(2.5rem,2rem + 2vw,3.5rem); line-height:1; color:var(--fond); font-variant-numeric:tabular-nums lining-nums; }
.stat__n .star{ width:.55em; height:.55em; color:var(--or); }
.stat__l{ color:var(--principale-claire); white-space:nowrap; line-height:1.3; }

  @media (max-width:767px){ .lmap__in{ padding-top:100%; } .lmap__pin,.lmap__dot{ left:var(--xm); top:var(--ym); } .stat{ padding:24px 12px; } }

@media (max-width:519px){   /* bascule mesurée : le plus long label tient sur une ligne en 3 colonnes au-dessus */
  .stats{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .stat:last-child{ grid-column:1 / -1; }
  .stat:last-child::before{ left:16px; right:16px; top:0; bottom:auto; width:auto; height:1px; }
}

/* ---------- Avis ---------- */
.shead--note{ margin-bottom:16px; }
.rnote{ display:flex; flex-direction:column; align-items:center; gap:8px; margin-bottom:48px; }
.rnote__a{ display:inline-flex; align-items:center; gap:12px; }
.rnote__n{ font-weight:700; font-size:2.75rem; line-height:1; color:var(--or); font-variant-numeric:tabular-nums lining-nums; }
.stars--lg .star{ width:24px; height:24px; }
.rnote__b{ display:inline-flex; align-items:center; gap:8px; font-weight:700; color:var(--texte); }
.rnote__b .g-word{ height:22px; }

.rv{ background:var(--surface); border-radius:var(--r-card); box-shadow:var(--sh-card); padding:24px; color:var(--texte); }
.rv__head{ position:relative; display:flex; align-items:flex-start; gap:12px; padding-right:32px; margin-bottom:12px; }
.rv__av{ width:44px; height:44px; flex:0 0 auto; border-radius:50%; background:var(--grad); color:var(--fond); display:grid; place-items:center; font-weight:700; font-size:1.125rem; line-height:1; }
.rv__who{ display:flex; flex-direction:column; align-items:flex-start; gap:2px; min-width:0; }
.rv__name{ font-weight:700; line-height:1.3; }
.rv__org{ font-size:var(--caption); line-height:1.3; color:var(--texte-2); }
.rv .star{ width:14px; height:14px; }
.rv__g{ position:absolute; right:0; top:0; width:22px; height:22px; }
.rv__q{ white-space:pre-wrap; overflow-wrap:anywhere; }
.wall__cta{ margin-top:32px; }
.rv--bare{ padding:0; background:none; box-shadow:none; border-radius:0; }

@media (max-width:767px){ .rv__g{ width:30px; height:30px; } .rv__head{ padding-right:40px; } }

/* ---------- FAQ ---------- */
.faq{ max-width:760px; margin-inline:auto; }
.faq__item{ position:relative; }
.faq__item + .faq__item::before{ content:""; position:absolute; top:0; left:0; right:0; height:1px; background:var(--filet); }
.faq__h{ font-size:var(--h4); line-height:1.35; }
.faq__q{ display:flex; justify-content:space-between; align-items:flex-start; gap:16px; width:100%; min-height:44px; padding:20px 0; text-align:left; font-family:var(--f-titre); font-weight:600; font-size:var(--h4); line-height:1.35; letter-spacing:-.01em; color:var(--texte); transition:color var(--dur) var(--ease); }
.faq__q:hover{ color:var(--principale); }
.faq__q .ic{ width:22px; height:22px; color:var(--principale); margin-top:1px; transition:transform var(--dur) var(--ease); }
.faq__item.is-open .faq__q .ic{ transform:rotate(180deg); }
.faq__p{ display:grid; grid-template-rows:0fr; visibility:hidden; transition:grid-template-rows var(--dur) var(--ease),visibility 0s linear var(--dur); }
.faq__item.is-open .faq__p{ grid-template-rows:1fr; visibility:visible; transition:grid-template-rows var(--dur) var(--ease),visibility 0s; }
.faq__in{ overflow:hidden; min-height:0; }
.faq__in p{ padding-bottom:20px; color:var(--texte-2); }

/* ---------- Formulaire de devis + carte de confiance ---------- */
.cgrid{ display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr); grid-template-areas:"form conf" "form coord" "form hrs"; grid-template-rows:auto auto 1fr; column-gap:32px; row-gap:24px; align-items:start; }
.tcard{ grid-area:conf; min-width:0; }
.cgrid__form{ grid-area:form; min-width:0; }
.icard--coord{ grid-area:coord; }
.icard--hrs{ grid-area:hrs; }
.fcard{ padding:48px; }
.form-body{ display:flex; flex-direction:column; gap:24px; }
.field{ display:flex; flex-direction:column; gap:8px; }
.field label{ font-weight:700; font-size:1rem; line-height:1.4; color:var(--texte); }
.field .opt{ font-weight:400; color:var(--texte-2); margin-left:6px; }
.hint{ font-size:var(--caption); line-height:1.5; color:var(--texte-2); }
.field input,.field select,.field textarea{ width:100%; min-height:48px; padding:12px 16px; font:inherit; font-size:1rem; line-height:1.5;
  color:var(--texte); background:var(--surface); border:1px solid rgba(26,31,51,.24); border-radius:var(--r-btn); margin:0;
  transition:border-color var(--dur) var(--ease),background-color var(--dur) var(--ease); }
.field textarea{ resize:vertical; min-height:150px; display:block; }
.field ::placeholder{ color:#6A7084; opacity:1; }
.field input:hover,.field select:hover,.field textarea:hover{ border-color:rgba(26,31,51,.48); }
.field input:focus,.field select:focus,.field textarea:focus{ outline:2px solid var(--principale); outline-offset:3px; border-color:var(--principale); }
.field select{ appearance:none; -webkit-appearance:none; padding-right:44px; cursor:pointer; }
.field select:invalid{ color:#6A7084; }
.sel{ position:relative; }
.sel__ic{ position:absolute; right:14px; top:50%; width:20px; height:20px; margin-top:-10px; color:var(--principale); pointer-events:none; }
.sel__ph{ display:none; position:absolute; left:17px; right:44px; top:50%; transform:translateY(-50%); pointer-events:none; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; color:#6A7084; font-size:1rem; line-height:1.5; }
.sel:has(select:invalid) .sel__ph{ display:block; }
.sel:has(select:invalid) select{ color:transparent; }
.field select option{ color:var(--texte); }
.err{ display:none; font-size:var(--caption); font-weight:700; line-height:1.4; color:var(--erreur); }
.field.is-err .err{ display:block; }
.field.is-err input,.field.is-err select,.field.is-err textarea{ border-color:var(--erreur); }
.file{ position:relative; }
.file__input{ position:absolute; inset:0; z-index:1; width:100%; height:100%; opacity:0; cursor:pointer; }
.field .file__input{ min-height:0; padding:0; }
.file__zone{ display:flex; align-items:center; justify-content:center; min-height:48px; border-radius:var(--r-btn); border:1.5px dashed rgba(26,31,51,.3); background:var(--surface); color:var(--principale);
  transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease); }
.file__zone .ic{ width:24px; height:24px; }
.file__input:hover + .file__zone{ background:var(--principale-claire); border-color:var(--principale); color:var(--principale); }
.file__input:focus-visible + .file__zone{ outline:2px solid var(--principale); outline-offset:3px; }
.field.is-err .file__zone{ border-color:var(--erreur); }
.file.has-file .file__input,.file.has-file .file__zone{ display:none; }
.file__chosen{ display:flex; align-items:center; gap:12px; min-height:48px; padding:2px 2px 2px 16px; border-radius:var(--r-btn); border:1px solid rgba(26,31,51,.24); background:var(--surface); }
.file__chosen > .ic{ color:var(--principale); }
.file__name{ flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.file__clear{ flex:0 0 auto; width:44px; height:44px; display:inline-flex; align-items:center; justify-content:center; border-radius:var(--r-btn); color:var(--principale); transition:background-color var(--dur) var(--ease); }
.file__clear:hover{ background:var(--principale-claire); }
.form-send{ margin-top:32px; display:flex; flex-direction:column; align-items:flex-start; gap:16px; }
.form-ko{ font-weight:700; color:var(--erreur); }
.form-foot{ margin-top:16px; font-size:var(--caption); line-height:1.5; color:var(--texte-2); }
.form-foot a{ color:var(--principale); text-decoration:underline; text-underline-offset:2px; cursor:pointer; transition:color var(--dur) var(--ease); }
.form-foot a:hover{ color:var(--texte); }
.form-ok{ padding:24px; border-radius:var(--r-btn); background:var(--principale-claire); color:var(--texte); font-weight:700; }
.form-ok:focus{ outline:none; }
.hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.tcard{ padding:32px; border:1.5px solid transparent; background:linear-gradient(var(--surface),var(--surface)) padding-box,var(--grad) border-box; }
.tc__top{ display:flex; align-items:center; justify-content:space-between; gap:12px 16px; flex-wrap:wrap; }
.tc__note{ display:flex; flex-direction:column; gap:6px; }
.tc__n{ display:inline-flex; align-items:center; gap:6px; font-weight:700; font-size:2.5rem; line-height:1; color:var(--or); font-variant-numeric:tabular-nums lining-nums; }
.tc__n .star{ width:.55em; height:.55em; }
.tc__c{ display:inline-flex; align-items:center; gap:8px; font-weight:700; font-size:.9375rem; line-height:1; color:var(--texte); }
.tc__c .g-word{ height:18px; }
.tc__sep{ height:1px; background:rgba(26,31,51,.12); margin:24px 0; }
.tc__slots{ display:flex; gap:12px; }
.islot{ display:block; border:1.5px dashed rgba(26,31,51,.22); border-radius:var(--r-btn); background:rgba(26,31,51,.02); }
.tc__slots .islot{ flex:0 1 120px; min-width:0; aspect-ratio:2 / 1; }
/* Contact : carrousel de la carte, un avis entier à la fois, bord à bord de la carte, hauteur fixe sur le plus long, chaque avis centré */
.ccar{ overflow:hidden; margin-inline:calc(-1 * var(--tc-x,32px)); }
.ccar__track{ display:flex; align-items:center; transform:translate3d(calc(var(--i,0) * -100%),0,0); }
.ccar__track.is-sliding{ transition:transform var(--dur-in) var(--ease); }
.ccar .rv{ flex:0 0 100%; min-width:0; padding-inline:var(--tc-x,32px); }
.icard{ padding:32px; }
.icard h3{ margin-bottom:16px; }
.icard__h{ display:flex; align-items:center; gap:12px; }
.icard__h .ic{ width:24px; height:24px; color:var(--principale); }
.icard__rows{ display:flex; flex-direction:column; gap:12px; }
.icard .row{ display:flex; align-items:flex-start; gap:12px; min-width:0; }
.icard .row .ic{ color:var(--principale); margin-top:3px; }
.icard .row a{ cursor:pointer; display:inline-block; padding-block:10px; margin-block:-10px; overflow-wrap:anywhere; transition:color var(--dur) var(--ease); }
.icard .row a:hover{ color:var(--principale); text-decoration:underline; text-underline-offset:3px; }
.icard__cta{ margin-top:24px; }
.hrow{ position:relative; display:flex; justify-content:space-between; align-items:baseline; gap:16px; }
.hrow + .hrow{ padding-top:12px; }
.hrow + .hrow::before{ content:""; position:absolute; top:0; left:0; right:0; height:1px; background:var(--filet); }
.hrow > span:first-child{ white-space:nowrap; font-weight:700; }
.hrow .d{ text-align:right; color:var(--texte-2); white-space:nowrap; }
@media (max-width:1023px){ .cgrid{ grid-template-columns:minmax(0,1fr); grid-template-areas:"conf" "form" "coord" "hrs"; grid-template-rows:none; } }
@media (max-width:767px){
  .card,.fcard,.icard,.tcard{ padding:32px 24px; }
  .tcard{ --tc-x:24px; }
  .form-send{ align-items:stretch; }
  .form-send .btn{ width:100%; }
  .tc__n{ font-size:2.25rem; }
  .icard__cta .btn{ width:100%; }
}

/* ---------- Footer : vert uni, Maps bord à bord, identité en trois colonnes ---------- */
.foot{ background:var(--principale); color:var(--fond); font-size:1rem; }
.foot__map{ position:relative; height:360px; background:var(--principale-claire); }
.foot__map iframe{ position:absolute; inset:0; display:block; width:100%; height:100%; border:0; }
.foot__id{ padding-top:48px; }
.foot__grid > *{ min-width:0; }
.foot__logolink{ display:inline-flex; margin-bottom:16px; border-radius:var(--r-btn); transition:opacity var(--dur) var(--ease); }
.foot__logolink:hover{ opacity:.85; }
.foot__name{ font-size:1.625rem; line-height:1.2; color:var(--fond); }
.foot__pos{ display:block; font-family:var(--f-texte); font-size:1.0625rem; font-weight:700; letter-spacing:0; line-height:1.35; color:var(--principale-claire); margin-top:4px; }
.foot__tag{ color:rgba(247,245,240,.86); margin-top:12px; }
.trust--foot{ display:flex; justify-content:flex-start; gap:12px; margin-top:24px; align-self:stretch; }
.trust--foot .islot{ flex:0 1 96px; min-width:0; aspect-ratio:2 / 1; background:rgba(247,245,240,.06); border-color:rgba(247,245,240,.34); }
.foot__h{ font-family:var(--f-texte); font-weight:700; font-size:var(--surtitre); line-height:1.4; letter-spacing:.12em; text-transform:uppercase; color:var(--principale-claire); margin-bottom:12px; }
.foot__h--legal{ margin-top:32px; }
.foot__links{ display:flex; flex-direction:column; align-items:flex-start; gap:12px; }
.foot__links a,.foot__info a{ cursor:pointer; display:inline-block; padding-block:10px; margin-block:-10px; color:var(--fond);
  text-decoration:underline; text-decoration-color:transparent; text-underline-offset:4px;
  transition:text-decoration-color var(--dur) var(--ease),transform var(--dur) var(--ease),color var(--dur) var(--ease); }
.foot__links a:hover,.foot__info a:hover{ color:var(--principale-claire); text-decoration-color:currentColor; transform:translateX(3px); }
.foot__parent{ color:var(--fond); }
.foot__sub{ display:flex; flex-direction:column; align-items:flex-start; gap:12px; padding-left:16px; }
.foot__info{ display:flex; flex-direction:column; gap:12px; }
.foot__info .row{ display:flex; align-items:flex-start; gap:10px; }
.foot__info .ic{ width:20px; height:20px; margin-top:3px; color:var(--principale-claire); }
.foot__sep{ height:1px; background:rgba(247,245,240,.24); margin-top:32px; }
.foot__sep--m{ display:none; }
.foot__bar{ display:flex; justify-content:space-between; gap:16px; padding-block:32px; font-size:var(--caption); color:rgba(247,245,240,.86); }
.foot :focus-visible{ outline-color:var(--fond); }
@media (max-width:1023px){ .foot__id{ padding-top:44px; } }
@media (max-width:767px){ .foot__map{ height:280px; } .foot__id{ padding-top:32px; } }
@media (max-width:999px){   /* bascule footer mesurée : 393 + 180 + 227 + 2 × 64 d'air sur les lettres + marges 2 × 24 + barre de défilement 15 = 991px */
  .foot__grid{ display:grid; grid-template-columns:minmax(0,1fr); gap:0; }
  .foot__ident{ display:flex; flex-direction:column; align-items:flex-start; }
  .foot__col + .foot__col{ margin-top:32px; }
  .foot__sep--m{ display:block; margin-block:32px 0; }
  .foot__sep--m + .foot__col{ padding-top:32px; }
  .foot__bar{ flex-direction:column; align-items:flex-start; gap:8px; padding-bottom:calc(32px + env(safe-area-inset-bottom)); }
}

@media (min-width:1000px){
  .foot__grid{ display:grid; grid-template-columns:repeat(3,max-content); justify-content:space-between; column-gap:64px; }
  .foot__grid > *{ max-width:100%; }
  .foot__col{ padding-top:calc(var(--logo-h) + 16px); }
}

/* ---------- Bouton d'appel flottant : sous 1024px seulement ---------- */
.fcall{ display:none; }
@media (max-width:1023px){
  .fcall{ position:fixed; right:16px; bottom:calc(16px + env(safe-area-inset-bottom)); z-index:60; width:48px; height:48px;
    border-radius:50%; background:var(--accent); color:#FFF7F6; display:flex; align-items:center; justify-content:center;
    box-shadow:0 1px 2px rgba(26,31,51,.12),0 8px 24px rgba(26,31,51,.14),0 16px 40px rgba(26,31,51,.08);
    transition:opacity var(--dur) var(--ease),visibility var(--dur) var(--ease),transform var(--dur) var(--ease),background-color var(--dur) var(--ease); }
  .fcall .ic{ width:20px; height:20px; }
  .fcall:hover{ background:var(--action-hover); transform:translateY(-2px); }
  .fcall:active{ transform:scale(.94); }
  .hdr.is-open ~ .fcall{ opacity:0; visibility:hidden; pointer-events:none; }
  .fcall.is-off{ opacity:0; visibility:hidden; pointer-events:none; }
  .fcall::before{ content:""; position:absolute; inset:0; z-index:-1; border-radius:50%; background:var(--accent); animation:fb-halo 2.4s var(--ease) infinite; pointer-events:none; }
}
@keyframes fb-halo{ 0%{ transform:scale(1); opacity:.35; } 80%{ transform:scale(1.4); opacity:0; } 100%{ transform:scale(1.4); opacity:0; } }

/* ==========================================================================
   Effets : Phase finale (activés par build.py, un à la fois)
   ========================================================================== */
html[data-glow="1"] .scroll-ind__line::after{ content:""; position:absolute; left:0; top:0; width:100%; height:40%;
  background:linear-gradient(180deg,rgba(46,59,148,0),var(--primary),rgba(46,59,148,0)); animation:ind-glow 2.4s linear infinite; }
@keyframes ind-glow{ from{ transform:translateY(-100%); } to{ transform:translateY(250%); } }
.scroll-ind.is-gone{ opacity:0; visibility:hidden; pointer-events:none; }
html.js-ready [data-reveal]{ opacity:0; transform:translateY(16px); }
html.fx-on [data-reveal]{ transition:opacity var(--dur-in) var(--ease),transform var(--dur-in) var(--ease); }
html.js-ready [data-reveal].is-in{ opacity:1; transform:none; }

/* ---------- Mouvement réduit ---------- */
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  html[data-glow="1"] .scroll-ind__line::after{ animation:none !important; transform:translateY(75%); }
  *,*::before,*::after{ transition-duration:.001ms !important; transition-delay:0s !important; animation-duration:.001ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; }
  .tk.run{ animation:none !important; }
  .tk--q{ transform:none !important; }
  .qband__tk{ overflow-x:auto; }
  html.js-ready [data-reveal]{ opacity:1 !important; transform:none !important; }
  .annonce__in{ overflow-x:auto; -webkit-mask-image:none; mask-image:none; }
  .annonce .tk > .annonce__set[aria-hidden]{ display:none !important; }
  .fcall::before{ animation:none !important; opacity:0; }
  .frame > img{ transform:none !important; }
}
/* ==========================================================================
   Eurl Jauseau Patrice : réglages et composants propres au site
   ========================================================================== */

/* ---------- Typographie : sur-titres, chapô, gras accent (manuscrite Kalam, réservée à cet usage) ---------- */
body{ font-size:var(--corps); line-height:1.55; }
.eyebrow{ display:inline-block; font-family:var(--f-texte); font-weight:600; font-size:var(--surtitre); line-height:1.4;
  letter-spacing:.12em; text-transform:uppercase; color:var(--primary); }
.lead{ font-size:var(--chapo); line-height:1.55; color:var(--text-2); }
.acc,.h1-name{ font-family:var(--f-acc); font-weight:400; font-size:1.1em; line-height:1; letter-spacing:0; color:var(--primary); }
.h1-name--clair{ color:var(--primary-light); }
.ic,.kic{ stroke-width:1.5; }
.star{ stroke-width:1.5; stroke:currentColor; }

/* ---------- Boutons : ghost bordé de la principale ; rangée empilée centrée ---------- */
.btn{ font-weight:600; }
.btn-row.is-stacked .btn-fill.is-wide{ padding-left:24px; }

/* ---------- Badges pilule : entièrement arrondis, fond principale claire, texte principale ---------- */
.badge{ border-radius:var(--r-pill); background:var(--primary-light); color:var(--primary); font-weight:600; }
.badge .ic{ color:var(--primary); }

/* ---------- Étoiles : la rangée reflète la note réelle (4,7) ---------- */
.stars{ position:relative; --s:16px; }
.stars--p{ color:rgba(26,31,51,.2); }
.stars--p .stars__fg{ position:absolute; left:0; top:0; display:flex; gap:2px; overflow:hidden; color:var(--gold);
  width:calc(4 * (var(--s) + 2px) + .7 * var(--s)); }
.stars--lg{ --s:24px; }
.pquote .stars,.rv .stars,.pq .stars{ --s:14px; }

/* ---------- Barre d'annonce : dégradé vertical de la principale ---------- */
.annonce{ color:var(--primary-light); }
.annonce li{ font-weight:600; }
.annonce li .ic{ color:var(--primary-light); }
.annonce .tk{ animation-timing-function:linear; }

/* ---------- Logo : fichier du client détouré ---------- */
.logo{ display:block; height:var(--logo-h); width:auto; }

/* ---------- Header : survol des liens (filet depuis le centre, couleur d'action) ---------- */
.nav__link{ font-weight:600; }
.nav__link:hover{ background:transparent; color:var(--texte); }
.nav__w{ position:relative; display:inline-block; }
.nav__w::after{ content:""; position:absolute; left:0; right:0; bottom:-6px; height:1.5px; background:currentColor;
  transform:scaleX(0); transform-origin:center; transition:transform var(--dur) var(--ease); }
.nav__link .ic{ color:currentColor; stroke-width:2; }
.nav__link[aria-current="page"],.nav__toggle[data-current]{ color:var(--accent); box-shadow:none; }
.nav__link[aria-current="page"] .nav__w::after,.nav__toggle[data-current] .nav__w::after{ transform:scaleX(1); }
@media (hover:hover){
  .nav__link:hover,.nav__has:hover .nav__toggle{ color:var(--accent); }
  .nav__link:hover .nav__w::after,.nav__has:hover .nav__toggle .nav__w::after{ transform:scaleX(1); }
}
.nav__link:focus-visible,.nav__toggle[aria-expanded="true"]{ color:var(--accent); }
.nav__link:focus-visible .nav__w::after,.nav__toggle[aria-expanded="true"] .nav__w::after{ transform:scaleX(1); }
.submenu a:hover .submenu__t{ color:var(--primary); }
.submenu a[aria-current] .submenu__t{ color:var(--accent); }
.submenu__t{ font-weight:600; }
.kchip{ border-radius:12px; }
.burger{ color:var(--primary); }
.hdr__tel{ gap:12px; }
.hdr__tel .ic{ color:var(--primary); }
@media (max-width:879px){
  .hdr__panel a:not(.btn),.macc__btn{ font-weight:600; }
  .hdr__panel a:not(.btn):hover,.macc__btn:hover{ background:transparent; color:var(--accent); }
  .hdr__panel a[aria-current]:not(.btn),.macc__btn[data-current]{ color:var(--accent); }
  .macc__btn .ic{ stroke-width:2; }
  .hdr__panel .btn{ align-self:flex-start; }
}
@media (max-width:767px){ .hdr__panel .btn{ align-self:stretch; } }

/* ---------- Hero d'accueil : placeholder clair (radial + motif logo), pleine hauteur du premier écran ---------- */
.hero{ position:relative; isolation:isolate; min-height:calc(100svh - var(--stack-h)); display:flex; align-items:center; justify-content:center;
  padding-block:96px; overflow:hidden; }
.hero__ph{ position:absolute; inset:0; z-index:-1; background:radial-gradient(ellipse at center,#E6EAF8 0%,#E6EAF8 30%,#EEF0F6 100%); }
.hero__ph img{ position:absolute; left:50%; top:50%; width:clamp(260px,40vw,540px); height:auto; transform:translate(-50%,-50%); opacity:.07; }
.hero__in{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:24px; }
.hero h1{ max-width:1040px; }
.hero__tag{ font-size:var(--chapo); line-height:1.5; color:var(--text-2); }
.hero__cta{ margin-top:8px; }
.gpill{ display:inline-flex; align-items:center; gap:8px; padding:8px 14px; border-radius:var(--r-pill); line-height:1;
  background:rgba(255,255,255,.6); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); box-shadow:var(--sh-soft); }
.gpill .g-g{ width:18px; height:18px; }
.gpill__n{ color:var(--gold); font-weight:700; font-size:1rem; font-variant-numeric:tabular-nums lining-nums; }
.scroll-ind{ position:absolute; z-index:2; left:50%; bottom:32px; width:1px; margin-left:-.5px; height:var(--ind-h,48px); cursor:pointer; transition:opacity .6s var(--ease); }
.scroll-ind::before{ content:""; position:absolute; inset:-8px -110px -8px -16px; }
.scroll-ind__line{ position:absolute; inset:0; background:rgba(46,59,148,.36); overflow:hidden; }
.scroll-ind__w{ position:absolute; left:13px; top:50%; transform:translateY(-50%); font-weight:600; font-size:var(--surtitre); line-height:1;
  letter-spacing:.12em; text-transform:uppercase; color:rgba(46,59,148,.72); white-space:nowrap; transition:color var(--dur) var(--ease); }
.scroll-ind:hover .scroll-ind__w{ color:var(--primary); }
@media (max-width:767px){ .hero{ padding-block:64px; } }

/* ---------- Hero de page : radial (centre B), motif logo, H1 + tagline ---------- */
.phero{ position:relative; isolation:isolate; overflow:hidden; display:flex; align-items:center; justify-content:center; min-height:min(56svh,480px); padding-block:96px;
  background:radial-gradient(ellipse at center,#E6EAF8 0%,#E6EAF8 30%,#EEF0F6 100%); }
.phero__logo{ position:absolute; left:50%; top:50%; z-index:-1; width:clamp(240px,34vw,420px); height:auto; transform:translate(-50%,-50%); opacity:.1; }
.phero__in{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:16px; }
.phero h1{ font-size:var(--h1-page); max-width:1040px; }
.phero__tag{ font-size:var(--chapo); color:var(--text-2); }
@media (max-width:767px){ .phero{ padding-block:64px; } }

/* ---------- Placeholder : légende en pastille ---------- */
.ph{ background:radial-gradient(circle at center,#E6EAF8 0%,#EEF0F6 78%); }
.ph::before{ opacity:.3; mix-blend-mode:normal; background-size:min(40%,200px) auto; }
.ph__cap{ border-radius:var(--r-pill); }
.ph--top .ph__cap{ top:12px; bottom:auto; }
.frame--34::before{ content:""; display:block; padding-top:133.333%; }

/* ---------- Prestations : bento asymétrique, tuiles à image + icône ---------- */
.bento{ display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:var(--gap);
  --bt-h:calc((3 * (min(100vw,var(--container)) - 2 * var(--pad)) - 4 * var(--gap)) / 10.5); }
.bt{ position:relative; display:flex; flex-direction:column; min-width:0; background:var(--surface); border-radius:var(--r-card); box-shadow:var(--sh-card);
  overflow:hidden; color:var(--text); transition:transform var(--dur) var(--ease); }
.bt--4{ grid-column:span 4; }
.bt--3{ grid-column:span 3; }
.bt__img{ position:relative; flex:0 0 var(--bt-h); height:var(--bt-h); overflow:hidden; background:var(--primary-light); }
.bt__img img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; transition:transform var(--dur-zoom) var(--ease); }
.bt__body{ position:relative; flex:1 1 auto; display:flex; flex-direction:column; align-items:flex-start; gap:8px; padding:44px 24px 24px; }
.bt__chip{ position:absolute; left:24px; top:-24px; width:48px; height:48px; }
.bt__chip .kic{ width:24px; height:24px; }
.bt__body p{ color:var(--text-2); }
.bt__more{ margin-top:auto; padding-top:8px; align-self:flex-end; display:inline-flex; align-items:center; gap:8px; font-weight:600; line-height:1.3; color:var(--primary); }
.bt__more .ic{ width:18px; height:18px; transition:transform var(--dur) var(--ease); }
@media (hover:hover){
  .bt:hover{ transform:translateY(-3px); }
  .bt:hover .bt__img img{ transform:scale(1.04); }
  .bt:hover .bt__more .ic{ transform:translateX(4px); }
}
.pre__foot{ display:flex; flex-direction:column; align-items:flex-start; gap:24px; margin-top:48px; }
@media (max-width:1023px){
  .bento{ grid-template-columns:repeat(2,minmax(0,1fr)); --bt-h:calc((100vw - 2 * var(--pad) - var(--gap)) / 3); }
  .bt--4,.bt--3{ grid-column:auto; }
}
@media (max-width:599px){
  .bento{ grid-template-columns:minmax(0,1fr); --bt-h:calc((100vw - 2 * var(--pad)) / 1.5); }
  .bt__chip{ width:40px; height:40px; top:-20px; }
  .bt__chip .kic{ width:20px; height:20px; }
  .bt__body{ padding-top:40px; }
}
@media (max-width:767px){ .pre__foot{ margin-top:32px; } }
.pre__foot:has(.is-stacked){ align-items:center; }
.pre__foot:has(.is-stacked) .badges{ justify-content:center; }

/* ---------- Bande de qualités : dégradé des fonds à l'horizontale, extraits + prénoms, goutte en séparateur ---------- */
.qband{ background:linear-gradient(90deg,#F7F5F0,#E6EAF8); }
.qband__t .g-word{ height:1.37em; vertical-align:-.36em; }
.qt__q{ font-family:var(--f-texte); font-weight:400; letter-spacing:0; }
.qt__who{ font-weight:600; color:var(--primary); }
.qt__sep .ic{ width:14px; height:14px; }

/* ---------- L'entreprise : section de contraste en aplat, trois temps ---------- */
.section--contrast{ color:var(--primary-light); }
.ov{ position:relative; display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); align-items:stretch; }
.ov__img{ grid-column:1 / span 7; grid-row:1; position:relative; min-height:520px; border-radius:var(--r-card); overflow:hidden; box-shadow:var(--sh-card); background:var(--primary-light); }
.ov__img img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:100% 50%; }
.ov__panel{ grid-column:6 / -1; grid-row:1; position:relative; z-index:1; margin-block:48px; padding:48px; background:var(--bg); color:var(--text);
  border-radius:var(--r-card); box-shadow:var(--sh-card); display:flex; flex-direction:column; align-items:flex-start; gap:16px; }
.ov__panel > p{ color:var(--text-2); }
.pq{ align-self:stretch; padding-left:16px; position:relative; }
.pq::before{ content:""; position:absolute; left:0; top:4px; bottom:4px; width:2px; border-radius:2px; background:var(--grad-sign); }
.pq blockquote{ font-family:var(--f-titre); font-weight:700; font-size:var(--chapo); line-height:1.4; color:var(--text); }
.pq figcaption{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:6px; font-size:var(--caption); line-height:1.3; color:var(--text-2); }
.pq .g-g{ width:16px; height:16px; }
.lgs{ display:flex; align-items:center; gap:16px; flex-wrap:nowrap; }
.lgs img{ display:block; width:auto; height:56px; flex:0 0 auto; }
.lgs .lg--art{ height:44px; }
.lgs .islot{ flex:0 0 auto; height:44px; width:88px; }
.ov__panel .lgs{ margin-top:8px; }
.ov__panel .btn-row{ margin-top:8px; }
.stats{ margin-top:48px; background:rgba(230,234,248,.09); }
.stat + .stat::before{ background:rgba(230,234,248,.28); }
.stat__n{ color:var(--primary-light); }
.stat__l{ color:var(--primary-light); }
.zone{ display:grid; grid-template-columns:minmax(0,45fr) minmax(0,55fr); grid-template-areas:"head map" "list map"; grid-template-rows:auto 1fr;
  column-gap:48px; row-gap:24px; margin-top:48px; align-items:start; }
.zone__head{ grid-area:head; display:flex; flex-direction:column; gap:12px; }
.zone__head h3{ color:var(--primary-light); font-size:var(--h2); }
.zone__head p{ color:rgba(230,234,248,.88); }
.zone__map{ grid-area:map; }
.zone__list{ grid-area:list; }
.lmap__land{ fill:var(--bg); }
.lmap__sea{ fill:var(--primary-light); }
.lmap__ic{ width:3em; height:3em; left:-1.5em; top:-2.75em; fill:var(--primary); stroke:var(--bg); stroke-width:1.5; paint-order:normal; }
.lmap__ic circle{ fill:var(--bg); stroke:none; }
.lmap__lbl{ bottom:calc(2.75em + .4em); background:var(--bg); color:var(--primary); }
.lmap__dot{ position:absolute; left:var(--x); top:var(--y); width:0; height:0; font-size:clamp(11px,2.8cqw,15px); }
.lmap__dot::before{ content:""; position:absolute; left:-.4em; top:-.4em; width:.8em; height:.8em; border-radius:50%; background:var(--text); box-shadow:0 0 0 .22em var(--bg); }
.lmap__dot span{ position:absolute; padding:.25em .7em; border-radius:var(--r-pill); background:var(--bg); box-shadow:var(--sh-soft); font-weight:600; font-size:1em; line-height:1.3; color:var(--text); white-space:nowrap; }
.lmap__dot--l span{ right:1em; top:0; transform:translateY(-50%); }
.lmap__dot--b span{ left:0; top:1em; transform:translateX(-50%); }
.cities{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:24px; }
.cities li{ color:var(--primary-light); font-weight:600; min-width:0; }
.cities li .ic{ color:var(--primary-light); }
.cities li + li::before{ display:none; }
.cities li:nth-child(n+3)::before{ content:""; display:block; position:absolute; top:0; right:0; left:32px; height:1px; background:rgba(230,234,248,.26); }
.section--contrast .note--clair{ border-color:rgba(230,234,248,.42); background:rgba(230,234,248,.1); color:var(--primary-light); }
.section--contrast .note--clair .ic,.section--contrast .note--clair .note__l{ color:var(--primary-light); }
@media (max-width:1199px){   /* zone empilée : en-tête, carte, liste */
  .zone{ grid-template-columns:minmax(0,1fr); grid-template-areas:"head" "map" "list"; grid-template-rows:none; }
  .cities{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .cities li:nth-child(n+3)::before{ display:none; }
  .cities li:nth-child(n+4)::before{ display:block; content:""; position:absolute; top:0; right:0; left:32px; height:1px; background:rgba(230,234,248,.26); }
}
@media (max-width:1023px){
  .ov{ display:block; }
  .ov__img{ min-height:0; height:min(560px,calc((100vw - 2 * var(--pad)) * .7)); }
  .ov__img img{ object-position:62% 40%; }
  .ov__panel{ margin:-64px 24px 0; padding:32px; }
}
@media (max-width:899px){
  .cities{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .cities li:nth-child(n+4)::before{ display:none; }
  .cities li:nth-child(n+3)::before{ display:block; }
}
@media (max-width:767px){
  .section--contrast{ padding-block:48px; }
  .ov__panel{ margin:-32px 16px 0; padding:32px 24px; }
  .stats,.zone{ margin-top:32px; }
}
@media (max-width:461px){
  .cities{ grid-template-columns:minmax(0,1fr); }
  .cities li:nth-child(n+3)::before{ display:none; }
  .cities li + li::before{ display:block; content:""; position:absolute; top:0; right:0; left:32px; height:1px; background:rgba(230,234,248,.26); }
}

/* ---------- Réalisations : filtres en chips, défilé de tuiles (photo et légende), chevrons ---------- */
.chips{ display:flex; overflow-x:auto; scrollbar-width:none; -ms-overflow-style:none; margin-bottom:32px; padding-block:4px; }
.chips::-webkit-scrollbar{ display:none; }
.chips__in{ display:flex; gap:8px; margin-inline:auto; padding-inline:var(--pad); }
.chip{ position:relative; flex:0 0 auto; display:inline-flex; align-items:center; min-height:36px; padding:6px 16px; border-radius:var(--r-pill);
  background:var(--bg); color:var(--text); border:1px solid rgba(26,31,51,.16); font-weight:600; font-size:.9375rem; line-height:1.3; white-space:nowrap;
  transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease); }
.chip::before{ content:""; position:absolute; inset:-5px 0; }
.chip:hover{ border-color:var(--primary); color:var(--primary); }
.chip[aria-pressed="true"]{ background:var(--primary); border-color:var(--primary); color:var(--bg); }
.gal{ display:grid; }
.gal__pan{ grid-area:1 / 1; min-width:0; opacity:0; visibility:hidden; transform:translateY(8px);
  transition:opacity .4s var(--ease),transform .4s var(--ease),visibility 0s linear .4s; }
.gal__pan.is-on{ opacity:1; visibility:visible; transform:none;
  transition:opacity .5s var(--ease) .4s,transform .5s var(--ease) .4s,visibility 0s linear .4s; }
html:not(.js) .gal__pan:first-child{ opacity:1; visibility:visible; transform:none; }
.tile__t{ font-family:var(--f-titre); font-weight:700; font-size:1.125rem; line-height:1.3; }
.tile__t--ph{ color:var(--text-2); font-weight:400; }
.real__foot{ margin-top:32px; }
.real__foot .btn-row{ justify-content:center; }

/* ---------- Avis : en-tête à gauche, note à droite, ticker de cartes (deux rangées en sens inverses ; vertical sous 1024px) ---------- */
.avis__head{ display:flex; justify-content:space-between; align-items:flex-end; gap:24px 48px; flex-wrap:wrap; margin-bottom:32px; }
.avis__head .shead{ margin-bottom:0; }
.avis__head .rnote{ align-items:flex-start; margin-bottom:0; }
.rnote__b{ font-weight:600; }
.rv__av{ background:linear-gradient(0deg,rgba(26,31,51,.1),rgba(26,31,51,.1)),var(--grad-sign); color:var(--bg); }
.rv__name{ font-weight:700; }
.rvt{ position:relative; display:flex; flex-direction:column; overflow-x:auto; scrollbar-width:none; }
.rvt::-webkit-scrollbar{ display:none; }
.rvt.is-run{ overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 var(--tk-fade),#000 calc(100% - var(--tk-fade)),transparent);
  mask-image:linear-gradient(90deg,transparent,#000 var(--tk-fade),#000 calc(100% - var(--tk-fade)),transparent); }
.rvt__row{ display:flex; width:max-content; padding-block:14px 36px; padding-left:var(--pad); }
.rvt.is-run .rvt__row{ padding-left:0; will-change:transform; }
.rvt.is-run .rvt__row:first-child{ transform:translateX(var(--lead,96px)); }
.rvt__row + .rvt__row{ margin-top:-26px; }
.rvt__set{ list-style:none; margin:0; padding:0 var(--gap) 0 0; display:flex; gap:var(--gap); flex:0 0 auto; }
.rvt .rv{ flex:0 0 auto; width:360px; height:var(--rv-h,auto); transition:transform var(--dur) var(--ease); }
@media (hover:hover){ .rvt .rv:hover{ transform:translateY(-3px); } }
.avis__cta{ margin-top:16px; }
@keyframes tk-rev{ from{ transform:translateX(-50%); } to{ transform:translateX(0); } }
@keyframes tky{ from{ transform:translateY(0); } to{ transform:translateY(-50%); } }
@keyframes tky-rev{ from{ transform:translateY(-50%); } to{ transform:translateY(0); } }
@keyframes tky-in{ from{ transform:translateY(var(--lead,96px)); } to{ transform:translateY(0); } }
@media (max-width:1023px){
  .rvt{ flex-direction:row; align-items:flex-start; gap:var(--gap); max-width:var(--container); margin-inline:auto; padding-inline:var(--pad); overflow:visible; }
  .rvt.is-run{ height:85svh; overflow:hidden;
    -webkit-mask-image:linear-gradient(180deg,transparent,#000 var(--tk-fade),#000 calc(100% - var(--tk-fade)),transparent);
    mask-image:linear-gradient(180deg,transparent,#000 var(--tk-fade),#000 calc(100% - var(--tk-fade)),transparent); }
  .rvt__row{ flex:1 1 0; min-width:0; width:auto; flex-direction:column; padding:0; }
  .rvt.is-run .rvt__row:first-child{ transform:translateY(var(--lead,96px)); }
  .rvt__row + .rvt__row{ margin-top:0; }
  .rvt__set{ flex-direction:column; padding:0 0 var(--gap); }
  .rvt .rv{ width:auto; height:auto; }
  .avis__cta{ margin-top:32px; }
}

/* ---------- FAQ ---------- */
.faq__q{ font-family:var(--f-titre); font-weight:700; letter-spacing:-.01em; }

/* ---------- Formulaire de devis, carte de confiance, coordonnées, horaires ---------- */
.field label{ font-weight:600; }
.tcard{ background:linear-gradient(var(--surface),var(--surface)) padding-box,var(--grad-sign) border-box; }
.tc__c{ font-weight:600; }
.tc__lgs{ justify-content:flex-start; }
.ccar__nav{ display:flex; justify-content:center; gap:20px; margin-top:16px; }
.icard .row a,.icard .row span{ min-width:0; }
.hrow > span:first-child{ font-weight:600; }
.form-foot a{ color:var(--primary); }

/* ---------- Footer : principale unie, texte principale claire ---------- */
.foot{ color:var(--primary-light); }
.foot__name{ color:var(--primary-light); }
.foot__pos{ font-weight:600; color:var(--primary-light); }
.foot__tag{ color:rgba(230,234,248,.86); }
.foot__tag > span{ display:inline; }
.foot__h{ font-weight:600; color:rgba(230,234,248,.74); }
.foot__links a,.foot__info a,.foot__parent{ color:var(--primary-light); }
.foot__links a:hover,.foot__info a:hover{ color:#FFFFFF; }
.foot__info .ic{ color:var(--primary-light); }
.foot__info .ic--brand{ width:18px; height:18px; margin:4px 1px 0; fill:currentColor; stroke:none; }
.foot__sep{ background:rgba(230,234,248,.26); }
.foot__bar{ color:rgba(230,234,248,.86); }
.foot :focus-visible{ outline-color:var(--primary-light); }
.lgs--foot{ margin-top:24px; gap:12px; }
.lgs--foot .lg{ display:flex; align-items:center; justify-content:center; height:56px; padding:6px 10px; border-radius:8px; background:#FFFFFF; }
.lgs--foot .lg img{ height:44px; }
.lgs--foot .lg img.lg--art{ height:34px; }
.lgs--foot .islot{ height:56px; width:96px; background:rgba(230,234,248,.06); border-color:rgba(230,234,248,.36); }
@media (min-width:1000px){ .foot__tag > span{ display:block; } }

/* ---------- Mouvement réduit ---------- */
@media (prefers-reduced-motion:reduce){
  .rvt__row{ animation:none !important; transform:none !important; }
  .gal__pan,.gal__pan.is-on{ transition:none !important; transform:none !important; }
  .bt:hover,.rvt .rv:hover{ transform:none !important; }
  .bt__img img{ transform:none !important; }
}
.hrow .d{ white-space:normal; }
.qband__t{ display:block; }
.foot__logotile{ display:inline-flex; padding:8px; border-radius:var(--r-btn); background:var(--bg); }

/* L'entreprise, ordinateur : le panneau laisse au titre la largeur de son nom composé, jamais coupé au tiret ni renvoyé seul à la ligne */
@media (min-width:1024px){ .ov__panel{ padding-inline:40px; } }
@media (min-width:1024px) and (max-width:1199px){
  .ov__img{ grid-column:1 / span 6; }
  .ov__panel{ grid-column:5 / -1; }
}
@media (max-width:374px){ .ov__panel{ margin-inline:8px; padding-inline:16px; } }
