/* ==========================================================================
   Fleutot Agency — feuille de style du site
   Sommaire
    1. Polices            8. Le constat (classement)   15. Zone desservie (Dijon)
    2. Identité           9. Les chiffres (toits)      16. Contact
    3. Base              10. Le test                   17. Pied de page
    4. Boutons, liens    11. Studio                    18. Barre mobile, cookies
    5. En-tête, menu     12. Approche, étapes          19. Pages légales, 404, merci
    6. Hero              13. La carte d'avis           20. Apparitions au défilement
    7. Bandeau métiers   14. Offres, FAQ               21. Mouvement réduit, impression
   ========================================================================== */

/* ---------- 1. Polices (hébergées sur le site, aucune requête vers Google) ---------- */
/* Une seule graisse de Cormorant (500) sert pour tous les textes en serif : plus lisible en petit, un fichier de moins. */
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400 500;font-display:swap;src:url('../fonts/cormorant-garamond-500.woff2') format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:500;font-display:swap;src:url('../fonts/cormorant-garamond-500-italic.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/inter-400.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/inter-500.woff2') format('woff2');}
/* Polices de secours ajustées : le texte ne « saute » pas quand les vraies polices arrivent */
@font-face{font-family:'Cormorant Secours';src:local('Times New Roman'),local('Times');size-adjust:97.2%;ascent-override:95.06%;descent-override:29.53%;line-gap-override:0%;}
@font-face{font-family:'Inter Secours';src:local('Arial'),local('Helvetica Neue'),local('Helvetica');size-adjust:107%;ascent-override:90.55%;descent-override:22.55%;line-gap-override:0%;}

@property --a{syntax:'<angle>';inherits:false;initial-value:0deg;}

/* ---------- 2. Identité ---------- */
:root{
  --bg:#F2EFE7;            /* crème (fond) */
  --bg-alt:#EAE3D1;        /* crème foncé (bandes) */
  --paper:#FBFAF6;         /* papier (cartes) */
  --ink:#1A160F;           /* encre */
  --body:#3A3527;          /* texte courant */
  --sage:#6B6852;          /* sauge */
  --sage-text:#57543F;     /* sauge pour petits textes (contraste AA) */
  --sage-light:#C9C4A8;    /* sauge clair, sur fond encre */
  --ochre:#A47A1E;         /* ocre des toits bourguignons : étoiles sur fond clair */
  --ochre-light:#D9B55C;   /* ocre clair : étoiles sur fond encre */
  --sage-line:rgba(107,104,82,.4);
  --sage-soft:rgba(107,104,82,.12);
  --line:rgba(26,22,15,.13);
  --line-inv:rgba(242,239,231,.16);
  --max:1120px;
  --gutter:32px;
  --ease:cubic-bezier(.16,1,.3,1);
  --ease-io:cubic-bezier(.65,0,.35,1);
  --serif:'Cormorant Garamond','Cormorant Secours',ui-serif,Georgia,serif;
  --sans:'Inter','Inter Secours',ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;
  --star-svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 19'%3E%3Cpath d='M10 0l2.9 6.5 7.1.8-5.3 4.7 1.5 7L10 15.4 3.8 19l1.5-7L0 7.3l7.1-.8z'/%3E%3C/svg%3E");
}
@media(max-width:600px){:root{--gutter:20px;}}

/* ---------- 3. Base ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%;}
body{
  margin:0;background:var(--bg);color:var(--body);
  font-family:var(--sans);font-weight:400;font-size:1rem;line-height:1.6;
  font-variant-numeric:lining-nums;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
}
html.menu-open body{overflow:hidden;}
h1,h2,h3,h4{font-family:var(--serif);font-weight:500;color:var(--ink);margin:0;line-height:1.14;text-wrap:balance;}
h2{font-size:clamp(2rem,4vw,3rem);letter-spacing:-.008em;}
p{margin:0;text-wrap:pretty;}
a{color:inherit;}
ul,ol{margin:0;padding:0;}
svg{display:block;}
img{max-width:100%;height:auto;}
address{font-style:normal;}
button{font:inherit;color:inherit;}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter);}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px;}
[hidden]{display:none !important;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.skip{position:absolute;left:12px;top:-64px;z-index:80;background:var(--ink);color:var(--bg);padding:10px 16px;text-decoration:none;font-size:.9rem;transition:top .2s;}
.skip:focus{top:12px;}
::selection{background:var(--ink);color:var(--bg);}

section{padding:clamp(84px,11vw,136px) 0;scroll-margin-top:72px;}
.divider-line{height:1px;background:var(--line);border:none;margin:0;}

/* Les étoiles : --r = note sur 5 */
.stars{--on:var(--ochre);--off:rgba(26,22,15,.17);position:relative;display:inline-block;flex:none;width:5em;height:.95em;font-size:.84rem;}
.stars::before,.stars::after{content:"";position:absolute;left:0;top:0;bottom:0;-webkit-mask:var(--star-svg) left center/1em .95em repeat-x;mask:var(--star-svg) left center/1em .95em repeat-x;}
.stars::before{width:100%;background:var(--off);}
.stars::after{width:calc(var(--r,5) / 5 * 100%);background:var(--on);}

/* Tracés qui se dessinent (pictogrammes) */
.mark .draw{stroke:var(--sage);}
.mark .dot-in{fill:var(--sage);}

/* ---------- 4. Boutons, liens ---------- */
.btn{
  position:relative;display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--ink);color:var(--ink);background:transparent;
  padding:.9em 1.55em;text-decoration:none;
  font:500 .94rem/1.25 var(--sans);letter-spacing:.005em;
  white-space:nowrap;cursor:pointer;overflow:hidden;isolation:isolate;
  transition:color .35s var(--ease),border-color .35s var(--ease),transform .2s var(--ease);
}
.btn::before{
  content:"";position:absolute;inset:0;z-index:-1;background:var(--ink);
  transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease);
}
.btn:focus-visible{color:var(--bg);}
.btn:focus-visible::before{transform:scaleX(1);transform-origin:left;}
@media(hover:hover){
  .btn:hover{color:var(--bg);}
  .btn:hover::before{transform:scaleX(1);transform-origin:left;}
}
.btn:active{transform:scale(.985);}
.btn.solid{background:var(--ink);color:var(--bg);}
.btn.solid::before{background:var(--sage);}
.btn.solid:hover,.btn.solid:focus-visible{border-color:var(--sage);}
.btn.lg{padding:1.05em 1.9em;font-size:1rem;}
/* un reflet passe une fois sur le bouton principal du hero, pour guider l'œil */
.hero-cta .btn::after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:45%;z-index:-1;background:linear-gradient(100deg,rgba(242,239,231,0),rgba(242,239,231,.28),rgba(242,239,231,0));transform:skewX(-18deg);animation:sheen 1.5s var(--ease-io) 2.6s both;}
@keyframes sheen{to{left:130%;}}
.btn[disabled]{opacity:.6;cursor:progress;}
.text-link{
  color:var(--ink);font-weight:500;text-decoration:none;padding-bottom:2px;
  background:linear-gradient(currentColor,currentColor) left bottom/100% 1px no-repeat;
  transition:background-size .4s var(--ease);
}
@media(hover:hover){.text-link:hover{background-size:0 1px;background-position:right bottom;}}
.replay{
  display:inline-flex;align-items:center;gap:6px;flex:none;background:none;border:0;padding:6px 0;
  font:inherit;color:var(--ink);cursor:pointer;
  text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--sage-line);
}
.replay svg{width:13px;height:13px;transition:transform .6s var(--ease);}
.replay:hover svg{transform:rotate(-200deg);}
.replay[hidden]{display:none;}

