/* ==========================================================================
   Maître Elsa Larrue, avocat à Saintes : feuille unique (tokens, base, composants)
   Maquette Nicolam Studio. Palette, typographie et réglages : Invariants du prompt.
   ========================================================================== */

/* ---------- Polices hébergées sur le site (woff2 latin) ---------- */
@font-face{ font-family:"EB Garamond"; font-style:normal; font-weight:500; font-display:swap; src:url("../fonts/eb-garamond-latin-500-normal.woff2") format("woff2"); }
@font-face{ font-family:"EB Garamond"; font-style:normal; font-weight:600; font-display:swap; src:url("../fonts/eb-garamond-latin-600-normal.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-latin-400-normal.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-latin-600-normal.woff2") format("woff2"); }
@font-face{ font-family:"Allura"; font-style:normal; font-weight:400; font-display:swap; src:url("../fonts/allura-latin-400-normal.woff2") format("woff2"); }

/* ---------- Tokens ---------- */
:root{
  --bg:#F7F4EE; --brume:#E6EAF0; --nuit:#1E2D45;
  --laiton:#8C5F22; --laiton-clair:#F1E6D3; --laiton-vif:#D3A055;
  --ink:#18202C; --ink-2:#55606E; --gold:#F2B01E;
  --grad-sign:linear-gradient(90deg,#E6EAF0,#1E2D45);
  /* même mélange, partie soutenue seulement (le ton clair du départ est celui du fond : il s'y perdait) */
  --grad-sign-v:linear-gradient(180deg,#E6EAF0 -100%,#1E2D45 100%);   /* barre de la frise : de haut en bas */
  --grad-sign-d:linear-gradient(135deg,#E6EAF0 -100%,#1E2D45 100%);   /* bordure de la carte de confiance */
  --surface:#FFFFFF;
  --carmin:#A3243B;
  --filet:rgba(24,32,44,.12);
  --annonce-top:#2C4064;

  --f-titre:"EB Garamond",Garamond,"Times New Roman",serif;
  --f-texte:"Source Sans 3",system-ui,-apple-system,sans-serif;
  --f-accent:"Allura","Brush Script MT",cursive;
  --h1:clamp(2.25rem,1.6rem + 2.6vw,3.5rem);
  --h1-page:clamp(1.875rem,1.45rem + 1.9vw,2.875rem);
  --h2:clamp(1.75rem,1.3rem + 1.6vw,2.5rem);
  --h3:clamp(1.25rem,1.1rem + .6vw,1.5rem);
  --corps:1.0625rem;
  --chapo:clamp(1.0625rem,1rem + .3vw,1.1875rem);
  --label:.8125rem;
  --stat:clamp(2rem,1.6rem + 1.4vw,2.75rem);

  --r-btn:4px; --r-card:8px; --r-pill:999px;
  --container:1200px; --container-header:1320px; --pad:24px; --gap:24px;
  --ann-h:40px; --hdr-h:72px; --stack-h:calc(var(--ann-h) + var(--hdr-h));
  --logo-h:44px;
  --sh-card:inset 0 1px 0 rgba(255,252,247,.7),0 1px 2px rgba(30,45,69,.06),0 6px 16px rgba(30,45,69,.06);
  --sh-soft:inset 0 1px 0 rgba(255,252,247,.35),0 1px 2px rgba(30,45,69,.03),0 6px 16px rgba(30,45,69,.03);
  --ease:ease-in-out; --dur:.4s; --dur-open:.5s; --fill-dur:.6s;
  --grad-clair:linear-gradient(90deg,#E6EAF0,#FFFFFF);
  --tk-lead:96px; --tk-fade:24px;
}
@media (max-width:767px){ :root{ --pad:16px; --gap:16px; --tk-fade:16px; --tk-lead:64px; --ann-h:36px; } }

/* ---------- 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(--bg); color:var(--ink); overflow-x:clip; font-family:var(--f-texte); font-weight:400;
  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(--laiton-clair); color:var(--ink); }
:focus-visible{ outline:2px solid var(--laiton); outline-offset:3px; }
.nw{ white-space:nowrap; }

h1,h2,h3,h4{ font-family:var(--f-titre); color:var(--ink); font-weight:500; letter-spacing:-.015em; text-wrap:wrap; font-synthesis:none; }
h1{ font-size:var(--h1); line-height:1.12; letter-spacing:-.02em; }
h2{ font-size:var(--h2); line-height:1.2; letter-spacing:-.02em; }
h3{ font-size:var(--h3); line-height:1.25; }
.acc{ font-family:var(--f-accent); font-weight:400; font-size:1.25em; line-height:1; letter-spacing:0; color:var(--nuit); }
.eyebrow{ display:inline-block; font-family:var(--f-texte); font-weight:600; font-size:var(--label); line-height:1.4;
  letter-spacing:.14em; text-transform:uppercase; color:var(--nuit); }
.lead{ font-size:var(--chapo); line-height:1.55; color:var(--ink-2); }
.num{ font-family:var(--f-texte); font-weight:600; font-variant-numeric:tabular-nums lining-nums; }

/* ---------- 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{ position:relative; z-index:1; }
.section.is-tight{ padding-top:48px; }
.section::before{ content:""; position:absolute; inset:0; z-index:0; pointer-events:none; opacity:.03;
  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,#F7F4EE,#E6EAF0); }
.bg-ba{ background:linear-gradient(180deg,#E6EAF0,#F7F4EE); }
.bg-aba{ background:linear-gradient(180deg,#F7F4EE,#E6EAF0 50%,#F7F4EE); }
.bg-bab{ background:linear-gradient(180deg,#E6EAF0,#F7F4EE 50%,#E6EAF0); }

/* 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 (Lucide, trait 1,5, tracés d'origine) ---------- */
.ic{ width:20px; height:20px; flex:0 0 auto; }

/* ---------- Boutons : coins nets 4px, 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:600; font-size:1.0625rem; line-height:1.2; cursor:pointer; text-align:center;
  transition:filter var(--dur) var(--ease),background-color var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease); }
.btn .ic{ width:20px; height:20px; transition:transform var(--dur) var(--ease); }
.btn--ghost{ color:var(--nuit); border-color:var(--nuit); background-color:transparent; }
.btn--sm{ min-height:44px; padding:10px 18px; font-size:1rem; }
.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 (« Prendre rendez-vous ») ; coins nets -> le rond devient un carré aux coins du bouton ---- */
.btn-fill{
  --btn-h:48px; --dot:28px;
  --dm:calc((var(--btn-h) - 3px - var(--dot)) / 2);
  --f-bg:var(--grad-clair); --f-fg:var(--laiton);
  --d-fg:var(--laiton);
  --i-bg:var(--laiton); --i-fg:var(--bg);
  height:var(--btn-h); min-height:var(--btn-h);
  padding:0 calc(var(--dm) + var(--dot) + 12px) 0 22px;
  gap:0; justify-content:center; color:var(--bg);
  background:var(--laiton); 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.is-wide{ padding-left:12px; }
.btn-fill__txt{ position:relative; z-index:1; display:inline-block; white-space:nowrap; }
.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:inset(var(--ct,9.5px) var(--cr,11px) var(--cb,9.5px) var(--cl,calc(100% - 39px)) round 2px);
  clip-path:inset(var(--ct,9.5px) var(--cr,11px) var(--cb,9.5px) var(--cl,calc(100% - 39px)) round 2px);
  transition:clip-path var(--fill-dur) var(--ease),-webkit-clip-path var(--fill-dur) var(--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:2px; display:grid; place-items:center; color:var(--d-fg); transition:color var(--fill-dur) var(--ease); }
.btn-fill__dot > *{ grid-area:1 / 1; }
.btn-fill__inv{ position:absolute; inset:0; border-radius:2px; background:var(--i-bg); opacity:0; transition:opacity var(--fill-dur) var(--ease); }
.btn-fill .btn-fill__ic{ position:relative; width:calc(var(--dot) * .57); height:calc(var(--dot) * .57); transition:transform var(--fill-dur) var(--ease); }
.btn-fill.is-filled .btn-fill__layer,.btn-fill:focus-visible .btn-fill__layer{
  -webkit-clip-path:inset(0 0 0 0 round var(--r-btn)); clip-path:inset(0 0 0 0 round var(--r-btn)); }
.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:hover .btn-fill__layer{ -webkit-clip-path:inset(0 0 0 0 round var(--r-btn)); clip-path:inset(0 0 0 0 round var(--r-btn)); }
  .btn-fill:hover .btn-fill__inv{ opacity:1; }
  .btn-fill:hover .btn-fill__dot{ color:var(--i-fg); }
  .btn-fill--pivot:hover .btn-fill__ic{ transform:rotate(45deg); }
}
.btn-fill:focus-visible{ outline:2px solid var(--laiton); outline-offset:3px; }
.btn-fill--sm{ --btn-h:44px; --dot:26px; padding-left:18px; font-size:1rem; }
/* sur l'aplat bleu nuit : laiton vif, libellé et icône nuit ; rempli : crème, carré nuit, icône crème ; la bordure prend la couleur du remplissage */
.section--contrast .btn-fill,.hero .btn-fill{ background:var(--laiton-vif); color:var(--nuit); --f-bg:var(--bg); --f-fg:var(--nuit); --d-fg:var(--nuit); --i-bg:var(--nuit); --i-fg:var(--bg);
  transition:border-color var(--fill-dur) var(--ease); }
.section--contrast .btn-fill.is-filled,.hero .btn-fill.is-filled{ border-color:var(--bg); }
@media (hover:hover){ .section--contrast .btn-fill:hover,.hero .btn-fill:hover{ border-color:var(--bg); } }
.section--contrast .btn-fill:focus-visible,.hero .btn-fill:focus-visible{ outline-color:var(--laiton-vif); }
.hero .btn--ghost{ color:var(--bg); border-color:rgba(247,244,238,.85); }
.hero :focus-visible{ outline-color:var(--laiton-vif); }

/* lien d'action (tertiaire) : texte de la principale, flèche après le mot, souligné au survol seulement */
.tlink{ display:inline-flex; align-items:center; gap:8px; min-height:44px; font-weight:600; color:var(--nuit); }
.tlink > span{ position:relative; }
.tlink > span::after{ content:""; position:absolute; left:0; right:0; bottom:-2px; height:1.5px; background:currentColor;
  transform:scaleX(0); transform-origin:left center; transition:transform var(--dur) var(--ease); }
.tlink .ic{ width:18px; height:18px; transition:transform var(--dur) var(--ease); }
.txtlink{ color:var(--nuit); font-weight:600; text-decoration:underline; text-underline-offset:3px; cursor:pointer; transition:color var(--dur) var(--ease); }

/* ---------- 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(--brume);
  border:1px solid rgba(30,45,69,.14); color:var(--nuit); font-weight:600; font-size:.875rem; line-height:1.3; white-space:nowrap; }
.badge > span{ display:inline; }
.badge .ic{ width:16px; height:16px; color:var(--nuit); }
.badge .star{ display:inline-block; width:13px; height:13px; margin:0 3px 0 2px; vertical-align:-1px; color:var(--gold); }
.g-g{ width:16px; height:16px; flex:0 0 auto; }
.g-word{ width:auto; }

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

/* ---------- 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(--nuit) 100%); color:var(--bg); }
.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:600; line-height:1; white-space:nowrap; }
.annonce li .ic{ width:18px; height:18px; color:var(--bg); }
.annonce li.sep{ opacity:.75; }
.annonce .tk > .annonce__set[aria-hidden]{ display:none; }
@media (max-width:1032px){   /* bascule mesurée sur la ligne réelle : 970 + marges 2 × 24 + barre de défilement 15 = 1033px ; 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%); } }

/* ---------- Logo ---------- */
.logo{ display:block; height:var(--logo-h); width:auto; }

/* ---------- 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,244,238,.95),rgba(247,244,238,.78));
  -webkit-backdrop-filter:blur(14px) saturate(1.2); backdrop-filter:blur(14px) saturate(1.2);
  box-shadow:0 1px 2px rgba(30,45,69,.05),0 6px 18px rgba(30,45,69,.08); }
.hdr__bar::after{ content:""; position:absolute; inset:0; background:var(--bg); 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; transition:opacity var(--dur) var(--ease); }
.nav{ display:flex; align-items:center; gap:4px; margin-inline:auto; flex-wrap:nowrap; }
.nav__link{ position:relative; display:inline-flex; align-items:center; flex:0 0 auto; white-space:nowrap; min-height:44px;
  padding:10px 14px; font-weight:600; font-size:1rem; color:var(--ink); transition:color var(--dur) var(--ease); }
.nav__link::after{ content:""; position:absolute; left:14px; right:14px; bottom:6px; height:1.5px; background:currentColor; transform:scaleX(0); transition:transform var(--dur) var(--ease); }
.nav__link[aria-current="page"]{ color:var(--laiton); }
.nav__link[aria-current="page"]::after{ transform:scaleX(1); }
.nav__link:focus-visible{ color:var(--laiton); }
.nav__link:focus-visible::after{ transform:scaleX(1); }
.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(30,45,69,.28); align-items:center; justify-content:center; color:var(--nuit);
  transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease); }
.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:1236px){   /* bascule burger mesurée : logo 271 + nav 599 + bouton Arrow Fill 208 + gouttières 2 × 24 + 24px d'air de part et d'autre de la nav + marges 2 × 24 + barre de défilement 15 = 1237px */
  :root{ --hdr-h:64px; --logo-h:38px; }
  .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(--bg);
    box-shadow:0 12px 24px rgba(30,45,69,.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__mnav{ display:flex; flex-direction:column; gap:4px; }
  .hdr__mnav a{ display:flex; align-items:center; min-height:48px; padding:12px 8px; border-radius:var(--r-btn);
    font-weight:600; font-size:1.0625rem; color:var(--ink); transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease); }
  .hdr__mnav a[aria-current]{ color:var(--laiton); }
  .hdr__panel .btn{ margin-top:16px; align-self:flex-start; }
  .hdr__panel .btn-fill--sm{ --btn-h:48px; --dot:28px; font-size:1.0625rem; }
  .hdr__tel{ display:inline-flex; align-self:flex-start; align-items:center; gap:10px; min-height:48px; margin-top:8px; padding:0 8px;
    font-weight:600; color:var(--nuit); font-variant-numeric:tabular-nums lining-nums; cursor:pointer;
    text-decoration:underline; text-decoration-color:transparent; text-underline-offset:4px; transition:text-decoration-color var(--dur) var(--ease); }
  .hdr__tel .ic{ width:20px; height:20px; }
}
@media (max-width:767px){ :root{ --logo-h:34px; } .hdr__panel .btn{ align-self:stretch; } }   /* pleine largeur sur téléphone seulement */

/* ---------- Hero d'accueil : photo du bureau sous un voile clair fort ---------- */
.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__media,.hero__veil{ position:absolute; inset:0; }
.hero__media{ z-index:-2; }
.hero__media img{ width:100%; height:100%; object-fit:cover; object-position:42% 55%; }
.hero__veil{ z-index:-1; background:radial-gradient(ellipse 70% 62% at 50% 50%,rgba(30,45,69,.8) 0%,rgba(30,45,69,.68) 45%,rgba(30,45,69,.5) 100%); }
.hero__in{ display:flex; flex-direction:column; align-items:center; text-align:center; }
.hero h1{ margin-top:24px; max-width:1120px; color:var(--bg); text-shadow:0 2px 18px rgba(24,32,44,.5); }
.hero h1 .acc{ color:var(--bg); }
.hero__tag{ margin-top:24px; max-width:1120px; font-size:clamp(1.1875rem,1.05rem + .6vw,1.5rem); line-height:1.45; color:var(--brume); text-shadow:0 1px 12px rgba(24,32,44,.6); }
.hero__cta{ margin-top:32px; }
.gpill{ display:inline-flex; align-items:center; gap:8px; padding:8px 14px; border-radius:var(--r-pill); line-height:1;
  background:rgba(24,32,44,.42); border:1px solid rgba(247,244,238,.18);
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); }
.gpill .g-g{ width:18px; height:18px; }
.gpill__n{ color:var(--gold); font-weight:600; font-size:1rem; font-variant-numeric:tabular-nums lining-nums; }
.gpill .star{ width:15px; height:15px; }
.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),visibility .6s var(--ease); }
.scroll-ind::before{ content:""; position:absolute; inset:-8px -96px -8px -16px; }
.scroll-ind__line{ position:absolute; inset:0; background:rgba(247,244,238,.5); overflow:hidden; }
.scroll-ind__w{ position:absolute; left:13px; top:50%; transform:translateY(-50%); font-weight:600; font-size:var(--label); line-height:1;
  letter-spacing:.14em; text-transform:uppercase; color:rgba(247,244,238,.5); white-space:nowrap; transition:color var(--dur) var(--ease); }
