/* Maison Mazaeff — feuille de style
   Concept : la lettre d'une maison de gestion privée. Papier crème, encre bleu nuit,
   filets fins, un mot en italique qui porte la voix. Le vert sapin signale l'action. */
:root{
  --paper:#F6F2EA;      /* fond, papier crème */
  --paper-2:#EDE6D8;    /* fond des bandes */
  --card:#FBF9F4;       /* cartes */
  --ink:#14233B;        /* texte, bleu nuit */
  --ink-soft:#4C566A;   /* texte secondaire */
  --rule:#D8CEBC;       /* filets */
  --accent:#1E4A3C;     /* vert sapin, actions */
  --accent-soft:#DCE7E0;
  --on-accent:#FFFFFF;
  --gold:#A47A36;       /* étoiles, détails */
  --warn:#7A5A00;       /* marque « provisoire » */
  --warn-bg:#FFF1C2;
  --shadow:0 1px 2px rgba(20,35,59,.06),0 8px 24px rgba(20,35,59,.06);
  --f-display:"Playfair Display","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --f-body:"Avenir Next","Avenir","Nunito Sans","Segoe UI",system-ui,sans-serif;  /* Avenir (Apple) ; Nunito Sans en remplacement gratuit ailleurs */
  --step--1:clamp(.84rem,.82rem + .1vw,.9rem);
  --step-0:clamp(1rem,.96rem + .2vw,1.09rem);
  --step-1:clamp(1.2rem,1.1rem + .45vw,1.42rem);
  --step-2:clamp(1.5rem,1.3rem + .9vw,2rem);
  --step-3:clamp(1.9rem,1.5rem + 1.9vw,3rem);
  --step-4:clamp(2.4rem,1.7rem + 3.2vw,4.4rem);
  --radius:14px;
  --wrap:1160px;
  color-scheme:light;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:var(--step-0);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--paper)}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
h1,h2,h3{font-family:var(--f-display);font-weight:400;line-height:1.1;letter-spacing:-.01em;text-wrap:balance;margin:0}
h1{font-size:var(--step-4)}
h2{font-size:var(--step-3)}
h3{font-size:var(--step-1);font-weight:500;letter-spacing:0}
em,.it{font-family:var(--f-display);font-style:italic;font-weight:400}
p{margin:0}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
.band{padding-block:clamp(56px,8vw,112px)}
.band--tint{background:var(--paper-2)}
.eyebrow{font-size:var(--step--1);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);font-weight:600}
.lede{font-size:var(--step-1);color:var(--ink-soft);max-width:60ch;line-height:1.5}
.prose{max-width:65ch;display:grid;gap:1em}
.prose h3{margin-top:.6em}
.muted{color:var(--ink-soft)}
.small{font-size:var(--step--1)}
.stack{display:grid;gap:clamp(16px,2vw,24px)}
.head{display:grid;gap:14px;margin-bottom:clamp(28px,4vw,48px);max-width:760px}

/* Bandeau maquette */
.proto{background:var(--warn-bg);color:var(--warn);font-size:var(--step--1);text-align:center;padding:8px 16px;font-weight:600}
.prov{background:var(--warn-bg);color:inherit;border-bottom:1.5px dashed var(--warn);border-radius:3px;padding:0 .15em}

/* En-tête */
.site-head{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--rule)}
.site-head .wrap{display:flex;align-items:center;gap:24px;min-height:72px}
.brand{display:flex;align-items:center;text-decoration:none;color:var(--ink)}
.logo{height:46px;width:auto}
.lg-ink{fill:currentColor}.lg-paper{fill:var(--paper)}
.nav{display:flex;gap:4px;margin-left:auto;align-items:center}
.nav a{text-decoration:none;padding:8px 12px;border-radius:999px;font-weight:500;font-size:.95rem;color:var(--ink-soft)}
.nav a:hover{color:var(--ink);background:var(--paper-2)}
.nav a[aria-current="page"]{color:var(--ink);background:var(--paper-2)}
.head-cta{display:flex;gap:10px;align-items:center}
.tel{font-variant-numeric:tabular-nums;font-weight:600;text-decoration:none;white-space:nowrap}
.burger{display:none;margin-left:auto;background:none;border:1px solid var(--rule);color:var(--ink);border-radius:10px;width:44px;height:44px;cursor:pointer}
.burger span{display:block;width:18px;height:1.5px;background:currentColor;margin:4px auto}
@media (max-width:980px){
  .nav,.head-cta .tel{display:none}
  .burger{display:block}
  .site-head .wrap{gap:12px}
  .head-cta{margin-left:0}
  .head-cta .btn{display:none}
  .nav.open{display:flex;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;background:var(--paper);border-bottom:1px solid var(--rule);padding:12px max(20px,env(safe-area-inset-right,0px)) 20px max(20px,env(safe-area-inset-left,0px))}
  .nav.open a{padding:14px 12px;font-size:1.05rem}
}

/* Boutons */
.btn{--b:var(--ink);display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:13px 22px;border-radius:999px;font:600 .98rem/1 var(--f-body);text-decoration:none;cursor:pointer;border:1.5px solid var(--b);transition:transform .15s ease,background .15s ease,color .15s ease;white-space:nowrap}
.btn--solid{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.btn--solid:hover{transform:translateY(-1px);filter:brightness(1.06)}
.btn--line{background:transparent;color:var(--ink)}
.btn--line:hover{background:var(--ink);color:var(--paper)}
/* Esprit Sotheby's : les boutons secondaires deviennent des rectangles à filet fin */
.btn--line{border-radius:3px;border-width:1px}
.btn svg{width:18px;height:18px}
.btn-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}

/* Héros */
.hero{padding-block:clamp(40px,7vw,96px) clamp(40px,6vw,80px)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.9fr);gap:clamp(32px,5vw,72px);align-items:center}
.hero h1{font-size:clamp(2.5rem,1.6rem + 3.9vw,5rem);line-height:1.02}
.hero h1 .line{display:block}
.rot{display:inline-grid;vertical-align:bottom}
.rot>span{grid-area:1/1;font-style:italic;color:var(--accent);transition:opacity .55s ease,transform .55s ease;white-space:nowrap}
.rot>span[aria-hidden="true"]{opacity:0;transform:translateY(.35em)}
.rot>span.out{opacity:0;transform:translateY(-.35em)}
.hero .lede{margin-top:22px}
.checks{list-style:none;padding:0;margin:26px 0 30px;display:grid;gap:10px}
.checks li{display:flex;gap:12px;align-items:flex-start}
.checks svg{flex:none;width:22px;height:22px;color:var(--accent);margin-top:2px}
.stars{color:var(--gold);letter-spacing:2px}

.portrait{position:relative;border-radius:22px;overflow:hidden;background:linear-gradient(160deg,var(--paper-2),var(--card));border:1px solid var(--rule);aspect-ratio:4/5;max-width:100%;display:grid;place-items:center;box-shadow:var(--shadow)}
.portrait .ph{display:grid;justify-items:center;gap:10px;text-align:center;padding:24px;color:var(--ink-soft)}
.portrait .ph .mono{width:96px;height:96px;border-radius:50%;background:var(--ink);color:var(--paper);display:grid;place-items:center;font:italic 400 2.6rem/1 var(--f-display)}
.portrait figcaption{position:absolute;left:14px;right:14px;bottom:14px;background:color-mix(in srgb,var(--card) 92%,transparent);backdrop-filter:blur(6px);border:1px solid var(--rule);border-radius:12px;padding:12px 14px;font-size:.92rem;line-height:1.35}
.portrait figcaption b{display:block;font-family:var(--f-display);font-weight:500;font-size:1.08rem}

/* Citations */
.quotes{border-block:1px solid var(--rule);padding-block:26px}
.quotes .wrap{display:flex;gap:20px;align-items:center;justify-content:center;text-align:center;min-height:3.4em}
.quote{font-family:var(--f-display);font-style:italic;font-size:var(--step-2);line-height:1.25;transition:opacity .5s ease}
.quote small{display:block;font-family:var(--f-body);font-style:normal;font-size:var(--step--1);color:var(--ink-soft);margin-top:6px}

/* Compteurs */
.counters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--rule)}
.counter{padding:26px 18px 6px;border-right:1px solid var(--rule);display:grid;gap:6px}
.counter:last-child{border-right:0}
.counter .n{font-family:var(--f-display);font-size:clamp(2.2rem,1.6rem + 2.4vw,3.6rem);line-height:1;font-variant-numeric:tabular-nums}
.counter .l{color:var(--ink-soft);font-size:.95rem;line-height:1.35}
@media (max-width:760px){.counters{grid-template-columns:repeat(2,minmax(0,1fr))}.counter:nth-child(2){border-right:0}.counter:nth-child(n+3){border-top:1px solid var(--rule)}}

/* Portes */
.doors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.door{display:grid;gap:14px;align-content:start;padding:clamp(24px,3vw,36px);border-radius:var(--radius);background:var(--card);border:1px solid var(--rule);text-decoration:none;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.door:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--ink-soft)}
.door h3{font-size:var(--step-2);font-weight:400}
.door .go{font-weight:600;color:var(--accent);display:inline-flex;gap:8px;align-items:center}
.door ul{margin:0;padding-left:1.1em;color:var(--ink-soft)}
.tag{display:inline-block;font-size:var(--step--1);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);padding:5px 10px;border-radius:999px;justify-self:start}
@media (max-width:760px){.doors{grid-template-columns:1fr}}
.door{display:flex;flex-direction:column;align-items:flex-start}
.door .go{margin-top:auto;padding-top:6px}

/* Services */
.services{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:1px solid var(--ink)}
.service{padding:24px 22px 28px 0;display:grid;gap:10px;align-content:start;border-right:1px solid var(--rule);padding-left:22px}
.service:first-child{padding-left:0}
.service:last-child{border-right:0}
.service .k{font-family:var(--f-display);font-style:italic;color:var(--accent);font-size:1.1rem}
.service a{font-weight:600;color:var(--accent);text-decoration:none}
.service a:hover{text-decoration:underline}
@media (max-width:900px){.services{grid-template-columns:repeat(2,minmax(0,1fr))}.service{padding-left:0;padding-right:18px}.service:nth-child(2n){border-right:0;padding-left:18px}.service:nth-child(n+3){border-top:1px solid var(--rule)}}
@media (max-width:520px){.services{grid-template-columns:1fr}.service,.service:nth-child(2n){border-right:0;padding-left:0;border-top:1px solid var(--rule)}.service:first-child{border-top:0}}

/* Cinq étoiles */
.five{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:clamp(28px,5vw,64px);align-items:start}
.promise-list{list-style:none;margin:0;padding:0;display:grid}
.promise-list li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;padding:18px 0;border-bottom:1px solid var(--rule)}
.promise-list li:first-child{border-top:1px solid var(--rule)}
.promise-list .ic{width:40px;height:40px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center}
.promise-list .ic svg{width:20px;height:20px}
.promise-list b{display:block;font-weight:600}
@media (max-width:860px){.five{grid-template-columns:1fr}}

/* Frise de l'année */
.year{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;position:relative;counter-reset:m}
.year::before{content:"";position:absolute;left:0;right:0;top:15px;height:1px;background:var(--rule)}
.month{position:relative;display:grid;gap:8px;padding-top:40px}
.month::before{content:"";position:absolute;top:8px;left:0;width:15px;height:15px;border-radius:50%;background:var(--paper);border:2px solid var(--accent)}
.month .when{font-size:var(--step--1);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-weight:700}
.month h3{font-size:1.25rem}
.month p{color:var(--ink-soft);font-size:.97rem}
.band--tint .month::before{background:var(--paper-2)}
@media (max-width:860px){.year{grid-template-columns:1fr;gap:0}.year::before{left:7px;right:auto;top:0;bottom:0;width:1px;height:auto}.month{padding:0 0 26px 34px}.month::before{top:4px}}

/* À propos */
.about{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(28px,5vw,64px);align-items:center}
@media (max-width:860px){.about{grid-template-columns:1fr}.about .portrait{max-width:340px}}

/* Rappel */
.callback{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(28px,5vw,64px);align-items:start}
.callback .card{background:var(--card);border:1px solid var(--rule);border-radius:18px;padding:clamp(22px,3vw,34px);box-shadow:var(--shadow)}
@media (max-width:860px){.callback{grid-template-columns:1fr}}
form{display:grid;gap:16px}
.field{display:grid;gap:6px;min-width:0}
.field label,.field legend{font-weight:600;font-size:.95rem}
.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
@media (max-width:520px){.two{grid-template-columns:1fr}}
input,select,textarea{font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--rule);border-radius:10px;padding:12px 14px;width:100%;min-width:0}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent}
fieldset{border:0;padding:0;margin:0;display:grid;gap:8px;min-width:0}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{position:relative}
.chip input{position:absolute;opacity:0;pointer-events:none}
.chip span{display:inline-block;padding:9px 14px;border:1px solid var(--rule);border-radius:999px;cursor:pointer;font-size:.95rem;background:var(--paper)}
.chip input:checked+span{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.chip input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.legal-note{font-size:.82rem;color:var(--ink-soft);line-height:1.45}
.done{display:grid;gap:12px;text-align:center;justify-items:center;padding:20px 0}
.done .ic{width:56px;height:56px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center}

/* Page intérieure */
.page-hero{padding-block:clamp(40px,6vw,88px) clamp(28px,4vw,48px);border-bottom:1px solid var(--rule)}
.page-hero h1{font-size:clamp(2.3rem,1.6rem + 3.2vw,4.2rem);max-width:16ch}
.page-hero .lede{margin-top:18px}
.page-hero .btn-row{margin-top:28px}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,64px);align-items:start}
@media (max-width:860px){.split{grid-template-columns:1fr}}
.steps{list-style:none;margin:0;padding:0;display:grid;gap:0;counter-reset:s}
.steps li{counter-increment:s;display:grid;grid-template-columns:52px minmax(0,1fr);gap:16px;padding:22px 0;border-top:1px solid var(--rule)}
.steps li::before{content:counter(s);font-family:var(--f-display);font-size:2rem;line-height:1;color:var(--accent)}
.steps b{display:block;font-size:1.1rem;margin-bottom:4px}
.box{background:var(--card);border:1px solid var(--rule);border-radius:var(--radius);padding:clamp(20px,3vw,32px)}
.risk{border-left:3px solid var(--gold);background:var(--card);padding:18px 22px;border-radius:0 12px 12px 0;display:grid;gap:8px}
.risk h3{font-size:1.1rem;font-family:var(--f-body);font-weight:700}
.risk ul{margin:0;padding-left:1.1em;display:grid;gap:4px}
.kv{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 18px}
.kv dt{font-weight:600}
.kv dd{margin:0;color:var(--ink-soft)}

/* Simulateur */
.sim{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);gap:clamp(20px,3vw,40px);background:var(--card);border:1px solid var(--rule);border-radius:20px;padding:clamp(20px,3vw,36px);box-shadow:var(--shadow)}
@media (max-width:900px){.sim{grid-template-columns:1fr}}
.ctrl{display:grid;gap:8px}
.ctrl .row{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.ctrl output{font-family:var(--f-display);font-size:1.35rem;font-variant-numeric:tabular-nums}
input[type=range]{padding:0;border:0;background:transparent;accent-color:var(--accent);height:28px}
.switch{display:flex;gap:10px;align-items:center;cursor:pointer;font-weight:500}
.switch input{width:20px;height:20px;accent-color:var(--accent)}
.sim-out{display:grid;gap:14px;min-width:0}
.sim-figs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.sim-figs div{display:grid;gap:2px}
.sim-figs span{font-size:.85rem;color:var(--ink-soft)}
.sim-figs b{font-family:var(--f-display);font-weight:400;font-size:clamp(1.25rem,1rem + 1vw,1.7rem);font-variant-numeric:tabular-nums}
@media (max-width:520px){.sim-figs{grid-template-columns:1fr}}
.chart{width:100%;height:auto;display:block}
.chart .grid{stroke:var(--rule);stroke-width:1}
.chart .axis{fill:var(--ink-soft);font:12px var(--f-body)}
.chart .paid{fill:none;stroke:var(--ink-soft);stroke-width:2;stroke-dasharray:5 5}
.chart .val{fill:none;stroke:var(--accent);stroke-width:2.5}
.chart .area{fill:var(--accent);opacity:.12}
.chart .dot{fill:var(--accent)}
.legend{display:flex;flex-wrap:wrap;gap:16px;font-size:.88rem;color:var(--ink-soft)}
.legend i{display:inline-block;width:18px;height:0;border-top:2.5px solid var(--accent);vertical-align:middle;margin-right:6px}
.legend i.d{border-top:2px dashed var(--ink-soft)}
.warning{font-size:.95rem;font-weight:600;line-height:1.45;border-top:1px solid var(--rule);padding-top:12px}

/* Prix */
.price{display:grid;gap:18px}
.price .big{font-family:var(--f-display);font-size:clamp(3rem,2rem + 4vw,5rem);line-height:1;font-variant-numeric:tabular-nums}
.price .big small{font-size:.32em;font-family:var(--f-body);color:var(--ink-soft);margin-left:6px}
.calc{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);gap:10px;align-items:center;text-align:center}
.calc div{display:grid;gap:4px;background:var(--paper);border:1px solid var(--rule);border-radius:12px;padding:14px 8px}
.calc b{font-family:var(--f-display);font-weight:400;font-size:1.7rem;font-variant-numeric:tabular-nums}
.calc span{font-size:.82rem;color:var(--ink-soft);line-height:1.3}
.calc .op{font-family:var(--f-display);font-size:1.6rem;color:var(--ink-soft)}
.calc .res{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.calc .res span{color:inherit;opacity:.85}
@media (max-width:520px){.calc{grid-template-columns:1fr}.calc .op{line-height:.6}}

/* FAQ */
.faq{display:grid;border-top:1px solid var(--rule)}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{cursor:pointer;list-style:none;padding:20px 40px 20px 0;font-weight:600;font-size:1.05rem;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:6px;top:14px;font-family:var(--f-display);font-size:1.8rem;color:var(--accent);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details>div{padding:0 0 22px;color:var(--ink-soft);max-width:70ch;display:grid;gap:10px}

/* Formulaires d'impôts */
.forms-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.form-chip{border:1px solid var(--rule);border-radius:12px;padding:14px 16px;background:var(--card);display:grid;gap:2px}
.form-chip b{font-family:var(--f-display);font-weight:500;font-size:1.3rem}
.form-chip span{font-size:.88rem;color:var(--ink-soft);line-height:1.35}

/* Gestion privée : comparaison d'expérience */
.compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border:1px solid var(--rule);border-radius:var(--radius);overflow:hidden}
.compare>div{padding:clamp(20px,3vw,32px);display:grid;gap:12px;align-content:start}
.compare>div+div{background:var(--ink);color:var(--paper)}
.compare>div+div .eyebrow{color:color-mix(in srgb,var(--paper) 70%,transparent)}
.compare ul{margin:0;padding:0;list-style:none;display:grid;gap:10px}
.compare li{display:flex;gap:10px}
.compare li::before{content:"—";color:var(--ink-soft)}
.compare>div+div li::before{content:"✓";color:var(--gold)}
@media (max-width:760px){.compare{grid-template-columns:1fr}}

/* Pied de page */
.site-foot{background:var(--ink);color:var(--paper);padding-block:56px 32px;margin-top:0}
.site-foot a{color:inherit}
.foot-grid{display:grid;grid-template-columns:minmax(0,1.2fr) repeat(2,minmax(0,1fr));gap:32px;padding-bottom:32px;border-bottom:1px solid color-mix(in srgb,var(--paper) 18%,transparent)}
.site-foot .lg-ink{fill:var(--paper)}.site-foot .lg-paper{fill:var(--ink)}
.site-foot .logo{height:52px}
.foot-grid h4{margin:0 0 10px;font:600 .82rem/1.2 var(--f-body);letter-spacing:.12em;text-transform:uppercase;opacity:.7}
.foot-grid ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.foot-grid a{text-decoration:none;opacity:.9}.foot-grid a:hover{text-decoration:underline;opacity:1}
.legal-band{padding-top:24px;font-size:.8rem;line-height:1.6;opacity:.75;max-width:110ch}
@media (max-width:760px){.foot-grid{grid-template-columns:1fr}}

/* Barre d'appel mobile */
.callbar{display:none}
@media (max-width:760px){
  .callbar{display:grid;grid-template-columns:1fr 1fr;gap:10px;position:fixed;left:0;right:0;bottom:0;z-index:55;padding:10px max(12px,env(safe-area-inset-right,0px)) calc(10px + env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));background:color-mix(in srgb,var(--paper) 94%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--rule)}
  .callbar .btn{padding:13px 10px}
  body{padding-bottom:76px}
}

/* Fenêtre de rappel */
dialog{border:0;border-radius:20px;padding:0;max-width:min(560px,calc(100vw - 32px));width:100%;background:var(--card);color:var(--ink);box-shadow:0 20px 60px rgba(0,0,0,.3)}
dialog::backdrop{background:rgba(14,22,37,.55);backdrop-filter:blur(2px)}
.dlg{padding:clamp(22px,4vw,34px);display:grid;gap:18px;max-height:calc(100vh - 40px);overflow:auto}
.dlg-head{display:flex;justify-content:space-between;gap:16px;align-items:start}
.x{background:none;border:1px solid var(--rule);border-radius:50%;width:38px;height:38px;cursor:pointer;color:var(--ink);font-size:1.2rem;flex:none}

/* Cookies */
.cookies{position:fixed;z-index:70;left:max(16px,env(safe-area-inset-left,0px));right:max(16px,env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));max-width:560px;background:var(--card);border:1px solid var(--rule);border-radius:16px;box-shadow:var(--shadow);padding:18px 20px;display:grid;gap:12px;font-size:.92rem}
.cookies .btn{padding:10px 18px}
@media (max-width:760px){.cookies{bottom:calc(88px + env(safe-area-inset-bottom,0px))}}

/* Pages réglementaires */
.legal h2{font-size:var(--step-2);margin-top:1.4em}
.legal table{border-collapse:collapse;width:100%;font-size:.95rem}
.legal th,.legal td{text-align:left;vertical-align:top;padding:12px 14px;border-bottom:1px solid var(--rule)}
.legal th{width:30%;font-weight:600}
.tablewrap{overflow-x:auto}

/* Apparition douce */
.reveal{transition:opacity .7s ease,transform .7s ease}
.js .reveal.pre{opacity:.001;transform:translateY(16px)}
@media (prefers-reduced-motion:reduce){:root:not(.mm-force) *{transition:none!important;animation:none!important;scroll-behavior:auto!important}:root.js:not(.mm-force) .reveal.pre{opacity:1;transform:none}}

/* Boutons à texte long : autoriser le retour à la ligne */
.btn--wrap{white-space:normal;text-align:left;line-height:1.3}
.split>*,.five>*,.about>*,.callback>*,.hero-grid>*{min-width:0}
[hidden]{display:none!important}
.go svg{width:18px;height:18px;flex:none}
.site-foot .logo{height:62px}
@media (min-width:761px){.cookies{left:auto;right:max(24px,env(safe-area-inset-right,0px));bottom:calc(24px + env(safe-area-inset-bottom,0px));max-width:420px}}
legend{padding:0}
@media (max-width:860px){.hero-grid{grid-template-columns:1fr}.hero .portrait{max-width:320px;aspect-ratio:4/4.6}}
/* Playfair : chiffres alignés (pas de chiffres « elzéviriens ») pour les compteurs, prix et simulateur */
.counter .n,.price .big,.calc b,.sim-figs b,.ctrl output,.form-chip b{font-variant-numeric:lining-nums tabular-nums}
/* La version web de Playfair n'a que des chiffres bas de casse : les gros chiffres passent en police de texte */
.counter .n,.price .big,.calc b,.sim-figs b,.ctrl output{font-family:var(--f-body);font-weight:300;letter-spacing:-.02em}
.steps li::before{font-family:var(--f-body);font-weight:300}
.price .big small{letter-spacing:0;font-weight:400}
/* Titres Playfair plus gras (demande de Gautier, 25/10) */
h1,h2,h3,.door h3,.portrait figcaption b{font-weight:600}
h1 em,h2 em,h3 em,.rot>span{font-weight:600}
.quote{font-weight:500}