/* ---------- 5. En-tête, menu mobile ---------- */
.site-head{
  position:fixed;top:0;left:0;right:0;z-index:30;
  background:rgba(242,239,231,.86);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
  transition:background .3s,box-shadow .3s;
  view-transition-name:entete;
}
.site-head.scrolled{background:rgba(242,239,231,.96);box-shadow:0 12px 30px -26px rgba(26,22,15,.5);}
/* fil de progression de la lecture */
.site-head::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--ink);transform:scaleX(var(--sp,0));transform-origin:left;}
.nav{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:20px;padding-bottom:20px;transition:padding .35s var(--ease);}
.site-head.scrolled .nav{padding-top:12px;padding-bottom:12px;}
.wordmark{font-family:var(--serif);font-weight:500;font-size:1.15rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);text-decoration:none;white-space:nowrap;}
nav.links{display:none;gap:30px;font-size:.93rem;margin-left:auto;}
nav.links a{position:relative;padding:6px 0;text-decoration:none;color:var(--body);transition:color .25s;}
nav.links a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease);}
nav.links a:hover,nav.links a.active{color:var(--ink);}
nav.links a:hover::after,nav.links a:focus-visible::after,nav.links a.active::after{transform:scaleX(1);transform-origin:left;}
.head-cta{display:none;}
.menu-toggle{
  display:flex;align-items:center;justify-content:center;height:42px;padding:0 16px;
  background:none;border:1px solid var(--line);color:var(--ink);cursor:pointer;
  font:500 .9rem var(--sans);
}
@media(min-width:960px){
  nav.links{display:flex;}
  .head-cta{display:inline-flex;padding:.7em 1.3em;}
  .nav > .menu-toggle{display:none;}
}

.mobile-panel{
  position:fixed;inset:0;z-index:40;background:var(--bg);
  display:flex;flex-direction:column;padding:20px var(--gutter) calc(28px + env(safe-area-inset-bottom));
  overflow-y:auto;transform:translateX(100%);visibility:hidden;
  transition:transform .45s var(--ease),visibility 0s linear .45s;
}
.mobile-panel.open{transform:none;visibility:visible;transition:transform .45s var(--ease);}
.mobile-panel .top-row{display:flex;justify-content:space-between;align-items:center;}
.mobile-panel nav{margin-top:52px;display:flex;flex-direction:column;gap:18px;}
.mobile-panel nav a{
  font-family:var(--serif);font-size:2.1rem;line-height:1.15;text-decoration:none;color:var(--ink);
  opacity:0;transform:translateX(28px);transition:opacity .5s var(--ease),transform .5s var(--ease);
}
.mobile-panel.open nav a{opacity:1;transform:none;}
.mobile-panel.open nav a:nth-child(1){transition-delay:.08s;}
.mobile-panel.open nav a:nth-child(2){transition-delay:.12s;}
.mobile-panel.open nav a:nth-child(3){transition-delay:.16s;}
.mobile-panel.open nav a:nth-child(4){transition-delay:.2s;}
.mobile-panel.open nav a:nth-child(5){transition-delay:.24s;}
.mobile-panel .btn{margin-top:44px;padding:1.1em 1.4em;}
.mobile-tel{margin-top:18px;text-align:center;font-family:var(--serif);font-size:1.4rem;color:var(--ink);text-decoration:none;}

/* ---------- 6. Hero ---------- */
.hero{position:relative;min-height:100vh;min-height:100svh;padding:0;display:flex;flex-direction:column;overflow:hidden;isolation:isolate;}
.hero-map{position:absolute;inset:0;width:100%;height:100%;z-index:0;}
.hero-inner{position:relative;z-index:2;width:100%;padding:clamp(116px,16vh,164px) 0 clamp(270px,43vh,440px);text-align:center;}
.hero-inner .wrap{max-width:1040px;transform:translate3d(0,calc(var(--hs,0) * 60px),0);opacity:calc(1 - var(--hs,0) * 1.1);}
.hero-tag{display:block;margin-bottom:clamp(18px,3vh,30px);font-family:var(--serif);font-weight:500;font-size:clamp(.84rem,1.15vw,.98rem);line-height:1.3;letter-spacing:.3em;text-transform:uppercase;color:var(--sage-text);animation:fadeUp 1s var(--ease) both;}
.hero-line{display:block;font-size:clamp(2.6rem,6.6vw,5.1rem);line-height:1.03;letter-spacing:-.018em;text-wrap:balance;}
.hero-line .w{display:inline-block;animation:wordIn 1.1s var(--ease) both;animation-delay:calc(var(--i) * 70ms + 140ms);}
.hero-lead{margin:clamp(20px,3vh,30px) auto 0;max-width:51ch;font-size:clamp(1.03rem,1.25vw,1.14rem);animation:fadeUp 1s var(--ease) .78s both;}
.hero-cta{margin-top:clamp(26px,3.8vh,40px);display:flex;flex-direction:column;align-items:center;gap:14px;animation:fadeUp 1s var(--ease) .92s both;}
.hero-note{font-size:.9rem;color:var(--sage-text);}
.hero-note a{color:var(--ink);text-underline-offset:3px;text-decoration-color:var(--sage-line);transition:text-decoration-color .25s;}
.hero-note a:hover{text-decoration-color:currentColor;}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}
@keyframes wordIn{from{opacity:0;transform:translateY(.42em);filter:blur(7px);}to{opacity:1;transform:none;filter:blur(0);}}
@media(max-width:600px){
  .hero-inner{padding-top:108px;padding-bottom:clamp(250px,38vh,330px);}
  .hero-cta .btn{width:100%;}
  .hero-pin{padding:7px 10px 8px;gap:4px;}
  .hp-name{font-size:1rem;}
  .hp-score{font-size:.72rem;gap:6px;}
  .hero-pin .stars{font-size:.68rem;}
}
/* étiquette qui suit « votre commerce » sur le plan */
.hero-pin{
  position:absolute;left:0;top:0;z-index:2;pointer-events:none;
  display:flex;flex-direction:column;gap:5px;padding:9px 13px 10px;
  background:var(--ink);color:var(--bg);box-shadow:0 18px 34px -18px rgba(26,22,15,.7);
  opacity:0;transition:opacity .6s var(--ease);will-change:transform;
}
.hero-pin.on{opacity:1;}
.hp-name{font-family:var(--serif);font-size:1.12rem;line-height:1;white-space:nowrap;}
.hp-score{display:flex;align-items:center;gap:8px;font-size:.76rem;color:var(--sage-light);white-space:nowrap;font-variant-numeric:tabular-nums lining-nums;}
.hp-score b{font-weight:500;color:var(--bg);}
.hero-pin .stars{--on:var(--ochre-light);--off:rgba(242,239,231,.22);font-size:.74rem;}

/* ---------- 7. Bandeau des métiers ---------- */
.ticker{position:relative;z-index:3;overflow:hidden;background:var(--bg-alt);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:17px 0;}
.ticker::before,.ticker::after{content:"";position:absolute;top:0;bottom:0;width:64px;z-index:2;pointer-events:none;}
.ticker::before{left:0;background:linear-gradient(90deg,var(--bg-alt),rgba(234,227,209,0));}
.ticker::after{right:0;background:linear-gradient(-90deg,var(--bg-alt),rgba(234,227,209,0));}
.ticker-track{display:flex;width:max-content;animation:tick 48s linear infinite;}
.ticker:hover .ticker-track{animation-play-state:paused;}
.ticker-group{display:flex;align-items:center;}
.ticker-item{font-family:var(--serif);font-weight:500;font-size:1.18rem;color:var(--ink);letter-spacing:.16em;text-transform:uppercase;padding:0 28px;white-space:nowrap;}
.ticker-sep{flex:none;width:6px;height:6px;background:var(--sage);transform:rotate(45deg);}
@keyframes tick{to{transform:translateX(calc(-100% / 3));}}