@media (max-width:767px){ .hero{ padding-block:64px; } .gpill{ padding:7px 12px; gap:6px; } .gpill .g-g{ width:16px; height:16px; } .gpill .star{ width:13px; height:13px; } .gpill__n{ font-size:.9375rem; } }
@media (max-aspect-ratio:1/1){ .hero__media img{ object-position:38% 50%; } }

/* ---------- Hero de page : placeholder radial + motif logo ---------- */
.phero{ position:relative; isolation:isolate; overflow:hidden; display:flex; align-items:center; justify-content:center;
  min-height:calc((100svh - var(--stack-h)) / 2); padding-block:96px;
  background:radial-gradient(ellipse at center,#E6EAF0 0%,#E6EAF0 18%,#F7F4EE 100%); }
.phero__logo{ position:absolute; left:50%; top:50%; z-index:-1; width:clamp(240px,34vw,440px); height:auto; transform:translate(-50%,-50%); opacity:.1; }
.phero__in{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:24px; }
.phero h1{ font-size:var(--h1-page); max-width:1080px; }
.phero__tag{ font-size:var(--chapo); color:var(--ink-2); max-width:1080px; }
@media (max-width:767px){ .phero{ padding-block:64px; } .phero__in{ gap:16px; } }

/* ---------- Placeholder image : radial clair + logo vertical, légende en pastille ---------- */
.ph{ position:absolute; inset:0; overflow:hidden; background:radial-gradient(circle at center,#E6EAF0 0%,#F7F4EE 78%); }
.ph::before{ content:""; position:absolute; inset:0; background:url("../img/larrue-logo-vertical.svg") center / min(62%,300px) auto no-repeat; opacity:.15; }
.ph__cap{ position:absolute; left:12px; bottom:12px; max-width:calc(100% - 24px); padding:6px 12px; border-radius:var(--r-btn);
  background:rgba(247,244,238,.94); border:1px solid rgba(30,45,69,.1); color:var(--ink-2); font-size:.875rem; line-height:1.3; }

/* ---------- Photos 4/3 ---------- */
.frame{ position:relative; display:block; border-radius:var(--r-card); overflow:hidden; box-shadow:var(--sh-card); background:var(--brume); }
.frame::before{ content:""; display:block; padding-top:75%; }
.frame > img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 1.2s 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(163,36,59,.35); background:rgba(163,36,59,.06); color:var(--ink); font-size:1rem; line-height:1.5; }
.note .ic{ width:22px; height:22px; color:var(--carmin); margin-top:1px; }
.note__l{ font-weight:600; color:var(--carmin); margin-right:4px; }
.note--center{ max-width:880px; margin-inline:auto; }
.note--onaplat{ background:linear-gradient(rgba(163,36,59,.06),rgba(163,36,59,.06)),var(--bg); border-color:rgba(163,36,59,.45); }
.gnote .note{ margin-top:0; }
@media (max-width:767px){ .note{ padding:16px; margin-top:32px; } }

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

/* ---------- Domaines : alternance image/texte (texte 42 %, image 58 %) ---------- */
.alt{ display:flex; flex-direction:column; gap:96px; }
.alt__b{ display:grid; grid-template-columns:minmax(0,42fr) minmax(0,58fr); grid-template-areas:"txt img"; column-gap:64px; align-items:center; }
.alt__b--l{ grid-template-columns:minmax(0,58fr) minmax(0,42fr); grid-template-areas:"img txt"; }
.alt__img{ grid-area:img; min-width:0; }
.alt__txt{ grid-area:txt; display:flex; flex-direction:column; align-items:flex-start; gap:12px; min-width:0; }
.alt__txt p{ color:var(--ink-2); }
.alt__txt .tlink{ margin-top:4px; }
.dom__foot{ margin-top:64px; display:flex; flex-direction:column; align-items:flex-start; gap:24px; }
.dom__more{ color:var(--ink-2); }
.act-row{ display:flex; align-items:center; gap:16px 24px; }
@media (max-width:1023px){ .alt{ gap:64px; } .act-row{ flex-direction:column-reverse; align-items:flex-start; } }
@media (max-width:899px){   /* alternance empilée : image au-dessus, pleine largeur, sur tous les blocs */
  .alt__b,.alt__b--l{ grid-template-columns:minmax(0,1fr); grid-template-areas:"img" "txt"; row-gap:24px; }
}
@media (max-width:767px){ .alt{ gap:48px; } .dom__foot{ margin-top:48px; } }

/* ---------- Qui je suis : section de contraste, split à chevauchement + bande de stats ---------- */
.section--contrast{ background:var(--nuit); color:var(--bg); }
.section--contrast::before{ opacity:.02; }
.section--contrast :focus-visible{ outline-color:var(--laiton-vif); }
.qjs{ display:grid; grid-template-columns:44% 14% 42%; align-items:center; }
.qjs__img{ grid-column:1 / 3; grid-row:1; min-width:0; }
.qjs__frame{ position:relative; border-radius:var(--r-card); overflow:hidden; box-shadow:var(--sh-card); background:var(--brume); }
.qjs__frame::before{ content:""; display:block; padding-top:125%; }
.qjs__frame img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 30%; }
.qjs__panel{ grid-column:2 / 4; grid-row:1; position:relative; z-index:2; min-width:0; display:flex; flex-direction:column; align-items:flex-start; gap:16px; padding:48px;
  background:var(--bg); color:var(--ink); border-radius:var(--r-card); box-shadow:var(--sh-card); }
.qjs__panel :focus-visible{ outline-color:var(--laiton); }
.qjs__panel p{ color:var(--ink-2); }
.stats{ position:relative; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:64px; border-radius:var(--r-card);
  background:rgba(247,244,238,.06); box-shadow:inset 0 0 0 1px rgba(230,234,240,.14); }
.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:18px; bottom:18px; width:1px; background:rgba(230,234,240,.24); }
.stat__n{ display:inline-flex; align-items:center; gap:6px; font-family:var(--f-texte); font-weight:600; font-size:var(--stat); line-height:1; color:var(--bg); font-variant-numeric:tabular-nums lining-nums; }
.stat__n .star{ width:.6em; height:.6em; }
.stat__l{ color:var(--brume); white-space:nowrap; line-height:1.3; }
.section--contrast .note{ margin-top:32px; }
@media (max-width:899px){   /* split empilé : portrait au-dessus, panneau qui remonte sur le bas de l'image */
  .qjs{ display:block; max-width:640px; margin-inline:auto; }
  .qjs__frame::before{ padding-top:100%; }
  .qjs__panel{ margin:-96px 32px 0; padding:32px; }
}
@media (max-width:767px){
  .qjs__panel{ margin:-48px 16px 0; padding:32px 24px; }
  .stats{ margin-top:48px; }
  .stat{ padding:24px 12px; }
}
@media (max-width:619px){   /* bascule mesurée : le plus long label (164px) + 32px de marge tient en 3 colonnes au-dessus de 620px */
  .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; }
}