/* ===== Thèmes de couleurs à l'essai (maquette uniquement) ===== */
:root[data-palette]{color-scheme:light}
:root[data-palette="sable"]{ /* Sable & bleu nuit */
  --paper:#F5F0E7;--paper-2:#EAE1D1;--card:#FCFAF6;--ink:#15223A;--ink-soft:#4E5668;--rule:#D9CCB6;
  --accent:#8A6A3D;--accent-soft:#EFE4D0;--on-accent:#FFFFFF;--gold:#A8844D;--warn:#7A5A00;--warn-bg:#FFF1C2}
:root[data-palette="ivoire"]{ /* Ivoire, noir & or */
  --paper:#FAF7F1;--paper-2:#F0EADF;--card:#FFFFFF;--ink:#1B1915;--ink-soft:#4B463F;--rule:#E1D8C9;
  --accent:#1B1915;--accent-soft:#EDE3D2;--on-accent:#F3E6CC;--gold:#B08A4E;--warn:#7A5A00;--warn-bg:#FFF1C2}
:root[data-palette="olive"]{ /* Lin & olive */
  --paper:#F3F1EA;--paper-2:#E7E5DA;--card:#FBFAF6;--ink:#22261F;--ink-soft:#4F5449;--rule:#D3D0C1;
  --accent:#55633A;--accent-soft:#E2E6D5;--on-accent:#FFFFFF;--gold:#A1873F;--warn:#7A5A00;--warn-bg:#FFF1C2}
:root[data-palette="bordeaux"]{ /* Pierre & bordeaux */
  --paper:#F5F1EE;--paper-2:#EBE3DE;--card:#FCFAF9;--ink:#2A1E22;--ink-soft:#5A4A4F;--rule:#DCCFC8;
  --accent:#7A2D3B;--accent-soft:#F0DEE0;--on-accent:#FFFFFF;--gold:#A9824B;--warn:#7A5A00;--warn-bg:#FFF1C2}
:root[data-palette="ardoise"]{ /* Greige & bleu ardoise */
  --paper:#F2F1EE;--paper-2:#E6E4DF;--card:#FBFBF9;--ink:#1E2833;--ink-soft:#4F5A66;--rule:#D3D0C8;
  --accent:#2F4A62;--accent-soft:#DDE5EC;--on-accent:#FFFFFF;--gold:#A3864F;--warn:#7A5A00;--warn-bg:#FFF1C2}
:root[data-palette="nuit"]{ /* Bleu nuit & champagne (version sombre) */
  --paper:#101A2B;--paper-2:#16233A;--card:#1A2944;--ink:#F1EBDD;--ink-soft:#B4BCC9;--rule:#2C3B57;
  --accent:#D9BF8C;--accent-soft:#2A3550;--on-accent:#101A2B;--gold:#D9BF8C;--warn:#FFD970;--warn-bg:#3A3110;color-scheme:dark}

.palette{position:fixed;z-index:75;left:max(16px,env(safe-area-inset-left,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));background:#fff;color:#1b1915;border:1px solid #d8d2c6;border-radius:14px;box-shadow:0 12px 32px -12px rgba(0,0,0,.35);padding:12px 14px;display:grid;gap:8px;font:500 .85rem/1.3 var(--f-body);max-width:calc(100vw - 32px)}
.palette p{margin:0;font-weight:700;letter-spacing:.04em}
.palette .sw{display:flex;flex-wrap:wrap;gap:6px}
.palette button{display:flex;align-items:center;gap:8px;border:1.5px solid #e2ddd3;background:#fff;color:#1b1915;border-radius:999px;padding:5px 10px 5px 5px;cursor:pointer;font:inherit}
.palette button[aria-pressed="true"]{border-color:#1b1915}
.palette i{display:inline-flex;width:30px;height:18px;border-radius:999px;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}
.palette i b{flex:1}
@media (max-width:760px){.palette{bottom:calc(88px + env(safe-area-inset-bottom,0px))}.palette button span{display:none}.palette button{padding:5px}}
:root[data-palette="ivoire"] .rot>span,:root[data-palette="ivoire"] h2 em,:root[data-palette="ivoire"] h3 em,:root[data-palette="ivoire"] .door .go,:root[data-palette="ivoire"] .tag{color:var(--gold)}


/* ===== Thème retenu par Gautier (25/10, 2h) : Greige & ardoise ===== */
:root,:root[data-theme]{color-scheme:light;--paper:#F6F2EA;--paper-2:#EDE6D8;--card:#FBF9F4;--ink:#1E2833;--ink-soft:#4F5A66;--rule:#D8CEBC;
  --accent:#364A5B;--accent-soft:#DFE5EA;--on-accent:#FFFFFF;--gold:#A3864F}
:root[data-palette="v1"]{--paper:#F6F2EA;--paper-2:#EDE6D8;--card:#FBF9F4;--ink:#14233B;--ink-soft:#4C566A;--rule:#D8CEBC;--accent:#1E4A3C;--accent-soft:#DCE7E0;--on-accent:#FFFFFF;--gold:#A47A36}

/* Bloc d'avis Google */
.reviews{background:var(--card);border-block:1px solid var(--rule)}
.rv-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:24px;margin-bottom:34px}
.rv-score{display:flex;gap:16px;align-items:center;text-decoration:none;background:var(--paper);border:1px solid var(--rule);border-radius:16px;padding:16px 22px;transition:box-shadow .2s,transform .2s}
.rv-score:hover{box-shadow:var(--shadow);transform:translateY(-2px)}
.rv-score .g{width:40px;height:40px}
.rv-score div{display:grid;grid-template-columns:auto auto;gap:0 12px;align-items:center}
.rv-score .big{font-family:var(--f-display);font-weight:700;font-size:2.6rem;line-height:1;grid-row:span 2}
.rv-score .stars{font-size:1.15rem}
.rv-score .cnt{font-size:.9rem;color:var(--ink-soft)}
.rv-track{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(300px,calc((100% - 40px)/3));gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 2px 18px;scrollbar-width:thin}
.rv{scroll-snap-align:start;background:var(--paper);border:1px solid var(--rule);border-radius:16px;padding:22px 22px 24px;display:grid;gap:12px;align-content:start}
.rv header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center}
.rv .av{width:42px;height:42px;border-radius:50%;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;font-weight:700;font-size:.95rem}
.rv header b{display:block;font-weight:600}
.rv header span{font-size:.85rem;color:var(--ink-soft)}
.rv .g{width:20px;height:20px}
.rv .stars{margin:0;font-size:1.05rem}
.rv .txt{color:var(--ink);line-height:1.6;display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical;overflow:hidden}
.rv-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:10px}
.rv-nav{display:flex;gap:10px}
.rv-nav button{width:46px;height:46px;border-radius:50%;border:1.5px solid var(--ink);background:transparent;color:var(--ink);font-size:1.6rem;line-height:1;cursor:pointer;transition:background .2s,color .2s}
.rv-nav button:hover{background:var(--ink);color:var(--paper)}
@media (max-width:900px){.rv-track{grid-auto-columns:minmax(270px,82%)}}

/* Note Google, en tête de la liste du héros */
.checks .g-line a{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);padding:6px 14px 6px 8px;margin-left:-8px;border-radius:999px;transition:background .2s}
.checks .g-line a:hover{background:var(--card);box-shadow:0 1px 2px rgba(20,35,59,.06),0 6px 16px -8px rgba(20,35,59,.25)}
.checks .g-line .g{width:22px;height:22px;flex:none}
.checks .g-line .gl-score{font-family:var(--f-display);font-weight:700;font-size:1.3rem;line-height:1}
.checks .g-line .stars{font-size:1rem;letter-spacing:1px;line-height:1}
.checks .g-line .gl-count{font-weight:600;padding-left:10px;border-left:1px solid var(--rule);text-decoration:underline;text-decoration-color:var(--rule);text-underline-offset:4px}
.checks .g-line a:hover .gl-count{text-decoration-color:currentColor}
.checks .g-line{margin-bottom:4px}
.checks .g-line a{margin-left:0;padding:9px 18px 9px 12px;gap:12px;background:var(--card);border:1px solid var(--rule);box-shadow:0 1px 2px rgba(20,35,59,.05),0 8px 20px -12px rgba(20,35,59,.25)}
.checks .g-line a:hover{transform:translateY(-1px)}
.checks .g-line .g{width:24px;height:24px}
.checks .g-line .gl-score{font-size:1.55rem}
.checks .g-line .stars{font-size:1.15rem}
.checks .g-line .gl-count{text-decoration:none;color:var(--ink-soft);font-weight:500}
@media (max-width:420px){.checks .g-line a{gap:9px;padding:8px 14px 8px 10px}.checks .g-line .gl-score{font-size:1.3rem}.checks .g-line .stars{font-size:.95rem}.checks .g-line .gl-count{padding-left:8px;font-size:.92rem}}
:root[data-palette="greige"]{--paper:#F2F1EE;--paper-2:#E6E4DF;--card:#FBFBF9;--rule:#D3D0C8}

/* ===== Typo d'accent : petit libellé, accroche, boutons (25/10, à l'essai — esprit architecture) ===== */
/* 1 — Tenor Sans (par défaut) : humaniste à empattements discrets, très « immobilier de prestige » */
.eyebrow{font-family:"Tenor Sans",var(--f-body);font-weight:400;font-size:.86rem;letter-spacing:.24em;text-transform:uppercase;font-style:normal}
.lede{font-family:"Tenor Sans",var(--f-body);font-style:normal;font-size:clamp(1.12rem,1.04rem + .35vw,1.3rem);line-height:1.65;letter-spacing:.01em}
.btn{font-family:"Tenor Sans",var(--f-body);font-weight:400;font-size:.86rem;letter-spacing:.16em;text-transform:uppercase}
/* 2 — Marcellus : inspirée des inscriptions romaines gravées dans la pierre */
:root[data-typo="marcellus"] .eyebrow{font-family:"Marcellus SC",serif;font-size:.95rem;letter-spacing:.2em;text-transform:none}
:root[data-typo="marcellus"] .lede{font-family:"Marcellus",serif;font-size:clamp(1.15rem,1.06rem + .4vw,1.35rem);line-height:1.6;letter-spacing:0}
:root[data-typo="marcellus"] .btn{font-family:"Marcellus SC",serif;font-size:.95rem;letter-spacing:.14em;text-transform:none}
/* 3 — Jost : géométrique, esprit Bauhaus / Futura */
:root[data-typo="jost"] .eyebrow{font-family:"Jost",sans-serif;font-weight:500;font-size:.8rem;letter-spacing:.3em}
:root[data-typo="jost"] .lede{font-family:"Jost",sans-serif;font-weight:300;font-size:clamp(1.2rem,1.1rem + .45vw,1.45rem);line-height:1.55;letter-spacing:0}
:root[data-typo="jost"] .btn{font-family:"Jost",sans-serif;font-weight:500;font-size:.84rem;letter-spacing:.18em}
/* 4 — Josefin Sans : élégance Art déco, années 1920 */
:root[data-typo="josefin"] .eyebrow{font-family:"Josefin Sans",sans-serif;font-weight:600;font-size:.84rem;letter-spacing:.26em}
:root[data-typo="josefin"] .lede{font-family:"Josefin Sans",sans-serif;font-weight:300;font-size:clamp(1.22rem,1.12rem + .45vw,1.48rem);line-height:1.5;letter-spacing:0}
:root[data-typo="josefin"] .btn{font-family:"Josefin Sans",sans-serif;font-weight:600;font-size:.86rem;letter-spacing:.16em;padding-top:15px}
/* 5 — Italiana + Jost : accroche très fine et haute, libellés et boutons géométriques */
:root[data-typo="italiana"] .eyebrow{font-family:"Jost",sans-serif;font-weight:500;font-size:.8rem;letter-spacing:.3em}
:root[data-typo="italiana"] .lede{font-family:"Italiana",serif;font-size:clamp(1.45rem,1.3rem + .7vw,1.9rem);line-height:1.35;letter-spacing:.01em;color:var(--ink)}
:root[data-typo="italiana"] .btn{font-family:"Jost",sans-serif;font-weight:500;font-size:.84rem;letter-spacing:.18em}
/* Avenir (avant) */
:root[data-typo="avenir"] .eyebrow{font-family:var(--f-body);font-weight:600;font-size:var(--step--1);letter-spacing:.14em}
:root[data-typo="avenir"] .lede{font-family:var(--f-body);font-size:var(--step-1);line-height:1.5;letter-spacing:0}
:root[data-typo="avenir"] .btn{font-family:var(--f-body);font-weight:600;font-size:.98rem;letter-spacing:0;text-transform:none}
/* 6 — Esprit Sotheby's (par défaut) : grotesque « News Gothic » en capitales espacées.
   Sotheby's utilise Benton Sans (payante) ; News Cycle et Libre Franklin en sont des équivalents gratuits proches. */
.eyebrow{font-family:"News Cycle",var(--f-body);font-weight:400;font-size:.95rem;letter-spacing:.14em;text-transform:uppercase}
.lede{font-family:"News Cycle",var(--f-body);font-size:clamp(1.18rem,1.08rem + .4vw,1.38rem);line-height:1.55;letter-spacing:.005em}
.btn{font-family:"News Cycle",var(--f-body);font-weight:700;font-size:.92rem;letter-spacing:.12em;text-transform:uppercase}
.nav a{font-family:"News Cycle",var(--f-body);font-weight:400;font-size:.9rem;letter-spacing:.12em;text-transform:uppercase}
:root[data-typo="tenor"] .eyebrow{font-family:"Tenor Sans",var(--f-body);font-size:.86rem;letter-spacing:.24em}
:root[data-typo="tenor"] .lede{font-family:"Tenor Sans",var(--f-body);font-size:clamp(1.12rem,1.04rem + .35vw,1.3rem);line-height:1.65}
:root[data-typo="tenor"] .btn{font-family:"Tenor Sans",var(--f-body);font-weight:400;font-size:.86rem;letter-spacing:.16em}
:root[data-typo="franklin"] .eyebrow{font-family:"Libre Franklin",sans-serif;font-weight:500;font-size:.82rem;letter-spacing:.16em}
:root[data-typo="franklin"] .lede{font-family:"Libre Franklin",sans-serif;font-weight:400;font-size:clamp(1.1rem,1.02rem + .35vw,1.28rem);line-height:1.6;letter-spacing:0}
:root[data-typo="franklin"] .btn{font-family:"Libre Franklin",sans-serif;font-weight:600;font-size:.84rem;letter-spacing:.12em}
:root[data-typo="franklin"] .nav a{font-family:"Libre Franklin",sans-serif;font-weight:500;font-size:.84rem;letter-spacing:.12em}
:root[data-typo]:not([data-typo="franklin"]):not([data-typo="franklin-serif"]) .nav a{font-family:var(--f-body);font-size:.95rem;letter-spacing:0;text-transform:none}
:root[data-typo="franklin-serif"] .eyebrow{font-family:"Libre Franklin",sans-serif;font-weight:500;font-size:.82rem;letter-spacing:.16em}
:root[data-typo="franklin-serif"] .lede{font-family:"Newsreader",Georgia,serif;font-weight:400;font-size:clamp(1.22rem,1.12rem + .4vw,1.42rem);line-height:1.6;letter-spacing:0}
:root[data-typo="franklin-serif"] .btn{font-family:"Libre Franklin",sans-serif;font-weight:600;font-size:.84rem;letter-spacing:.12em}
:root[data-typo="franklin-serif"] .nav a{font-family:"Libre Franklin",sans-serif;font-weight:500;font-size:.84rem;letter-spacing:.12em;text-transform:uppercase}
.palette.typo{bottom:calc(112px + env(safe-area-inset-bottom,0px))}
.palette.typo button{padding:6px 12px}
@media (max-width:760px){.palette.typo{bottom:calc(150px + env(safe-area-inset-bottom,0px))}.palette.typo button span{display:inline!important}}

/* Filigrane de fond (maquette : à l'essai) */
:root[data-fil="losanges"]{--fil:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56'%3E%3Cpath d='M28 23 L33 28 L28 33 L23 28 Z' fill='none' stroke='%231E2833' stroke-opacity='.09' stroke-width='.8'/%3E%3C/svg%3E")}
:root[data-fil="plan"]{--fil:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cpath d='M0 .5H160M.5 0V160' stroke='%231E2833' stroke-opacity='.055' stroke-width='1'/%3E%3Cpath d='M0 80.5H160M80.5 0V160' stroke='%231E2833' stroke-opacity='.03' stroke-width='1' stroke-dasharray='2 4'/%3E%3C/svg%3E")}
:root[data-fil="courbes"]{--fil:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='480' height='240'%3E%3Cpath d='M0 30 Q60 16 120 30 T240 30 T360 30 T480 30' fill='none' stroke='%231E2833' stroke-opacity='0.06' stroke-width='1'/%3E%3Cpath d='M0 90 Q60 81 120 90 T240 90 T360 90 T480 90' fill='none' stroke='%231E2833' stroke-opacity='0.045' stroke-width='1'/%3E%3Cpath d='M0 150 Q60 134 120 150 T240 150 T360 150 T480 150' fill='none' stroke='%231E2833' stroke-opacity='0.06' stroke-width='1'/%3E%3Cpath d='M0 210 Q60 203 120 210 T240 210 T360 210 T480 210' fill='none' stroke='%231E2833' stroke-opacity='0.04' stroke-width='1'/%3E%3C/svg%3E")}
:root[data-fil] body{background-image:var(--fil)}
.palette.fil{left:auto;right:max(16px,env(safe-area-inset-right,0px))}
.palette.fil button{padding:6px 12px}
@media (max-width:760px){.palette.fil button span{display:inline!important}}

/* Mots en italique des titres : couleur du thème */
h1 em,h2 em,h3 em{color:var(--accent)}

:root[data-fil="taches"]{--fil:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1400' height='1100'%3E%3Cdefs%3E%3Cfilter id='f' x='-20%' y='-20%' width='140%' height='140%'%3E%3CfeGaussianBlur stdDeviation='3'/%3E%3C/filter%3E%3C/defs%3E%3Cg fill='%232F4A62' fill-opacity='.05' filter='url%28%23f%29'%3E%3Cpath d='M349 200C351 236 368 290 342 312C315 334 230 345 192 334C154 323 129 276 113 245C97 214 81 175 95 148C109 122 158 95 198 86C237 78 306 79 331 98C357 117 348 164 349 200Z'/%3E%3Cpath d='M1218 330C1220 357 1192 405 1166 416C1140 427 1089 404 1062 394C1035 385 1020 378 1004 359C987 341 954 306 962 285C970 264 1020 238 1052 233C1084 228 1127 238 1155 255C1183 271 1216 303 1218 330Z'/%3E%3Cpath d='M785 760C790 791 779 848 749 869C719 889 650 891 605 883C560 875 499 853 478 822C456 791 454 724 476 697C498 670 571 662 611 660C652 657 688 666 717 683C746 699 780 729 785 760Z'/%3E%3Cpath d='M1297 900C1292 919 1280 933 1264 944C1248 955 1219 969 1201 966C1183 963 1162 940 1155 925C1147 910 1151 892 1159 876C1166 861 1179 841 1201 834C1223 826 1273 819 1289 831C1305 842 1301 881 1297 900Z'/%3E%3Cpath d='M235 880C238 894 225 919 210 930C194 940 163 947 142 944C120 940 90 926 81 910C72 895 79 869 88 852C98 836 123 813 141 812C158 812 176 837 192 848C208 859 232 866 235 880Z'/%3E%3Cpath d='M890 120C891 134 878 157 864 164C850 172 822 171 807 166C792 162 777 148 773 138C769 128 776 117 781 105C786 93 793 73 805 69C818 65 843 75 857 83C871 92 889 106 890 120Z'/%3E%3C/g%3E%3C/svg%3E")}
:root[data-fil="taches-or"]{--fil:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1400' height='1100'%3E%3Cdefs%3E%3Cfilter id='f' x='-20%' y='-20%' width='140%' height='140%'%3E%3CfeGaussianBlur stdDeviation='3'/%3E%3C/filter%3E%3C/defs%3E%3Cg fill='%23A3864F' fill-opacity='.09' filter='url%28%23f%29'%3E%3Cpath d='M349 200C351 236 368 290 342 312C315 334 230 345 192 334C154 323 129 276 113 245C97 214 81 175 95 148C109 122 158 95 198 86C237 78 306 79 331 98C357 117 348 164 349 200Z'/%3E%3Cpath d='M1218 330C1220 357 1192 405 1166 416C1140 427 1089 404 1062 394C1035 385 1020 378 1004 359C987 341 954 306 962 285C970 264 1020 238 1052 233C1084 228 1127 238 1155 255C1183 271 1216 303 1218 330Z'/%3E%3Cpath d='M785 760C790 791 779 848 749 869C719 889 650 891 605 883C560 875 499 853 478 822C456 791 454 724 476 697C498 670 571 662 611 660C652 657 688 666 717 683C746 699 780 729 785 760Z'/%3E%3Cpath d='M1297 900C1292 919 1280 933 1264 944C1248 955 1219 969 1201 966C1183 963 1162 940 1155 925C1147 910 1151 892 1159 876C1166 861 1179 841 1201 834C1223 826 1273 819 1289 831C1305 842 1301 881 1297 900Z'/%3E%3Cpath d='M235 880C238 894 225 919 210 930C194 940 163 947 142 944C120 940 90 926 81 910C72 895 79 869 88 852C98 836 123 813 141 812C158 812 176 837 192 848C208 859 232 866 235 880Z'/%3E%3Cpath d='M890 120C891 134 878 157 864 164C850 172 822 171 807 166C792 162 777 148 773 138C769 128 776 117 781 105C786 93 793 73 805 69C818 65 843 75 857 83C871 92 889 106 890 120Z'/%3E%3C/g%3E%3C/svg%3E")}
/* Boîte de réglages de la maquette (couleur, typo, filigrane) */
.mm-box{position:fixed;z-index:80;left:max(16px,env(safe-area-inset-left,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));font:500 .85rem/1.3 var(--f-body);color:#1b1915}
.mm-toggle{display:inline-flex;align-items:center;gap:8px;background:#fff;color:#1b1915;border:1px solid #d8d2c6;border-radius:999px;padding:9px 14px;box-shadow:0 8px 24px -10px rgba(0,0,0,.35);cursor:pointer;font:600 .82rem/1 var(--f-body);letter-spacing:.02em}
.mm-panel{position:absolute;left:0;bottom:calc(100% + 10px);width:min(380px,calc(100vw - 32px));max-height:min(70vh,560px);overflow:auto;background:#fff;border:1px solid #d8d2c6;border-radius:14px;box-shadow:0 16px 40px -14px rgba(0,0,0,.4);padding:14px;display:grid;gap:14px}
.mm-panel[hidden]{display:none!important}
.mm-box .palette{position:static;box-shadow:none;border:0;border-radius:0;padding:0;max-width:none;background:none}
.mm-box .palette+.palette{border-top:1px solid #eee7da;padding-top:12px}
.mm-box .palette button span{display:inline!important}
@media (max-width:760px){.mm-box{bottom:calc(84px + env(safe-area-inset-bottom,0px))}}

:root[data-fil="logo"]{--fil:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='66.5 -0.5 31 31'%3E%3Cdefs%3E%3Cmask id='m'%3E%3Crect x='60' y='-5' width='45' height='45' fill='white'/%3E%3Cpath d='M76.36 15.19 80.68 18a.74.74 0 0 0 .81 0l6.09-4a.75.75 0 0 0 .35-.63V13a.75.75 0 0 0-1.15-.64l-5.61 3.46a.76.76 0 0 1-.77 0l-6.2-3.52a.75.75 0 0 0-1.12.65v8.93a.76.76 0 0 0 .77.75h.61a.75.75 0 0 0 .74-.75v-6.06a.75.75 0 0 1 1.16-.63Z' fill='black'/%3E%3Cpath d='M73.78 9.6v.23a.74.74 0 0 0 .35.62l6.65 4.16a.74.74 0 0 0 .81 0l6.59-4.29a.75.75 0 0 1 1.16.63v11.3a.71.71 0 0 0 .71.71.71.71 0 0 0 .71-.71V8a.75.75 0 0 0-1.16-.63l-8 5.21a.77.77 0 0 1-.8 0L74.93 9a.75.75 0 0 0-1.15.6Z' fill='black'/%3E%3C/mask%3E%3C/defs%3E%3Cpath d='M96.77 14.85c0 8.201-6.649 14.85-14.85 14.85s-14.85-6.649-14.85-14.85S73.719 0 81.92 0s14.85 6.649 14.85 14.85z' fill='%231E2833' fill-opacity='.045' mask='url%28%23m%29'/%3E%3C/svg%3E")}
:root[data-fil="logo-or"]{--fil:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='66.5 -0.5 31 31'%3E%3Cdefs%3E%3Cmask id='m'%3E%3Crect x='60' y='-5' width='45' height='45' fill='white'/%3E%3Cpath d='M76.36 15.19 80.68 18a.74.74 0 0 0 .81 0l6.09-4a.75.75 0 0 0 .35-.63V13a.75.75 0 0 0-1.15-.64l-5.61 3.46a.76.76 0 0 1-.77 0l-6.2-3.52a.75.75 0 0 0-1.12.65v8.93a.76.76 0 0 0 .77.75h.61a.75.75 0 0 0 .74-.75v-6.06a.75.75 0 0 1 1.16-.63Z' fill='black'/%3E%3Cpath d='M73.78 9.6v.23a.74.74 0 0 0 .35.62l6.65 4.16a.74.74 0 0 0 .81 0l6.59-4.29a.75.75 0 0 1 1.16.63v11.3a.71.71 0 0 0 .71.71.71.71 0 0 0 .71-.71V8a.75.75 0 0 0-1.16-.63l-8 5.21a.77.77 0 0 1-.8 0L74.93 9a.75.75 0 0 0-1.15.6Z' fill='black'/%3E%3C/mask%3E%3C/defs%3E%3Cpath d='M96.77 14.85c0 8.201-6.649 14.85-14.85 14.85s-14.85-6.649-14.85-14.85S73.719 0 81.92 0s14.85 6.649 14.85 14.85z' fill='%23A3864F' fill-opacity='.09' mask='url%28%23m%29'/%3E%3C/svg%3E")}
:root[data-fil^="logo"] body{background-repeat:no-repeat;background-size:min(1300px,120vw) auto;background-position:right -22vw center;background-attachment:fixed}

.mm-range{display:grid;gap:6px;margin-top:4px}.mm-range input{width:100%;accent-color:#1b1915}

/* Premier plan / arrière-plan : les bandeaux pleins passent devant le filigrane */
.quotes{border-block:0;background:var(--accent);color:var(--on-accent);padding-block:34px;position:relative;z-index:1}
.quotes .quote small{color:color-mix(in srgb,var(--on-accent) 72%,transparent)}
.counters{border-top:0}
.band--tint,.reviews{position:relative;z-index:1}

:root[data-palette="ardoise-avant"]{--accent:#2F4A62;--accent-soft:#DDE5EC}
:root[data-palette="ardoise-gris"]{--accent:#3A4957;--accent-soft:#E0E5E9}

/* Bandeau blanc des chiffres, au premier plan */
.stats-band{background:var(--accent);color:var(--on-accent);position:relative;z-index:1;padding-block:8px 28px}
.stats-band .counter{border-color:color-mix(in srgb,var(--on-accent) 22%,transparent)}
.stats-band .counter .l{color:color-mix(in srgb,var(--on-accent) 75%,transparent)}
.stats-band .prov{color:var(--ink)}
.quotes+.stats-band .wrap{border-top:1px solid color-mix(in srgb,var(--on-accent) 18%,transparent)}
.stats-kicker{margin:0;padding-top:30px;text-align:center;font-family:"Libre Franklin",var(--f-body);font-weight:500;font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:color-mix(in srgb,var(--on-accent) 75%,transparent)}
.stats-kicker b{color:var(--on-accent);font-weight:600}
.stats-note{margin:14px 0 0;text-align:center;font-size:.72rem;color:color-mix(in srgb,var(--on-accent) 55%,transparent)}
.quotes+.stats-band .wrap{border-top:1px solid color-mix(in srgb,var(--on-accent) 18%,transparent)}
.stats-band .counters{margin-top:14px}
.partner{display:grid;justify-items:center;gap:10px;margin-top:22px}
.partner-btn{display:inline-flex;align-items:center;gap:12px;padding:10px 18px;border:1px solid color-mix(in srgb,var(--on-accent) 35%,transparent);border-radius:3px;color:var(--on-accent);text-decoration:none;font-family:"Libre Franklin",var(--f-body);font-weight:600;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;transition:background .2s ease,border-color .2s ease}
.partner-btn img{height:20px;width:auto;display:block}
.partner-btn svg{width:16px;height:16px;transition:transform .2s ease}
.partner-btn span{padding-left:12px;border-left:1px solid color-mix(in srgb,var(--on-accent) 30%,transparent)}
.partner-btn:hover{background:color-mix(in srgb,var(--on-accent) 10%,transparent);border-color:var(--on-accent)}
.partner-btn:hover svg{transform:translateX(3px)}
.stats-band .stats-note{margin:0}
.partner-btn{padding:0;gap:0}
.partner-btn a{display:inline-flex;align-items:center;gap:10px;padding:10px 18px;color:inherit;text-decoration:none;transition:background .2s ease}
.partner-btn .pb-go{border-left:1px solid color-mix(in srgb,var(--on-accent) 30%,transparent)}
.partner-btn span{padding-left:0;border-left:0}
.partner-btn a:hover{background:color-mix(in srgb,var(--on-accent) 10%,transparent)}
.partner-btn .pb-go:hover svg{transform:translateX(3px)}
.partner-btn:hover{background:none}
#talence{scroll-margin-top:90px}
/* Bouton partenaire d'un seul tenant : le lien vers Talence reste discret */
.partner-btn .pb-go{border-left:0;padding-left:4px}
.partner-btn .pb-logo{padding-right:8px}
.partner-btn a:hover{background:none}
.partner-btn:hover{background:color-mix(in srgb,var(--on-accent) 10%,transparent)!important;border-color:var(--on-accent)}
/* Bandeau bleu : plus de filets, des losanges dorés pour rythmer */
.quotes+.stats-band .wrap{border-top:0}
.quotes+.stats-band .wrap::before{content:"";display:block;width:8px;height:8px;margin:0 auto;background:var(--gold);transform:rotate(45deg)}
.stats-band .stats-kicker{padding-top:22px}
.stats-band .counter{border:0!important;text-align:center;justify-items:center;position:relative}
.stats-band .counter:not(:last-child)::after{content:"";position:absolute;right:-3px;top:34%;width:6px;height:6px;background:var(--gold);opacity:.75;transform:rotate(45deg)}
@media (max-width:760px){.stats-band .counter:nth-child(2)::after{display:none}}
.stats-band .stats-note{font-size:.6rem;letter-spacing:.02em;color:color-mix(in srgb,var(--on-accent) 45%,transparent)}
/* Bandeau Talence, placé sous les deux portes : plus sobre */
.stats-band{padding-block:44px 34px}
.stats-band .stats-kicker{padding-top:0}
.stats-band .counter .n{font-size:clamp(1.8rem,1.4rem + 1.5vw,2.6rem)}
.stats-band .counter .l{font-size:.85rem}
.stats-band .counters{max-width:900px;margin-inline:auto}
/* Raccord harmonieux : les cartes des portes chevauchent le bandeau Talence, qui se termine par un arc doux */
.band--doors{position:relative;z-index:2;padding-bottom:0}
.band--doors+.stats-band{margin-top:-110px;padding-top:calc(110px + 56px);padding-bottom:64px;border-radius:0 0 50% 50% / 0 0 56px 56px}
.band--doors .door{box-shadow:0 18px 40px -22px rgba(20,30,40,.45)}
@media (max-width:760px){.band--doors+.stats-band{margin-top:-70px;padding-top:calc(70px + 40px);border-radius:0 0 50% 50% / 0 0 28px 28px}}
/* La section suivante remonte sous l'arc : plus de fond visible entre les deux */
.band--doors+.stats-band{z-index:2}
.band--doors+.stats-band+.band{margin-top:-56px;padding-top:calc(clamp(56px,8vw,112px) + 56px)}
@media (max-width:760px){.band--doors+.stats-band+.band{margin-top:-28px;padding-top:calc(56px + 28px)}}
.band--doors{z-index:3}

/* ===== Mouvement (25/10, 22h30) : formes, ombres, animations douces ===== */
/* 1. Entrée de l'accroche, en cascade */
@keyframes mmUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes mmIn{from{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:none}}
@keyframes mmShape{from{opacity:0;transform:translate(-22px,-22px)}to{opacity:1;transform:translate(0,0)}}
.js .hero .eyebrow,.js .hero h1,.js .hero .lede,.js .hero .checks,.js .hero .btn-row{animation:mmUp .9s cubic-bezier(.2,.7,.2,1) both}
.js .hero h1{animation-delay:.08s}.js .hero .lede{animation-delay:.2s}.js .hero .checks{animation-delay:.32s}.js .hero .btn-row{animation-delay:.44s}
/* 2. Portrait : une forme ardoise décalée derrière, qui glisse en place puis bouge moins vite que la photo au défilement */
.portrait-wrap{position:relative;isolation:isolate}
.portrait-wrap::before{content:"";position:absolute;inset:26px -22px -22px 26px;border-radius:24px;background:var(--accent);z-index:-1;transform:translateY(calc(var(--sy,0) * .5px))}
.js .portrait-wrap::before{animation:mmShape 1.2s .35s cubic-bezier(.2,.7,.2,1) both}
.js .portrait-wrap .portrait{animation:mmIn 1s .15s cubic-bezier(.2,.7,.2,1) both;box-shadow:0 30px 60px -30px rgba(20,30,40,.55)}
.portrait-wrap .portrait{transform:translateY(calc(var(--sy,0) * -.4px))}
@media (max-width:860px){.portrait-wrap::before{inset:18px -12px -12px 18px}}
/* 3. Le grand M dérive lentement au défilement */
:root[data-fil^="logo"] body{background-position:right -22vw top calc(50% - var(--my,0px))}
/* 4. Cartes : apparition décalée, et elles se soulèvent au survol */
.door{transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s ease,border-color .2s ease}
.door+.door.reveal{transition-delay:.12s}
.door:hover{transform:translateY(-8px);box-shadow:0 34px 60px -30px rgba(20,30,40,.5)}
.door .tag{transition:transform .35s ease}.door:hover .tag{transform:translateX(4px)}
/* 5. Bandeau Talence : les losanges s'allument un à un */
.js .stats-band .counter::after,.js .stats-band:not(.on) .counter::after{transition:transform .6s cubic-bezier(.3,1.6,.5,1),opacity .6s ease}
.js .stats-band:not(.on) .counter::after{transform:rotate(0) scale(0);opacity:0}
.stats-band .counter:nth-child(2)::after{transition-delay:.15s!important}.stats-band .counter:nth-child(3)::after{transition-delay:.3s!important}
.js .stats-band .partner-btn{transition:opacity .8s .4s ease,transform .8s .4s ease}
.js .stats-band:not(.on) .partner-btn{opacity:0;transform:translateY(10px)}
/* 6. « À vos côtés toute l'année » : la ligne se dessine, les points s'allument */
.year::before{transform-origin:left;transition:transform 1.6s cubic-bezier(.3,.7,.2,1)}
.js .year:not(.on)::before{transform:scaleX(0)}
.month::before{transition:transform .5s cubic-bezier(.3,1.6,.5,1),background .5s ease}
.js .year:not(.on) .month::before{transform:scale(0)}
.year .month:nth-child(2)::before{transition-delay:.4s}.year .month:nth-child(3)::before{transition-delay:.8s}.year .month:nth-child(4)::before{transition-delay:1.2s}
@media (max-width:860px){.year::before{transform-origin:top}.js .year:not(.on)::before{transform:scaleY(0)}}
/* 7. Services : léger soulèvement au survol */
.service{transition:transform .3s ease}.service:hover{transform:translateY(-4px)}
@media (prefers-reduced-motion:reduce){:root:not(.mm-force) .portrait-wrap::before,:root:not(.mm-force) .portrait-wrap .portrait{transform:none!important}:root.js:not(.mm-force) .stats-band:not(.on) .counter::after,:root.js:not(.mm-force) .year:not(.on)::before,:root.js:not(.mm-force) .year:not(.on) .month::before{transform:none}:root.js:not(.mm-force) .stats-band:not(.on) .partner-btn{opacity:1;transform:none}}
.portrait-wrap::before{display:none}

/* Réglages animation (maquette) */
.mm-anim{position:fixed;z-index:80;left:max(16px,env(safe-area-inset-left,0px));bottom:calc(62px + env(safe-area-inset-bottom,0px));font:500 .85rem/1.3 var(--f-body);color:#1b1915}
.mm-anim .mm-panel{display:grid;gap:10px;width:min(320px,calc(100vw - 32px))}
.mm-anim .mm-panel p{margin:0}
.mm-anim .mm-act{display:inline-flex;justify-content:center;gap:8px;border:1.5px solid #1b1915;background:#1b1915;color:#fff;border-radius:999px;padding:9px 14px;cursor:pointer;font:600 .85rem/1 var(--f-body)}
.mm-anim label{display:flex;gap:8px;align-items:flex-start;cursor:pointer}
.mm-anim .mm-warn{background:#FFF4D6;border-radius:8px;padding:8px 10px;font-size:.8rem}
@media (max-width:760px){.mm-anim{bottom:calc(130px + env(safe-area-inset-bottom,0px))}}
.mm-anim input[type=checkbox]{width:16px!important;height:16px;flex:none;margin:2px 0 0;padding:0;accent-color:#1b1915}.mm-anim label{text-align:left;font-size:.82rem}
/* « À vos côtés » : le point de janvier « contamine » les suivants, trait par trait */
@keyframes mmPulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 45%,transparent)}100%{box-shadow:0 0 0 12px transparent}}
.year::before{right:calc(25% - 20.5px);background:var(--accent);height:2px;top:14.5px;transform-origin:left;transition:transform 3s linear .4s!important}
.js .year:not(.on)::before{transform:scaleX(0)}
.year .month::before{border-color:var(--rule);background:var(--paper);transition:background .3s ease,border-color .3s ease!important}
.band--tint .year .month::before{background:var(--paper-2)}
.year.on .month::before,:root:not(.js) .year .month::before{background:var(--accent);border-color:var(--accent);animation:mmPulse .9s ease-out both}
.year.on .month:nth-child(1)::before{transition-delay:.05s!important;animation-delay:.05s}
.year.on .month:nth-child(2)::before{transition-delay:1.4s!important;animation-delay:1.4s}
.year.on .month:nth-child(3)::before{transition-delay:2.4s!important;animation-delay:2.4s}
.year.on .month:nth-child(4)::before{transition-delay:3.4s!important;animation-delay:3.4s}
.year .month .when{transition:color .3s ease}
@media (max-width:860px){.year::before{right:auto;left:7px;top:0;bottom:30px;width:2px;height:auto;transform-origin:top}.js .year:not(.on)::before{transform:scaleY(0)}}
@media (prefers-reduced-motion:reduce){:root:not(.mm-force) .year::before{transform:none!important;transition:none!important}:root:not(.mm-force) .year .month::before{background:var(--accent);border-color:var(--accent);animation:none}}
/* Trait de centre à centre (janvier → automne) ; le point grossit quand il est atteint */
@keyframes mmGrow{0%{transform:scale(1)}55%{transform:scale(1.75)}100%{transform:scale(1.45)}}
.year::before{left:7.5px;right:calc(25% - 21px)}
.year.on .month::before,:root:not(.js) .year .month::before{animation:mmPulse .9s ease-out both,mmGrow .6s cubic-bezier(.3,1.4,.5,1) both;transform-origin:center}
.year.on .month:nth-child(1)::before{animation-delay:.05s,.05s}
.year.on .month:nth-child(2)::before{animation-delay:1.4s,1.4s}
.year.on .month:nth-child(3)::before{animation-delay:2.4s,2.4s}
.year.on .month:nth-child(4)::before{animation-delay:3.4s,3.4s}
@media (max-width:860px){.year::before{left:6.5px;right:auto}}
@media (prefers-reduced-motion:reduce){:root:not(.mm-force) .year .month::before{transform:scale(1.45)!important}}
.js .year:not(.on) .month::before{transform:none}
.year{isolation:isolate}.year::before{z-index:0}.year .month{z-index:1}
.year.on .month:nth-child(2)::before{transition-delay:1.3s!important;animation-delay:1.3s,1.3s}
.year.on .month:nth-child(3)::before{transition-delay:2.3s!important;animation-delay:2.3s,2.3s}
.year.on .month:nth-child(4)::before{transition-delay:3.3s!important;animation-delay:3.3s,3.3s}
.month{align-content:start}

/* Bandeau de pictos entre l'accroche et les portes */
.hero{padding-bottom:clamp(24px,3vw,40px)}
.assure{position:relative;z-index:2;padding-block:8px 0}
.assure-list{list-style:none;margin:0;padding:22px 26px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;background:color-mix(in srgb,var(--card) 88%,transparent);backdrop-filter:blur(6px);border-radius:18px;box-shadow:0 20px 50px -34px rgba(20,30,40,.45)}
.assure-list li{display:flex;gap:14px;align-items:center}
.assure .ai{flex:none;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--accent-soft);color:var(--accent);transition:transform .4s cubic-bezier(.3,1.4,.5,1),background .3s ease,color .3s ease}
.assure .ai svg{width:24px;height:24px}
.assure li:hover .ai{transform:translateY(-3px) rotate(-6deg);background:var(--accent);color:var(--on-accent)}
.assure .at{display:grid;gap:2px;line-height:1.25}
.assure .at b{font-family:"Libre Franklin",var(--f-body);font-weight:600;font-size:.86rem;color:var(--ink)}
.assure .at small{font-size:.8rem;color:var(--ink-soft)}
.assure li:nth-child(2){transition-delay:.08s}.assure li:nth-child(3){transition-delay:.16s}.assure li:nth-child(4){transition-delay:.24s}
.assure+.band--doors{padding-top:clamp(48px,6vw,80px)}
@media (max-width:960px){.assure-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.assure-list{grid-template-columns:1fr;padding:18px}}
h1 em,h2 em,h3 em,h1 .rot,h1 .rot>span{font-weight:800}
/* Tout le bloc remonté de 0,5 cm (25/10, 22h50) */
.hero{padding-top:calc(clamp(40px,7vw,96px) - 19px)}
/* Ombre plus marquée sur le haut de la bande de pictos : on la repère dès le premier écran */
.assure-list{box-shadow:0 -12px 28px -14px rgba(20,30,40,.30),0 -2px 6px -3px rgba(20,30,40,.12),0 20px 50px -34px rgba(20,30,40,.45)}

/* Services : liens alignés en bas de colonne, avec un petit picto flèche ; paragraphes justifiés */
.service{display:flex;flex-direction:column;gap:10px}
.service p{margin:0}
.service .svc-go{margin-top:auto;padding-top:8px;display:inline-flex;align-items:center;gap:10px;align-self:flex-start;text-decoration:none!important}
.service .svc-go i{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);transition:background .25s ease,border-color .25s ease,transform .25s ease}
.service .svc-go svg{width:14px;height:14px;transition:transform .25s ease}
.service .svc-go:hover i{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.service .svc-go:hover svg{transform:translateX(2px)}
.service .svc-go:hover span{text-decoration:underline;text-underline-offset:3px}
/* Titres des services sur deux lignes réservées : les paragraphes démarrent tous à la même hauteur */
.service h3{min-height:2.3em;line-height:1.15}
@media (max-width:520px){.service h3{min-height:0}}
/* Cartouches : plus de filet doré, une ombre portée très légère à la place (25/10, 22h57) */
:root{--card-shadow:0 1px 2px rgba(20,30,40,.05),0 8px 24px -14px rgba(20,30,40,.22)}
.portrait figcaption,.door,.callback .card,.box,.sim,.calc div,.form-chip,.compare,.cookies,.rv-score,.rv,.checks .g-line a,.assure-list{border-color:transparent!important}
.callback .card,.box,.sim,.calc div,.form-chip,.compare,.rv-score,.rv,.checks .g-line a{box-shadow:var(--card-shadow)}
.door{box-shadow:var(--card-shadow)}
.band--doors .door{box-shadow:0 1px 2px rgba(20,30,40,.05),0 18px 40px -24px rgba(20,30,40,.35)}
.door:hover{border-color:transparent!important}
.portrait figcaption{box-shadow:0 6px 18px -10px rgba(0,0,0,.35)}
.portrait{border-color:transparent!important}
/* Chiffres Talence en Montserrat Black (900) */
.stats-band .counter .n{font-family:"Montserrat",var(--f-body);font-weight:900;letter-spacing:-.01em}
/* Chiffres Talence : gros et percutants, l'unité « Md€ » en plus petit */
.stats-band .counter .n{font-size:clamp(2.4rem,1.6rem + 2.6vw,3.6rem);line-height:1}
.stats-band .counter .n .u{font-size:.5em;letter-spacing:0;margin-left:.04em}
.stats-band .counters{max-width:1000px}
/* Test : chiffres Talence en Crimson (25/10, 23h33) */
.stats-band .counter .n{font-family:"Crimson Pro",Georgia,serif;font-weight:700;letter-spacing:0;font-variant-numeric:lining-nums tabular-nums;font-size:clamp(2.8rem,1.9rem + 3vw,4.2rem)}
.stats-band .counter .n .u{font-size:.55em}
/* Petit personnage assis sur le rebord entre « À vos côtés » et les avis, les saisons défilent (25/10, 23h40) */
.band--year{position:relative;z-index:3}
.sitter{position:absolute;right:max(5vw,48px);bottom:-88px;width:220px;pointer-events:none}
.sitter svg{display:block;width:100%;height:auto;overflow:visible}
.sitter .p-ink{fill:var(--ink)}.sitter .s-ink{stroke:var(--ink)}
.sitter .p-acc{fill:var(--accent)}.sitter .s-acc{stroke:var(--accent)}
.sitter .p-skin{fill:#E8C2A2}.sitter .p-card{fill:var(--card)}.sitter .p-gold{fill:var(--gold)}
.sitter .p-lid{fill:#C9CED3}.sitter .s-lid{stroke:#fff}
.sitter .p-shoe{fill:#2A2622}
.sitter .sky{fill:var(--accent-soft);animation:mmSky 16s linear infinite}
@keyframes mmSky{0%,22%{fill:#DFE5EA}25%,47%{fill:#E1EADB}50%,72%{fill:#F3E6C6}75%,97%{fill:#EFDCC6}100%{fill:#DFE5EA}}
.sitter .season{opacity:0;animation:mmSeason 16s linear infinite}
.sitter .s-spring{animation-delay:-12s}.sitter .s-summer{animation-delay:-8s}.sitter .s-autumn{animation-delay:-4s}
@keyframes mmSeason{0%{opacity:0}3%,22%{opacity:1}25%,100%{opacity:0}}
.sitter .s-winter circle{fill:#fff;stroke:#B9C3CC;stroke-width:.6}
.sitter .s-spring ellipse{fill:#E9B9B4}
.sitter .s-summer .sun circle{fill:#E8C26A}.sitter .s-summer .rays{stroke:#E8C26A;stroke-width:3;stroke-linecap:round;transform-origin:232px 58px;animation:mmSpin 8s linear infinite}
.sitter .s-autumn path{fill:#C9874A}
.sitter .fall>*{transform-box:fill-box;transform-origin:center;animation:mmFall 3.6s linear infinite}
.sitter .fall>*:nth-child(2){animation-delay:-1.2s;animation-duration:4.2s}.sitter .fall>*:nth-child(3){animation-delay:-2.1s}.sitter .fall>*:nth-child(4){animation-delay:-.6s;animation-duration:3.1s}.sitter .fall>*:nth-child(5){animation-delay:-2.8s;animation-duration:4.6s}.sitter .fall>*:nth-child(6){animation-delay:-1.7s}
@keyframes mmFall{0%{transform:translate(0,-10px) rotate(0);opacity:0}15%{opacity:1}85%{opacity:1}100%{transform:translate(14px,110px) rotate(200deg);opacity:0}}
@keyframes mmSpin{to{transform:rotate(360deg)}}
.sitter .leg{transform-box:fill-box;transform-origin:50% 4px;animation:mmSwing 2.4s ease-in-out infinite}
.sitter .l2{animation-delay:-1.2s}
@keyframes mmSwing{0%,100%{transform:rotate(7deg)}50%{transform:rotate(-7deg)}}
.sitter .laptop{animation:mmType 1.6s ease-in-out infinite}
@keyframes mmType{0%,100%{transform:translateY(0)}50%{transform:translateY(-1px)}}
@media (max-width:860px){.sitter{width:150px;bottom:-60px;right:16px}}
@media (prefers-reduced-motion:reduce){:root:not(.mm-force) .sitter *{animation:none!important}:root:not(.mm-force) .sitter .s-autumn{opacity:1}}
.sitter{width:260px;bottom:-104px}
.sitter .leg{transform-origin:50% 2px}
@media (max-width:860px){.sitter{width:170px;bottom:-68px}}
/* Personnage adulte : costume anthracite, chemise blanche, barbe (25/10, 23h40) */
.sitter .p-suit{fill:#2E3742}.sitter .s-suit{stroke:#2E3742}
.sitter .p-lapel{fill:#262E37}.sitter .s-crease{stroke:#3B4552;stroke-width:1.2;fill:none}
.sitter .p-shirt{fill:#F7F5F0}.sitter .p-tie{fill:var(--accent)}
.sitter .p-skin{fill:#E6BE9C}.sitter .p-skin2{fill:#D9AD8A}
.sitter .p-hair{fill:#231C17}.sitter .s-hair{stroke:#231C17}
.sitter .p-beard{fill:#2D241E}.sitter .s-beard{stroke:#2D241E}.sitter .s-nose{stroke:#B98C6C}
.sitter .p-shoe{fill:#5B3A27}.sitter .s-sole{stroke:#2A1C14;stroke-width:2;stroke-linecap:round}.sitter .p-sock{fill:#1E2530}
.sitter .p-lid{fill:#C5CBD1}.sitter .p-lid-hi{fill:#D9DEE3}
/* Été et automne : même teinte que le grand M en arrière-plan */
@keyframes mmSky{0%,22%{fill:#DFE5EA}25%,47%{fill:#E1EADB}50%,97%{fill:#E0DED8}100%{fill:#DFE5EA}}
.sitter .p-side{fill:#262E38}
/* Plantes saisonnières sur le rebord (remplacent le personnage, 25/10 23h47) */
.plants .br{fill:none;stroke:#6B4B36;stroke-linecap:round}
.plants .pot{fill:var(--accent)}.plants .pot-rim{fill:#2C3D4C}.plants .pot2{fill:#B9A58C}
.plants .snowcap{fill:#fff}.plants .flake{fill:#fff;stroke:#B9C3CC;stroke-width:.6}
.plants .lv-sp1{fill:#A9C79A}.plants .lv-sp2{fill:#BFD6AF}.plants .bloom{fill:#EBB7B4}
.plants .lv-su1{fill:#6E9460}.plants .lv-su2{fill:#7FA56E}.plants .lv-su3{fill:#5E8352}
.plants .lv-au1{fill:#D28B47}.plants .lv-au2{fill:#C2713A}.plants .lv-au3{fill:#E0A458}
.plants .s-summer .sun circle{fill:#E8C26A}.plants .s-summer .rays{stroke:#E8C26A;stroke-width:3;stroke-linecap:round;transform-origin:246px 44px;animation:mmSpin 8s linear infinite}
.plants .s-winter circle,.plants .s-spring ellipse,.plants .s-autumn path{stroke:none}
.plants .lv-gr{fill:#6E9460}.plants .lv-iv{fill:#6E9460}.plants .stem{fill:none;stroke:#5E8352;stroke-width:1.6;stroke-linecap:round}
.plants .season>circle,.plants .season>ellipse{transform-box:fill-box;transform-origin:center;animation:mmGrowIn 16s ease-out infinite;animation-delay:inherit}
.plants .vine{transform-box:fill-box;transform-origin:50% 0;animation:mmSway 4s ease-in-out infinite}
.plants .v2{animation-delay:-2s;animation-duration:4.6s}
.plants .grass{transform-box:fill-box;transform-origin:50% 100%;animation:mmSway 5s ease-in-out infinite}
@keyframes mmSway{0%,100%{transform:rotate(2.5deg)}50%{transform:rotate(-2.5deg)}}
@keyframes mmGrowIn{0%{transform:scale(.4)}4%,100%{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){:root:not(.mm-force) .plants .s-summer{opacity:1}:root:not(.mm-force) .plants .s-autumn{opacity:0}}
/* Raccord services → « À vos côtés » : arc doux + pastille flèche qui invite à descendre */
.band--doors+.stats-band+.band{position:relative;z-index:2;border-radius:0 0 50% 50% / 0 0 56px 56px}
.band--doors+.stats-band+.band+.band--year{margin-top:-56px;padding-top:calc(clamp(56px,8vw,112px) + 56px)}
.next-hint{position:absolute;left:50%;bottom:-24px;width:48px;height:48px;margin-left:-24px;border-radius:50%;display:grid;place-items:center;background:var(--card);color:var(--accent);box-shadow:0 1px 2px rgba(20,30,40,.06),0 10px 24px -12px rgba(20,30,40,.35);z-index:4;transition:background .25s ease,color .25s ease}
.next-hint svg{width:20px;height:20px;animation:mmBob 1.8s ease-in-out infinite}
.next-hint:hover{background:var(--accent);color:var(--on-accent)}
@keyframes mmBob{0%,100%{transform:translateY(-3px)}50%{transform:translateY(3px)}}
#annee{scroll-margin-top:70px}
@media (max-width:760px){.band--doors+.stats-band+.band{border-radius:0 0 50% 50% / 0 0 28px 28px}.band--doors+.stats-band+.band+.band--year{margin-top:-28px;padding-top:calc(56px + 28px)}}
/* Moins d'espace sous l'arc bleu avant « Ce que je fais pour vous » */
.band--doors+.stats-band+.band{padding-top:calc(56px + clamp(28px,3.5vw,48px))}
@media (max-width:760px){.band--doors+.stats-band+.band{padding-top:calc(28px + 32px)}}
.band--doors{z-index:4}.band--doors+.stats-band{z-index:3}
/* Pot de droite : tiges en fontaine qui montent puis retombent */
.plants .fount{transform-box:fill-box;animation:mmSway 5s ease-in-out infinite}
.plants .f1,.plants .f2{transform-origin:100% 100%}.plants .f3,.plants .f4{transform-origin:0 100%}
.plants .f2{animation-delay:-1.3s;animation-duration:5.6s}.plants .f3{animation-delay:-2.6s}.plants .f4{animation-delay:-3.4s;animation-duration:4.6s}
/* Arbre : un seul feuillage qui vit le cycle complet (printemps → été → automne → hiver → repousse) */
.plants .sky{animation-delay:-4s}
.plants .s-winter{animation-delay:-4s}.plants .s-spring{animation-delay:-16s}.plants .s-summer{animation-delay:-12s}.plants .s-autumn{animation-delay:-8s}
.plants .fol{transform-box:fill-box;transform-origin:center;animation:mmLeaf 16s ease-in-out infinite both}
.plants .fol.t0{--sp:#A9C79A;--su:#6E9460;--au:#D28B47}
.plants .fol.t1{--sp:#BFD6AF;--su:#7FA56E;--au:#C2713A}
.plants .fol.t2{--sp:#B4CFA4;--su:#5E8352;--au:#E0A458}
@keyframes mmLeaf{
  0%{transform:translateY(0) scale(.6);opacity:1;fill:var(--sp)}
  19%{transform:translateY(0) scale(.6);opacity:1;fill:var(--sp)}
  28%{transform:translateY(0) scale(1);opacity:1;fill:var(--su)}
  45%{transform:translateY(0) scale(1);opacity:1;fill:var(--su)}
  54%{transform:translateY(0) scale(1);opacity:1;fill:var(--au)}
  71%{transform:translateY(0) scale(1);opacity:1;fill:var(--au)}
  80%{transform:translateY(80px) scale(.7);opacity:0;fill:var(--au)}
  81%{transform:translateY(0) scale(0);opacity:0;fill:var(--sp)}
  91%{transform:translateY(0) scale(0);opacity:1;fill:var(--sp)}
  100%{transform:translateY(0) scale(.6);opacity:1;fill:var(--sp)}}
@media (prefers-reduced-motion:reduce){:root:not(.mm-force) .plants .fol{fill:var(--su);transform:none}}
/* Automne : coup de vent de gauche à droite (feuilles, lierre, tiges) */
.plants .wind path{fill:none;stroke:#FFFFFF;stroke-width:2.4;stroke-linecap:round;opacity:.85;stroke-dasharray:46 200;animation:mmGust 1.8s ease-in-out infinite}
.plants .wind path:nth-child(2){animation-delay:-.6s}.plants .wind path:nth-child(3){animation-delay:-1.2s}
@keyframes mmGust{0%{stroke-dashoffset:60;opacity:0}20%{opacity:.85}100%{stroke-dashoffset:-150;opacity:0}}
.plants .s-autumn .fall>*{animation-name:mmFallWind}
@keyframes mmFallWind{0%{transform:translate(-30px,-10px) rotate(0);opacity:0}15%{opacity:1}85%{opacity:1}100%{transform:translate(70px,110px) rotate(320deg);opacity:0}}
@keyframes mmLeaf{
  0%{transform:translate(0,0) scale(.6);opacity:1;fill:var(--sp)}
  19%{transform:translate(0,0) scale(.6);opacity:1;fill:var(--sp)}
  28%{transform:translate(0,0) scale(1);opacity:1;fill:var(--su)}
  45%{transform:translate(0,0) scale(1);opacity:1;fill:var(--su)}
  54%{transform:translate(0,0) scale(1);opacity:1;fill:var(--au)}
  62%{transform:translate(3px,0) scale(1);opacity:1;fill:var(--au)}
  66%{transform:translate(-1px,0) scale(1);opacity:1;fill:var(--au)}
  71%{transform:translate(2px,0) scale(1);opacity:1;fill:var(--au)}
  80%{transform:translate(60px,80px) scale(.7);opacity:0;fill:var(--au)}
  81%{transform:translate(0,0) scale(0);opacity:0;fill:var(--sp)}
  91%{transform:translate(0,0) scale(0);opacity:1;fill:var(--sp)}
  100%{transform:translate(0,0) scale(.6);opacity:1;fill:var(--sp)}}
@keyframes mmWindHang{0%,48%{rotate:0deg}56%,76%{rotate:-9deg}84%,100%{rotate:0deg}}
@keyframes mmWindUp{0%,48%{rotate:0deg}56%,76%{rotate:8deg}84%,100%{rotate:0deg}}
.plants .v1{animation:mmSway 4s ease-in-out infinite,mmWindHang 16s ease-in-out infinite}
.plants .v2{animation:mmSway 4.6s ease-in-out -2s infinite,mmWindHang 16s ease-in-out infinite}
.plants .f1{animation:mmSway 5s ease-in-out infinite,mmWindUp 16s ease-in-out infinite}
.plants .f2{animation:mmSway 5.6s ease-in-out -1.3s infinite,mmWindUp 16s ease-in-out infinite}
.plants .f3{animation:mmSway 5s ease-in-out -2.6s infinite,mmWindUp 16s ease-in-out infinite}
.plants .f4{animation:mmSway 4.6s ease-in-out -3.4s infinite,mmWindUp 16s ease-in-out infinite}
.plants .grass{animation:mmSway 5s ease-in-out infinite,mmWindUp 16s ease-in-out infinite}
.plants .wind path{stroke:var(--accent);stroke-width:2;opacity:.4}
@keyframes mmGust{0%{stroke-dashoffset:60;opacity:0}25%{opacity:.4}100%{stroke-dashoffset:-150;opacity:0}}
/* Été : le soleil arrive un peu avant le vert, et la chaleur ondule */
.plants .sun-cycle circle:not(.glow){fill:#E8C26A}
.plants .sun-cycle .rays{stroke:#E8C26A;stroke-width:3;stroke-linecap:round;transform-origin:246px 44px;animation:mmSpin 8s linear infinite}
.plants .sun-cycle{transform-box:fill-box;transform-origin:center;animation:mmSunCycle 16s ease-in-out infinite}
@keyframes mmSunCycle{0%,17%{opacity:0;transform:translateY(12px) scale(.8)}22%,47%{opacity:1;transform:none}52%,100%{opacity:0;transform:translateY(-6px) scale(.9)}}
.plants .glow{fill:#F2D58C;opacity:.45;transform-box:fill-box;transform-origin:center;animation:mmGlow 2.4s ease-in-out infinite}
@keyframes mmGlow{0%,100%{transform:scale(.85);opacity:.35}50%{transform:scale(1.12);opacity:.6}}
.plants .heat path{fill:none;stroke:#E2B45C;stroke-width:1.8;stroke-linecap:round;opacity:0;animation:mmHeat 2.6s ease-in-out infinite}
.plants .heat path:nth-child(2){animation-delay:-.7s}.plants .heat path:nth-child(3){animation-delay:-1.4s}.plants .heat path:nth-child(4){animation-delay:-2s}
@keyframes mmHeat{0%{transform:translateY(8px);opacity:0}40%{opacity:.7}100%{transform:translateY(-18px);opacity:0}}
@media (prefers-reduced-motion:reduce){:root:not(.mm-force) .plants .sun-cycle{opacity:1}}
/* Fond été/automne derrière les plantes = exactement la teinte du grand M (suit le réglage couleur/intensité) */
:root{--mtint:color-mix(in srgb,#1E2833 10%,var(--paper))}
@keyframes mmSky{0%,22%{fill:#DFE5EA}25%,47%{fill:#E1EADB}50%,97%{fill:var(--mtint)}100%{fill:#DFE5EA}}
.plants .sun-cycle .rays{transform-origin:236px 54px}
/* « Nous partons de votre situation » : 4 cartes moments de vie (26/10, 0h20) */
.sits{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.sit{display:flex;flex-direction:column;gap:12px;padding:26px 24px 22px;border-radius:var(--radius);background:var(--card);box-shadow:0 1px 2px rgba(20,30,40,.05),0 18px 40px -24px rgba(20,30,40,.35);transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s ease}
.sit:hover{transform:translateY(-6px);box-shadow:0 30px 54px -28px rgba(20,30,40,.5)}
.sit+.sit.reveal{transition-delay:.08s}.sit:nth-child(3).reveal{transition-delay:.16s}.sit:nth-child(4).reveal{transition-delay:.24s}
.sit .si{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--accent-soft);color:var(--accent);transition:transform .4s cubic-bezier(.3,1.4,.5,1),background .3s ease,color .3s ease}
.sit .si svg{width:22px;height:22px}
.sit:hover .si{transform:rotate(-8deg) translateY(-2px);background:var(--accent);color:var(--on-accent)}
.sit h3{font-size:1.32rem;line-height:1.18;margin:4px 0 0;min-height:2.36em}
.sit p{margin:0;color:var(--ink-soft);font-size:.95rem;line-height:1.5}
.sit-go{margin-top:auto;padding-top:10px;display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px}
.sit-cta{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--accent);text-decoration:none}
.sit-cta svg{width:16px;height:16px;transition:transform .25s ease}.sit-cta:hover svg{transform:translateX(3px)}
.sit-more{font-size:.85rem;color:var(--ink-soft);text-decoration:underline;text-underline-offset:3px;text-decoration-color:color-mix(in srgb,var(--ink-soft) 40%,transparent)}
@media (max-width:1060px){.sits{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.sits{grid-template-columns:1fr}.sit h3{min-height:0}}
/* Verre liquide, version 2 (plus clair, plus calme) : verre fin et transparent, arête lumineuse, épaissi en bas là où il passe sur le bleu */
:root[data-glass] .sit{position:relative;isolation:isolate;border:0!important;
  background:linear-gradient(180deg,rgba(251,249,244,.34) 0%,rgba(251,249,244,.34) 52%,rgba(251,249,244,.82) 74%,rgba(251,249,244,.86) 100%);
  -webkit-backdrop-filter:blur(10px) saturate(1.25) brightness(1.04);backdrop-filter:blur(10px) saturate(1.25) brightness(1.04);
  box-shadow:inset 0 1.5px 0 rgba(255,255,255,.75),inset 0 -12px 22px -18px rgba(255,255,255,.6),inset 12px 0 22px -20px rgba(255,255,255,.55),0 1px 2px rgba(20,30,40,.05),0 20px 40px -28px rgba(20,30,40,.4);
  transition:transform .5s cubic-bezier(.2,.7,.2,1),box-shadow .5s ease,background .5s ease}
:root[data-glass] .sit::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1.2px;pointer-events:none;
  background:linear-gradient(140deg,rgba(255,255,255,.95),rgba(255,255,255,.18) 35%,rgba(255,255,255,.06) 65%,rgba(255,255,255,.55));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
:root[data-glass] .sit:hover{transform:translateY(-4px);box-shadow:inset 0 1.5px 0 rgba(255,255,255,.85),inset 0 -12px 22px -18px rgba(255,255,255,.7),inset 12px 0 22px -20px rgba(255,255,255,.6),0 1px 2px rgba(20,30,40,.05),0 28px 50px -30px rgba(20,30,40,.45)}
:root[data-glass] .sit .si{background:rgba(255,255,255,.5);box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}
:root[data-glass] .sit:hover .si{background:var(--accent);color:var(--on-accent);box-shadow:none}
:root[data-glass] .sit p{color:var(--ink)}
:root[data-glass] .sit .sit-more{color:var(--ink)}
/* Barre de menu en verre (26/10, 0h28) : fondue au repos, verre translucide dès qu'on défile ; plus de filet doré */
.site-head{border-bottom:0;background:color-mix(in srgb,var(--paper) 70%,transparent);-webkit-backdrop-filter:blur(18px) saturate(1.35);backdrop-filter:blur(18px) saturate(1.35);transition:background .35s ease,box-shadow .35s ease}
.site-head.is-scrolled{background:color-mix(in srgb,var(--paper) 58%,transparent);box-shadow:inset 0 -1px 0 rgba(255,255,255,.55),0 10px 30px -18px rgba(20,30,40,.35)}
/* Cartes situation entièrement cliquables, une pastille flèche qui s'anime au survol */
a.sit{text-decoration:none;color:inherit;cursor:pointer}
.sit{position:relative;padding-bottom:70px}
.sit-arrow{position:absolute;right:20px;bottom:20px;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:var(--accent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 30%,transparent);transition:background .3s ease,color .3s ease,box-shadow .3s ease,transform .35s cubic-bezier(.2,.7,.2,1)}
.sit-arrow svg{width:16px;height:16px;transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.sit:hover .sit-arrow,.sit:focus-visible .sit-arrow{background:var(--accent);color:var(--on-accent);box-shadow:none}
.sit:hover .sit-arrow svg,.sit:focus-visible .sit-arrow svg{transform:translateX(3px)}
.sit:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
/* « Comment ça se passe » : 4 étapes (remplace « Ce que je fais pour vous », 26/10 0h35) */
.hw{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(20px,3vw,40px)}
.hw-step{display:flex;flex-direction:column;gap:10px}
.hw-step .num{font-family:var(--f-display);font-style:italic;font-weight:800;font-size:clamp(2.6rem,2rem + 2vw,3.6rem);line-height:1;color:var(--accent)}
.hw-step .num::after{content:"";display:block;width:36px;height:2px;margin-top:14px;background:var(--gold);transform-origin:left;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.hw-step:hover .num::after{transform:scaleX(1.8)}
.hw-step h3{font-size:1.25rem;line-height:1.2;margin:4px 0 0;min-height:2.4em}
.hw-step p{margin:0;color:var(--ink-soft);font-size:.96rem;line-height:1.55}
.hw-cta{margin-top:clamp(32px,4vw,48px);align-items:center;gap:16px}
@media (max-width:960px){.hw{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.hw{grid-template-columns:1fr}.hw-step h3{min-height:0}}
/* « Comment ça se passe » v2 : un escalier de cartes qui monte, comme un patrimoine qui se construit */
.hw{align-items:end;gap:18px;padding-top:72px}
.hw-step{position:relative;overflow:hidden;padding:30px 26px 28px;border-radius:var(--radius);background:var(--card);box-shadow:0 1px 2px rgba(20,30,40,.05),0 18px 40px -26px rgba(20,30,40,.35);transition:transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s ease}
.hw-step:nth-child(1){margin-bottom:0}.hw-step:nth-child(2){margin-bottom:24px}.hw-step:nth-child(3){margin-bottom:48px}.hw-step:nth-child(4){margin-bottom:72px}
.hw-step:hover{transform:translateY(-6px);box-shadow:0 30px 54px -30px rgba(20,30,40,.45)}
.hw-step .num{position:absolute;right:14px;top:4px;font-size:clamp(4.6rem,3.6rem + 3vw,6.4rem);color:color-mix(in srgb,var(--accent) 12%,transparent);pointer-events:none;transition:color .45s ease}
.hw-step:hover .num{color:color-mix(in srgb,var(--accent) 22%,transparent)}
.hw-step .num::after{display:none}
.hw-step h3{position:relative;min-height:0;margin:0;padding-right:40px}
.hw-step h3::before{content:"";display:block;width:28px;height:2px;background:var(--gold);margin-bottom:16px;transition:width .5s cubic-bezier(.2,.7,.2,1)}
.hw-step:hover h3::before{width:56px}
.hw-step p{position:relative}
.hw-step:nth-child(2).reveal{transition-delay:.1s}.hw-step:nth-child(3).reveal{transition-delay:.2s}.hw-step:nth-child(4).reveal{transition-delay:.3s}
@media (max-width:960px){.hw{padding-top:0}.hw-step:nth-child(n){margin-bottom:0}}
/* Escalier régulier : cartes de même hauteur, chacune une marche plus haut */
.band--steps .head{max-width:none}
.hw{align-items:stretch;padding-top:60px}
.hw-step:nth-child(n){margin-bottom:0}
.hw-step:nth-child(2){top:-20px}.hw-step:nth-child(3){top:-40px}.hw-step:nth-child(4){top:-60px}
.hw-cta{margin-top:clamp(12px,2vw,24px)}
@media (max-width:960px){.hw{padding-top:0}.hw-step:nth-child(n){top:0}}
/* Étapes v3 : plus de cartes (pour ne pas doubler les cartes du dessus) ; un escalier dessiné au trait, texte posé sur chaque marche, grand numéro en filigrane */
.hw{gap:0;padding-top:80px}
.hw-step{background:none;box-shadow:none;border-radius:0;overflow:visible;padding:34px 28px 8px 24px}
.hw-step:hover{transform:none;box-shadow:none}
.hw-step::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--accent);transform-origin:left;transition:transform .7s cubic-bezier(.3,.7,.2,1)}
.hw-step:not(:first-child)::after{content:"";position:absolute;left:0;top:0;width:2px;height:22px;background:var(--accent);transform-origin:top;transition:transform .3s ease}
.js .hw-step.reveal.pre::before{transform:scaleX(0)}
.js .hw-step.reveal.pre::after{transform:scaleY(0)}
.hw-step:nth-child(2)::before{transition-delay:.25s}.hw-step:nth-child(3)::before{transition-delay:.5s}.hw-step:nth-child(4)::before{transition-delay:.75s}
.hw-step .num{top:auto;bottom:-14px;right:10px;font-size:clamp(5rem,4rem + 3vw,7rem);color:color-mix(in srgb,var(--accent) 9%,transparent)}
.hw-step:hover .num{color:color-mix(in srgb,var(--accent) 18%,transparent)}
.hw-step h3::before{margin-bottom:14px}
@media (max-width:960px){.hw{gap:24px}.hw-step:not(:first-child)::after{display:none}}
.hw-step h3::before{display:none}.hw-step h3{margin-top:2px}
/* ===== Illustrations de l'escalier (3 pistes à comparer, 26/10 0h45) ===== */
.hw-wrap{position:relative}
.ill-plant,.ill-over{display:none}
:root[data-stair="plante"] .ill-plant{display:block}
:root[data-stair="lignes"] .ill-over,:root[data-stair="soleil"] .ill-over{display:block}
:root[data-stair="lignes"] .ill-sun,:root[data-stair="soleil"] .ill-lines{display:none}
/* Piste 1 : la graine devient arbre */
.ill-plant{position:absolute;right:22px;bottom:100%;width:62px;height:auto;margin-bottom:-1px;pointer-events:none}
.ip-pot{fill:var(--accent)}.ip-rim{fill:#2C3D4C}.ip-seed{fill:#8A6A4A}
.ip-stem{fill:none;stroke:#6B4B36;stroke-width:2;stroke-linecap:round}.ip-trunk{stroke-width:2.6}
.ip-leaf{fill:#7FA56E}.ip-leaf2{fill:#6E9460}
.ill-plant .ip-grow{transform-box:fill-box;transform-origin:50% 100%;transition:transform 1s cubic-bezier(.3,1.3,.5,1),opacity .6s ease}
.js .hw-step.reveal.pre .ip-grow{transform:scale(0);opacity:0}
.hw-step:nth-child(1) .ip-grow{transition-delay:.5s}.hw-step:nth-child(2) .ip-grow{transition-delay:.8s}.hw-step:nth-child(3) .ip-grow{transition-delay:1.1s}.hw-step:nth-child(4) .ip-grow{transition-delay:1.4s}
/* Piste 2 : deux lignes qui se rencontrent puis montent ensemble */
.ill-over{position:absolute;left:0;right:0;top:0;height:80px;pointer-events:none;z-index:0}
.ill-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.ln{fill:none;stroke-width:1.6;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 2.6s cubic-bezier(.4,.1,.2,1) .3s}
.ln-a{stroke:var(--gold)}.ln-b{stroke:var(--accent);opacity:.55}
.hw-wrap.on .ln{stroke-dashoffset:0}
/* Piste 3 : le jour se lève derrière l'escalier */
.ill-sun{position:absolute;right:6%;top:-10px;width:120px;height:120px;z-index:-1}
.ill-sun span{position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle,#F3C9B8 0 34%,rgba(243,201,184,.35) 35%,transparent 70%);transform:translateY(70px) scale(.7);opacity:0;transition:transform 2.8s cubic-bezier(.3,.6,.2,1) .2s,opacity 1.2s ease .2s,background 2.8s ease .2s}
.hw-wrap.on .ill-sun span{transform:translateY(-30px) scale(1);opacity:1;background:radial-gradient(circle,#ECC468 0 34%,rgba(236,196,104,.3) 35%,transparent 70%)}
.hw-step{z-index:1}
@media (max-width:960px){.ill-over{display:none!important}.ill-plant{right:12px;width:50px}}
@media (prefers-reduced-motion:reduce){:root:not(.mm-force) .ill-plant .ip-grow{transform:none!important;opacity:1!important}:root:not(.mm-force) .ln{stroke-dashoffset:0}}
/* Boutons de la maquette presque invisibles tant qu'on ne les survole pas */
.mm-box,.mm-anim,.mm-ill{opacity:.12;transition:opacity .25s ease}
.mm-box:hover,.mm-anim:hover,.mm-ill:hover,.mm-box:focus-within,.mm-anim:focus-within,.mm-ill:focus-within,.mm-box:has(.mm-panel:not([hidden])),.mm-anim:has(.mm-panel:not([hidden])),.mm-ill:has(.mm-panel:not([hidden])){opacity:1}
.mm-ill{position:fixed;z-index:80;left:max(16px,env(safe-area-inset-left,0px));bottom:calc(108px + env(safe-area-inset-bottom,0px));font:500 .85rem/1.3 var(--f-body);color:#1b1915}
.mm-ill .mm-panel{display:grid;gap:8px;width:min(320px,calc(100vw - 32px))}
.mm-ill .mm-panel p{margin:0;font-weight:700}
.mm-ill .sw{display:grid;gap:6px}
.mm-ill .sw button{text-align:left;border:1.5px solid #e2ddd3;background:#fff;color:#1b1915;border-radius:10px;padding:8px 10px;cursor:pointer;font:inherit}
.mm-ill .sw button[aria-pressed="true"]{border-color:#1b1915}
.mm-ill .sw small{display:block;color:#6b6b6b;font-size:.78rem}
@media (max-width:760px){.mm-ill{bottom:calc(176px + env(safe-area-inset-bottom,0px))}}
/* Escalier retenu : la graine devient arbre (26/10, 0h50). Marches et textes fixes ; seules les plantes poussent, doucement */
.hw-step::before,.hw-step::after{transform:none!important;transition:none!important}
.ill-plant .ip-grow{transition:transform 2.6s cubic-bezier(.25,.8,.3,1),opacity 1.2s ease}
.hw-wrap:not(.on) .ip-grow{transform:scale(0);opacity:0}
.hw-step:nth-child(1) .ip-grow{transition-delay:.2s}.hw-step:nth-child(2) .ip-grow{transition-delay:1.2s}.hw-step:nth-child(3) .ip-grow{transition-delay:2.2s}.hw-step:nth-child(4) .ip-grow{transition-delay:3.2s}
.hw-step:nth-child(1) .ill-plant{width:52px}.hw-step:nth-child(2) .ill-plant{width:60px}.hw-step:nth-child(3) .ill-plant{width:72px}
.hw-step:nth-child(4) .ill-plant{width:112px;right:12px}
@media (max-width:960px){.hw-step:nth-child(n) .ill-plant{width:52px}.hw-step:nth-child(4) .ill-plant{width:76px}}
/* Titres des étapes en gras */
.hw-step h3{font-weight:700}
/* Prix de l'accompagnement à l'année + petites lignes */
.price-cta{margin-top:36px;display:grid;gap:10px;justify-items:start}
.price-note{margin:0;max-width:62ch;font-size:.82rem;line-height:1.5;color:var(--ink-soft)}
.year-cta{margin-top:40px;display:grid;gap:8px;justify-items:start}
.year-link{display:inline-flex;align-items:center;gap:10px;font-weight:600;font-size:1.05rem;color:var(--accent);text-decoration:none}
.year-link i{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent);transition:background .25s ease,color .25s ease}
.year-link svg{width:14px;height:14px;transition:transform .25s ease}
.year-link:hover i{background:var(--accent);color:var(--on-accent)}.year-link:hover svg{transform:translateX(2px)}
.year-link:hover>span{text-decoration:underline;text-underline-offset:3px}
/* Bouton prix de l'abonnement : étiquette élégante */
.price-pill{display:inline-flex;align-items:center;gap:22px;padding:12px 12px 12px 28px;border-radius:999px;background:var(--card);color:var(--ink);text-decoration:none;box-shadow:0 1px 2px rgba(20,30,40,.06),0 14px 34px -18px rgba(20,30,40,.4);transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s ease}
.price-pill:hover{transform:translateY(-3px);box-shadow:0 1px 2px rgba(20,30,40,.06),0 22px 44px -20px rgba(20,30,40,.5)}
.pp-label{font-family:"Libre Franklin",var(--f-body);font-weight:600;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);padding-right:22px;border-right:1px solid color-mix(in srgb,var(--ink) 15%,transparent)}
.pp-price{font-family:var(--f-display);font-weight:700;font-size:1.9rem;line-height:1;color:var(--accent);white-space:nowrap}
.pp-price small{font-family:var(--f-body);font-weight:500;font-size:.88rem;color:var(--ink-soft);letter-spacing:0}
.pp-price sup{font-size:.55em;top:-.7em;position:relative;margin-left:1px}
.pp-go{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--accent);color:var(--on-accent);transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.pp-go svg{width:18px;height:18px}
.price-pill:hover .pp-go{transform:translateX(4px)}
.year-cta .price-note{font-size:.78rem;margin-left:28px}
.pp-price{font-family:"Crimson Pro",Georgia,serif;font-size:2.1rem;font-variant-numeric:lining-nums}
/* Bouton prix v2 : rectangle aux angles arrondis, textes alignés sur une même ligne de base, sans flèche ; c'est la carte entière qui invite au clic */
.price-pill{border-radius:14px;align-items:baseline;gap:20px;padding:20px 30px 20px 26px;position:relative;overflow:hidden;box-shadow:inset 3px 0 0 var(--accent),0 1px 2px rgba(20,30,40,.06),0 14px 34px -18px rgba(20,30,40,.4);transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s ease,background .35s ease,color .35s ease}
.pp-label{align-self:baseline;line-height:1;padding-right:20px}
.pp-price{display:inline-flex;align-items:baseline;gap:6px;line-height:1}
.pp-price sup{top:auto;position:static;align-self:flex-start;margin-left:-5px;font-size:.5em;line-height:1}
.pp-price small,.pp-label{transition:color .35s ease,border-color .35s ease}
.price-pill:hover,.price-pill:focus-visible{background:var(--accent);transform:translateY(-3px);box-shadow:inset 3px 0 0 var(--accent),0 24px 44px -20px rgba(20,30,40,.55)}
.price-pill:hover .pp-price,.price-pill:focus-visible .pp-price{color:var(--on-accent)}
.price-pill:hover .pp-price small,.price-pill:hover .pp-label,.price-pill:focus-visible .pp-label,.price-pill:focus-visible .pp-price small{color:color-mix(in srgb,var(--on-accent) 75%,transparent);border-color:color-mix(in srgb,var(--on-accent) 30%,transparent)}
.year-cta .price-note{margin-left:26px}
.price-pill{box-shadow:0 1px 2px rgba(20,30,40,.06),0 14px 34px -18px rgba(20,30,40,.4)}.price-pill:hover,.price-pill:focus-visible{box-shadow:0 24px 44px -20px rgba(20,30,40,.55)}
.price-pill{align-items:center;padding-top:18px;padding-bottom:18px}.pp-label{align-self:center;padding-top:2px}.pp-price{align-self:center}
/* Bouton prix : tous les textes centrés sur la ligne de « Un abonnement simple » */
.pp-price{align-items:center}.pp-price small{line-height:1}.pp-price sup{align-self:flex-start;margin-top:-.15em}
/* Bas du 300 € aligné sur le bas de « à partir de » ; tout repose sur la même ligne que « Un abonnement simple » */
.price-pill{align-items:baseline}.pp-price{align-items:baseline}.pp-label{align-self:baseline}.pp-price sup{align-self:auto;margin-top:0;position:relative;top:-1.1em}
.price-pill{padding-top:27px;padding-bottom:9px}
.pp-price{align-self:baseline}.price-pill{padding-top:18px;padding-bottom:18px}
.price-pill{padding-top:11.5px;padding-bottom:24.5px}
.year-cta .price-note{margin-left:0}
/* « Qui je suis » : cadre photo en forme d'arche */
.about .portrait{border-radius:999px 999px 18px 18px;aspect-ratio:3/4;width:100%;max-width:400px;box-shadow:0 1px 2px rgba(20,30,40,.05),0 24px 50px -30px rgba(20,30,40,.45)}
.about .portrait .ph{padding-top:22%}
.about .portrait{border-radius:50% 50% 18px 18px / 37.5% 37.5% 18px 18px}
/* Styles de la photo du bureau (essais) */
.about .portrait{position:relative}
.about .portrait img{transition:filter .5s ease}
.about .portrait::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;opacity:0;transition:opacity .5s ease}
:root[data-photo="douce"] .about .portrait img{filter:saturate(.72) contrast(.9) brightness(1.05) sepia(.12)}
:root[data-photo="douce"] .about .portrait::after{opacity:1;background:linear-gradient(180deg,rgba(246,242,234,.18),rgba(246,242,234,0) 40%,rgba(30,40,51,.12))}
:root[data-photo="chaude"] .about .portrait img{filter:sepia(.35) saturate(1.1) contrast(.95) brightness(1.02)}
:root[data-photo="nb"] .about .portrait img{filter:grayscale(1) contrast(1.06) brightness(1.03)}
:root[data-photo="ardoise"] .about .portrait img{filter:grayscale(1) contrast(1.12) brightness(1.05)}
:root[data-photo="ardoise"] .about .portrait::after{opacity:1;background:var(--accent);mix-blend-mode:color}
/* « Qui je suis » plus vivant : phrase d'ouverture + mots-valeurs */
.about-lead{font-family:"Newsreader",Georgia,serif;font-size:clamp(1.3rem,1.15rem + .6vw,1.6rem);line-height:1.35;color:var(--ink)}
.values{list-style:none;margin:18px 0 6px;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.values li{display:inline-flex;align-items:center;gap:8px;padding:9px 16px 9px 12px;border-radius:999px;background:var(--card);box-shadow:0 1px 2px rgba(20,30,40,.05),0 8px 20px -14px rgba(20,30,40,.35);font-family:"Libre Franklin",var(--f-body);font-weight:600;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);transition:transform .35s cubic-bezier(.3,1.4,.5,1)}
.values li svg{width:15px;height:15px;fill:none;stroke:#6E9460;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.values li:hover{transform:translateY(-3px) rotate(-1.5deg)}
.js .about .reveal:not(.pre) .values li{animation:mmUp .7s cubic-bezier(.2,.7,.2,1) both}
.values li:nth-child(2){animation-delay:.1s!important}.values li:nth-child(3){animation-delay:.2s!important}.values li:nth-child(4){animation-delay:.3s!important}
.about .prose p{text-align:justify;hyphens:auto;-webkit-hyphens:auto}
/* Petite étagère posée sur la jonction avis / « Qui je suis » : livres, tasse, olivier, lierre qui retombe */
.band:has(.about){position:relative}
.ledge{position:absolute;left:max(4vw,40px);top:0;width:250px;transform:translateY(-44%);pointer-events:none;z-index:3}
.ledge svg{display:block;width:100%;height:auto;overflow:visible}
.ledge .bk1{fill:var(--accent)}.ledge .bk2{fill:#A3864F}.ledge .bk3{fill:#6E9460}.ledge .bk-line{stroke:rgba(255,255,255,.35);stroke-width:1;fill:none}
.ledge .cup{fill:var(--card);stroke:#C9BFAE;stroke-width:1}.ledge .cup-h{fill:none;stroke:#C9BFAE;stroke-width:1.6}
.ledge .steam path{fill:none;stroke:#BFB5A4;stroke-width:1.4;stroke-linecap:round;opacity:0;animation:mmHeat 3.2s ease-in-out infinite}
.ledge .steam path:nth-child(2){animation-delay:-1.6s}
.ledge .vase{fill:#E7DDCC;stroke:#CDBFA6;stroke-width:1}
.ledge .stem{fill:none;stroke:#5E8352;stroke-width:1.6;stroke-linecap:round}
.ledge .lf{fill:#7FA56E}.ledge .ol{fill:#556B3A}
.ledge .pot{fill:#B9A58C}.ledge .pot-rim{fill:#A8937A}
.ledge .branch{transform-box:fill-box;transform-origin:30% 100%;animation:mmSway 6s ease-in-out infinite}
.ledge .ivy{transform-box:fill-box;transform-origin:50% 0;animation:mmSway 4.4s ease-in-out infinite}
.ledge .i2{animation-delay:-2s;animation-duration:5s}
@media (max-width:860px){.ledge{width:170px;left:16px}}
.ledge{width:310px;transform:translateY(-44%)}
/* Lecteur allongé sur la jonction avis / « Qui je suis » : il lit le journal (les avis), une jambe tendue, l'autre qui pend */
.ledge{display:none}
.reader{position:absolute;right:max(4vw,40px);top:0;width:330px;transform:translateY(-57.6%);pointer-events:none;z-index:3}
.reader svg{display:block;width:100%;height:auto;overflow:visible}
.reader .tr{fill:#2E3742}.reader .tr2{fill:#36404C}
.reader .shoe{fill:#5B3A27}.reader .sole{stroke:#2A1C14;stroke-width:2;stroke-linecap:round;fill:none}
.reader .shirt{fill:#C9D6E2}.reader .arm{fill:none;stroke:#BCCADA;stroke-width:12;stroke-linecap:round;stroke-linejoin:round}
.reader .skin{fill:#E6BE9C}.reader .skin2{fill:#D9AD8A}.reader .hair{fill:#231C17}.reader .beard{fill:#2D241E}.reader .nose{stroke:#B98C6C;stroke-width:1.2;stroke-linecap:round}
.reader .np{fill:#FBF9F4;stroke:#D8CEBC;stroke-width:1}.reader .np2{fill:#F1EBDF;stroke:#D8CEBC;stroke-width:1}
.reader .npl{stroke:#B8B0A2;stroke-width:1.4;stroke-linecap:round;fill:none}.reader .nph{fill:var(--accent)}
.reader .leg-hang{transform-box:fill-box;transform-origin:30% 5%;animation:mmSwing 2.8s ease-in-out infinite}
.reader .paper{transform-box:fill-box;transform-origin:50% 100%;animation:mmRead 7s ease-in-out infinite}
@keyframes mmRead{0%,70%,100%{transform:rotate(0)}76%{transform:rotate(-3deg) translateY(-1px)}82%{transform:rotate(1.5deg)}88%{transform:rotate(0)}}
.reader .head{transform-box:fill-box;transform-origin:70% 90%;animation:mmNod 7s ease-in-out infinite}
@keyframes mmNod{0%,100%{transform:rotate(0)}40%{transform:rotate(-3deg)}60%{transform:rotate(1deg)}}
@media (max-width:860px){.reader{width:220px;right:12px}}
/* Lecteur : illustration unDraw « Casual browsing » (licence libre, usage commercial autorisé), recolorée */
.reader{width:340px;transform:translateY(calc(-100% + 3px))}
.reader .ud{display:block;width:100%;height:auto}
@media (max-width:860px){.reader{width:220px}}
.reader{width:250px;right:max(5vw,56px)}
.reader .np{transform-box:fill-box;transform-origin:50% 100%;animation:mmRead 7s ease-in-out infinite}


/* Lecteur assis sur la jonction avis / Qui je suis (Storyset « Absorbed in », recoloré) */
.reviews{position:relative;z-index:2}
.perch{position:absolute;top:100%;right:max(80px,calc((100% - 1120px)/2 + 40px));width:166px;transform:translateY(-67%);pointer-events:none}
.perch svg{display:block;width:100%;height:auto}
@media (max-width:760px){.perch{width:110px;right:16px}}
.perch .perch-grass{transform-box:fill-box;transform-origin:50% 100%;animation:mmSway 5s ease-in-out infinite}
.about-lead strong{font-weight:600}
.perch .pr-head{transform-box:fill-box;transform-origin:72% 96%;animation:mmRead2 7s ease-in-out infinite}
@keyframes mmRead2{0%,100%{transform:rotate(0)}18%{transform:rotate(-1.6deg)}36%{transform:rotate(1.4deg)}52%{transform:rotate(-1.2deg)}70%{transform:rotate(2.2deg) translateY(.6px)}84%{transform:rotate(0)}}
@media (prefers-reduced-motion:reduce){:root:not(.mm-force) .perch .pr-head,:root:not(.mm-force) .perch .perch-grass{animation:none}}
/* Bandeau allégé (26/10, 21h40) : plus fin, sans téléphone, menu discret */
.site-head .wrap{min-height:60px}
.site-head .logo{height:38px}
.site-head .head-cta .tel{display:none}
.site-head .nav a{font-size:.74rem!important;letter-spacing:.16em!important;padding:6px 12px;color:var(--ink-soft)}
.site-head .head-cta .btn{padding:9px 16px;font-size:.72rem;letter-spacing:.14em;background:transparent;color:var(--ink);border:1px solid color-mix(in srgb,var(--ink) 35%,transparent)}
.site-head .head-cta .btn:hover{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.site-head:not(.is-scrolled){background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}

/* ===== Page « Mon épargne » (28/10/2026, 23h) : identité propre ===== */
.page-hero{border-bottom:0}
.ep-hero{padding-block:clamp(40px,6vw,88px) clamp(32px,4vw,56px)}
.ep-hero-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(28px,5vw,72px);align-items:center}
.ep-hero h1{font-size:clamp(2.4rem,1.6rem + 3.4vw,4.4rem);margin-top:16px;max-width:12ch}
.ep-hero .lede{margin-top:18px;max-width:46ch}
.ep-hero .btn-row{margin-top:28px}
.ep-jars{margin:0 auto;max-width:450px;width:100%}
.ep-jars svg{width:100%;height:auto;overflow:visible}
.ep-shelf{stroke:var(--ink);stroke-width:1.4;stroke-linecap:round;fill:none}
.ep-shadow{fill:rgba(20,30,40,.10)}
.ep-jar .glass{fill:rgba(255,255,255,.06);stroke:var(--ink);stroke-width:1.4}
.ep-jar .lid{fill:var(--gold);stroke:var(--ink);stroke-width:1.2}
.ep-jar .shine{stroke:#fff;stroke-width:4;stroke-linecap:round;opacity:.55}
.ep-jar .ly{transform:translateY(-240px);opacity:0;transition:transform 1s cubic-bezier(.25,.9,.3,1.15) var(--d),opacity .4s ease var(--d)}
.ep-jars.on .ep-jar .ly{transform:none;opacity:1}
.ep-jar .ly-edge{stroke:rgba(255,255,255,.55);stroke-width:1.2}
.ep-jar .c1a{fill:#BFCFDA}.ep-jar .c1b{fill:#DCE6EC}
.ep-jar .c2a{fill:#A9BC93}.ep-jar .c2b{fill:#CFD9BF}
.ep-jar .c2c{fill:#E3E8D6}.ep-jar .c3a{fill:#2F4A62}.ep-jar .c3b{fill:#46627C}.ep-jar .c3c{fill:#6F8AA2}.ep-jar .c3d{fill:#A9BBCA}
.ep-jar .ly-t{font:600 10.5px/1 var(--f-body);text-anchor:middle;fill:var(--ink);letter-spacing:.02em}
.ep-jar .c3a-t,.ep-jar .c3b-t,.ep-jar .c3c-t{fill:#fff}
.ep-jar .lid-g{transition:transform .45s cubic-bezier(.3,1.4,.5,1);transform-box:fill-box;transform-origin:left bottom}
.ep-jar:hover .lid-g,.ep-jar:focus-visible .lid-g{transform:translateY(-5px) rotate(-6deg)}
.ep-jar{cursor:pointer;transition:opacity .35s ease}
.ep-jar .glass{transition:stroke-width .3s ease}
.ep-jar.is-on .glass{stroke-width:2.4}
.ep-jars.has-sel .ep-jar:not(.is-on){opacity:.45}

@keyframes ep-coin2{0%{transform:translateY(0);opacity:0}8%{opacity:1}26%{transform:translateY(106px);opacity:1}30%,100%{transform:translateY(106px);opacity:0}}
@keyframes ep-coin3{0%{transform:translateY(0);opacity:0}8%{opacity:1}26%{transform:translateY(106px);opacity:1}30%,100%{transform:translateY(106px);opacity:0}}

/* bocaux v4 flat (28/10, 23h30) */
.ep-jars .shelf-top{fill:#CFC5B4}.ep-jars .shelf-front{display:none}
.ep-jar .jground{display:none}
.ep-jar .jdrop{display:none}
.ep-jar .glass-back{fill:#FBF9F4}
.ep-jar .glass{fill:none;stroke:#A9B3BD;stroke-width:1.6;stroke-linejoin:round}
.ep-jars.has-sel .ep-jar.is-on .glass{stroke:#7D8B98;stroke-width:2}
.ep-jar .lip{stroke:#A9B3BD;stroke-width:1.6;stroke-linecap:round}
.ep-jar .mouth{fill:#7D8B98;opacity:.25}
.ep-jar .shine{stroke:#fff;stroke-width:4;stroke-linecap:round;opacity:.6}
.ep-jar .shine2{display:none}
.ep-jar .lid{fill:#B39461;stroke:none}
.ep-jar .lid-top{display:none}
.ep-jar .ridges{display:none}
.ep-jar .ly-edge{display:none}
.ep-jar .ly-t{font:600 9.5px/1 "Libre Franklin",var(--f-body);letter-spacing:.04em;text-transform:uppercase}
.ep-jar .lid-g{transition:transform .45s cubic-bezier(.3,1.4,.5,1);transform-box:fill-box;transform-origin:left bottom}
.ep-jar:hover .lid-g,.ep-jar:focus-visible .lid-g{transform:translate(-2px,-9px) rotate(-12deg)}
.ep-jar .coin{opacity:0}
.ep-jar .coin .co{fill:#C9A85E;stroke:#A3864F;stroke-width:1}
.ep-jar .coin .ci{fill:none;stroke:#A3864F;stroke-width:.8;opacity:.7}
.ep-jars.on .j2 .coin{animation:ep-drop 6s cubic-bezier(.55,0,.85,.45) infinite 2.2s}
.ep-jars.on .j3 .coin{animation:ep-drop 6s cubic-bezier(.55,0,.85,.45) infinite 5.2s}
@keyframes ep-drop{0%{transform:translateY(-18px);opacity:0}5%{opacity:1}30%{transform:translateY(var(--tr));opacity:1}31%,100%{transform:translateY(var(--tr));opacity:0}}
@keyframes ep-lid{0%,2%{transform:none}8%,20%{transform:translate(-2px,-11px) rotate(-14deg)}28%,100%{transform:none}}
.ep-jars figcaption{margin-top:6px;text-align:center;font-size:.78rem;color:var(--ink-soft)}
.ep-jars .lbl{font:600 15px/1 var(--f-display);fill:var(--ink);text-anchor:middle}
.ep-jars .sub{font:12px/1 var(--f-body);fill:var(--ink-soft);text-anchor:middle}
@media (max-width:860px){.ep-hero-grid{grid-template-columns:1fr}.ep-jars{max-width:460px}}

.ep-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:clamp(28px,4vw,44px)}
.ep-tabs button{all:unset;cursor:pointer;display:grid;grid-template-columns:auto 1fr;column-gap:14px;align-items:baseline;padding:18px 22px;border-radius:var(--radius);background:color-mix(in srgb,var(--card) 60%,transparent);transition:background .3s ease,box-shadow .3s ease,transform .3s ease}
.ep-tabs button:hover{transform:translateY(-2px)}
.ep-tabs button:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.ep-tabs .n{grid-row:span 2;font:italic 800 1.9rem/1 var(--f-display);color:var(--gold)}
.ep-tabs b{font:600 1.15rem/1.2 var(--f-display);color:var(--ink)}
.ep-tabs small{font-size:.85rem;color:var(--ink-soft)}
.ep-tabs [aria-selected=true]{background:var(--card);box-shadow:0 18px 40px -26px rgba(20,30,40,.45)}
.ep-tabs [aria-selected=true] .n{color:var(--ink)}
.ep-panels{margin-top:12px;background:var(--card);border-radius:var(--radius);box-shadow:0 18px 40px -30px rgba(20,30,40,.4)}
.ep-panel{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);padding:clamp(24px,4vw,44px);animation:ep-in .5s ease}
.ep-panel[hidden]{display:none}
@keyframes ep-in{from{opacity:0;transform:translateY(8px)}}
.ep-panel .q{font:italic 500 clamp(1.3rem,1.1rem + .8vw,1.75rem)/1.3 var(--f-display);color:var(--ink);margin:0 0 14px}
.ep-panel p{margin:0}
.ep-panel dl{margin:0;display:grid;gap:6px}
.ep-panel dt{font:600 .74rem/1 "Libre Franklin",var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-top:10px}
.ep-panel dt:first-child{margin-top:0}
.ep-panel dd{margin:0;color:var(--ink-soft)}
@media (max-width:760px){.ep-tabs{grid-template-columns:1fr}.ep-panel{grid-template-columns:1fr}}

.ep-quote{padding-block:clamp(56px,7vw,96px) 0}
.ep-quote blockquote{margin:0 auto;max-width:860px;text-align:center}
.ep-quote blockquote p{font:500 clamp(1.8rem,1.2rem + 2.6vw,3.2rem)/1.15 var(--f-display);color:var(--ink);margin:0}
.ep-quote blockquote p::before{content:"";display:block;width:44px;height:2px;background:var(--gold);margin:0 auto 26px}
.ep-quote footer{margin:22px auto 0;max-width:52ch;color:var(--ink-soft);font-size:var(--step-0)}

.ep-vs{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:clamp(16px,3vw,36px);align-items:stretch;margin-top:clamp(28px,4vw,44px)}
.ep-vs h3{font:600 .78rem/1 "Libre Franklin",var(--f-body);letter-spacing:.14em;text-transform:uppercase;margin:0 0 18px}
.ep-before{border-radius:var(--radius);padding:26px;background:var(--paper-2)}
.ep-before h3{color:var(--ink-soft)}
.ep-before .scatter{position:relative;min-height:290px}
.ep-before .scatter span{position:absolute;left:var(--x);top:var(--y);transform:rotate(var(--r));padding:8px 14px;border-radius:999px;background:var(--card);color:var(--ink-soft);font-size:.92rem;box-shadow:0 6px 16px -10px rgba(20,30,40,.4);white-space:nowrap;transition:transform .5s cubic-bezier(.3,1.4,.5,1)}
.ep-before:hover .scatter span{transform:rotate(calc(var(--r) * -1.4)) translateY(-3px)}
.ep-arrow{display:grid;place-items:center;color:var(--gold)}
.ep-arrow svg{width:34px;height:34px}
.ep-after{border-radius:var(--radius);padding:26px;background:var(--card);box-shadow:0 22px 50px -32px rgba(20,30,40,.45)}
.ep-after h3{color:var(--ink)}
.ep-after ul{list-style:none;margin:0;padding:0;display:grid;gap:0}
.ep-after li{display:flex;gap:12px;align-items:center;padding:11px 0;border-top:1px solid var(--rule);color:var(--ink)}
.ep-after li:first-child{border-top:0}
.ep-after li i{flex:none;width:18px;height:18px;border-radius:50%;background:var(--ink);position:relative;transform:scale(0);transition:transform .45s cubic-bezier(.3,1.4,.5,1)}
.ep-after li i::after{content:"";position:absolute;left:6px;top:3.5px;width:4px;height:8px;border:solid #fff;border-width:0 1.8px 1.8px 0;transform:rotate(45deg)}
.ep-after:not(.pre) li i{transform:scale(1)}
.ep-after li:nth-child(2) i{transition-delay:.12s}.ep-after li:nth-child(3) i{transition-delay:.24s}.ep-after li:nth-child(4) i{transition-delay:.36s}.ep-after li:nth-child(5) i{transition-delay:.48s}.ep-after li:nth-child(6) i{transition-delay:.6s}
@media (max-width:860px){.ep-vs{grid-template-columns:1fr}.ep-arrow{transform:rotate(90deg)}.ep-before .scatter{min-height:0;display:flex;flex-wrap:wrap;gap:10px}.ep-before .scatter span{position:static}}

.ep-link{display:inline-flex;align-items:center;gap:10px;font-weight:600;color:var(--ink);text-decoration:none;border-bottom:1.5px solid var(--gold);padding-bottom:4px}
.ep-link svg{width:18px;height:18px;transition:transform .3s ease}
.ep-link:hover svg{transform:translateX(4px)}
.ep-final .head{text-align:center;margin-inline:auto}
.ep-final .head .lede{margin-inline:auto}
.ep-final .btn-row{justify-content:center}
@media (prefers-reduced-motion:reduce){.ep-jar .ly{transform:none;opacity:1;transition:none}.ep-jar .coin,.ep-jar .lid-g{animation:none!important}.ep-after li i{transform:none}}

/* ===== Accueil, « Qui je suis » : agréments (28/10/2026, 23h10) ===== */
.creds{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:10px}
.creds li{display:flex;gap:14px;align-items:center;padding:12px 16px;border-radius:12px;background:color-mix(in srgb,var(--card) 75%,transparent);box-shadow:0 10px 26px -22px rgba(20,30,40,.5);transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.creds li:hover{transform:translateX(4px)}
.creds .cr-ic{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:1px solid var(--gold);color:var(--gold)}
.creds .cr-ic svg{width:20px;height:20px}
.creds b{display:block;font:600 1rem/1.25 var(--f-display);color:var(--ink)}
.creds span{display:block;font-size:.84rem;line-height:1.35;color:var(--ink-soft)}
.creds-orias{margin:14px 0 0;font-size:.86rem;color:var(--ink-soft)}
.creds-orias a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px}
.ep-vs-band{padding-top:clamp(40px,5vw,64px)}

/* gribouillis animés, carte « Aujourd'hui, souvent » (28/10, 23h45) */
.ep-before .scatter .doodles{position:absolute;inset:-6px;width:calc(100% + 12px);height:calc(100% + 12px);pointer-events:none;overflow:visible}
.ep-before .scatter .doodles path{fill:none;stroke:#A9B3BD;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:100;stroke-dashoffset:100;vector-effect:non-scaling-stroke;animation:ep-doodle 7s ease-in-out infinite;animation-delay:calc(var(--i) * -.55s)}
@keyframes ep-doodle{0%{stroke-dashoffset:100;opacity:0}10%{opacity:1}45%{stroke-dashoffset:0;opacity:1}75%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:-100;opacity:0}}
.ep-before .scatter span{z-index:1}
@media (prefers-reduced-motion:reduce){.ep-before .scatter .doodles path{animation:none;stroke-dashoffset:0}}

/* transition avant/après : le fil qui se démêle (28/10, 23h55) */
.ep-vs{grid-template-columns:minmax(0,1fr) 120px minmax(0,1fr)}
.ep-thread{display:grid;place-items:center}
.ep-thread svg{width:120px;height:200px;overflow:visible}
.ep-thread path{fill:none;stroke-linecap:round;stroke-linejoin:round}
.ep-thread .knot{stroke:#A9B3BD;stroke-width:1.6;stroke-dasharray:100;stroke-dashoffset:100}
.ep-thread .line{stroke:var(--gold);stroke-width:2.2;stroke-dasharray:100;stroke-dashoffset:100}
.ep-thread .head{stroke:var(--gold);stroke-width:2.2;opacity:0;transform:translateX(-6px)}
.ep-thread:not(.pre) .knot{animation:ep-draw 1.6s ease-in-out .2s forwards}
.ep-thread:not(.pre) .line{animation:ep-draw .9s ease-out 1.7s forwards}
.ep-thread:not(.pre) .head{animation:ep-head .4s ease-out 2.5s forwards}
@keyframes ep-draw{to{stroke-dashoffset:0}}
.ep-thread .knot{stroke-width:1.3}
@keyframes ep-head{to{opacity:1;transform:none}}
@media (max-width:860px){.ep-vs{grid-template-columns:1fr}.ep-thread svg{height:120px}}
@media (prefers-reduced-motion:reduce){.ep-thread .knot,.ep-thread .line{stroke-dashoffset:0;animation:none}.ep-thread .head{opacity:1;transform:none;animation:none}}

/* avant/après v2 : la carte rangée sort de la carte brouillon (28/10, 23h58) */
.ep-vs{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(20px,3vw,36px);position:relative}
.ep-before{position:relative;z-index:2;transition:transform 1.1s cubic-bezier(.2,.8,.2,1)}
.ep-after{position:relative;z-index:1;transform:translateX(calc(-100% - clamp(20px,3vw,36px))) rotate(3deg) scale(.97);opacity:1;transition:transform 1.2s cubic-bezier(.2,.8,.2,1) .15s,opacity .5s ease .15s}
.ep-vs.go .ep-after{transform:none;opacity:1}
.ep-vs.go .ep-before{transform:rotate(-1deg)}
.ep-after li{opacity:0;transform:translateY(6px);transition:opacity .4s ease,transform .4s ease}
.ep-vs.go .ep-after li{opacity:1;transform:none}
.ep-vs.go .ep-after li:nth-child(1){transition-delay:1.2s}.ep-vs.go .ep-after li:nth-child(2){transition-delay:1.35s}.ep-vs.go .ep-after li:nth-child(3){transition-delay:1.5s}.ep-vs.go .ep-after li:nth-child(4){transition-delay:1.65s}.ep-vs.go .ep-after li:nth-child(5){transition-delay:1.8s}.ep-vs.go .ep-after li:nth-child(6){transition-delay:1.95s}
.ep-after li i{transform:scale(0)}
.ep-vs.go .ep-after li i{transform:scale(1)}
.ep-vs.go .ep-after li:nth-child(1) i{transition-delay:1.35s}.ep-vs.go .ep-after li:nth-child(2) i{transition-delay:1.5s}.ep-vs.go .ep-after li:nth-child(3) i{transition-delay:1.65s}.ep-vs.go .ep-after li:nth-child(4) i{transition-delay:1.8s}.ep-vs.go .ep-after li:nth-child(5) i{transition-delay:1.95s}.ep-vs.go .ep-after li:nth-child(6) i{transition-delay:2.1s}
@media (max-width:860px){.ep-vs{grid-template-columns:1fr}.ep-after{transform:translateY(calc(-100% - 20px)) rotate(-2deg) scale(.96)}}
@media (prefers-reduced-motion:reduce){.ep-after,.ep-after li,.ep-after li i{transform:none!important;opacity:1!important;transition:none!important}}
.ep-after h3{opacity:0;transition:opacity .4s ease 1s}.ep-vs.go .ep-after h3{opacity:1}
.warning{font-weight:400;font-style:italic}
/* simulateur en vert « positif » (29/10, 0h) */
.chart .val{stroke:#4F8A5B}
.chart .area{fill:#7FB685;opacity:.28}
.chart .dot{fill:#4F8A5B}
.legend i{border-top-color:#4F8A5B}
#f-gain{color:#4F8A5B}
.sim input[type=range],.sim .switch input{accent-color:#4F8A5B}
#f-gain{font-weight:700}
.ep-after-cta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:22px;opacity:0;transform:translateY(6px);transition:opacity .5s ease 2.3s,transform .5s ease 2.3s}
.ep-vs.go .ep-after-cta{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.ep-after-cta{opacity:1;transform:none;transition:none}}
.ep-before{display:flex;flex-direction:column}
.ep-before .scatter{flex:1;min-height:340px}
.ep-before .scatter span{transform:translateY(-50%) rotate(var(--r))}
.ep-before:hover .scatter span{transform:translateY(-50%) rotate(calc(var(--r) * -1.4)) translateY(-3px)}
@media (max-width:860px){.ep-before .scatter span,.ep-before:hover .scatter span{transform:rotate(var(--r))}}
/* encadré « Ce qu'il faut savoir » (29/10, 0h08) */
.prose--just p{text-align:justify;hyphens:auto}
.ep-risk{background:var(--card);border-radius:var(--radius);padding:clamp(22px,3vw,34px);box-shadow:0 18px 40px -30px rgba(20,30,40,.4)}
.ep-risk h3{font:600 clamp(1.4rem,1.2rem + .6vw,1.7rem)/1.15 var(--f-display);margin:8px 0 18px;color:var(--ink)}
.ep-risk h3 em{font-style:italic}
.ep-risk ul{list-style:none;margin:0;padding:0;display:grid}
.ep-risk li{display:flex;gap:14px;align-items:flex-start;padding:12px 0;border-top:1px solid var(--rule)}
.ep-risk li:first-child{border-top:0;padding-top:0}
.ep-risk .rk-ic{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:1px solid var(--gold);color:var(--gold);margin-top:1px}
.ep-risk .rk-ic svg{width:17px;height:17px}
.ep-risk b{display:block;font:600 .98rem/1.3 var(--f-display);color:var(--ink)}
.ep-risk span{display:block;font-size:.88rem;line-height:1.45;color:var(--ink-soft)}
.ep-risk .rk-note{margin:16px 0 0;padding-top:14px;border-top:1px solid var(--rule);font-size:.8rem;line-height:1.5;color:var(--ink-soft);font-style:italic}
.ep-risk .rk-ic{transition:transform .4s cubic-bezier(.3,1.4,.5,1),background .3s ease,color .3s ease}
.ep-risk li:hover .rk-ic{transform:translateY(-3px) rotate(-8deg);background:var(--gold);color:#fff}

/* ===== Page « Gestion privée » (29/10/2026, 0h20) : préfixe .gp- ===== */
.gp-hero{padding-block:clamp(40px,6vw,88px) clamp(32px,4vw,56px)}
.gp-hero-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(28px,5vw,72px);align-items:center}
.gp-hero h1{font-size:clamp(2.2rem,1.5rem + 3vw,3.9rem);margin-top:16px;max-width:15ch}
.gp-hero .lede{margin-top:18px;max-width:48ch}
.gp-hero .btn-row{margin-top:28px}
.gp-ill{margin:0 auto;max-width:500px;width:100%}
.gp-ill svg{width:100%;height:auto;overflow:visible}
.gp-ticket{transform:rotate(-6deg);transform-origin:135px 82px}
.gp-ill .tk{fill:#E3E6E9}
.gp-ill .tk-perf{stroke:#B9C1C9;stroke-width:1.4;stroke-dasharray:3 4;fill:none}
.gp-ill .tk-l{font:600 9px/1 "Libre Franklin",var(--f-body);letter-spacing:.18em;fill:#9AA6B2}
.gp-ill .tk-n{font:500 30px/1 ui-monospace,"SF Mono",Menlo,monospace;fill:#9AA6B2;letter-spacing:.04em}
.gp-ill .tk-s{font:600 8px/1 "Libre Franklin",var(--f-body);letter-spacing:.2em;fill:#B9C1C9}
.gp-ill .tk-strike{stroke:var(--gold);stroke-width:2.4;stroke-linecap:round;fill:none;stroke-dasharray:100;stroke-dashoffset:100;animation:gp-draw .7s ease-out .5s forwards}
.gp-ill .gp-card{transform:translateY(40px);opacity:0;animation:gp-up .9s cubic-bezier(.2,.8,.2,1) 1.1s forwards}
.gp-ill .cd{fill:var(--card);stroke:#E3DCCD;stroke-width:1}
.gp-ill .cd-m{fill:var(--ink)}
.gp-ill .cd-mt{font:600 13px/1 var(--f-display);fill:#fff;text-anchor:middle}
.gp-ill .cd-t{font:600 14px/1 var(--f-display);fill:var(--ink)}
.gp-ill .cd-s{font:11px/1 var(--f-body);fill:var(--ink-soft)}
.gp-ill .cd-l{font:13px/1 var(--f-body);fill:var(--ink)}
.gp-ill .ck{fill:var(--gold)}
.gp-ill .ckm{stroke:#fff;stroke-width:1.6;fill:none;stroke-linecap:round;stroke-linejoin:round}
.gp-ill .cd-row{opacity:0;animation:gp-in .4s ease forwards}
.gp-ill .r1{animation-delay:1.9s}.gp-ill .r2{animation-delay:2.15s}.gp-ill .r3{animation-delay:2.4s}
@keyframes gp-draw{to{stroke-dashoffset:0}}
@keyframes gp-up{to{transform:none;opacity:1}}
@keyframes gp-in{to{opacity:1}}
@media (max-width:860px){.gp-hero-grid{grid-template-columns:1fr}}

.gp-ic{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--accent-soft);color:var(--accent);transition:transform .4s cubic-bezier(.3,1.4,.5,1),background .3s ease,color .3s ease}
.gp-ic svg{width:24px;height:24px}
.gp-ic.sm{width:40px;height:40px}.gp-ic.sm svg{width:20px;height:20px}
.gp-who,.gp-more{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:clamp(28px,4vw,44px)}
.gp-w,.gp-m{background:var(--card);border-radius:var(--radius);padding:24px;display:flex;flex-direction:column;gap:10px;transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.gp-w:hover,.gp-m:hover{transform:translateY(-4px)}
.gp-w:hover .gp-ic,.gp-m:hover .gp-ic,.gp-roles div:hover .gp-ic{transform:translateY(-3px) rotate(-8deg);background:var(--accent);color:var(--on-accent)}
.gp-w h3,.gp-m h3{font:600 1.12rem/1.25 var(--f-display);margin:4px 0 0}
.gp-w p,.gp-m p{margin:0;color:var(--ink-soft);font-size:.94rem}
.gp-m .ep-link{margin-top:auto;align-self:flex-start;font-size:.92rem}
.gp-more .gp-m{background:transparent;border:1px solid var(--rule)}
@media (max-width:960px){.gp-who,.gp-more{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.gp-who,.gp-more{grid-template-columns:1fr}}

.gp-duo{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:clamp(14px,2vw,24px);align-items:stretch;margin-top:clamp(28px,4vw,44px)}
.gp-d{background:var(--card);border-radius:var(--radius);padding:clamp(22px,3vw,34px);box-shadow:0 18px 40px -30px rgba(20,30,40,.4)}
.gp-d-k{font:600 .74rem/1 "Libre Franklin",var(--f-body);letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin:0 0 10px}
.gp-d h3{font:600 1.6rem/1.1 var(--f-display);margin:0 0 16px}
.gp-d ul{list-style:none;margin:0;padding:0;display:grid}
.gp-d li{padding:10px 0 10px 22px;border-top:1px solid var(--rule);position:relative;color:var(--ink)}
.gp-d li:first-child{border-top:0}
.gp-d li::before{content:"";position:absolute;left:0;top:18px;width:8px;height:8px;border-radius:50%;background:var(--gold)}
.gp-logo{display:inline-block;margin:0 0 14px}
.gp-logo img{height:26px;width:auto;display:block}
.gp-plus{align-self:center;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--ink);color:#fff;font:400 1.8rem/1 var(--f-display)}
.gp-figs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px;padding-top:16px;border-top:1px solid var(--rule)}
.gp-figs b{display:block;font:600 1.35rem/1.1 var(--f-display);color:var(--ink)}
.gp-figs span{font-size:.8rem;color:var(--ink-soft)}
.gp-src{margin:10px 0 0;font-size:.76rem;font-style:italic;color:var(--ink-soft)}
.gp-roles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:22px;position:relative}
.gp-roles div{display:flex;flex-direction:column;gap:6px;padding:18px 4px 0}
.gp-roles b{font:600 1rem/1.2 var(--f-display);margin-top:6px}
.gp-roles span{font-size:.88rem;color:var(--ink-soft)}
.gp-roles::before{content:"";position:absolute;left:20px;right:20px;top:38px;border-top:1.5px dashed var(--gold);opacity:.6;z-index:0}
.gp-roles .gp-ic{position:relative;z-index:1;background:var(--paper);border:1px solid var(--gold);color:var(--gold)}
@media (max-width:860px){.gp-duo{grid-template-columns:1fr}.gp-plus{justify-self:center}.gp-roles{grid-template-columns:repeat(2,minmax(0,1fr))}.gp-roles::before{display:none}}

.gp-steps{list-style:none;margin:clamp(28px,4vw,44px) 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,3vw,32px);position:relative}
.gp-steps::before{content:"";position:absolute;left:0;right:0;top:22px;height:2px;background:linear-gradient(90deg,var(--gold),var(--gold)) no-repeat;background-size:100% 100%;opacity:.35}
.gp-steps li{position:relative;padding-top:52px}
.gp-steps .n{position:absolute;top:0;left:0;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--paper-2);border:2px solid var(--gold);font:italic 700 1.05rem/1 var(--f-display);color:var(--ink)}
.gp-steps h3{font:600 1.15rem/1.2 var(--f-display);margin:0 0 6px}
.gp-steps p{margin:0;color:var(--ink-soft);font-size:.94rem}
@media (max-width:860px){.gp-steps{grid-template-columns:1fr 1fr}.gp-steps::before{display:none}}
@media (prefers-reduced-motion:reduce){.gp-ill .tk-strike{stroke-dashoffset:0;animation:none}.gp-ill .gp-card,.gp-ill .cd-row{opacity:1;transform:none;animation:none}}

/* Gestion privée : illustration « sur mesure » (mannequin de couturier, 29/10, 0h30) */
.gp-tailor .sh{fill:rgba(20,30,40,.10)}
.gp-tailor .stand{stroke:#8E6E3C;stroke-width:5;stroke-linecap:round;fill:none}
.gp-tailor .neck{fill:#C9B996}
.gp-tailor .cap{fill:#A3864F}
.gp-tailor .bust{fill:#2F4A62}
.gp-tailor .stitch{fill:none;stroke:#fff;stroke-width:1.3;stroke-dasharray:4 5;opacity:.45}
.gp-tailor .seam{fill:none;stroke:#fff;stroke-width:1.2;opacity:.25}
.gp-tailor .tp{fill:none;stroke:#E2C77E;stroke-width:11;stroke-linecap:butt;stroke-dasharray:100;stroke-dashoffset:100;animation:gp-draw 1.4s cubic-bezier(.4,0,.2,1) .3s forwards}
.gp-tailor .tk{fill:none;stroke:#8E6E3C;stroke-width:6;stroke-dasharray:.25 1.4;opacity:0;animation:gp-in .5s ease 1.6s forwards}
.gp-tailor .tip{fill:#B9C1C9;opacity:0;animation:gp-in .3s ease 1.6s forwards}
.gp-tailor .tag{transform-origin:248px 220px;opacity:0;animation:gp-in .4s ease 1.8s forwards,gp-swing 4s ease-in-out 2.2s infinite}
.gp-tailor .str{stroke:#8E6E3C;stroke-width:1.2;fill:none}
.gp-tailor .lbl{fill:var(--card);stroke:#D8CEBC;stroke-width:1}
.gp-tailor .hole{fill:#D8CEBC}
.gp-tailor .lt{font:italic 600 10.5px/1 var(--f-display);fill:var(--ink);text-anchor:middle;text-transform:none;letter-spacing:0}
.gp-tailor .pins circle{fill:var(--gold);opacity:0;animation:gp-in .3s ease forwards}
.gp-tailor .pins circle:nth-child(1){animation-delay:2s}.gp-tailor .pins circle:nth-child(2){animation-delay:2.2s}.gp-tailor .pins circle:nth-child(3){animation-delay:2.4s}
@keyframes gp-swing{0%,100%{transform:rotate(0)}50%{transform:rotate(5deg)}}
.gp-tailor{max-width:440px}
@media (prefers-reduced-motion:reduce){.gp-tailor .tp{stroke-dashoffset:0;animation:none}.gp-tailor .tk,.gp-tailor .tip,.gp-tailor .tag,.gp-tailor .pins circle{opacity:1;animation:none}}

/* costume sur le mannequin (29/10, 0h35) */
.gp-tailor .shirt{fill:#F3EEE4}
.gp-tailor .tie{fill:#14233B}
.gp-tailor .lapel{fill:#3D5C7A}
.gp-tailor .open{stroke:#24394D;stroke-width:1.4}
.gp-tailor .flap{stroke:#24394D;stroke-width:2;stroke-linecap:round}
.gp-tailor .btn{fill:#14233B}
/* duo conseil + gestion, version soignée (29/10, 0h40) */
.gp-duo{position:relative}
.gp-d{display:flex;flex-direction:column}
.gp-d .gp-figs{margin-top:auto;padding-top:18px}
.gp-d ul{margin-bottom:22px}
.gp-d h3{font-size:1.8rem}
.gp-d--t{background:#2F4A62;color:#fff;box-shadow:0 26px 50px -30px rgba(20,30,40,.6)}
.gp-d--t .gp-d-k{color:#D9BE86}
.gp-d--t li{color:#fff;border-top-color:rgba(255,255,255,.14)}
.gp-d--t li::before{background:#D9BE86}
.gp-d--t .gp-figs{border-top-color:rgba(255,255,255,.18)}
.gp-d--t .gp-figs b{color:#fff}
.gp-d--t .gp-figs span,.gp-d--t .gp-src{color:rgba(255,255,255,.7)}
.gp-logo img{height:34px}
.gp-logo{margin:2px 0 14px;min-height:42px;display:flex;align-items:center}
.gp-figs b small{font-size:.7em;color:var(--gold)}
.gp-plus{width:58px;height:58px;background:var(--gold);box-shadow:0 0 0 8px var(--paper),0 10px 24px -10px rgba(20,30,40,.5);transition:transform .5s cubic-bezier(.3,1.4,.5,1)}
.gp-plus span{display:block;font:300 2rem/1 var(--f-body);color:#fff;margin-top:-3px}
.gp-duo:hover .gp-plus{transform:rotate(90deg)}
.gp-d{transition:transform .4s cubic-bezier(.2,.7,.2,1)}
.gp-d:hover{transform:translateY(-4px)}
.gp-roles{margin-top:40px}
.gp-roles::before{border-top-style:dashed;opacity:.5;transform-origin:left;transform:scaleX(0);transition:transform 1.4s cubic-bezier(.4,0,.2,1) .2s}
.gp-roles:not(.pre)::before{transform:scaleX(1)}
.gp-roles .gp-ic{width:46px;height:46px;background:var(--card);box-shadow:0 0 0 6px var(--paper)}
.gp-roles .gp-ic svg{width:22px;height:22px}
.gp-roles div:hover .gp-ic{background:var(--gold);color:#fff;border-color:var(--gold)}
.gp-roles b{font-size:1.08rem}
@media (prefers-reduced-motion:reduce){.gp-roles::before{transform:none;transition:none}}

.gp-tailor .sleeve{fill:#284057}
.gp-tailor .cuff{stroke:#F3EEE4;stroke-width:3;stroke-linecap:round}

.gp-tags{margin-top:auto;padding-top:18px;border-top:1px solid var(--rule);display:flex;flex-wrap:wrap;gap:8px}
.gp-tags span{padding:7px 14px;border-radius:999px;background:var(--paper-2);font:600 .74rem/1 "Libre Franklin",var(--f-body);letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}
.gp-figs--w b{font-size:1.15rem}

/* ===== Page « Préparer ma retraite » (29/10/2026, 0h55) : préfixe .rt- ===== */
.rt-hero{padding-block:clamp(40px,6vw,88px) clamp(32px,4vw,56px)}
.rt-hero-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(28px,5vw,72px);align-items:center}
.rt-hero h1{font-size:clamp(2.3rem,1.6rem + 3.2vw,4.2rem);margin-top:16px;max-width:13ch}
.rt-hero .lede{margin-top:18px;max-width:46ch}
.rt-hero .btn-row{margin-top:28px}
.rt-ill{margin:0 auto;max-width:440px;width:100%}
.rt-ill svg{width:100%;height:auto;overflow:visible}
.rt-ill .sh{fill:rgba(20,30,40,.08)}
.rt-ill .ground{stroke:#CFC5B4;stroke-width:2;stroke-linecap:round}
.rt-ill .bar1{fill:#2F4A62}.rt-ill .bar2{fill:#8FA5B8}.rt-ill .bar3{fill:#C9A85E}
.rt-ill .bl{font:600 12px/1 var(--f-body);fill:var(--ink-soft);text-anchor:middle}
.rt-ill .bv{font:italic 600 13px/1 var(--f-display);fill:#fff;text-anchor:middle}
.rt-ill .dash{stroke:#C9A85E;stroke-width:1.6;stroke-dasharray:4 4}
.rt-ill .sn{fill:#E2C77E}.rt-ill .ray{stroke:#E2C77E;stroke-width:2.4;stroke-linecap:round}
.rt-ill .b1,.rt-ill .b2{transform-box:fill-box;transform-origin:bottom;transform:scaleY(0);animation:rt-grow .9s cubic-bezier(.2,.8,.2,1) forwards}
.rt-ill .b2{animation-delay:.35s}
.rt-ill .b3{transform:translateY(-120px);opacity:0;animation:rt-drop .8s cubic-bezier(.3,1.3,.5,1) 1.3s forwards}
.rt-ill .dash{opacity:0;animation:gp-in .5s ease 2s forwards}
.rt-ill .sun{transform-box:fill-box;transform-origin:center;animation:rt-spin 30s linear infinite}
@keyframes rt-grow{to{transform:scaleY(1)}}
@keyframes rt-drop{to{transform:none;opacity:1}}
@keyframes rt-spin{to{transform:rotate(360deg)}}
@media (max-width:860px){.rt-hero-grid{grid-template-columns:1fr}}
.rt-q{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:clamp(28px,4vw,44px)}
.rt-qc{background:var(--card);border-radius:var(--radius);padding:24px;transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.rt-qc:hover{transform:translateY(-4px)}
.rt-qc .rt-n{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--gold);color:#fff;font:italic 700 1.3rem/1 var(--f-display);transition:transform .4s cubic-bezier(.3,1.4,.5,1)}
.rt-qc:hover .rt-n{transform:rotate(-12deg) scale(1.08)}
.rt-qc h3{font:600 1.12rem/1.25 var(--f-display);margin:14px 0 6px}
.rt-qc p{margin:0;color:var(--ink-soft);font-size:.94rem}
.rt-steps{grid-template-columns:repeat(3,minmax(0,1fr))}
.rt-steps .n{background:var(--paper)}
.rt-ages{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,3vw,32px);margin-top:clamp(28px,4vw,44px);position:relative;padding-top:34px}
.rt-ages::before{content:"";position:absolute;left:0;right:0;top:10px;height:6px;border-radius:3px;background:#D8CEBC}
.rt-ages div{position:relative}
.rt-ages div::before{content:"";position:absolute;top:-30px;left:0;width:14px;height:14px;border-radius:50%;background:var(--card);border:3px solid var(--ink)}
.rt-age{font:600 .74rem/1 "Libre Franklin",var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.rt-ages h3{font:600 1.15rem/1.2 var(--f-display);margin:10px 0 6px}
.rt-ages p{margin:0;color:var(--ink-soft);font-size:.94rem}
@media (max-width:960px){.rt-q,.rt-ages{grid-template-columns:repeat(2,minmax(0,1fr))}.rt-ages::before{display:none}.rt-ages div::before{display:none}}
@media (max-width:560px){.rt-q,.rt-steps{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.rt-ill .b1,.rt-ill .b2,.rt-ill .b3,.rt-ill .dash{transform:none;opacity:1;animation:none}.rt-ill .sun{animation:none}}
/* retraite v2 : relais diagnostic → épargne, outils (29/10, 1h05) */
.rt-relay{display:grid;grid-template-columns:minmax(0,.85fr) 90px minmax(0,1.15fr);align-items:center;margin-top:clamp(28px,4vw,44px)}
.rt-r1{background:var(--card);border-radius:var(--radius);padding:clamp(22px,3vw,30px);border:1px dashed #CFC5B4}
.rt-r1 h3,.rt-r2 h3{font:600 1.5rem/1.15 var(--f-display);margin:0 0 10px}
.rt-r1 p:last-child{margin:0;color:var(--ink-soft)}
.rt-r2{background:#2F4A62;color:#fff;border-radius:var(--radius);padding:clamp(24px,3.5vw,38px);box-shadow:0 26px 50px -30px rgba(20,30,40,.6)}
.rt-r2 .gp-d-k{color:#D9BE86}
.rt-r2 h3{color:#fff;font-size:1.8rem}
.rt-r2 ul{list-style:none;margin:0;padding:0}
.rt-r2 li{padding:11px 0 11px 22px;border-top:1px solid rgba(255,255,255,.14);position:relative}
.rt-r2 li:first-child{border-top:0}
.rt-r2 li::before{content:"";position:absolute;left:0;top:19px;width:8px;height:8px;border-radius:50%;background:#D9BE86}
.rt-baton{display:grid;place-items:center}
.rt-baton svg{width:70px;height:24px;overflow:visible}
.rt-baton path{fill:none;stroke:var(--gold);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:110;stroke-dashoffset:110;transition:stroke-dashoffset 1s ease .4s}
.rt-relay .rt-r2:not(.pre) ~ *, .rt-relay:hover .rt-baton path{stroke-dashoffset:0}
.rt-baton path{animation:ep-draw 1.2s ease .6s forwards}
@media (max-width:860px){.rt-relay{grid-template-columns:1fr}.rt-baton{transform:rotate(90deg);height:70px}}
.rt-tools{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin-top:clamp(28px,4vw,44px);border-top:1px solid var(--rule)}
.rt-tool{padding:26px 24px 26px 0;border-right:1px solid var(--rule);display:flex;flex-direction:column;gap:12px}
.rt-tool+.rt-tool{padding-left:24px}
.rt-tool:last-child{border-right:0}
.rt-tool h3{font:600 1.3rem/1.15 var(--f-display);margin:2px 0 0}
.rt-tool dl{margin:0;display:grid;gap:4px}
.rt-tool dt{font:600 .7rem/1 "Libre Franklin",var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-top:8px}
.rt-tool dd{margin:0;color:var(--ink-soft);font-size:.92rem}
.rt-tool:hover .gp-ic{transform:translateY(-3px) rotate(-8deg);background:var(--accent);color:var(--on-accent)}
@media (max-width:960px){.rt-tools{grid-template-columns:repeat(2,minmax(0,1fr))}.rt-tool{border-right:0;border-bottom:1px solid var(--rule);padding-left:0!important}}

/* ===== Retraite : version dynamique (29/10/2026, 10h) ===== */
/* Héros : le complément flotte doucement une fois posé */
.rt-ill .b3{animation:rt-drop .8s cubic-bezier(.3,1.3,.5,1) 1.3s forwards,rt-float 4.5s ease-in-out 2.4s infinite}
@keyframes rt-float{0%,100%{transform:none;opacity:1}50%{transform:translateY(-6px);opacity:1}}
/* Qui fait quoi : les deux cartes arrivent l'une vers l'autre, la flèche se trace, la liste se déroule */
.js .rt-r1.reveal.pre{transform:translateX(-36px)}
.js .rt-r2.reveal.pre{transform:translateX(36px)}
.rt-r2.reveal{transition-delay:.2s}
.rt-r1{transition:opacity .7s ease,transform .7s ease,box-shadow .35s ease}
.rt-r1:hover{transform:translateY(-4px);box-shadow:0 22px 40px -28px rgba(20,30,40,.45)}
.rt-r2{transition:opacity .7s ease .2s,transform .7s ease .2s}
.js .rt-relay:not(.on) .rt-baton path{animation:none}
.js .rt-relay:not(.on) .rt-r2 li{opacity:0;transform:translateX(16px)}
.rt-r2 li{transition:opacity .5s ease,transform .5s cubic-bezier(.2,.7,.2,1)}
.rt-relay.on .rt-r2 li:nth-child(1){transition-delay:.7s}
.rt-relay.on .rt-r2 li:nth-child(2){transition-delay:.9s}
.rt-relay.on .rt-r2 li:nth-child(3){transition-delay:1.1s}
.rt-r2 li::before{transition:transform .3s cubic-bezier(.3,1.6,.5,1)}
.rt-r2 li:hover::before{transform:scale(1.6)}
/* Les solutions : cartes animées avec un liseré de couleur */
.rt-tools{gap:16px;border-top:0}
.rt-tool{position:relative;overflow:hidden;background:var(--card);border-radius:var(--radius);padding:30px 24px 26px!important;border:0!important;transition:opacity .7s ease,transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s ease}
.rt-tool::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:var(--c,var(--ink));transform:scaleX(.18);transform-origin:left;transition:transform .55s cubic-bezier(.2,.7,.2,1)}
.rt-tool:nth-child(1){--c:#2F4A62}.rt-tool:nth-child(2){--c:var(--accent)}.rt-tool:nth-child(3){--c:var(--gold)}.rt-tool:nth-child(4){--c:#8FA5B8}
.rt-tool:hover{transform:translateY(-8px);box-shadow:0 26px 44px -30px rgba(20,30,40,.5)}
.rt-tool:hover::before,.rt-tools.on .rt-tool::before{transform:scaleX(1)}
.rt-tools.on .rt-tool:nth-child(1)::before{transition-delay:.2s}
.rt-tools.on .rt-tool:nth-child(2)::before{transition-delay:.4s}
.rt-tools.on .rt-tool:nth-child(3)::before{transition-delay:.6s}
.rt-tools.on .rt-tool:nth-child(4)::before{transition-delay:.8s}
.rt-tool:nth-child(2).reveal{transition-delay:.1s}.rt-tool:nth-child(3).reveal{transition-delay:.2s}.rt-tool:nth-child(4).reveal{transition-delay:.3s}
.rt-tool:hover{transition-delay:0s}
.rt-tool .gp-ic{color:var(--c)}
/* La frise des âges se remplit au défilement */
.rt-ages::after{content:"";position:absolute;left:0;right:0;top:10px;height:6px;border-radius:3px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform 2s cubic-bezier(.45,0,.2,1) .2s}
.rt-ages.on::after{transform:scaleX(1)}
.rt-ages div{z-index:1;padding:0 16px 18px;margin:0 -16px;border-radius:var(--radius);transition:background .3s ease,transform .35s cubic-bezier(.2,.7,.2,1)}
.rt-ages div::before{left:16px;z-index:2;transition:background .3s ease,border-color .3s ease}
.rt-ages div:hover{background:var(--card);transform:translateY(-4px)}
.rt-ages.on div::before{background:var(--gold);border-color:var(--gold);animation:rt-pop .55s cubic-bezier(.3,1.6,.5,1) both}
.rt-ages.on div:nth-child(1)::before{animation-delay:.3s}
.rt-ages.on div:nth-child(2)::before{animation-delay:.8s}
.rt-ages.on div:nth-child(3)::before{animation-delay:1.3s}
.rt-ages.on div:nth-child(4)::before{animation-delay:1.8s;width:20px;height:20px;top:-33px}
@keyframes rt-pop{0%{transform:scale(1);background:var(--card);border-color:var(--ink)}50%{transform:scale(1.5)}100%{transform:scale(1)}}
.rt-ages div:hover h3{color:var(--accent)}
.rt-ages h3{transition:color .25s ease}
@media (max-width:960px){.rt-ages::after{display:none}.rt-ages div{margin:0;padding:16px}.rt-tool{padding-left:24px!important}}
@media (prefers-reduced-motion:reduce){:root:not(.mm-force) .rt-ill .b3{animation:none;transform:none;opacity:1}}

/* ===== Page « Mes impôts » refaite (29/10/2026, 10h30) : préfixe .im- ===== */
.im-hero{padding-block:clamp(40px,6vw,88px) clamp(32px,4vw,56px)}
.im-hero-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(28px,5vw,72px);align-items:center}
.im-hero h1{font-size:clamp(2.3rem,1.6rem + 3.2vw,4.2rem);margin-top:16px;max-width:none}
.im-hero h1 em{white-space:nowrap}
.im-hero .lede{margin-top:18px;max-width:48ch}
.im-hero .btn-row{margin-top:28px}
.im-ill{margin:0 auto;max-width:440px;width:100%}
.im-ill svg{width:100%;height:auto;overflow:visible}
.im-ill .sh{fill:rgba(20,30,40,.08)}
.im-ill .fold-b{fill:#2F4A62}
.im-ill .fold-f{fill:#3E5C78}
.im-ill .fl{font:italic 600 15px/1 var(--f-display);fill:#fff;text-anchor:middle;letter-spacing:.02em}
.im-ill .sheet{fill:#FBF9F4;stroke:#D8CEBC;stroke-width:1.5}
.im-ill .sn{font:italic 700 18px/1 var(--f-display);fill:#14233B}
.im-ill .ln{stroke:#D8CEBC;stroke-width:5;stroke-linecap:round}
.im-ill .st{fill:#C9A85E}.im-ill .st-in{fill:none;stroke:#fff;stroke-width:1.6;stroke-dasharray:3 4}
.im-ill .st-ok{fill:none;stroke:#fff;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:44;stroke-dashoffset:44;animation:ep-draw .5s ease 2.55s forwards}
.im-ill .st-l{font:600 12px/1 "Libre Franklin",var(--f-body);letter-spacing:.16em;text-transform:uppercase;fill:#A47A36;text-anchor:middle;opacity:0;animation:gp-in .4s ease 2.7s forwards}
.im-ill .im-s{transform-box:fill-box;transform-origin:center;animation:im-in 1s cubic-bezier(.2,.8,.2,1) both}
.im-ill .im-s1{--f:translate(-130px,-40px) rotate(-22deg);animation-delay:.15s}
.im-ill .im-s2{--f:translate(30px,-120px) rotate(16deg);animation-delay:.5s}
.im-ill .im-s3{--f:translate(150px,-30px) rotate(28deg);animation-delay:.85s}
@keyframes im-in{from{transform:var(--f);opacity:0}60%{opacity:1}to{transform:none;opacity:1}}
.im-ill .im-stack{animation:im-settle .5s ease 1.75s both}
@keyframes im-settle{0%{transform:none}40%{transform:translateY(5px)}100%{transform:none}}
.im-ill .im-stamp{transform-box:fill-box;transform-origin:center;transform:scale(0) rotate(-40deg);animation:im-stamp .6s cubic-bezier(.3,1.6,.5,1) 2.1s forwards}
@keyframes im-stamp{to{transform:scale(1) rotate(-12deg)}}
@media (max-width:860px){.im-hero-grid{grid-template-columns:1fr}}

.im-who{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.im-w{background:var(--card);border-radius:var(--radius);padding:26px 24px;display:flex;flex-direction:column;gap:12px;transition:opacity .7s ease,transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s ease}
.im-w:nth-child(2).reveal{transition-delay:.08s}.im-w:nth-child(3).reveal{transition-delay:.16s}.im-w:nth-child(4).reveal{transition-delay:.24s}
.im-w:hover{transform:translateY(-6px);box-shadow:0 26px 44px -30px rgba(20,30,40,.5);transition-delay:0s}
.im-w:hover .gp-ic{transform:translateY(-3px) rotate(-8deg);background:var(--accent);color:var(--on-accent)}
.im-w h3{font:600 1.15rem/1.25 var(--f-display);margin:4px 0 0}
.im-w p{margin:0;color:var(--ink-soft);font-size:.94rem}

.im-forms{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:14px}
.im-f{position:relative;background:var(--card);border:1px solid var(--rule);border-radius:6px 22px 6px 6px;padding:22px 16px 20px;min-height:170px;display:flex;flex-direction:column;gap:10px;transition:opacity .7s ease,transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s ease,background .3s ease}
.im-f::before{content:"";position:absolute;top:-1px;right:-1px;width:22px;height:22px;background:var(--paper-2);border-radius:0 0 0 6px;border-left:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.im-f::after{content:"";position:absolute;left:16px;right:40%;bottom:38px;height:3px;border-radius:2px;background:#E6DDCC;box-shadow:0 9px 0 #E6DDCC,0 18px 0 #E6DDCC}
.im-f b{font:italic 700 1.7rem/1 var(--f-display);color:var(--ink)}
.im-f span{font-size:.84rem;line-height:1.35;color:var(--ink-soft)}
.im-f:hover{transform:translateY(-8px) rotate(-1.5deg);box-shadow:0 26px 40px -28px rgba(20,30,40,.5);transition-delay:0s}
.im-f:nth-child(even):hover{transform:translateY(-8px) rotate(1.5deg)}
.im-f:hover b{color:var(--gold)}
.im-f:nth-child(2).reveal{transition-delay:.06s}.im-f:nth-child(3).reveal{transition-delay:.12s}.im-f:nth-child(4).reveal{transition-delay:.18s}.im-f:nth-child(5).reveal{transition-delay:.24s}.im-f:nth-child(6).reveal{transition-delay:.3s}.im-f:nth-child(7).reveal{transition-delay:.36s}
.js .im-f.reveal.pre{transform:translateY(30px) rotate(-3deg)}

.im-cycle{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(28px,5vw,72px);align-items:center;--n:0}
.im-ring{position:relative;max-width:360px;width:100%;margin:0 auto}
.im-ring svg{width:100%;height:auto;display:block;overflow:visible}
.im-ring .tr{fill:none;stroke:#D8CEBC;stroke-width:14}
.im-ring .ac{fill:none;stroke:#C9A85E;stroke-width:14;stroke-linecap:round;stroke-dasharray:150 604}
.im-arc{transform-origin:150px 150px;transform:rotate(calc(var(--n) * 90deg - 125.8deg));transition:transform .9s cubic-bezier(.5,0,.2,1)}
.im-dots circle{fill:var(--card);stroke:#2F4A62;stroke-width:3;transform-box:fill-box;transform-origin:center;transition:fill .3s ease,stroke .3s ease,transform .4s cubic-bezier(.3,1.6,.5,1)}
.im-cycle[data-i="0"] .im-dots circle:nth-child(1),.im-cycle[data-i="1"] .im-dots circle:nth-child(2),.im-cycle[data-i="2"] .im-dots circle:nth-child(3),.im-cycle[data-i="3"] .im-dots circle:nth-child(4){fill:#2F4A62;transform:scale(1.4)}
.im-ring-c{position:absolute;inset:22%;display:grid;place-content:center;text-align:center;gap:8px}
.im-ring-k{font:600 .74rem/1 "Libre Franklin",var(--f-body);letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.im-ring-t{font:600 1.35rem/1.2 var(--f-display);color:var(--ink)}
.im-ring-c.swap{animation:im-swap .5s ease}
@keyframes im-swap{0%{opacity:0;transform:translateY(8px)}100%{opacity:1;transform:none}}
.im-steps{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.im-steps button{all:unset;box-sizing:border-box;display:grid;grid-template-columns:130px 1fr;column-gap:20px;width:100%;padding:18px 22px;border-radius:var(--radius);cursor:pointer;position:relative;transition:background .3s ease,box-shadow .3s ease}
.im-steps button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.im-steps button::before{content:"";position:absolute;left:0;top:18px;bottom:18px;width:4px;border-radius:2px;background:#C9A85E;transform:scaleY(0);transition:transform .35s ease}
.im-steps .when{grid-row:1/3;font:600 .74rem/1.6 "Libre Franklin",var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);padding-top:3px}
.im-steps h3{font:600 1.15rem/1.25 var(--f-display);margin:0 0 4px}
.im-steps p{margin:0;color:var(--ink-soft);font-size:.94rem}
.im-steps button:hover{background:color-mix(in srgb,var(--card) 60%,transparent)}
.im-steps .is-on button{background:var(--card);box-shadow:0 18px 36px -26px rgba(20,30,40,.45)}
.im-steps .is-on button::before{transform:scaleY(1)}
.im-steps .is-on .when{color:var(--gold)}
@media (max-width:860px){.im-cycle{grid-template-columns:1fr}.im-ring{max-width:280px}.im-steps button{grid-template-columns:1fr}.im-steps .when{grid-row:auto}}

.im-price-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(20px,3vw,32px);align-items:start}
.im-price{background:#2F4A62;color:#fff;border-radius:var(--radius);padding:clamp(26px,4vw,44px);display:flex;flex-direction:column;gap:16px;align-items:flex-start;box-shadow:0 26px 50px -30px rgba(20,30,40,.6)}
.im-from{margin:0;font:600 .74rem/1 "Libre Franklin",var(--f-body);letter-spacing:.16em;text-transform:uppercase;color:#D9BE86}
.im-big{margin:0;font-family:var(--f-display);font-size:clamp(3.2rem,2rem + 4vw,5rem);line-height:1;font-variant-numeric:tabular-nums}
.im-big small{font:400 1rem/1 var(--f-body);color:rgba(255,255,255,.75);margin-left:10px}
.im-bar{display:flex;width:100%;height:64px;border-radius:12px;overflow:hidden;background:rgba(255,255,255,.08)}
.im-bar>div{flex:1 1 50%;display:flex;flex-direction:column;justify-content:center;padding:0 16px;gap:3px;min-width:0}
.im-bar span{font-size:.74rem;line-height:1.2;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.im-bar b{font:600 1.15rem/1 var(--f-display)}
.im-bar-pay{background:#fff;color:#14233B;transition:flex-basis 1.2s cubic-bezier(.5,0,.2,1) .4s}
.im-bar-ci{background:#C9A85E;color:#14233B;transition:flex-basis 1.2s cubic-bezier(.5,0,.2,1) .4s,opacity .6s ease .4s}
.js .im-price-grid:not(.on) .im-bar-pay{flex-basis:100%}
.js .im-price-grid:not(.on) .im-bar-ci{flex-basis:0%;opacity:0}
.im-res{margin:0;color:rgba(255,255,255,.85);max-width:44ch}
.im-res b{color:#fff;font-family:var(--f-display);font-size:1.25em}
.im-price .btn{margin-top:8px;background:#fff;border-color:#fff;color:#14233B}
.im-price .btn:hover{background:#C9A85E;border-color:#C9A85E}
.im-incl{background:var(--card);border-radius:var(--radius);padding:clamp(26px,4vw,40px)}
.im-incl h3{font:600 1.5rem/1.15 var(--f-display);margin:0 0 14px}
.im-incl ul{list-style:none;margin:0;padding:0}
.im-incl li{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-top:1px solid var(--rule);transition:opacity .5s ease,transform .5s cubic-bezier(.2,.7,.2,1)}
.im-incl li:first-child{border-top:0}
.im-incl svg{flex:none;width:22px;height:22px;color:var(--accent);margin-top:2px;stroke-dasharray:24;stroke-dashoffset:0;transition:stroke-dashoffset .5s ease}
.js .im-price-grid:not(.on) .im-incl li{opacity:0;transform:translateX(14px)}
.js .im-price-grid:not(.on) .im-incl svg{stroke-dashoffset:24}
.im-price-grid.on .im-incl li:nth-child(1),.im-price-grid.on .im-incl li:nth-child(1) svg{transition-delay:.3s}
.im-price-grid.on .im-incl li:nth-child(2),.im-price-grid.on .im-incl li:nth-child(2) svg{transition-delay:.45s}
.im-price-grid.on .im-incl li:nth-child(3),.im-price-grid.on .im-incl li:nth-child(3) svg{transition-delay:.6s}
.im-price-grid.on .im-incl li:nth-child(4),.im-price-grid.on .im-incl li:nth-child(4) svg{transition-delay:.75s}
.im-price-grid.on .im-incl li:nth-child(5),.im-price-grid.on .im-incl li:nth-child(5) svg{transition-delay:.9s}
.im-price-grid.on .im-incl li:nth-child(6),.im-price-grid.on .im-incl li:nth-child(6) svg{transition-delay:1.05s}
.im-note{margin:22px 0 0;max-width:90ch;font-size:.8rem;line-height:1.55;color:var(--ink-soft)}
@media (max-width:1100px){.im-forms{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:960px){.im-who{grid-template-columns:repeat(2,minmax(0,1fr))}.im-price-grid{grid-template-columns:1fr}}
@media (max-width:560px){.im-who{grid-template-columns:1fr}.im-forms{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (prefers-reduced-motion:reduce){:root:not(.mm-force) .im-ill *{animation:none!important;opacity:1!important}:root:not(.mm-force) .im-ill .im-stamp{transform:scale(1) rotate(-12deg)}:root:not(.mm-force) .im-ill .st-ok{stroke-dashoffset:0}}

.im-left{display:grid;gap:18px}
.im-perks{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:14px}
.im-perks li{display:flex;gap:14px;align-items:flex-start;background:var(--card);border-radius:var(--radius);padding:18px 18px;transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.im-perks li:hover{transform:translateY(-3px)}
.im-perks li:hover .gp-ic{transform:translateY(-2px) rotate(-8deg);background:var(--accent);color:var(--on-accent)}
.im-perks .gp-ic{flex:none;width:42px;height:42px}
.im-perks .gp-ic svg{width:21px;height:21px}
.im-perks b{display:block;font:600 1rem/1.25 var(--f-display);margin:2px 0 4px}
.im-perks span:not(.gp-ic){display:block;font-size:.84rem;line-height:1.4;color:var(--ink-soft)}
.im-perks.reveal{transition-delay:.15s}
@media (max-width:560px){.im-perks{grid-template-columns:1fr}}

.im-left .im-note{margin:4px 4px 0;max-width:none}

/* ===== Conseils (blog) : index + articles (29/10/2026, 11h) : préfixe .bl- ===== */
.bl-hero{padding-block:clamp(40px,6vw,88px) clamp(20px,3vw,36px)}
.bl-hero h1{font-size:clamp(2.3rem,1.6rem + 3.2vw,4.2rem);margin-top:16px}
.bl-hero .lede{margin-top:18px;max-width:52ch}
.bl-list-band{padding-top:clamp(12px,2vw,24px)}
.bl-meta{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0;font:600 .72rem/1.4 "Libre Franklin",var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.bl-meta span:first-child{color:var(--gold)}
.bl-go{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:.92rem;color:var(--ink);margin-top:auto}
.bl-go svg{width:18px;height:18px;transition:transform .3s cubic-bezier(.2,.7,.2,1)}
.bl-feat{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(20px,4vw,48px);align-items:center;background:#2F4A62;color:#fff;border-radius:var(--radius);padding:clamp(24px,4vw,44px);text-decoration:none;box-shadow:0 26px 50px -30px rgba(20,30,40,.6);transition:opacity .7s ease,transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s ease}
.bl-feat:hover{transform:translateY(-6px);box-shadow:0 34px 60px -32px rgba(20,30,40,.7)}
.bl-feat:hover .bl-go svg,.bl-card:hover .bl-go svg{transform:translateX(5px)}
.bl-feat-txt{display:flex;flex-direction:column;gap:14px}
.bl-feat .bl-meta{color:rgba(255,255,255,.7)}.bl-feat .bl-meta span:first-child{color:#D9BE86}
.bl-feat h2{font:600 clamp(1.7rem,1.2rem + 1.6vw,2.5rem)/1.15 var(--f-display);margin:0;color:#fff}
.bl-feat p:not(.bl-meta){margin:0;color:rgba(255,255,255,.85);max-width:50ch}
.bl-feat .bl-go{color:#fff}
.bl-feat-art svg{width:100%;max-width:340px;height:auto;display:block;margin:0 auto}
.bl-feat-art .c1{fill:#FBF9F4}.bl-feat-art .c2{stroke:#C9A85E;stroke-width:28}.bl-feat-art .t1{font:600 13px/1 "Libre Franklin",var(--f-body);letter-spacing:.16em;text-transform:uppercase;fill:#14233B;text-anchor:middle}
.bl-feat-art .t2{font:italic 700 64px/1 var(--f-display);fill:#2F4A62;text-anchor:middle}
.bl-feat-art .c3{fill:#C9A85E}.bl-feat-art .c4{stroke:#fff;stroke-width:6;stroke-linecap:round}
.bl-feat-art svg{transition:transform .5s cubic-bezier(.3,1.4,.5,1)}.bl-feat:hover .bl-feat-art svg{transform:rotate(-3deg) scale(1.03)}
.bl-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}
.bl-card{display:flex;flex-direction:column;gap:12px;background:var(--card);border-radius:var(--radius);padding:26px;text-decoration:none;color:var(--ink);transition:opacity .7s ease,transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s ease}
.bl-card:hover{transform:translateY(-6px);box-shadow:0 26px 44px -30px rgba(20,30,40,.5)}
.bl-card h3{font:600 1.35rem/1.2 var(--f-display);margin:0}
.bl-card p:not(.bl-meta){margin:0;color:var(--ink-soft);font-size:.95rem}
.bl-card:nth-child(2).reveal{transition-delay:.1s}
.bl-card-art{border-radius:10px;background:var(--paper-2);margin-bottom:4px}
.bl-card-art svg{display:block;width:100%;height:auto;max-height:130px}
.bl-card-art .a{fill:#8FA5B8}.bl-card-art .b{fill:#2F4A62}.bl-card-art .g{stroke:#CFC5B4;stroke-width:2;stroke-linecap:round}
.bl-art-c .r{fill:none;stroke:#2F4A62;stroke-width:6;stroke-linejoin:round;stroke-linecap:round}.bl-art-c .a{fill:#FBF9F4;stroke:#2F4A62;stroke-width:2}.bl-art-c .b{fill:#C9A85E}
@media (max-width:860px){.bl-feat{grid-template-columns:1fr}.bl-grid{grid-template-columns:1fr}}

.bl-art-head{padding-block:clamp(32px,5vw,72px) clamp(20px,3vw,36px)}
.bl-art-head h1{max-width:24ch}
.bl-crumb{display:flex;gap:10px;align-items:center;font-size:.88rem;color:var(--ink-soft);margin-bottom:22px}
.bl-crumb a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--rule);text-underline-offset:4px}
.bl-crumb a:hover{text-decoration-color:currentColor}
.bl-art-head h1{font-size:clamp(2.1rem,1.5rem + 2.6vw,3.6rem);line-height:1.08;margin:14px 0 0}
.bl-art-head .lede{margin-top:20px;max-width:62ch}
.bl-art-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(28px,5vw,72px);align-items:start;padding-bottom:clamp(48px,7vw,96px)}
.bl-body{max-width:68ch;font-size:1.05rem;line-height:1.75}
.bl-body h2{font:600 clamp(1.4rem,1.1rem + 1vw,1.8rem)/1.2 var(--f-display);margin:2.2em 0 .6em;scroll-margin-top:110px}
.bl-body p{margin:0 0 1em}
.bl-body b{color:var(--ink)}
.bl-list{margin:0 0 1.2em;padding:0;list-style:none;display:grid;gap:12px}
.bl-list li{position:relative;padding-left:24px}
.bl-list li::before{content:"";position:absolute;left:2px;top:.72em;width:8px;height:8px;border-radius:50%;background:var(--gold)}
.bl-key{background:var(--card);border-radius:var(--radius);padding:24px 26px;border-left:4px solid #C9A85E}
.bl-key-t{margin:0 0 10px;font:600 .74rem/1 "Libre Franklin",var(--f-body);letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.bl-key ul{margin:0;padding:0;list-style:none;display:grid;gap:10px}
.bl-key li{position:relative;padding-left:26px;font-size:.98rem;line-height:1.55}
.bl-key li::before{content:"";position:absolute;left:0;top:.3em;width:14px;height:8px;border-left:2.5px solid var(--accent);border-bottom:2.5px solid var(--accent);transform:rotate(-45deg)}
.bl-disc{margin-top:2.4em!important;padding-top:1.2em;border-top:1px solid var(--rule);font-size:.82rem;line-height:1.55;font-style:italic;color:var(--ink-soft)}
.bl-aside{position:sticky;top:110px;display:grid;gap:16px}
.bl-toc{background:var(--card);border-radius:var(--radius);padding:22px 24px}
.bl-toc ol{margin:0;padding:0;list-style:none;counter-reset:t;display:grid;gap:4px}
.bl-toc li{counter-increment:t}
.bl-toc a{display:flex;gap:10px;padding:6px 0;text-decoration:none;color:var(--ink-soft);font-size:.94rem;transition:color .2s ease}
.bl-toc a::before{content:counter(t,decimal-leading-zero);font:italic 600 .9rem/1.5 var(--f-display);color:var(--gold)}
.bl-toc a:hover,.bl-toc a.on{color:var(--ink)}
.bl-cta{background:#2F4A62;color:#fff;border-radius:var(--radius);padding:24px;display:grid;gap:10px;justify-items:start}
.bl-cta-t{margin:0;font:600 1.2rem/1.25 var(--f-display)}
.bl-cta p:not(.bl-cta-t){margin:0;font-size:.92rem;color:rgba(255,255,255,.85)}
.bl-cta .btn{margin-top:6px;background:#fff;border-color:#fff;color:#14233B}
.bl-cta .btn:hover{background:#C9A85E;border-color:#C9A85E}
@media (max-width:960px){.bl-art-grid{grid-template-columns:1fr}.bl-aside{position:static}}

/* =====================================================================
   VERSION MOBILE (29/10/2026) — passe dédiée téléphone (≤ 760 px)
   Tout ce qui suit ne touche pas la version ordinateur.
   ===================================================================== */
@media (max-width:760px){
  /* Boutons : jamais plus larges que l'écran (texte qui passe à la ligne si besoin) */
  .btn{white-space:normal;text-align:center;line-height:1.25;max-width:100%;letter-spacing:.06em}
  .eyebrow,.gp-d-k{line-height:1.45}
  .btn-row .btn{flex:0 1 auto}
  .callbar{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .callbar .btn{letter-spacing:.06em;font-size:.8rem;padding:13px 8px}

  /* Accueil : pastille de prix empilée */
  .price-pill{display:flex;flex-direction:column;align-items:flex-start;gap:8px;width:100%;padding:18px 20px}
  .pp-label{border-right:0;padding:0;align-self:flex-start!important}
  .price-pill .pp-price{align-self:flex-start!important}

  /* Accueil : escalier « la graine devient arbre » — les plantes ne mordent plus sur le texte */
  .hw{gap:0}
  .hw-step{padding:30px 8px 64px 0}
  .hw-step:nth-child(3){padding-bottom:84px}
  .hw-step:last-child{padding-bottom:12px}
  .hw-step:nth-child(n) .ill-plant{right:4px;width:44px}
  .hw-step:nth-child(4) .ill-plant{width:66px}
  .hw-step .num{font-size:4.4rem;bottom:auto;top:14px;right:0}
  .hw-cta{margin-top:8px}

  /* Accueil : arbre des saisons et lecteur posés sans couvrir le texte */
  .band--year{padding-bottom:120px}
  .sitter{width:128px;bottom:-52px;right:12px}
  .reviews{padding-bottom:96px}

  /* Mon épargne : « Aujourd'hui, souvent » / « Ensemble, ensuite » */
  .ep-vs{grid-template-columns:minmax(0,1fr)}
  .ep-before,.ep-after{min-width:0;padding:22px}
  .ep-before .scatter{flex:none;min-height:0;display:flex;flex-wrap:wrap;align-items:flex-start;align-content:flex-start;gap:10px;padding:4px 0 6px}
  .ep-before .scatter span,.ep-before:hover .scatter span{position:static;transform:rotate(var(--r));white-space:normal;height:auto;line-height:1.3}
  .ep-before .scatter .doodles{display:none}
  .ep-after li{align-items:flex-start}
  .ep-after li i{margin-top:3px}

  /* Préparer ma retraite : outils sur une colonne, frise des âges verticale */
  .rt-tools{grid-template-columns:minmax(0,1fr)}
  .rt-ages{grid-template-columns:minmax(0,1fr);gap:0;padding:0 0 0 30px}
  .rt-ages::before,.rt-ages::after{display:block;left:6px;right:auto;top:6px;bottom:6px;width:4px;height:auto}
  .rt-ages::after{transform:scaleY(0);transform-origin:top}
  .rt-ages.on::after{transform:scaleY(1)}
  .rt-ages div{margin:0;padding:0 0 26px}
  .rt-ages div::before{display:block;left:-30px;top:2px}
  .rt-ages div:hover{background:none;transform:none}

  /* Mes impôts : libellés de la barre de prix lisibles */
  .im-price-grid{grid-template-columns:minmax(0,1fr)}
  .im-bar{height:auto;min-height:64px}
  .im-bar>div{padding:10px 12px}
  .im-bar span{white-space:normal}

  /* Articles : une seule colonne, rien ne dépasse */
  .bl-art-grid{grid-template-columns:minmax(0,1fr)}
  .bl-body,.bl-aside{min-width:0}
  .bl-cta .btn{width:100%}

  /* Titres : pas de mot coupé hors de l'écran */
  h1,h2,h3{overflow-wrap:break-word}
}
@media (max-width:760px) and (prefers-reduced-motion:reduce){.rt-ages::after{transform:none}}

/* ===== PIED DE PAGE v2 (29/10/2026, 18h50) : 4 colonnes équilibrées, barre légale ===== */
.site-foot{--fg-gold:color-mix(in srgb,var(--gold) 60%,var(--paper));--fg-rule:color-mix(in srgb,var(--paper) 14%,transparent);position:relative;padding-block:clamp(56px,7vw,88px) 28px;border-top:3px solid var(--gold)}
.foot-top{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.8fr) minmax(0,1.25fr) minmax(0,1.1fr);gap:clamp(28px,4vw,56px);padding-bottom:clamp(36px,5vw,56px);border-bottom:1px solid var(--fg-rule)}
.foot-brand{display:grid;gap:20px;align-content:start;justify-items:start}
.foot-brand .logo{height:56px}
.foot-tag{margin:0;max-width:26ch;font-family:var(--f-display);font-size:1.2rem;line-height:1.4;color:var(--paper)}
.foot-tag em{color:var(--fg-gold)}
.foot-btn{--b:var(--paper);background:var(--paper);color:var(--ink);padding:12px 20px;font-size:.92rem}
.foot-btn svg{width:16px;height:16px}
.foot-btn:hover{background:var(--fg-gold);border-color:var(--fg-gold);transform:translateY(-1px)}
.foot-col h4{display:flex;align-items:center;gap:10px;margin:4px 0 20px;font:600 .74rem/1 var(--f-body);letter-spacing:.16em;text-transform:uppercase;color:var(--fg-gold)}
.foot-col h4::before{content:"";width:18px;height:1px;background:currentColor}
.foot-col ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.foot-col a,.foot-bottom a{color:var(--paper);text-decoration:none;opacity:.82;transition:opacity .2s ease,color .2s ease}
.foot-col a:hover,.foot-bottom a:hover{opacity:1;color:var(--fg-gold)}
.foot-col address{font-style:normal;line-height:1.75;opacity:.82}
.foot-more{display:inline-flex;align-items:center;gap:8px;margin-top:14px;font-weight:600}
.foot-more svg{width:15px;height:15px;transition:transform .2s ease}.foot-more:hover svg{transform:translateX(3px)}
.foot-contact a{display:inline-flex;align-items:center;gap:12px;overflow-wrap:anywhere}
.foot-contact svg{flex:none;width:18px;height:18px;color:var(--fg-gold)}
.site-foot .legal-band{max-width:none;margin:0;padding:28px 0 0;font-size:.76rem;line-height:1.7;opacity:.55}
.site-foot .legal-band a{color:inherit}
.foot-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 28px;margin-top:22px;padding-top:20px;border-top:1px solid var(--fg-rule);font-size:.82rem}
.foot-bottom>span{opacity:.6}
.foot-bottom ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 22px}
@media (max-width:1020px){.foot-top{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){
  .site-foot{padding-bottom:calc(28px + 76px)}
  .foot-top{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 20px}
  .foot-brand,.foot-place,.foot-contact{grid-column:1/-1}
  .foot-place{order:3}.foot-contact{order:2}.foot-site{order:4}
  .foot-site{grid-column:1/-1}.foot-site ul{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px}
  .foot-col a,.foot-bottom a{display:inline-flex;min-height:32px;align-items:center}
  .foot-bottom{flex-direction:column;align-items:flex-start}
  .foot-bottom ul{flex-direction:column;gap:4px}
}
.site-foot .foot-btn{color:var(--ink);opacity:1}
.foot-top{grid-template-columns:minmax(0,1.2fr) minmax(0,.7fr) minmax(0,1.4fr) minmax(0,1.3fr)}
.foot-contact a span{white-space:nowrap}
@media (max-width:1020px){.foot-top{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.foot-top{grid-template-columns:repeat(2,minmax(0,1fr))}.foot-contact a span{white-space:normal}}

/* Audit 29/10 : bouton de l encadré article qui débordait */
aside .btn{white-space:normal;max-width:100%;text-align:center;line-height:1.25}
/* Audit 29/10 : texte aligné à gauche (plus de justifié) */
.about .prose p,.prose--just p{text-align:left;hyphens:manual;-webkit-hyphens:manual}
/* Audit 29/10 : lisibilité et cibles tactiles sur mobile */
@media (max-width:760px){
  .chart .axis{font-size:24px}
  .ep-jar .ly-t{font-size:11.5px}
  .chips>*{min-height:44px}
  .bl-toc a{padding:11px 0}
  .bl-crumb a{display:inline-flex;align-items:center;min-height:44px}
}
@media (max-width:760px){
  .ep-jar .ly-t{font-size:10px;letter-spacing:.01em}
  .chart{overflow:visible}.chart .axis{font-size:19px}
  .hw-cta .btn{font-size:.84rem;letter-spacing:.06em;padding-inline:18px}
}
@media (max-width:600px){
  .legal table,.legal tbody,.legal tr,.legal th,.legal td{display:block;width:auto}
  .legal tr{padding:14px 0;border-bottom:1px solid var(--rule)}
  .legal th,.legal td{padding:0;border:0}
  .legal th{margin-bottom:4px;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}
}
.nw{white-space:nowrap}
@media (max-width:760px){.rt-ages.on div:nth-child(4)::before{top:-1px;left:-33px}}
/* Mise en ligne 29/10 : formulaire réel */
.form-err{margin:0;padding:12px 14px;border-radius:10px;background:#FBEBEB;color:#7A1F1F;font-size:.92rem}
.form-err a{color:inherit;font-weight:600}
.hp{position:absolute!important;left:-9999px!important}
form[data-form] button[disabled]{opacity:.6;cursor:progress}
/* Les cartes qui glissent depuis la droite ne créent plus de défilement horizontal sur mobile */
main{overflow-x:clip}