/* ---------- 8. Le constat + classement animé ---------- */
.constat .grid{display:grid;gap:56px;align-items:center;}
@media(min-width:960px){.constat .grid{grid-template-columns:1fr 1fr;gap:80px;}}
@media(min-width:700px){.constat h2{max-width:17ch;}}
.constat-text > p{margin-top:22px;font-size:1.05rem;max-width:50ch;}
.factors{list-style:none;margin-top:24px;}
.factors li{position:relative;padding:14px 0 14px 26px;border-top:1px solid var(--line);font-size:1rem;}
.factors li:last-child{border-bottom:1px solid var(--line);}
.factors li::before{content:"";position:absolute;left:2px;top:calc(14px + .8em - 3.5px);width:7px;height:7px;background:var(--sage);transform:rotate(45deg);}
.factors strong{color:var(--ink);font-weight:500;}
.constat-text > .constat-end{margin-top:28px;font-family:var(--serif);font-style:italic;font-weight:500;font-size:1.55rem;line-height:1.35;color:var(--ink);}
.constat-text > .constat-src{margin-top:18px;font-size:.86rem;color:var(--sage-text);}
.constat-src a{color:var(--ink);text-underline-offset:3px;text-decoration-color:var(--sage-line);}
.constat-src a:hover{text-decoration-color:currentColor;}

.rank{--row:60px;margin:0;width:100%;max-width:500px;justify-self:center;}
.rank-card{position:relative;background:var(--paper);border:1px solid var(--line);padding:22px;box-shadow:0 40px 70px -42px rgba(26,22,15,.38),0 2px 8px -5px rgba(26,22,15,.1);}
.rank-search{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:999px;padding:12px 18px;background:var(--bg);}
.rank-search svg{width:17px;height:17px;flex:none;stroke:var(--sage);}
.rank-query{font-size:1rem;color:var(--ink);white-space:nowrap;min-height:1.5em;}
.rank-caret{display:inline-block;width:1px;height:1.1em;margin-left:2px;vertical-align:-.2em;background:var(--ink);animation:blink 1.05s steps(1) infinite;}
@keyframes blink{50%{opacity:0;}}
.rank-sub{margin:18px 2px 12px;font-size:.8rem;color:var(--sage-text);}
.rank-board{position:relative;display:grid;grid-template-columns:30px 1fr;column-gap:10px;}
.rank-band{position:absolute;left:-10px;right:-10px;top:0;height:calc(var(--row) * 3);background:var(--sage-soft);border-left:2px solid var(--sage);}
.rank-band span{position:absolute;right:8px;top:-11px;font-size:.72rem;background:var(--sage-text);color:var(--bg);padding:2px 9px;}
.rank-nums{list-style:none;position:relative;display:grid;grid-auto-rows:var(--row);}
.rank-nums li{display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:1.25rem;color:var(--ink);}
.rank-list{list-style:none;position:relative;height:calc(var(--row) * 6);}
.rank-row{
  position:absolute;left:0;right:0;top:0;height:var(--row);
  display:flex;align-items:center;gap:12px;padding:0 12px;border-bottom:1px solid var(--line);
  transform:translateY(calc((var(--pos) - 1) * var(--row)));
  transition:transform .8s var(--ease),box-shadow .4s;
}
.rank.is-static .rank-row{transition:none;}
.who{flex:1;min-width:0;display:flex;flex-direction:column;gap:7px;}
.bar{display:block;height:9px;width:var(--w);border-radius:5px;background:rgba(26,22,15,.11);}
.score{display:flex;align-items:center;gap:8px;font-size:.8rem;color:var(--body);white-space:nowrap;font-variant-numeric:tabular-nums lining-nums;}
.rank-row.you{z-index:3;background:var(--ink);border-bottom-color:transparent;box-shadow:0 16px 30px -16px rgba(26,22,15,.65);}
.rank-row.you .name{font-family:var(--serif);font-size:1.18rem;line-height:1;color:var(--bg);}
.rank-row.you .score{color:var(--sage-light);}
.rank-row.you .stars{--on:var(--ochre-light);--off:rgba(242,239,231,.22);}
.rank-badge{flex:none;font-size:.74rem;font-weight:500;color:var(--ink);background:var(--bg);padding:3px 9px;opacity:0;transform:scale(.6);transition:opacity .4s,transform .6s var(--ease);}
.rank-row.you.in-top .rank-badge{opacity:1;transform:none;}
.rank-caption{margin-top:14px;display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:.8rem;color:var(--sage-text);}
@media(max-width:420px){
  .rank{--row:56px;}
  .rank-card{padding:16px;}
  .rank-band{left:-6px;right:-6px;}
  .rank-row{padding:0 9px;gap:8px;}
}