/* ---------- Premier rendez-vous : split à en-tête collant + frise progressive ---------- */
.fr{ display:grid; grid-template-columns:minmax(0,40fr) minmax(0,60fr); column-gap:64px; align-items:start; }
.fr__col{ position:sticky; top:calc(var(--hdr-h) + 32px); align-self:start; }
.fr__head{ width:auto; min-width:0; margin-bottom:0; }
.fr__head .lead{ contain:none; min-width:0; }
.fr__act{ display:flex; flex-direction:column; align-items:flex-start; gap:16px; margin-top:8px; }
.fp{ position:relative; min-width:0; }
.fp__rail{ position:absolute; left:10px; top:0; height:0; width:4px; }
.fp__fill{ position:absolute; inset:0; background:var(--grad-sign-v); }
.fp__list{ list-style:none; display:flex; flex-direction:column; gap:96px; position:relative; }
.fp__step{ --tl:calc(var(--h3) * 1.25); display:grid; grid-template-columns:24px auto minmax(0,1fr); column-gap:24px; row-gap:16px; align-items:start; }
.fp__mk{ position:relative; display:grid; place-items:center; width:24px; height:var(--tl); }
.fp__mk > .ic{ grid-area:1 / 1; width:24px; height:24px; }
.fp__ic{ color:rgba(30,45,69,.28); }
.fp__ic--lit{ transition:opacity var(--dur) var(--ease); }
.fp__n{ display:flex; align-items:center; height:var(--tl); font-family:var(--f-texte); font-weight:600; font-size:clamp(1.75rem,1.5rem + 1vw,2.25rem); line-height:1; color:var(--nuit);
  font-variant-numeric:tabular-nums lining-nums; transition:color var(--dur) var(--ease); }