/* ---------- 9. Les chiffres : chaque losange est une tuile de toit bourguignon ---------- */
.proof{background:var(--ink);color:#D8D4BE;}
.proof h2{color:var(--bg);}
@media(min-width:700px){.proof h2{max-width:19ch;}}
.proof-grid{list-style:none;display:grid;gap:40px;margin-top:clamp(44px,6vw,76px);}
.proof-item{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1fr);column-gap:22px;align-items:center;}
.proof-item .tiles{grid-row:1 / span 2;}
.proof-num{align-self:end;}
.proof-txt{align-self:start;}
@media(min-width:860px){
  .proof-grid{grid-template-columns:repeat(3,1fr);gap:48px;}
  .proof-item{display:block;}
}
.tiles{max-width:360px;}
.tiles svg{width:100%;height:auto;overflow:visible;}
.tiles path{fill:rgba(242,239,231,.09);transform-box:fill-box;transform-origin:center;}
.tiles path.c0{fill:#EFEADB;}
.tiles path.c1{fill:var(--sage-light);}
.tiles path.c2{fill:var(--ochre-light);}
.tiles.is-prep path.f{fill:rgba(242,239,231,.09);transform:translateY(-.5px) scale(.6);}
.tiles.is-prep.in path.f{transform:none;transition:fill .55s var(--ease) calc(var(--k) * 13ms),transform .7s var(--ease) calc(var(--k) * 13ms);}
.tiles.is-prep.in path.c0{fill:#EFEADB;}
.tiles.is-prep.in path.c1{fill:var(--sage-light);}
.tiles.is-prep.in path.c2{fill:var(--ochre-light);}
.proof-num{font-family:var(--serif);font-weight:500;font-size:clamp(3rem,6vw,4.9rem);line-height:.95;color:var(--bg);font-variant-numeric:tabular-nums lining-nums;white-space:nowrap;}
.proof-txt{margin-top:10px;max-width:30ch;font-size:.98rem;}
@media(min-width:860px){.proof-num{margin-top:26px;}.proof-txt{margin-top:12px;font-size:1.02rem;}}
.proof-src{margin-top:clamp(44px,5vw,64px);padding-top:20px;border-top:1px solid var(--line-inv);font-size:.84rem;color:var(--sage-light);max-width:none;}

/* ---------- 10. Le test ---------- */
.test{background:var(--bg-alt);border-bottom:1px solid var(--line);}
.test-grid{display:grid;gap:48px;align-items:start;overflow-anchor:none;}
@media(min-width:960px){.test-grid{grid-template-columns:.9fr 1.1fr;gap:80px;}.test-intro{padding-top:34px;}}
@media(min-width:960px){.test h2{max-width:13ch;}}
.test-intro p{margin-top:20px;font-size:1.05rem;max-width:44ch;}
.test-intro .test-note{font-size:.9rem;color:var(--sage-text);}
.quiz{display:flex;flex-direction:column;min-height:372px;padding:30px;background:var(--paper);border:1px solid var(--line);box-shadow:0 40px 70px -42px rgba(26,22,15,.3);}
.quiz-head{display:flex;align-items:center;gap:16px;font-size:.82rem;color:var(--sage-text);}
.quiz-bar{position:relative;flex:1;height:3px;overflow:hidden;background:var(--line);}
.quiz-bar span{position:absolute;left:0;top:0;bottom:0;width:0;background:var(--ink);transition:width .5s var(--ease);}
.quiz-body{flex:1;display:flex;flex-direction:column;margin-top:28px;}
.quiz-step{flex:1;display:flex;flex-direction:column;animation:quizIn .5s var(--ease);}
@keyframes quizIn{from{opacity:0;transform:translateX(14px);}to{opacity:1;transform:none;}}
.quiz-q{font-family:var(--serif);font-size:clamp(1.5rem,2.6vw,1.85rem);line-height:1.22;color:var(--ink);}
.quiz-q:focus{outline:none;}
.quiz-answers{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:28px;}
.quiz-btn{padding:17px;border:1px solid var(--ink);background:transparent;color:var(--ink);font:500 1rem/1.2 var(--sans);cursor:pointer;transition:background .25s,color .25s,transform .2s var(--ease);}
.quiz-btn:focus-visible,.quiz-btn:active{background:var(--ink);color:var(--bg);}
.quiz-btn:active{transform:scale(.98);}
@media(hover:hover){.quiz-btn:hover{background:var(--ink);color:var(--bg);}}
.quiz-back,.quiz-restart{padding:0;border:0;background:none;font:400 .88rem/1.4 var(--sans);color:var(--body);cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--sage-line);}
.quiz-back{align-self:flex-start;margin-top:auto;padding-top:22px;color:var(--sage-text);}
.quiz-top{display:flex;align-items:center;gap:22px;}
.quiz-score{position:relative;flex:none;width:112px;height:112px;}
.quiz-ring{width:100%;height:100%;transform:rotate(-90deg);}
.quiz-ring circle{fill:none;stroke-width:6;}
.ring-bg{stroke:var(--line);}
.ring-fg{stroke:var(--ink);stroke-linecap:round;transition:stroke-dashoffset 1.3s var(--ease);}
.quiz-num{position:absolute;inset:0;display:flex;align-items:baseline;justify-content:center;padding-top:34px;font-family:var(--serif);font-size:2.5rem;line-height:1;color:var(--ink);}
.quiz-num small{margin-left:2px;font-family:var(--sans);font-size:.74rem;color:var(--sage-text);}
.quiz-title{font-family:var(--serif);font-size:1.6rem;line-height:1.2;color:var(--ink);}
.quiz-title:focus{outline:none;}
.quiz-sub{margin-top:6px;font-size:.96rem;}
.quiz-list-title{margin-top:26px;font-size:.86rem;font-weight:500;color:var(--ink);}
.quiz-tips{list-style:none;margin-top:8px;}
.quiz-tips li{position:relative;padding:10px 0 10px 22px;border-top:1px solid var(--line);font-size:.94rem;}
.quiz-tips li::before{content:"";position:absolute;left:2px;top:calc(10px + .8em - 3px);width:6px;height:6px;background:var(--sage);transform:rotate(45deg);}
.quiz-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;margin-top:24px;}
.quiz-fine{margin-top:16px;font-size:.8rem;color:var(--sage-text);}
@media(max-width:420px){.quiz{padding:22px 18px;}.quiz-top{gap:16px;}.quiz-score{width:96px;height:96px;}.quiz-num{padding-top:28px;font-size:2.1rem;}}

/* ---------- 11. Studio ---------- */
.studio-grid{display:grid;gap:48px;}
@media(min-width:960px){.studio-grid{grid-template-columns:1.4fr .6fr;gap:88px;align-items:end;}}
@media(min-width:960px){.studio h2{max-width:20ch;}}
.studio .lede{margin-top:26px;font-size:1.06rem;max-width:60ch;}
.studio blockquote{margin:52px 0 0;padding-left:30px;border-left:1px solid var(--sage);}
.studio blockquote p{font-family:var(--serif);font-weight:500;font-style:italic;font-size:clamp(1.45rem,2.7vw,1.95rem);line-height:1.38;color:var(--ink);}
.founder{padding:32px 30px 30px;background:var(--paper);border:1px solid var(--line);}
.monogram{
  width:96px;height:96px;border-radius:50%;display:grid;place-items:center;margin-bottom:22px;
  background:var(--bg-alt);border:1px solid var(--sage-line);
  font-family:var(--serif);font-weight:500;font-size:1.9rem;letter-spacing:.08em;color:var(--ink);
}
.founder img{display:block;width:96px;height:96px;border-radius:50%;object-fit:cover;margin-bottom:22px;}
.founder .name{font-family:var(--serif);font-weight:500;font-size:1.6rem;color:var(--ink);line-height:1.15;}
.founder .role{font-size:.88rem;color:var(--sage-text);margin-top:3px;}
.founder .promise{margin-top:14px;font-size:.97rem;}

/* ---------- 12. Approche + étapes ---------- */
.pillars-head{max-width:56ch;margin-bottom:64px;}
.pillars-head p{margin-top:20px;font-size:1.05rem;}
.pillars{display:grid;gap:48px;}
@media(min-width:820px){.pillars{grid-template-columns:repeat(3,1fr);gap:44px;}}
.pillar{border-top:1px solid var(--line);padding-top:26px;}
.pillar .mark{width:36px;height:36px;margin-bottom:22px;}
.pillar h3{font-size:1.5rem;}
.pillar p{margin-top:12px;font-size:.98rem;max-width:36ch;}

.steps{margin-top:clamp(84px,10vw,120px);}
.steps-head{margin-bottom:40px;}
.steps-head h3{font-size:clamp(1.7rem,3vw,2.3rem);}
.steps-list{--p:1;list-style:none;position:relative;display:grid;gap:36px;padding-left:34px;}
.steps-list::before,.steps-list::after{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:1px;}
.steps-list::before{background:var(--line);}
.steps-list::after{background:var(--ink);transform:scaleY(var(--p));transform-origin:top;}
.step{position:relative;}
.step::before{content:"";position:absolute;left:-34px;top:6px;width:11px;height:11px;background:var(--ink);transform:rotate(45deg);transition:background .5s var(--ease),transform .6s var(--ease);}
.step .num{display:block;font-family:var(--serif);font-weight:500;font-size:2.7rem;line-height:1;color:var(--ink);transition:color .6s var(--ease);}
.step h4{font-size:1.5rem;margin-top:10px;}
.step p{margin-top:10px;font-size:.98rem;max-width:36ch;}
.steps.is-live .step:not(.on)::before{background:var(--bg);box-shadow:inset 0 0 0 1px var(--sage);transform:rotate(45deg) scale(.8);}
.steps.is-live .step:not(.on) .num{color:#868269;}
@media(min-width:860px){
  .steps-list{grid-template-columns:repeat(3,1fr);gap:44px;padding-left:0;padding-top:40px;}
  .steps-list::before,.steps-list::after{left:0;right:0;top:5px;bottom:auto;width:auto;height:1px;}
  .steps-list::after{transform:scaleX(var(--p));transform-origin:left;}
  .step::before{left:0;top:-40px;}
}

/* ---------- 13. La carte d'avis ---------- */
.carte{background:var(--paper);border-top:1px solid var(--line);}
.carte-grid{display:flex;flex-direction:column;}
.carte-text{display:contents;}
.carte-grid .tap{order:1;margin:36px auto 8px;}
.carte-grid .carte-steps,.carte-grid .carte-price,.carte-grid .carte-text > p:last-child{order:2;}
@media(min-width:960px){
  .carte-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:72px;align-items:center;}
  .carte-text{display:block;}
  .carte-grid .tap{margin:0;}
}
@media(min-width:960px){.carte h2{max-width:15ch;}}
.carte-text > p{margin-top:22px;font-size:1.05rem;max-width:50ch;}
.carte-steps{list-style:none;margin-top:28px;counter-reset:c;}
.carte-steps li{counter-increment:c;position:relative;padding:14px 0 14px 46px;border-top:1px solid var(--line);font-size:1rem;color:var(--ink);}
.carte-steps li:last-child{border-bottom:1px solid var(--line);}
.carte-steps li::before{content:counter(c);position:absolute;left:0;top:9px;width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--sage-line);border-radius:50%;font-family:var(--serif);font-weight:500;font-size:1.05rem;line-height:1;color:var(--ink);}
.carte-text > .carte-price{margin-top:30px;display:flex;align-items:baseline;gap:16px;font-size:.98rem;max-width:46ch;}
.carte-price .amt{flex:none;font-size:2.5rem;}
.carte-text > p:last-child{margin-top:16px;}