.fp__t{ display:flex; align-items:center; flex-wrap:wrap; gap:8px 12px; min-width:0; min-height:var(--tl); }
.fp__pill{ display:inline-flex; align-items:center; padding:4px 10px; border-radius:var(--r-btn); background:var(--brume); border:1px solid rgba(30,45,69,.14);
  color:var(--nuit); font-weight:600; font-size:.875rem; line-height:1.3; white-space:nowrap; font-variant-numeric:tabular-nums; }
.fp--stack .fp__t{ flex-direction:column; align-items:flex-start; }
.fp__d{ grid-column:3; color:var(--ink-2); }
@media (max-width:1023px){
  .fr{ display:block; }
  .fr__col{ position:static; }
  .fp{ margin-top:48px; }
}
@media (max-width:767px){
  .fp{ margin-top:32px; }
  .fp__rail{ left:8px; }
  .fp__list{ gap:64px; }
  .fp__step{ grid-template-columns:20px auto minmax(0,1fr); column-gap:16px; }
  .fp__mk{ width:20px; }
  .fp__mk > .ic{ width:20px; height:20px; }
  .fp__t{ flex-direction:column; align-items:flex-start; }
  .fp__d{ grid-column:2 / -1; }
}

/* ---------- Avis : bloc note + mur d'avis en alternance ---------- */
.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:600; font-size:2.75rem; line-height:1; color:var(--gold); 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:600; color:var(--ink); }
.rnote__b .g-word{ height:22px; }
.wall{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); column-gap:24px; row-gap:24px; grid-auto-flow:dense; align-items:start; }
html.js .wall{ grid-auto-rows:1px; row-gap:0; }
.wall .rv{ grid-column:var(--dc); order:var(--do); }
.rv{ background:var(--surface); border-radius:var(--r-card); box-shadow:var(--sh-card); padding:24px; color:var(--ink); }
.rv__head{ position:relative; display:flex; align-items:center; min-height:24px; padding-right:32px; margin-bottom:12px; }
.rv .star{ width:16px; height:16px; }
.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:48px; }
@media (max-width:1023px){ .wall{ grid-template-columns:repeat(2,minmax(0,1fr)); } .wall .rv{ grid-column:var(--tc); order:var(--to); } }
@media (max-width:767px){
  .wall{ grid-template-columns:minmax(0,1fr); column-gap:16px; }
  .wall .rv{ grid-column:1; order:var(--mo); }
  .rv{ padding:20px; }
  .rv__g{ width:30px; height:30px; }
  .rv__head{ padding-right:40px; min-height:30px; }
}

/* ---------- FAQ en accordéon ---------- */
.faq{ max-width:720px; 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(--h3); line-height:1.3; }
.faq__q{ display:flex; justify-content:space-between; align-items:flex-start; gap:16px; width:100%; min-height:44px; padding:20px 12px; border-radius:var(--r-btn);
  text-align:left; font-family:var(--f-titre); font-weight:500; font-size:clamp(1.1875rem,1.1rem + .35vw,1.375rem); line-height:1.3; letter-spacing:-.01em; color:var(--ink);
  transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease); }
.faq__q .ic{ width:22px; height:22px; color:var(--nuit); margin-top:2px; transition:transform var(--dur) var(--ease),color 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:0 12px 20px; color:var(--ink-2); }

/* ---------- Rendez-vous : agenda ClicRDV 7 colonnes, carte de confiance + Coordonnées + Horaires 5 colonnes ---------- */
.shead--rdv{ margin-bottom:48px; }
.rdv__act{ display:flex; flex-direction:row-reverse; justify-content:flex-end; align-items:center; gap:16px 24px; margin-top:8px; flex-wrap:wrap; }
.rdv{ display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr); grid-template-areas:"agenda conf" "agenda coord" "agenda hrs"; grid-template-rows:auto auto 1fr;
  column-gap:32px; row-gap:24px; align-items:start; }