.tap{margin:0;width:100%;max-width:580px;justify-self:center;align-self:center;}
.tap-svg{width:100%;height:auto;overflow:visible;transition:transform .5s var(--ease);will-change:transform;}
.tap-desk{stroke:var(--ink);stroke-width:1;}
.tap-shadow{fill:rgba(26,22,15,.1);}
.tap-chip rect{fill:var(--bg);stroke:var(--line);stroke-width:1;}
.tc-stars use{fill:var(--ochre);}
.chip-rate{font:500 15px var(--sans);fill:var(--ink);}
.chip-count{font:400 12.5px var(--sans);fill:var(--sage-text);}
.chip-plus{font:500 14px var(--sans);fill:var(--ink);text-anchor:middle;opacity:0;}
.chip-old{opacity:0;}
.tcard{fill:var(--ink);}
.tcard-title{font:500 21.5px var(--serif);fill:var(--bg);}
.tcard-stars use{fill:var(--ochre-light);}
.tcard-sub{font:400 11px var(--sans);fill:var(--sage-light);letter-spacing:.02em;}
.tcard-nfc path{fill:none;stroke:var(--sage-light);stroke-width:1.4;stroke-linecap:round;}
.tap-waves circle{fill:none;stroke:var(--ochre-light);stroke-width:1.6;opacity:0;transform-box:fill-box;transform-origin:center;}
.ph-body{fill:var(--ink);}
.ph-screen{fill:var(--paper);}
.ph-notch{fill:var(--ink);}
.ph-title{font:500 19px var(--serif);fill:var(--ink);}
.ph-sub{font:400 10.5px var(--sans);fill:var(--sage-text);}
.ph-stars .ps{fill:var(--ochre);stroke:var(--ochre);stroke-width:1;stroke-linejoin:round;transform-box:fill-box;transform-origin:center;}
.ph-field{fill:none;stroke:var(--line);stroke-width:1;}
.ph-line{stroke:rgba(26,22,15,.28);stroke-width:5;stroke-linecap:round;}
.ph-btn{fill:var(--sage-text);transform-box:fill-box;transform-origin:center;}
.ph-btn-a{font:500 12.5px var(--sans);fill:var(--bg);opacity:0;}
.ph-btn-b text{font:500 12.5px var(--sans);fill:var(--bg);}
.ph-check{fill:none;stroke:var(--bg);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.tap-phone{transform-box:fill-box;transform-origin:30% 90%;}
.tap-card{transform-box:fill-box;transform-origin:center;transform:rotate(-5deg);}

/* le film : approche, contact, étoiles, publication, compteur */
.tap.play .tap-phone{animation:tapPhone 6.2s var(--ease-io) both;}
.tap.play .tap-waves circle{animation:tapWave 1.2s ease-out both;}
.tap.play .tap-waves circle:nth-child(1){animation-delay:.95s;}
.tap.play .tap-waves circle:nth-child(2){animation-delay:1.1s;}
.tap.play .tap-waves circle:nth-child(3){animation-delay:1.25s;}
.tap.play .ph-ui{animation:tapUi .7s var(--ease) 1.5s both;}
.tap.play .ps{animation:tapStar .45s var(--ease) both;}
.tap.play g:nth-child(1) > .ps{animation-delay:2.2s;}
.tap.play g:nth-child(2) > .ps{animation-delay:2.4s;}
.tap.play g:nth-child(3) > .ps{animation-delay:2.6s;}
.tap.play g:nth-child(4) > .ps{animation-delay:2.8s;}
.tap.play g:nth-child(5) > .ps{animation-delay:3s;}
.tap.play .ph-line{stroke-dasharray:1;animation:tapType .5s linear both;}
.tap.play .ph-line.l1{animation-delay:3.3s;}
.tap.play .ph-line.l2{animation-delay:3.75s;}
.tap.play .ph-line.l3{animation-delay:4.2s;animation-duration:.35s;}
.tap.play .ph-btn{animation:tapBtn .5s var(--ease) 4.75s both;}
.tap.play .ph-btn-a{animation:tapOut .3s ease 4.95s both;}
.tap.play .ph-btn-b{animation:tapIn .4s ease 5.05s both;}
.tap.play .ph-check{stroke-dasharray:1;animation:tapType .45s var(--ease) 5.1s both;}
.tap.play .chip-old{animation:tapOld .5s var(--ease) 5.45s both;}
.tap.play .chip-new{animation:tapNew .5s var(--ease) 5.45s both;}
.tap.play .chip-plus{animation:tapPlus 1.3s var(--ease) 5.4s both;}
@keyframes tapPhone{0%{transform:translate(26px,-14px) rotate(7deg);}17%,74%{transform:translate(-58px,22px) rotate(-6deg);}90%,100%{transform:none;}}
@keyframes tapWave{0%{opacity:0;transform:scale(.5);}25%{opacity:1;}100%{opacity:0;transform:scale(1.3);}}
@keyframes tapUi{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}
@keyframes tapStar{from{fill:transparent;transform:scale(.55);}60%{transform:scale(1.18);}to{fill:var(--ochre);transform:none;}}
@keyframes tapType{from{stroke-dashoffset:1;}to{stroke-dashoffset:0;}}
@keyframes tapBtn{0%{fill:var(--ink);transform:none;}40%{fill:var(--ink);transform:scale(.94);}100%{fill:var(--sage-text);transform:none;}}
@keyframes tapOut{from{opacity:1;}to{opacity:0;}}
@keyframes tapIn{from{opacity:0;}to{opacity:1;}}
@keyframes tapOld{from{opacity:1;transform:none;}to{opacity:0;transform:translateY(-7px);}}
@keyframes tapNew{from{opacity:0;transform:translateY(7px);}to{opacity:1;transform:none;}}
@keyframes tapPlus{0%{opacity:0;transform:translateY(10px);}25%{opacity:1;}70%{opacity:1;}100%{opacity:0;transform:translateY(-12px);}}

/* ---------- 14. Offres ---------- */
.offres{background:var(--bg-alt);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.offres-head{max-width:62ch;margin-bottom:52px;}
.offres-head p{margin-top:20px;font-size:1.05rem;}
.label{font-size:.86rem;color:var(--sage-text);}
.amt{font-family:var(--serif);font-weight:500;color:var(--ink);line-height:1;font-variant-numeric:lining-nums;}
.amt small{font-family:var(--sans);font-weight:400;font-size:.84rem;color:var(--sage-text);letter-spacing:0;}

.plans{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);}
@media(min-width:920px){.plans{grid-template-columns:repeat(3,1fr);}}
.plan-cell{position:relative;display:flex;background:var(--bg);}
.plan-cell.is-featured{background:var(--ink);}
.plan{position:relative;flex:1;display:flex;flex-direction:column;background:var(--bg);padding:36px 30px 32px;scroll-margin-top:96px;transition:transform .5s var(--ease),box-shadow .5s var(--ease);}
@media(hover:hover){
  .plan-cell:hover{z-index:2;}
  .plan:hover{transform:translateY(-5px);box-shadow:0 30px 48px -30px rgba(26,22,15,.5);}
}
.plan-tag{align-self:flex-start;padding:4px 0;border:1px solid transparent;font-size:.84rem;line-height:1.4;color:var(--sage-text);margin-bottom:12px;}
.plan-name{font-size:1.75rem;}
.plan-line{margin-top:8px;font-size:.96rem;}
.plan .amt{font-size:3rem;margin-top:22px;}
.plan-perk{margin-top:10px;font-size:.84rem;color:var(--sage-text);}
@media(min-width:920px){.plan-line{min-height:4.8em;}.plan-perk{min-height:3.2em;}}
.plan ul{list-style:none;margin-top:22px;font-size:.94rem;flex-grow:1;}
.plan li{position:relative;padding:9px 0 9px 22px;border-top:1px solid var(--line);}
.plan li::before{content:"";position:absolute;left:2px;top:calc(9px + .8em - 5px);width:9px;height:5px;border-left:1.3px solid var(--sage);border-bottom:1.3px solid var(--sage);transform:rotate(-45deg);}
.plan li.all{padding-left:0;font-weight:500;color:var(--ink);}
.plan li.all::before{display:none;}
.plan .btn{margin-top:28px;width:100%;}

.plan.featured{background:var(--ink);color:#D8D4BE;isolation:isolate;}
.plan.featured::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:conic-gradient(from 0deg,var(--ochre-light) var(--a),rgba(201,196,168,.16) var(--a));
  --a:360deg;
}
.plan.featured::after{content:"";position:absolute;inset:1px;z-index:-1;background:var(--ink);pointer-events:none;}
.plan-cell.rv .plan.featured::before{--a:0deg;transition:--a 1.9s var(--ease) .35s;}
.plan-cell.rv.in .plan.featured::before{--a:360deg;}
.plan.featured .plan-tag{color:var(--ink);background:var(--ochre-light);border-color:var(--ochre-light);padding:3px 10px;font-weight:500;}
.plan.featured .plan-name,.plan.featured .amt{color:var(--bg);}
.plan.featured .amt small,.plan.featured .plan-perk{color:var(--sage-light);}
.plan.featured li{border-top-color:rgba(242,239,231,.14);}
.plan.featured li.all{color:var(--bg);}
.plan.featured li::before{border-color:var(--ochre-light);}
.plan.featured .btn{border-color:var(--bg);background:var(--bg);color:var(--ink);}
.plan.featured .btn::before{background:var(--ochre-light);}
.plan.featured .btn:hover,.plan.featured .btn:focus-visible{color:var(--ink);border-color:var(--ochre-light);}
.offres-foot{margin-top:26px;font-size:.88rem;color:var(--sage-text);}

/* Avis clients (section prête, désactivée tant qu'il n'y a pas de vrais avis) */
.avis-grid{display:grid;gap:18px;margin-top:40px;}
@media(min-width:820px){.avis-grid{grid-template-columns:repeat(3,1fr);}}
.avis-card{margin:0;border:1px solid var(--line);background:var(--paper);padding:26px;}
.avis-card blockquote{margin:0;}
.avis-card p{font-family:var(--serif);font-style:italic;font-weight:500;font-size:1.2rem;line-height:1.45;color:var(--ink);}
.avis-card figcaption{margin-top:14px;font-size:.86rem;color:var(--sage-text);}

/* FAQ */
.faq-grid{display:grid;gap:40px;}
@media(min-width:960px){.faq-grid{grid-template-columns:.85fr 1.15fr;gap:72px;align-items:start;}.faq-head{position:sticky;top:116px;}}
.faq-head p{margin-top:20px;max-width:40ch;}
.faq-head a{color:var(--ink);text-decoration-color:var(--sage-line);text-underline-offset:3px;white-space:nowrap;}
.acc{border-top:1px solid var(--line);scroll-margin-top:88px;}
.acc:last-child{border-bottom:1px solid var(--line);}
.acc > summary{list-style:none;display:flex;align-items:center;gap:20px;padding:22px 0;cursor:pointer;}
.acc > summary::-webkit-details-marker{display:none;}
.acc-title{flex:1;min-width:0;font-family:var(--serif);font-weight:500;font-size:1.42rem;line-height:1.25;color:var(--ink);text-wrap:pretty;transition:color .25s;}
.acc > summary:hover .acc-title{color:var(--sage);}
.acc-icon{position:relative;flex:none;width:32px;height:32px;border:1px solid var(--line);border-radius:50%;transition:background .3s,border-color .3s,transform .45s var(--ease);}
.acc-icon::before,.acc-icon::after{content:"";position:absolute;left:50%;top:50%;width:11px;height:1px;background:var(--ink);transform:translate(-50%,-50%);transition:transform .45s var(--ease),background .3s;}
.acc-icon::after{transform:translate(-50%,-50%) rotate(90deg);}
.acc[open] .acc-icon{background:var(--ink);border-color:var(--ink);transform:rotate(180deg);}
.acc[open] .acc-icon::before,.acc[open] .acc-icon::after{background:var(--bg);}
.acc[open] .acc-icon::after{transform:translate(-50%,-50%) rotate(0deg);}
.acc.closing .acc-icon{background:transparent;border-color:var(--line);transform:none;}
.acc.closing .acc-icon::before,.acc.closing .acc-icon::after{background:var(--ink);}
.acc.closing .acc-icon::after{transform:translate(-50%,-50%) rotate(90deg);}
.acc-body{overflow:hidden;}
.acc-body p{padding:0 0 30px;max-width:62ch;font-size:1rem;}

/* ---------- 15. Zone desservie ---------- */
.local{background:var(--ink);color:#D8D4BE;}
.local-grid{display:grid;gap:48px;align-items:center;}
@media(min-width:960px){.local-grid{grid-template-columns:.9fr 1.1fr;gap:64px;}}
.local h2{color:var(--bg);}
@media(min-width:960px){.local h2{max-width:14ch;}}
.local-text > p{margin-top:22px;max-width:52ch;font-size:1.05rem;}
.communes{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin-top:30px;}
.communes li{padding:7px 15px;border:1px solid var(--line-inv);border-radius:999px;font-size:.9rem;color:var(--bg);}
.communes li.main{background:var(--bg);border-color:var(--bg);color:var(--ink);font-weight:500;}
.communes li.more{border-style:dashed;color:var(--sage-light);}
.zone{margin:12px 0 0;}
@media(min-width:960px){.zone{margin:0;}}
.zone-svg{width:100%;height:auto;overflow:visible;}
.zone-rings circle{fill:none;stroke:rgba(242,239,231,.1);stroke-width:1;}
.zone-pulse circle{fill:none;stroke:var(--ochre-light);stroke-width:1;opacity:0;transform-origin:270px 215px;animation:zonePulse 6s linear infinite;}
.zone-pulse circle:nth-child(2){animation-delay:2s;}
.zone-pulse circle:nth-child(3){animation-delay:4s;}
@keyframes zonePulse{0%{transform:scale(0);opacity:.55;}80%{opacity:.08;}100%{transform:scale(1);opacity:0;}}
.zone-links path{fill:none;stroke:rgba(201,196,168,.4);stroke-width:1;}
.zone-dots path{fill:var(--sage-light);}
.zone-dots text{font:400 12.5px var(--sans);fill:#E6E2D2;}
.zone-center path{fill:var(--ochre-light);}
.zone-center text{font:500 25px var(--serif);fill:var(--bg);}
.zone-caption{margin-top:10px;font-size:.8rem;color:var(--sage-light);text-align:right;}
@media(max-width:700px){
  .zone-dots text{font-size:16.5px;}
  .zone-center text{font-size:30px;}
}
.zone.rv .zone-links path{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.1s var(--ease) .2s;}
.zone.rv.in .zone-links path{stroke-dashoffset:0;}
.zone.rv .zone-dots g{opacity:0;transition:opacity .7s var(--ease) calc(.5s + var(--k) * 90ms);}
.zone.rv.in .zone-dots g{opacity:1;}

/* ---------- 16. Contact ---------- */
.contact h2{font-size:clamp(2.2rem,5vw,3.5rem);max-width:17ch;}
.contact .lede{margin-top:22px;max-width:58ch;font-size:1.06rem;}
.contact-grid{display:grid;gap:52px;margin-top:56px;}
@media(min-width:960px){.contact-grid{grid-template-columns:1.35fr .9fr;gap:80px;align-items:start;}}
.audit{position:relative;display:grid;gap:24px;}
.field-row{display:grid;gap:24px;}
@media(min-width:620px){.field-row{grid-template-columns:1fr 1fr;}}
.field label{display:block;margin-bottom:6px;font-size:.88rem;font-weight:500;color:var(--ink);}
.field .opt{font-weight:400;color:var(--sage-text);}
.field input,.field select,.field textarea{
  display:block;width:100%;padding:11px 2px;
  font:400 1rem/1.4 var(--sans);color:var(--ink);
  background:linear-gradient(var(--ink),var(--ink)) left bottom/0 1.5px no-repeat transparent;
  border:0;border-bottom:1px solid var(--sage);border-radius:0;
  -webkit-appearance:none;appearance:none;transition:background-size .45s var(--ease),background-color .25s;
}
.field input::placeholder,.field textarea::placeholder{color:#676250;opacity:1;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;background-size:100% 1.5px;background-color:rgba(234,227,209,.5);}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:2px solid var(--ink);outline-offset:4px;}
.field select{
  padding-right:28px;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%231A160F' stroke-width='1.3'/%3E%3C/svg%3E"),linear-gradient(var(--ink),var(--ink));
  background-repeat:no-repeat,no-repeat;background-position:right 4px center,left bottom;background-size:12px 8px,0 1.5px;
}
.field select:focus{background-size:12px 8px,100% 1.5px;}
.field textarea{min-height:104px;resize:vertical;}
.field.flash select{animation:flash 1.6s var(--ease);}
@keyframes flash{0%,35%{background-color:rgba(164,122,30,.3);}100%{background-color:transparent;}}
.field.invalid input{border-bottom-color:#8C3B2E;}
.form-actions{display:flex;flex-direction:column;align-items:flex-start;gap:16px;margin-top:6px;}
.form-note{font-size:.86rem;color:var(--sage-text);max-width:56ch;}
.form-note a{color:var(--ink);text-underline-offset:3px;text-decoration-color:var(--sage-line);}
.form-status{display:none;padding:14px 16px;font-size:.97rem;color:var(--ink);background:var(--bg-alt);border:1px solid var(--sage-line);}
.form-status.show{display:block;animation:fadeUp .5s var(--ease);}
.form-status.error{color:#6E2A20;background:rgba(140,59,46,.06);border-color:rgba(140,59,46,.45);}
.hp{position:absolute !important;left:-10000px;width:1px;height:1px;overflow:hidden;}
.form-done{display:grid;justify-items:start;gap:14px;padding:38px 34px;background:var(--paper);border:1px solid var(--line);animation:fadeUp .7s var(--ease);}
.form-done svg{width:54px;height:54px;}
.form-done circle{fill:none;stroke:var(--sage-line);stroke-width:1;}
.form-done path{fill:none;stroke:var(--ink);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:tapType .7s var(--ease) .25s forwards;}
.form-done h3{font-size:1.9rem;}
.form-done h3:focus{outline:none;}
.form-done p{max-width:46ch;}
.contact-side{display:grid;gap:26px;padding-top:28px;border-top:1px solid var(--line);}
@media(min-width:960px){.contact-side{padding:0 0 0 40px;border-top:0;border-left:1px solid var(--line);}}
.contact-item .label{margin-bottom:4px;}
.contact-item .value{font-family:var(--serif);font-weight:500;font-size:1.32rem;color:var(--ink);text-decoration:none;word-break:break-word;}
.contact-item a.value{background:linear-gradient(var(--sage),var(--sage)) left bottom/0 1px no-repeat;transition:background-size .4s var(--ease),color .25s;}
.contact-item a.value:hover{background-size:100% 1px;color:var(--sage-text);}

/* ---------- 17. Pied de page ---------- */
.site-foot{background:var(--ink);color:#D8D4BE;padding:clamp(56px,7vw,84px) 0 calc(28px + env(safe-area-inset-bottom));}
.site-foot a,.foot-btn{color:#D8D4BE;text-decoration:none;transition:color .25s;}
.site-foot a:hover,.site-foot a:focus-visible,.foot-btn:hover{color:var(--bg);text-decoration:underline;text-underline-offset:3px;}
.site-foot :focus-visible{outline-color:var(--bg);}
.site-foot .wordmark{color:var(--bg);font-size:1.2rem;}
.site-foot .wordmark:hover{text-decoration:none;}
.foot-grid{display:grid;gap:40px;}
@media(min-width:760px){.foot-grid{grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:48px;}}
.foot-brand p{margin-top:16px;max-width:34ch;font-size:.94rem;color:var(--sage-light);}
.foot-col{display:flex;flex-direction:column;align-items:flex-start;gap:11px;font-size:.94rem;}
.foot-btn{padding:0;background:none;border:0;cursor:pointer;text-align:left;}
.foot-base{margin-top:clamp(40px,5vw,60px);padding-top:22px;border-top:1px solid var(--line-inv);display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 28px;font-size:.84rem;color:var(--sage-light);}
@media(max-width:959px){.has-sticky .site-foot{padding-bottom:calc(100px + env(safe-area-inset-bottom));}}

/* ---------- 18. Barre d'action mobile + bandeau cookies ---------- */
.sticky-cta{
  position:fixed;left:0;right:0;bottom:0;z-index:25;
  display:flex;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));
  background:rgba(242,239,231,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border-top:1px solid var(--line);
  transform:translateY(110%);visibility:hidden;
  transition:transform .5s var(--ease),visibility 0s linear .5s;
}
.sticky-cta.show{transform:none;visibility:visible;transition:transform .5s var(--ease);}
.sticky-cta .btn{flex:1;padding:14px 18px;font-size:.98rem;}
.sticky-call{flex:none;width:52px;display:grid;place-items:center;border:1px solid var(--ink);color:var(--ink);}
.sticky-call svg{width:20px;height:20px;}
@media(min-width:960px){.sticky-cta{display:none;}}

.cookie{
  position:fixed;left:20px;bottom:calc(20px + env(safe-area-inset-bottom));z-index:60;width:min(410px,calc(100vw - 24px));
  padding:22px 22px 20px;background:var(--paper);border:1px solid var(--line);
  box-shadow:0 30px 60px -28px rgba(26,22,15,.55),0 2px 10px -4px rgba(26,22,15,.12);
  animation:cookieIn .7s var(--ease) both;
}
.cookie.out{animation:cookieOut .35s ease both;}
@keyframes cookieIn{from{opacity:0;transform:translateY(24px);}to{opacity:1;transform:none;}}
@keyframes cookieOut{to{opacity:0;transform:translateY(16px);}}
.ck-title{font-family:var(--serif);font-weight:500;font-size:1.4rem;line-height:1.2;color:var(--ink);}
.ck-title:focus{outline:none;}
.ck-text{margin-top:8px;font-size:.92rem;}
.ck-text a{color:var(--ink);text-underline-offset:3px;text-decoration-color:var(--sage-line);}
.ck-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px;}
.ck-actions .btn{padding:.85em 1em;}
@media(max-width:600px){.cookie{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));width:auto;padding:18px 18px 16px;}}

/* ---------- 19. Pages légales, 404, merci ---------- */
.page-head{border-bottom:1px solid var(--line);view-transition-name:entete;}
.page-head .wrap{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-top:20px;padding-bottom:20px;}
.back{font-size:.93rem;color:var(--ink);text-underline-offset:3px;text-decoration-color:var(--sage-line);}
.legal{padding:clamp(56px,8vw,96px) 0 clamp(72px,9vw,120px);}
.legal .wrap{max-width:820px;}
.crumbs{font-size:.86rem;color:var(--sage-text);}
.crumbs a{color:var(--ink);text-underline-offset:3px;text-decoration-color:var(--sage-line);}
.legal h1{margin-top:14px;font-size:clamp(2.3rem,5.4vw,3.5rem);letter-spacing:-.012em;}
.legal .updated{margin-top:14px;font-size:.88rem;color:var(--sage-text);}
.legal .intro{margin-top:26px;font-size:1.08rem;max-width:62ch;}
.legal h2{font-size:1.7rem;margin-top:52px;padding-top:30px;border-top:1px solid var(--line);scroll-margin-top:24px;}
.legal h3{font-size:1.3rem;margin-top:28px;}
.legal p,.legal ul,.legal ol{margin-top:14px;max-width:68ch;}
.legal ul,.legal ol{padding-left:22px;}
.legal li{margin-top:6px;}
.legal li::marker{color:var(--sage);}
.legal a{color:var(--ink);text-underline-offset:3px;text-decoration-color:var(--sage-line);}
.legal a:hover{text-decoration-color:currentColor;}
.legal strong{font-weight:500;color:var(--ink);}
.legal .table{margin-top:18px;overflow-x:auto;border:1px solid var(--line);background:var(--paper);}
.legal table{width:100%;min-width:560px;border-collapse:collapse;font-size:.92rem;}
.legal th,.legal td{padding:12px 16px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line);}
.legal th{font-weight:500;color:var(--ink);background:var(--bg-alt);}
.legal tr:last-child td{border-bottom:0;}
.todo{background:rgba(164,122,30,.2);padding:1px 6px;color:var(--ink);}
.legal-nav{margin-top:56px;padding-top:26px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:10px 28px;font-size:.94rem;}

.center-page{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;}
.center-page main{flex:1;display:flex;align-items:center;padding:56px 0 72px;}
.center-box{max-width:660px;margin:0 auto;padding:0 var(--gutter);text-align:center;}
.center-box h1{font-size:clamp(2.4rem,6vw,4rem);letter-spacing:-.012em;}
.center-box p{margin:20px auto 0;max-width:46ch;font-size:1.06rem;}
.center-box .btn{margin-top:34px;}
.center-box .tel{margin-top:22px;font-size:.94rem;color:var(--sage-text);}
.center-box .tel a{color:var(--ink);text-underline-offset:3px;white-space:nowrap;}
.center-foot{border-top:1px solid var(--line);padding:22px 0;font-size:.84rem;color:var(--sage-text);}
.center-foot .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;}
.center-foot a{color:var(--ink);text-underline-offset:3px;text-decoration-color:var(--sage-line);}
/* 404 : la recherche qui ne trouve rien */
.lost{max-width:440px;margin:0 auto 40px;text-align:left;}
.lost .rank-card{padding:20px;}
.lost-list{list-style:none;margin-top:16px;display:grid;gap:14px;}
.lost-list li{display:flex;flex-direction:column;gap:7px;padding-bottom:14px;border-bottom:1px solid var(--line);animation:lostOut .7s var(--ease) both;animation-delay:calc(1.5s + var(--i) * .16s);}
.lost-list .bar{background:rgba(26,22,15,.1);}
.lost-none{margin-top:16px;font-size:.92rem;color:var(--sage-text);animation:fadeUp .7s var(--ease) 2.3s both;}
@keyframes lostOut{to{opacity:0;transform:translateX(18px);height:0;padding:0;margin-top:-14px;border-color:transparent;}}
/* merci : la coche qui se dessine */
.done-mark{width:76px;height:76px;margin:0 auto 30px;}
.done-mark circle{fill:none;stroke:var(--sage-line);stroke-width:1;}
.done-mark path{fill:none;stroke:var(--ink);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:tapType .8s var(--ease) .3s forwards;}

/* ---------- 20. Apparitions au défilement (préparées par js/site.js) ---------- */
.rv{opacity:0;transform:translateY(20px);transition:opacity .95s var(--ease),transform .95s var(--ease);transition-delay:var(--d,0ms);}
.rv.in{opacity:1;transform:none;}
.rv[data-rv="fade"]{transform:none;}
.rv[data-rv="words"],.rv[data-rv="list"]{opacity:1;transform:none;}
.rv[data-rv="words"] .w{display:inline-block;opacity:0;transform:translateY(.55em);filter:blur(5px);transition:opacity .9s var(--ease),transform .9s var(--ease),filter .9s var(--ease);transition-delay:calc(var(--i) * 48ms);}
.rv[data-rv="words"].in .w{opacity:1;transform:none;filter:blur(0);}
.rv[data-rv="list"] > *{opacity:0;transform:translateY(16px);transition:opacity .8s var(--ease),transform .8s var(--ease);transition-delay:calc(var(--i) * 85ms + 60ms);}
.rv[data-rv="list"].in > *{opacity:1;transform:none;}
/* pictogrammes : le trait se dessine quand le bloc apparaît */
.rv .draw{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.8s var(--ease) var(--dd,.2s);}
.rv.in .draw{stroke-dashoffset:0;}
.rv .dot-in{opacity:0;transition:opacity .6s ease var(--dd,1.1s);}
.rv.in .dot-in{opacity:1;}

/* Transition douce entre les pages (navigateurs récents) */
@view-transition{navigation:auto;}
::view-transition-old(root){animation:vtOut .22s ease both;}
::view-transition-new(root){animation:vtIn .45s var(--ease) both;}
@keyframes vtOut{to{opacity:0;}}
@keyframes vtIn{from{opacity:0;transform:translateY(10px);}}

/* Sans JavaScript : on masque ce qui ne peut pas fonctionner, le contenu reste entier */
@media (scripting: none){
  .hero{min-height:0;}
  .hero-inner{padding-bottom:96px;}
  .hero-map,.hero-pin,.replay,.quiz-head,.quiz-body,.menu-toggle{display:none;}
  .quiz{min-height:0;}
  .quiz-fine{margin-top:0;font-size:1rem;color:var(--body);}
}

/* ---------- 21. Mouvement réduit, impression ---------- */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms !important;animation-delay:0s !important;animation-iteration-count:1 !important;transition:none !important;}
  .ticker-track{animation:none !important;}
  .zone-pulse{display:none;}
  @view-transition{navigation:none;}
}
@media print{
  .site-head,.mobile-panel,.sticky-cta,.cookie,.hero-map,.hero-pin,.ticker,.replay{display:none !important;}
  body{background:#fff;color:#000;}
  section{padding:28px 0;}
  .hero{min-height:0;}
  .hero-inner{padding:20px 0;}
  .proof,.local,.site-foot{background:#fff;color:#000;}
  .proof h2,.local h2,.proof-num{color:#000;}
}