.rdv__agenda{ grid-area:agenda; align-self:stretch; display:flex; flex-direction:column; background:#FFFFFF; border-radius:var(--r-card); box-shadow:var(--sh-card); overflow:hidden; }
.rdv__shot{ position:relative; display:block; cursor:pointer; }
.rdv__shot img{ width:100%; height:auto; }
.rdv__shot::after{ content:""; position:absolute; inset:0; background:var(--nuit); opacity:0; transition:opacity var(--dur) var(--ease); }
.rdv__shot:focus-visible{ outline-offset:-4px; }
.rdv__band{ margin-top:auto; display:flex; justify-content:center; padding:16px 16px 32px; }
.rdv__frame{ display:block; width:100%; height:640px; border:0; }
.clic-btn{ display:inline-flex; align-items:center; gap:12px; min-height:48px; padding:6px 6px 6px 22px; border-radius:var(--r-pill); background:#0F80F3; color:#FFFFFF;
  font-family:var(--f-texte); font-weight:600; font-size:1.0625rem; line-height:1.2; white-space:nowrap; cursor:pointer; transition:filter var(--dur) var(--ease); }
.clic-btn__logo{ display:inline-flex; align-items:center; height:36px; padding:0 12px; border-radius:var(--r-pill); background:#FFFFFF; }
.clic-btn__logo img{ height:20px; width:auto; }
.clic-btn:focus-visible{ outline-color:#0F80F3; }
.tcard{ grid-area:conf; min-width:0; padding:32px; border-radius:var(--r-card); box-shadow:var(--sh-card); border:1.5px solid transparent;
  background:linear-gradient(var(--surface),var(--surface)) padding-box,var(--grad-sign-d) 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:600; font-size:2.5rem; line-height:1; color:var(--gold); 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:600; font-size:.9375rem; line-height:1; color:var(--ink); }
.tc__c .g-word{ height:18px; }
.tc__sep{ height:1px; background:var(--filet); margin:24px 0; }
.tc__slots{ display:flex; gap:12px; }
.islot{ display:block; border:1.5px dashed rgba(30,45,69,.24); border-radius:var(--r-btn); background:rgba(30,45,69,.02); }
.tc__slots .islot{ flex:0 1 120px; min-width:0; aspect-ratio:2 / 1; }
/* avis à feuilleter : piste aimantée, hauteur fixe sur le plus long, chaque avis centré */
.ccar{ margin-inline:-8px; }
.ccar__track{ display:flex; align-items:center; gap:16px; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory; scrollbar-width:none; -ms-overflow-style:none;
  -webkit-overflow-scrolling:touch; padding:0 8px; scroll-padding-inline:8px; cursor:grab; }
.ccar__track::-webkit-scrollbar{ display:none; }
.ccar__track.is-drag{ cursor:grabbing; }
.ccar__track:focus-visible{ outline-offset:-2px; }
.ccar__s{ flex:0 0 100%; min-width:0; scroll-snap-align:start; scroll-snap-stop:always; }
.ccar__s .rv__head{ margin-bottom:10px; }
.ccar__s .rv__q{ font-size:1rem; line-height:1.55; }
.ccar__nav{ display:flex; justify-content:center; gap:16px; margin-top:16px; }
.cchev{ position:relative; width:24px; height:24px; border-radius:var(--r-btn); background:var(--nuit); color:var(--bg);
  display:inline-flex; align-items:center; justify-content:center; transition:opacity var(--dur) var(--ease),filter var(--dur) var(--ease); }
.cchev::before{ content:""; position:absolute; inset:-10px; }
.cchev .ic{ width:12px; height:12px; stroke-width:2; }
.cchev:disabled{ opacity:.35; cursor:default; }
.icard{ background:var(--surface); border-radius:var(--r-card); box-shadow:var(--sh-card); padding:32px; min-width:0; }
.icard--coord{ grid-area:coord; }
.icard--hrs{ grid-area:hrs; }
.icard h3{ margin-bottom:16px; }
.icard__h{ display:flex; align-items:center; gap:12px; }
.icard__h .ic{ width:24px; height:24px; color:var(--nuit); }
.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(--nuit); margin-top:3px; }
.icard .row a{ cursor:pointer; display:inline-block; padding-block:10px; margin-block:-10px; overflow-wrap:anywhere;
  text-decoration:underline; text-decoration-color:transparent; text-underline-offset:3px; transition:text-decoration-color var(--dur) var(--ease),color var(--dur) var(--ease); }
.hrow{ display:flex; justify-content:space-between; align-items:baseline; gap:16px; }
.hrow > span:first-child{ white-space:nowrap; font-weight:600; }
.hrow .d{ text-align:right; color:var(--ink-2); white-space:nowrap; font-variant-numeric:tabular-nums lining-nums; }
@media (max-width:1023px){
  .rdv{ grid-template-columns:minmax(0,1fr); grid-template-areas:"conf" "agenda" "coord" "hrs"; grid-template-rows:none; }
  .rdv__act{ flex-direction:column; align-items:flex-start; }
}
@media (max-width:767px){
  .icard,.tcard{ padding:32px 24px; }
  .tc__n{ font-size:2.25rem; }
  .rdv__band{ padding:12px 12px 24px; }
}

/* ---------- Pages intérieures : note seule dans sa section ---------- */
.section--gnote .note{ max-width:none; }

/* ---------- Footer : bleu nuit uni, Maps bord à bord, identité en trois colonnes ---------- */
.foot{ background:var(--nuit); color:var(--bg); font-size:1rem; }
.foot__map{ position:relative; height:360px; background:var(--brume); }
.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:24px; transition:opacity var(--dur) var(--ease); }
.foot__logolink .logo{ height:44px; }
.foot__name{ font-size:1.75rem; line-height:1.2; color:var(--bg); }
.foot__name .acc{ color:var(--bg); }
.foot__pos{ display:block; font-family:var(--f-texte); font-size:1.0625rem; font-weight:600; letter-spacing:0; line-height:1.35; color:var(--laiton-vif); margin-top:4px; }
.foot__tag{ color:var(--brume); margin-top:12px; }
@media (min-width:880px){ .foot__tag span{ display:block; } }
.foot__trust{ display:flex; gap:12px; margin-top:24px; align-self:stretch; }
.foot__trust .islot{ flex:0 0 120px; width:120px; height:60px; background:rgba(247,244,238,.05); border-color:rgba(247,244,238,.32); }
.foot__h{ font-family:var(--f-texte); font-weight:600; font-size:var(--label); line-height:1.4; letter-spacing:.14em; text-transform:uppercase; color:var(--laiton-vif); 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(--bg);
  transition:transform var(--dur) var(--ease),color var(--dur) var(--ease); }
.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(--brume); }
.foot__sep{ height:1px; background:rgba(247,244,238,.22); margin-top:32px; }
.foot__sep--m{ display:none; }
.foot__bar{ display:flex; justify-content:space-between; gap:16px; padding-block:32px; font-size:.875rem; color:var(--brume); }
.foot :focus-visible{ outline-color:var(--laiton-vif); }
@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:879px){   /* bascule footer mesurée : 271 + 118 + 298 + 2 × 64 d'air sur les lettres + marges 2 × 24 + barre de défilement 15 = 878px */
  .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:880px) and (max-width:1023px){ .foot__bar{ padding-bottom:calc(80px + env(safe-area-inset-bottom)); } }
@media (min-width:880px){
  .foot__grid{ display:grid; grid-template-columns:repeat(3,max-content); justify-content:space-between; column-gap:64px; }
  .foot__col{ padding-top:calc(44px + 24px); }
}
@media (min-width:1024px){ .foot__grid{ column-gap:48px; } }

/* ---------- Rond flottant du rendez-vous : sous 1024px seulement ---------- */
.fbook{ display:none; }
@media (max-width:1023px){
  .fbook{ position:fixed; right:16px; bottom:calc(16px + env(safe-area-inset-bottom)); z-index:60; width:48px; height:48px;
    border-radius:50%; background:var(--laiton); color:var(--bg); display:flex; align-items:center; justify-content:center;
    box-shadow:0 1px 2px rgba(30,45,69,.12),0 6px 16px rgba(30,45,69,.18);
    transition:opacity var(--dur) var(--ease),visibility var(--dur) var(--ease),filter var(--dur) var(--ease),transform var(--dur) var(--ease); }
  .fbook .ic{ width:20px; height:20px; }
  .fbook:active{ transform:scale(.94); }
  .hdr.is-open ~ .fbook,body.has-modal .fbook{ opacity:0; visibility:hidden; pointer-events:none; }
  .fbook.is-off{ opacity:0; visibility:hidden; pointer-events:none; }
  .fbook::before{ content:""; position:absolute; inset:0; z-index:-1; border-radius:50%; background:var(--laiton); 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; } }

/* ---------- Modale de l'agenda (rond flottant) ---------- */
.rmod{ position:fixed; inset:0; z-index:100; display:flex; align-items:center; justify-content:center; padding:16px; }
.rmod__veil{ position:absolute; inset:0; background:rgba(24,32,44,.55); }
.rmod__box{ position:relative; width:min(440px,100%); max-height:calc(100svh - 32px); overflow-y:auto; background:var(--surface); border-radius:var(--r-card); box-shadow:var(--sh-card); }
.rmod__head{ position:sticky; top:0; z-index:1; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 12px 12px 24px; background:var(--surface); box-shadow:0 1px 0 var(--filet); }
.rmod__t{ font-family:var(--f-titre); font-weight:500; font-size:1.375rem; line-height:1.2; color:var(--ink); }
.rmod__x{ width:44px; height:44px; display:inline-flex; align-items:center; justify-content:center; border-radius:var(--r-btn); color:var(--nuit); transition:background-color var(--dur) var(--ease); }
.rmod__x .ic{ width:22px; height:22px; }
.rmod .rdv__agenda{ box-shadow:none; border-radius:0; }
body.has-modal{ overflow:hidden; }

/* ==========================================================================
   Survols : tout élément interactif (couleur ou luminosité sur la teinte soutenue, jamais une troisième teinte)
   ========================================================================== */
@media (hover:hover){
  .btn--ghost:hover .ic{ transform:translateX(3px); }
  .btn--ghost:hover{ background-color:rgba(30,45,69,.06); }
  .hero .btn--ghost:hover{ background-color:rgba(247,244,238,.12); border-color:var(--bg); }
  .tlink:hover > span::after{ transform:scaleX(1); }
  .tlink:hover .ic{ transform:translateX(3px); }
  .txtlink:hover{ color:var(--laiton); }
  .hdr__logo:hover{ opacity:.82; }
  .nav__link:hover{ color:var(--laiton); }
  .nav__link:hover::after{ transform:scaleX(1); }
  .burger:hover{ background:rgba(30,45,69,.06); border-color:var(--nuit); }
  .hdr__mnav a:hover{ color:var(--laiton); }
  .hdr__tel:hover{ text-decoration-color:currentColor; }
  .scroll-ind:hover .scroll-ind__w{ color:var(--bg); }
  .faq__q:hover{ background:rgba(230,234,240,.5); }
  .faq__q:hover .ic{ color:var(--laiton); }
  .rdv__shot:hover::after{ opacity:.06; }
  .clic-btn:hover{ filter:brightness(.92); }
  .cchev:hover:not(:disabled){ filter:brightness(.8); }
  .icard .row a:hover{ text-decoration-color:currentColor; color:var(--nuit); }
  .foot__logolink:hover{ opacity:.82; }
  .foot__links a:hover,.foot__info a:hover{ color:var(--laiton-vif); transform:translateX(4px); }
  .rmod__x:hover{ background:rgba(30,45,69,.06); }
  .fbook:hover{ filter:brightness(.92); }
}
.btn--ghost:focus-visible .ic,.tlink:focus-visible .ic{ transform:translateX(3px); }
.tlink:focus-visible > span::after{ transform:scaleX(1); }
.hdr__mnav a:focus-visible{ color:var(--laiton); }

/* ==========================================================================
   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(247,244,238,0),#F7F4EE,rgba(247,244,238,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(30px); }
html.fx-on [data-reveal]{ transition:opacity .9s var(--ease),transform .9s var(--ease); }
html.js-ready [data-reveal].is-in{ opacity:1; transform:none; }
html.frise-on .fp__fill{ will-change:clip-path; }
html.frise-on .fp__step{ opacity:0; transform:translateY(28px); transition:opacity .6s var(--ease),transform .6s var(--ease); }
html.frise-on .fp__step.is-in{ opacity:1; transform:none; }
html.frise-on .fp__step:not(.is-lit) .fp__ic--lit{ opacity:0; }
html.frise-on .fp__step:not(.is-lit) .fp__n{ color:rgba(30,45,69,.28); }

/* ---------- 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; }
  html.js-ready [data-reveal],html.frise-on .fp__step{ 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; }
  .fbook::before{ animation:none !important; opacity:0; }
  .frame > img{ transform:none !important; }
}
