:root {
  --c-primary: #DF0712;
  --c-primary-hover: #C0060F;
  --c-primary-soft: #FCE6E7;
  --c-primary-line: #F6BABD;
  --c-primary-text: #DF0712;
  --c-on-primary: #FFFFFF;
  --c-secondary: #17110E;
  --c-secondary-hover: #140F0C;
  --c-secondary-soft: #E8E7E7;
  --c-secondary-text: #17110E;
  --c-on-secondary: #FFFFFF;
  --c-surface: #FFFFFF;
  --c-surface-alt: #F5F4F4;
  --c-ink: #080605;
  --c-ink-muted: #706E6E;
  --c-border: #DCDCDC;
  --font-display: 'Inter', system-ui, sans-serif;
  --font-body: 'Inter', system-ui, sans-serif;
  --display-weight: 700;
  --display-tracking: -0.02em;
  --radius: 12px;
  --radius-sm: 6px;
  --radius-lg: 19px;
  --section-y: 80px;
  --maxw: 1180px;
  --shadow: 0 1px 2px rgba(16,24,40,.04), 0 8px 24px -12px rgba(16,24,40,.18);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}
 *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
body{margin:0;background:var(--c-surface);color:var(--c-ink);
 font-family:var(--font-body);font-size:17px;line-height:1.65;
 -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg,iframe,video{max-width:100%;display:block}
img{height:auto;object-fit:cover}
a{color:var(--c-primary-text);text-underline-offset:.18em}
a:hover{color:var(--c-primary-hover)}
:focus-visible{outline:3px solid var(--c-primary);outline-offset:3px;border-radius:2px}
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ---------------------------------------------------------------- typographie */
h1,h2,h3,h4{font-family:var(--font-display);font-weight:var(--display-weight);
 letter-spacing:var(--display-tracking);line-height:1.1;margin:0 0 .5em;text-wrap:balance}
h1{font-size:clamp(2.1rem,1.35rem + 3.2vw,4rem)}
h2{font-size:clamp(1.65rem,1.15rem + 2vw,2.75rem)}
h3{font-size:clamp(1.15rem,1rem + .6vw,1.45rem)}
h4{font-size:1.05rem}
p{margin:0 0 1em}
p:last-child{margin-bottom:0}
.eyebrow{font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
 color:var(--c-primary-text);margin:0 0 .9em}
.lede{font-size:clamp(1.03rem,.98rem + .3vw,1.2rem);color:var(--c-ink-muted);max-width:62ch;text-wrap:pretty}
.note{font-size:.9rem;color:var(--c-ink-muted);margin-top:1.5rem}
.placeholder{padding:2.5rem;border:2px dashed var(--c-border);border-radius:var(--radius);
 text-align:center;color:var(--c-ink-muted)}

/* Sur fond colore, les nuances de gris cassent : on suit la couleur du texte. */
[style*="--c-primary"] .lede,[style*="--c-secondary"] .lede,[style*="--c-ink"] .lede,
.sec[style] .lede,.sec[style] .eyebrow,.sec[style] a{color:inherit;opacity:.92}
.sec[style] .eyebrow{opacity:.78}

/* ---------------------------------------------------------------- ossature */
/* Les variables --sec-* sont posees par les reglages de mise en page du bloc ;
   en leur absence chaque section garde le rythme general du theme. */
.wrap{width:100%;max-width:var(--sec-maxw,var(--maxw));margin-inline:auto;padding-inline:clamp(1.15rem,4vw,2.5rem)}
.sec{padding-top:var(--sec-pt,var(--section-y));padding-bottom:var(--sec-pb,var(--section-y));position:relative}
.sec--tight{padding-top:var(--sec-pt,calc(var(--section-y) * .55));padding-bottom:var(--sec-pb,calc(var(--section-y) * .55))}
.sec--flush{padding-top:var(--sec-pt,0);padding-bottom:var(--sec-pb,0)}

/* Alignement et taille de texte propres au bloc. */
.sec[style*="--sec-align"]{text-align:var(--sec-align)}
.sec[style*="--sec-align"] .btns{justify-content:var(--sec-align)}
.sec[style*="--sec-align:center"] .lede,
.sec[style*="--sec-align:center"] .sec__head{margin-inline:auto}
.sec[style*="--sec-scale"] h1{font-size:calc(clamp(2.1rem,1.35rem + 3.2vw,4rem) * var(--sec-scale))}
.sec[style*="--sec-scale"] h2{font-size:calc(clamp(1.65rem,1.15rem + 2vw,2.75rem) * var(--sec-scale))}
.sec[style*="--sec-scale"] h3{font-size:calc(clamp(1.15rem,1rem + .6vw,1.45rem) * var(--sec-scale))}
.sec[style*="--sec-scale"] .lede{font-size:calc(clamp(1.03rem,.98rem + .3vw,1.2rem) * var(--sec-scale))}
.sec[style*="--sec-scale"] p:not(.lede):not(.eyebrow){font-size:calc(1em * var(--sec-scale))}
.sec__head{margin-bottom:clamp(2rem,4vw,3.25rem);max-width:70ch}
.cards--center .sec__head,.head--center,.pagehead--center{margin-inline:auto;text-align:center}
.head--center .lede,.pagehead--center .lede{margin-inline:auto}

.btns{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.75rem}
.btns:empty{display:none}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
 padding:.85em 1.6em;border-radius:var(--radius-sm);border:2px solid transparent;
 font-family:var(--font-body);font-size:1rem;font-weight:600;line-height:1.2;
 text-decoration:none;cursor:pointer;transition:background .18s,color .18s,border-color .18s,transform .12s}
.btn:active{transform:translateY(1px)}
.btn--primary{background:var(--c-primary);color:var(--c-on-primary);border-color:var(--c-primary)}
.btn--primary:hover{background:var(--c-primary-hover);border-color:var(--c-primary-hover);color:var(--c-on-primary)}
.btn--secondary{background:var(--c-secondary);color:var(--c-on-secondary);border-color:var(--c-secondary)}
.btn--secondary:hover{background:var(--c-secondary-hover);border-color:var(--c-secondary-hover);color:var(--c-on-secondary)}
.btn--ghost{background:transparent;color:currentColor;border-color:currentColor}
.btn--ghost:hover{background:currentColor}
.btn--ghost:hover{color:var(--c-surface)}
.sec[style] .btn--primary{background:var(--c-surface);color:var(--c-ink);border-color:var(--c-surface)}
.sec[style] .btn--primary:hover{background:var(--c-surface-alt);border-color:var(--c-surface-alt);color:var(--c-ink)}

.grid{display:grid;gap:clamp(1.1rem,2.2vw,1.9rem)}
.grid--2{grid-template-columns:repeat(2,1fr)}
.grid--3{grid-template-columns:repeat(3,1fr)}
.grid--4{grid-template-columns:repeat(4,1fr)}
@media (max-width:960px){.grid--3,.grid--4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:620px){.grid--2,.grid--3,.grid--4{grid-template-columns:1fr}}

.rule{border:0;height:1px;background:var(--c-border);margin:0}
.rule--point{height:0;border-top:2px dotted var(--c-border);background:none}
.rule--motif{height:4px;background:var(--c-primary);width:64px;margin-inline:auto;border-radius:99px}
.spacer--petit{height:2rem}.spacer--moyen{height:4rem}.spacer--grand{height:7rem}
.spacer{padding-block:0}

/* ---------------------------------------------------------------- en-tete */
.hdr{position:relative;z-index:40;border-bottom:1px solid var(--c-border);background:var(--c-surface)}
.hdr--sticky{position:sticky;top:0}
.hdr--couleur{background:var(--c-primary);color:var(--c-on-primary);border-color:transparent}
.hdr--sombre{background:var(--c-ink);color:#fff;border-color:transparent}
.hdr--transparent{position:absolute;inset:0 0 auto;background:transparent;border-color:transparent;color:#fff}
.hdr--transparent.hdr--sticky{position:absolute}
.hdr__in{display:flex;align-items:center;gap:clamp(1rem,3vw,2.5rem);min-height:76px}
.hdr__brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:inherit;flex:0 0 auto}
.hdr__logo{max-height:var(--hdr-logo-h,46px);width:auto;object-fit:contain}
.hdr__name{font-family:var(--font-display);font-weight:var(--display-weight);
 letter-spacing:var(--display-tracking);font-size:1.16rem;line-height:1}
.hdr__nav{flex:1 1 auto;min-width:0;display:flex;justify-content:center}
.hdr__nav ul{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(1rem,2vw,1.9rem);list-style:none;margin:0;padding:0}
.hdr__nav a{color:inherit;text-decoration:none;font-weight:500;font-size:.98rem;
 padding-block:.35rem;border-bottom:2px solid transparent;transition:border-color .18s}
.hdr__nav a:hover,.hdr__nav a.is-active{border-color:currentColor}
.hdr--clair .hdr__nav a.is-active{color:var(--c-primary-text);border-color:var(--c-primary)}
.hdr__end{display:flex;gap:.6rem;flex:0 0 auto}
.hdr__end .btn{padding:.62em 1.2em;font-size:.95rem}
.hdr--couleur .hdr__end .btn--primary,.hdr--sombre .hdr__end .btn--primary,
.hdr--transparent .hdr__end .btn--primary{background:var(--c-surface);color:var(--c-ink);border-color:var(--c-surface)}
.hdr__burger{display:none;flex-direction:column;gap:5px;width:44px;height:44px;
 align-items:center;justify-content:center;background:none;border:0;cursor:pointer;color:inherit;margin-left:auto}
.hdr__burger span{display:block;width:23px;height:2px;background:currentColor;transition:transform .2s,opacity .2s}
.hdr__burger[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hdr__burger[aria-expanded=true] span:nth-child(2){opacity:0}
.hdr__burger[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.hdr__mobile{padding:1rem clamp(1.15rem,4vw,2.5rem) 1.75rem;border-top:1px solid var(--c-border)}
.hdr__mobile ul{list-style:none;margin:0 0 1rem;padding:0;display:grid;gap:.15rem}
.hdr__mobile a{display:block;padding:.75rem 0;color:inherit;text-decoration:none;
 font-size:1.05rem;font-weight:500;border-bottom:1px solid var(--c-border)}
@media (max-width:900px){
 .hdr__nav,.hdr__end{display:none}
 .hdr__burger{display:flex}
}
@media (min-width:901px){.hdr__mobile{display:none}}

/* ---------------------------------------------------------------- accroches */
.hero{display:grid;align-items:center;overflow:hidden;color:#fff;isolation:isolate}
.hero--moyenne{min-height:clamp(360px,46vh,520px)}
.hero--grande{min-height:clamp(460px,66vh,720px)}
.hero--plein-ecran{min-height:100svh}
.hero__bg,.band__bg,.car__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.hero__veil,.band__veil,.car__veil{position:absolute;inset:0;z-index:-1;
 background:linear-gradient(180deg,rgba(0,0,0,.35),rgba(0,0,0,.75))}
.hero:not(:has(.hero__bg)){background:var(--c-secondary);color:var(--c-on-secondary)}
.hero__body{padding-block:clamp(3.5rem,10vh,7rem);max-width:64ch}
.hero--center .hero__body{margin-inline:auto;text-align:center}
.hero--center .btns{justify-content:center}
.hero--center .lede{margin-inline:auto}
.hero .eyebrow,.hero .lede,.band .lede,.car .lede{color:inherit;opacity:.94}
.hero .eyebrow{opacity:.85}
.hero .btn--ghost:hover{background:#fff;color:var(--c-ink);border-color:#fff}

.pagehead{padding-block:clamp(3rem,7vw,5.5rem)}
.pagehead h1{margin-bottom:.3em}

/* Accroche secondaire : neutre par defaut, c'est la charte du client qui lui
   donne son caractere. */
.script{font-size:clamp(1.15rem,1rem + .8vw,1.6rem);line-height:1.2;margin:0 0 .7em;color:var(--c-primary-text)}
.hero .script,.band .script,.car .script{color:inherit}

/* Encadre d'informations pratiques sous l'accroche. */
.hero__card{position:relative;z-index:2;display:flex;flex-wrap:wrap;align-items:center;
 gap:clamp(1rem,3vw,2.5rem);margin:0 auto clamp(2rem,5vh,3.5rem);width:fit-content;max-width:100%;
 padding:1.15rem clamp(1.25rem,3vw,2rem);border-radius:var(--radius-lg);
 background:var(--c-surface);color:var(--c-ink);box-shadow:var(--shadow)}
.hero__cardit{display:flex;align-items:center;gap:.7rem}
.hero__cardic{display:inline-flex;color:var(--c-primary-text);flex:0 0 auto}
.hero__cardtx{display:grid;gap:.1rem}
.hero__cardtx small{font-size:.74rem;text-transform:uppercase;letter-spacing:.1em;opacity:.6;font-weight:600}
.hero__cardtx strong{font-size:.98rem}
.hero__card .btn{padding:.55em 1.1em;border-color:var(--c-primary);color:var(--c-primary-text)}
.hero__card .btn:hover{background:var(--c-primary);color:var(--c-on-primary)}
@media (max-width:620px){.hero__card{width:100%;flex-direction:column;align-items:flex-start}}

/* ---------------------------------------------------------------- texte + image */
.split__in{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.split--texte .split__in{grid-template-columns:1.35fr 1fr}
.split--image .split__in{grid-template-columns:1fr 1.35fr}
.split--rev .split__text{order:2}
.split__media{position:relative}
.split__img{width:100%;aspect-ratio:4/3;border-radius:var(--radius-lg);box-shadow:var(--shadow)}
.split__media--carre .split__img{border-radius:0}
.split__media--cercle .split__img{border-radius:50%;aspect-ratio:1}
.split .btns{margin-top:1.5rem}
@media (max-width:820px){
 .split__in{grid-template-columns:1fr!important}
 .split--rev .split__text{order:0}
}

/* ---------------------------------------------------------------- prose */
.prose__in>:first-child{margin-top:0}
.prose__in>:last-child{margin-bottom:0}
.prose__in ul,.prose__in ol{padding-left:1.35em;margin:0 0 1em}
.prose__in li{margin-bottom:.4em}
.prose__in strong{font-weight:700}
.prose--etroit .prose__in{max-width:68ch}
.prose--normal .prose__in{max-width:82ch}
.prose--center .prose__in{margin-inline:auto;text-align:center}

/* ---------------------------------------------------------------- cartes */
.card{display:flex;flex-direction:column;gap:.6rem}
.cards--center .card{align-items:center;text-align:center}
.cards--carte .card{background:var(--c-surface);border-radius:var(--radius);
 padding:clamp(1.4rem,2.5vw,2rem);box-shadow:var(--shadow);border:1px solid var(--c-border)}
.cards--bordure .card{border:1px solid var(--c-border);border-radius:var(--radius);padding:clamp(1.4rem,2.5vw,2rem)}
.sec[style] .cards--carte .card,.sec[style] .card{color:var(--c-ink)}
.sec[style] .cards--nu .card{color:inherit}
.card h3{margin:0}
.card p{color:var(--c-ink-muted);margin:0}
.card__icon{display:inline-flex;align-items:center;justify-content:center;
 width:52px;height:52px;border-radius:var(--radius-sm);
 background:var(--c-primary-soft);color:var(--c-primary-text);margin-bottom:.35rem}
.card__media{margin:calc(-1 * clamp(1.4rem,2.5vw,2rem)) calc(-1 * clamp(1.4rem,2.5vw,2rem)) .8rem;
 border-radius:var(--radius) var(--radius) 0 0;overflow:hidden}
.cards--nu .card__media{margin:0 0 .8rem;border-radius:var(--radius)}
.card__img{width:100%;aspect-ratio:3/2}
.card__price{font-weight:700;color:var(--c-primary-text);margin:0}
.card .btn{align-self:flex-start;margin-top:auto;padding-inline:0;border:0;
 background:none;color:var(--c-primary-text);text-decoration:underline}
.cards--center .card .btn{align-self:center}

/* ---------------------------------------------------------------- citation */
.quote figure{margin:0;max-width:56ch;margin-inline:auto;text-align:center}
.quote blockquote{margin:0 0 1.5rem;font-family:var(--font-display);
 font-size:clamp(1.3rem,1.05rem + 1.1vw,2rem);line-height:1.35;
 font-weight:var(--display-weight);letter-spacing:var(--display-tracking);text-wrap:balance}
.quote blockquote::before{content:"«\00a0"}
.quote blockquote::after{content:"\00a0»"}
.quote figcaption{display:inline-flex;align-items:center;gap:.7rem;font-size:.95rem}
.quote figcaption span{display:grid;text-align:left}
.quote figcaption small{opacity:.7}
.quote__ph,.rev__ph{width:44px;height:44px;border-radius:50%;flex:0 0 auto}

/* ---------------------------------------------------------------- faq */
.faq__list{max-width:80ch;display:grid;gap:.6rem}
.faq__item{border:1px solid var(--c-border);border-radius:var(--radius);background:var(--c-surface);color:var(--c-ink)}
.faq__item summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;
 padding:1.1rem 1.35rem;cursor:pointer;font-weight:600;list-style:none}
.faq__item summary::-webkit-details-marker{display:none}
.faq__chev{width:11px;height:11px;flex:0 0 auto;border-right:2px solid currentColor;
 border-bottom:2px solid currentColor;transform:rotate(45deg) translate(-2px,-2px);transition:transform .2s}
.faq__item[open] .faq__chev{transform:rotate(-135deg) translate(-2px,-2px)}
.faq__a{padding:0 1.35rem 1.3rem;color:var(--c-ink-muted)}

/* ---------------------------------------------------------------- chiffres */
.stats__row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
 gap:clamp(1.5rem,4vw,3rem);text-align:center}
.stat__v{font-family:var(--font-display);font-weight:var(--display-weight);
 font-size:clamp(2.4rem,1.6rem + 3vw,4.2rem);line-height:1;margin:0 0 .25rem;letter-spacing:-.03em}
.stat__u{font-size:.42em;margin-left:.12em;opacity:.75}
.stat__l{margin:0;opacity:.85;font-size:.98rem}

/* ---------------------------------------------------------------- etapes */
.steps__list{list-style:none;margin:0;padding:0;display:grid;gap:clamp(1.5rem,3vw,2.5rem)}
.steps--horizontal .steps__list{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.step{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:start}
.steps--horizontal .step{grid-template-columns:1fr;gap:.75rem}
.step__n{display:inline-flex;align-items:center;justify-content:center;
 width:44px;height:44px;border-radius:50%;background:var(--c-primary);color:var(--c-on-primary);
 font-family:var(--font-display);font-weight:700;font-size:1.1rem;flex:0 0 auto}
.step__b h3{margin:0 0 .3em}
.step__b p{margin:0;color:var(--c-ink-muted)}
.sec[style] .step__b p{color:inherit;opacity:.88}

/* ---------------------------------------------------------------- onglets */
.tabs__nav{display:flex;flex-wrap:wrap;gap:.4rem;border-bottom:1px solid var(--c-border);margin-bottom:2rem}
.tabs__nav button{background:none;border:0;border-bottom:3px solid transparent;
 padding:.8rem 1.1rem;font:inherit;font-weight:600;color:var(--c-ink-muted);cursor:pointer;margin-bottom:-1px}
.tabs__nav button[aria-selected=true]{color:var(--c-primary-text);border-color:var(--c-primary)}

/* ---------------------------------------------------------------- images */
.figure figure{margin:0}
.figure--texte figure{max-width:70ch;margin-inline:auto}
.figure--pleine .wrap{max-width:none;padding-inline:0}
.figure__img{width:100%;border-radius:var(--radius-lg)}
.figure--carre .figure__img{border-radius:0}
.figure figcaption{margin-top:.8rem;font-size:.9rem;color:var(--c-ink-muted);text-align:center}

.gal__grid{display:grid;gap:clamp(.6rem,1.4vw,1.1rem)}
.gal--2 .gal__grid{grid-template-columns:repeat(2,1fr)}
.gal--3 .gal__grid{grid-template-columns:repeat(3,1fr)}
.gal--4 .gal__grid{grid-template-columns:repeat(4,1fr)}
.gal__it{margin:0;position:relative}
.gal__img{width:100%;aspect-ratio:1;border-radius:var(--radius);transition:transform .35s}
.gal__zoom{display:block;padding:0;border:0;background:none;cursor:zoom-in;width:100%;overflow:hidden;border-radius:var(--radius)}
.gal__zoom:hover .gal__img{transform:scale(1.045)}
.gal__it figcaption{margin-top:.5rem;font-size:.85rem;color:var(--c-ink-muted)}
.gal--mosaique .gal__grid{grid-auto-flow:dense}
.gal--mosaique .gal__it:nth-child(6n+1){grid-column:span 2;grid-row:span 2}
.gal--mosaique .gal__it:nth-child(6n+1) .gal__img{aspect-ratio:1}
.gal--bande .gal__grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;
 padding-bottom:.8rem;scrollbar-width:thin}
.gal--bande .gal__it{flex:0 0 min(74vw,340px);scroll-snap-align:start}
@media (max-width:820px){.gal--3 .gal__grid,.gal--4 .gal__grid{grid-template-columns:repeat(2,1fr)}
 .gal--mosaique .gal__it:nth-child(6n+1){grid-column:span 2;grid-row:auto}}

.lb{position:fixed;inset:0;z-index:200;display:grid;place-items:center;
 background:rgba(0,0,0,.9);padding:clamp(1rem,4vw,3rem)}
.lb img{max-width:100%;max-height:82vh;width:auto;border-radius:var(--radius)}
.lb p{color:#fff;text-align:center;margin:1rem 0 0;font-size:.95rem}
.lb__x{position:absolute;top:1rem;right:1rem;width:48px;height:48px;border-radius:50%;
 border:0;background:rgba(255,255,255,.15);color:#fff;font-size:1.6rem;cursor:pointer;line-height:1}

/* ---------------------------------------------------------------- diaporama */
.car__box{position:relative;overflow:hidden}
.car__track{list-style:none;margin:0;padding:0;display:grid}
.car__sl{grid-area:1/1;position:relative;display:grid;align-items:center;color:#fff;
 isolation:isolate;opacity:0;transition:opacity .6s;pointer-events:none}
.car__sl[aria-hidden=false],.car__sl:only-child{opacity:1;pointer-events:auto}
.car--moyenne .car__sl{min-height:clamp(340px,44vh,480px)}
.car--grande .car__sl{min-height:clamp(440px,62vh,660px)}
.car__body{padding-block:3rem;max-width:60ch}
.car__nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;
 border-radius:50%;border:0;background:rgba(255,255,255,.9);color:#111;cursor:pointer;z-index:3}
.car__nav::before{content:"";display:block;width:11px;height:11px;margin-inline:auto;
 border-top:2px solid currentColor;border-right:2px solid currentColor}
.car__nav--prev{left:1rem}
.car__nav--prev::before{transform:rotate(-135deg) translate(-2px,-2px)}
.car__nav--next{right:1rem}
.car__nav--next::before{transform:rotate(45deg) translate(-2px,-2px)}
.car__dots{position:absolute;bottom:1.1rem;left:50%;transform:translateX(-50%);display:flex;gap:.5rem;z-index:3}
.car__dots button{width:10px;height:10px;padding:0;border-radius:50%;border:0;
 background:rgba(255,255,255,.45);cursor:pointer}
.car__dots button[aria-current=true]{background:#fff;width:26px;border-radius:99px}

/* ---------------------------------------------------------------- video */
.video__box{position:relative;aspect-ratio:16/9;border-radius:var(--radius-lg);
 overflow:hidden;background:var(--c-ink)}
.video__poster{width:100%;height:100%}
.video__box iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video__play{position:absolute;inset:0;margin:auto;width:84px;height:84px;border-radius:50%;
 border:0;background:var(--c-primary);color:var(--c-on-primary);cursor:pointer;
 display:grid;place-items:center;transition:transform .2s}
.video__play svg{margin-left:5px}
.video__play:hover{transform:scale(1.08)}

/* ---------------------------------------------------------------- bandeau */
.band{display:grid;align-items:center;overflow:hidden;color:#fff;isolation:isolate;text-align:center}
.band--petite{min-height:clamp(220px,26vh,300px)}
.band--moyenne{min-height:clamp(320px,40vh,460px)}
/* Effet de parallaxe : le fond reste immobile pendant le defilement. Ignore par
   Safari iOS, qui le rend comme un fond normal — degradation sans casse. */
.band--fixed{background-size:cover;background-position:center;background-attachment:fixed}
.band__body{padding-block:3.5rem;max-width:60ch;margin-inline:auto}
.band .btns{justify-content:center}

/* ---------------------------------------------------------------- logos */
.logos__title{text-align:center;font-size:.82rem;font-weight:700;letter-spacing:.14em;
 text-transform:uppercase;color:var(--c-ink-muted);margin:0 0 1.8rem}
.logos__row{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;
 justify-content:center;align-items:center;gap:clamp(1.8rem,5vw,4rem)}
.logos__img{max-height:46px;width:auto;object-fit:contain}
.logos--gray .logos__img{filter:grayscale(1);opacity:.62;transition:filter .2s,opacity .2s}
.logos--gray .logos__img:hover{filter:none;opacity:1}

/* ---------------------------------------------------------------- documents */
.files__list{list-style:none;margin:0;padding:0;display:grid;gap:.7rem;max-width:70ch}
.dl a{display:flex;align-items:center;gap:.9rem;padding:1rem 1.25rem;text-decoration:none;
 border:1px solid var(--c-border);border-radius:var(--radius);color:var(--c-ink);
 background:var(--c-surface);transition:border-color .18s,transform .12s}
.dl a:hover{border-color:var(--c-primary);transform:translateY(-1px)}
.dl svg{color:var(--c-primary-text);flex:0 0 auto}
.dl span{display:grid}
.dl small{color:var(--c-ink-muted);font-size:.85rem}

/* ---------------------------------------------------------------- carte / menu */
.mn__cats{display:grid;gap:clamp(2.5rem,5vw,4rem)}
.mn--deux-colonnes .mn__cats{grid-template-columns:1fr 1fr;column-gap:clamp(2.5rem,5vw,4.5rem)}
@media (max-width:820px){.mn--deux-colonnes .mn__cats{grid-template-columns:1fr}}
.mn__cathead{margin-bottom:1.5rem;position:relative}
.mn__cathead h3{margin:0 0 .2em;font-size:clamp(1.3rem,1.1rem + .8vw,1.75rem)}
.mn__cathead p{margin:0;color:var(--c-ink-muted);font-size:.95rem}
.mn__col2{position:absolute;right:0;top:.35rem;font-size:.75rem;font-weight:700;
 letter-spacing:.1em;text-transform:uppercase}
.mn__list{list-style:none;margin:0;padding:0;display:grid;gap:1.15rem}
.mn__it{display:grid;grid-template-columns:1fr;gap:.9rem}
.mn__it:has(.mn__media){grid-template-columns:88px 1fr}
.mn__media{grid-row:span 2}
.mn__img{width:88px;height:88px;border-radius:var(--radius-sm)}
.mn__line{display:flex;align-items:baseline;gap:.6rem}
.mn__n{font-weight:600}
.mn__n em{font-style:normal;color:var(--c-ink-muted);font-weight:400;font-size:.9em}
.mn__dots{flex:1 1 auto;border-bottom:1px dotted var(--c-border);transform:translateY(-.25em)}
.mn__prices{display:flex;gap:1.35rem;font-variant-numeric:tabular-nums;white-space:nowrap}
.mn__p{font-weight:700;color:var(--c-primary-text)}
.mn__d{margin:.25rem 0 0;color:var(--c-ink-muted);font-size:.95rem;max-width:62ch}
.mn__tags{margin:.45rem 0 0;display:flex;flex-wrap:wrap;gap:.35rem}
.tag{display:inline-block;padding:.18em .6em;border-radius:99px;font-size:.72rem;
 font-weight:600;background:var(--c-primary-soft);color:var(--c-primary-text)}
.mn__it.is-featured{background:var(--c-primary-soft);border-radius:var(--radius);padding:1rem;color:var(--c-ink)}
.mn__it.is-out{opacity:.5}
.mn__legend{margin-top:2.5rem;font-size:.86rem;color:var(--c-ink-muted)}
.mn--cartes .mn__list{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.mn--cartes .mn__it{position:relative;background:var(--c-surface);border:1px solid var(--c-border);
 border-radius:var(--radius);padding:1.25rem;color:var(--c-ink);overflow:hidden;
 transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.mn--cartes .mn__dots{display:none}
/* Liseré de couleur qui se révèle au survol, en haut de la carte. */
.mn--cartes .mn__it::before{content:"";position:absolute;inset:0 0 auto;height:3px;
 background:var(--c-primary);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}
.mn--cartes .mn__it:hover{transform:translateY(-4px);border-color:var(--c-primary-line);
 box-shadow:0 16px 40px -18px rgba(16,24,40,.4)}
.mn--cartes .mn__it:hover::before{transform:scaleX(1)}
.mn--cartes .mn__it:hover .mn__n{color:var(--c-primary-text)}
.mn--cartes .mn__it:hover .mn__d{color:var(--c-ink)}
/* Le prix grossit legerement et prend la couleur d'accent au survol. */
.mn--cartes .mn__p{transition:transform .25s ease,color .25s ease;display:inline-block}
.mn--cartes .mn__it:hover .mn__p{transform:scale(1.06)}
/* Etiquette de taille au-dessus de chaque prix (Junior / Senior…). */
.mn__psize{display:block;font-size:.62rem;font-weight:700;letter-spacing:.08em;
 text-transform:uppercase;color:var(--c-ink-muted);margin-bottom:1px}
.mn__prices{align-items:flex-start}
@media (prefers-reduced-motion:reduce){
 .mn--cartes .mn__it,.mn--cartes .mn__it::before,.mn--cartes .mn__p{transition:none}
 .mn--cartes .mn__it:hover{transform:none}
 .mn--cartes .mn__it:hover .mn__p{transform:none}
}

/* ---------------------------------------------------------------- formules */
.plans__row{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
 gap:clamp(1.1rem,2.2vw,1.75rem);align-items:start}
.plan{position:relative;background:var(--c-surface);color:var(--c-ink);
 border:1px solid var(--c-border);border-radius:var(--radius);
 padding:clamp(1.6rem,3vw,2.25rem);display:flex;flex-direction:column;gap:.9rem}
.plan--hi{border-color:var(--c-primary);border-width:2px;box-shadow:var(--shadow)}
.plan__badge{position:absolute;top:-.85rem;left:50%;transform:translateX(-50%);
 background:var(--c-primary);color:var(--c-on-primary);font-size:.75rem;font-weight:700;
 padding:.3em .9em;border-radius:99px;white-space:nowrap}
.plan h3{margin:0}
.plan__price{font-family:var(--font-display);font-weight:var(--display-weight);
 font-size:clamp(2rem,1.5rem + 1.8vw,2.9rem);line-height:1;margin:0}
.plan__price span{font-size:.4em;font-weight:600;opacity:.7}
.plan__note{margin:0;font-size:.9rem;color:var(--c-ink-muted)}
.plan__feats{list-style:none;margin:.3rem 0;padding:0;display:grid;gap:.55rem;flex:1 1 auto}
.plan__feats li{position:relative;padding-left:1.6rem;font-size:.97rem}
.plan__feats li::before{content:"";position:absolute;left:0;top:.5em;width:11px;height:6px;
 border-left:2px solid var(--c-primary);border-bottom:2px solid var(--c-primary);transform:rotate(-45deg)}
.plan .btn{width:100%}

/* ---------------------------------------------------------------- produits */
.prod{display:flex;flex-direction:column;gap:.5rem}
.prod__media{position:relative;border-radius:var(--radius);overflow:hidden;background:var(--c-surface-alt)}
.prod__img{width:100%;aspect-ratio:1}
.prod__badge{position:absolute;top:.7rem;left:.7rem;background:var(--c-primary);
 color:var(--c-on-primary);font-size:.73rem;font-weight:700;padding:.28em .75em;border-radius:99px}
.prod h3{margin:.4rem 0 0;font-size:1.08rem}
.prod__d{margin:0;font-size:.92rem;color:var(--c-ink-muted)}
.prod__price{margin:.2rem 0 .5rem;display:flex;gap:.55rem;align-items:baseline}
.prod__price del{color:var(--c-ink-muted);font-size:.9rem}
.prod__price strong{font-size:1.22rem;color:var(--c-primary-text)}
.prod .btn{align-self:flex-start}

/* ---------------------------------------------------------------- equipe */
.member{text-align:center;display:flex;flex-direction:column;gap:.35rem;align-items:center}
.member__ph{width:min(100%,190px);overflow:hidden;margin-bottom:.7rem}
.member__ph--cercle{border-radius:50%}
.member__ph--arrondi{border-radius:var(--radius)}
.member__img{width:100%;aspect-ratio:1}
.member h3{margin:0;font-size:1.1rem}
.member__role{margin:0;color:var(--c-primary-text);font-weight:600;font-size:.93rem}
.member__bio{margin:.4rem 0 0;color:var(--c-ink-muted);font-size:.93rem;max-width:36ch}

/* ---------------------------------------------------------------- avis */
.revs__row{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
 gap:clamp(1.1rem,2.2vw,1.75rem)}
.revs--bande .revs__row{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:1rem}
.revs--bande .rev{flex:0 0 min(84vw,380px);scroll-snap-align:start}
.rev{margin:0;background:var(--c-surface);color:var(--c-ink);border:1px solid var(--c-border);
 border-radius:var(--radius);padding:clamp(1.4rem,2.6vw,1.9rem);display:flex;flex-direction:column;gap:.9rem}
.rev blockquote{margin:0;flex:1 1 auto}
.rev figcaption{display:flex;align-items:center;gap:.7rem;font-size:.92rem}
.rev figcaption span{display:grid}
.rev figcaption small{color:var(--c-ink-muted)}
.stars{display:inline-flex;gap:.12rem;color:var(--c-border)}
.stars .on{color:#F5A623}

/* ---------------------------------------------------------------- horaires */
.hrs__box{max-width:56ch;background:var(--c-surface);color:var(--c-ink);
 border:1px solid var(--c-border);border-radius:var(--radius);padding:clamp(1.5rem,3vw,2.25rem)}
.hrs__head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.1rem}
.hrs__head h2{margin:0}
.hrs__now{margin:0;font-size:.85rem;font-weight:700;padding:.35em .85em;border-radius:99px}
.hrs__now[data-state=open]{background:#E7F6EC;color:#12633A}
.hrs__now[data-state=closed]{background:var(--c-surface-alt);color:var(--c-ink-muted)}
.hrs__tbl{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.hrs__tbl th{text-align:left;font-weight:500;padding:.55rem 0}
.hrs__tbl td{text-align:right;padding:.55rem 0}
.hrs__tbl tr+tr th,.hrs__tbl tr+tr td{border-top:1px solid var(--c-border)}
.hrs__tbl tr[data-today] th,.hrs__tbl tr[data-today] td{font-weight:700;color:var(--c-primary-text)}
.hrs__closed{color:var(--c-ink-muted)}
.hrs__sep{margin-right:.2rem}
.hrs__exc{margin-top:1.5rem;padding-top:1.2rem;border-top:1px solid var(--c-border)}
.hrs__exc h3{font-size:.95rem;margin:0 0 .5rem}
.hrs__exc ul{margin:0;padding-left:1.2em;font-size:.93rem;color:var(--c-ink-muted)}
.hrs__note{margin:1rem 0 0;font-size:.9rem;color:var(--c-ink-muted)}

/* ---------------------------------------------------------------- coordonnees */
.ci__list{list-style:none;margin:0;padding:0;display:grid;
 grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.4rem}
.ci__list li{display:flex;gap:.9rem;align-items:flex-start}
.ci__ic{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;
 border-radius:50%;background:var(--c-primary-soft);color:var(--c-primary-text);flex:0 0 auto}
.ci__t{display:grid;gap:.1rem}
.ci__t small{font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;opacity:.65;font-weight:600}
.ci__t a{text-decoration:none;font-weight:600}
.ci__extra{margin-top:1.5rem;color:var(--c-ink-muted)}
.social{display:flex;gap:.55rem;margin-top:1.3rem}
.social a{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;
 border-radius:50%;border:1px solid currentColor;color:inherit;opacity:.75;transition:opacity .18s,transform .18s}
.social a:hover{opacity:1;transform:translateY(-2px)}

/* ---------------------------------------------------------------- plan */
.map__box{border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--c-border);background:var(--c-surface-alt)}
.map__box iframe{width:100%;border:0;display:block}
.map--petite iframe{height:280px}
.map--moyenne iframe{height:420px}
.map--grande iframe{height:580px}

/* ---------------------------------------------------------------- formulaires */
.form{max-width:70ch}
.formsec--split .form{max-width:none}
.formsec__in{display:grid;grid-template-columns:1fr 1.25fr;gap:clamp(2rem,5vw,4rem);align-items:start}
@media (max-width:820px){.formsec__in{grid-template-columns:1fr}}
.form__grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.fld--plein{grid-column:1/-1}
@media (max-width:620px){.form__grid{grid-template-columns:1fr}.fld--moitie{grid-column:1/-1}}
.fld{display:grid;gap:.4rem}
.fld label{font-size:.9rem;font-weight:600}
.fld abbr{text-decoration:none;color:var(--c-primary-text)}
.fld input,.fld select,.fld textarea{width:100%;padding:.8rem .95rem;font:inherit;font-size:1rem;
 color:var(--c-ink);background:var(--c-surface);border:1px solid var(--c-border);
 border-radius:var(--radius-sm);transition:border-color .18s,box-shadow .18s}
.fld textarea{resize:vertical;min-height:130px}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:0;border-color:var(--c-primary);
 box-shadow:0 0 0 3px var(--c-primary-line)}
.fld input[aria-invalid=true],.fld textarea[aria-invalid=true],.fld select[aria-invalid=true]{border-color:#C0392B}
.fld--consent{grid-column:1/-1;margin-top:1.1rem}
.fld--consent label{display:flex;gap:.65rem;align-items:flex-start;font-weight:400;font-size:.9rem}
.fld--consent input{width:18px;height:18px;flex:0 0 auto;margin-top:.15rem;accent-color:var(--c-primary)}
.form__end{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:1.5rem}
.form__msg{margin:0;font-size:.93rem;font-weight:600}
.form__msg[data-state=ok]{color:#12633A}
.form__msg[data-state=error]{color:#B32318}
.formsec__side h2{margin-bottom:.4em}
.bigtel{display:inline-flex;align-items:center;gap:.7rem;margin-top:1.5rem;
 font-family:var(--font-display);font-size:clamp(1.3rem,1.1rem + .9vw,1.85rem);
 font-weight:var(--display-weight);text-decoration:none;color:inherit}
.bigtel svg{color:var(--c-primary-text)}
.sec[style] .bigtel svg,.sec[style] .fld abbr{color:inherit}
.sec[style] .form input,.sec[style] .form select,.sec[style] .form textarea{border-color:rgba(255,255,255,.35)}

/* ---------------------------------------------------------------- newsletter */
.nl__in{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:center}
@media (max-width:820px){.nl__in{grid-template-columns:1fr}}
.nl__t h2{margin:0 0 .35em}
.nl__t p{margin:0;opacity:.9}
.nl__form{display:grid;grid-template-columns:1fr auto;gap:.6rem;align-items:start}
.nl__form input[type=email]{padding:.85rem 1rem;font:inherit;border:0;border-radius:var(--radius-sm);
 background:var(--c-surface);color:var(--c-ink);width:100%}
.nl__consent{grid-column:1/-1;display:flex;gap:.6rem;align-items:flex-start;font-size:.83rem;opacity:.88}
.nl__consent input{width:17px;height:17px;flex:0 0 auto;margin-top:.15rem}
.nl__form .form__msg{grid-column:1/-1}
@media (max-width:520px){.nl__form{grid-template-columns:1fr}}

/* ---------------------------------------------------------------- appel a l'action */
.cta__in{display:grid;gap:1.5rem}
.cta--centre .cta__in{text-align:center;justify-items:center;max-width:62ch;margin-inline:auto}
.cta--centre .btns{justify-content:center;margin-top:0}
.cta--ligne .cta__in{grid-template-columns:1fr auto;align-items:center;gap:2.5rem}
.cta--ligne .btns{margin-top:0}
@media (max-width:820px){.cta--ligne .cta__in{grid-template-columns:1fr}}
.cta h2{margin:0 0 .3em}

/* ---------------------------------------------------------------- pied de page */
.ft{padding-block:clamp(3rem,6vw,4.5rem) 0}
.ft__in{display:grid;grid-template-columns:1.6fr repeat(auto-fit,minmax(150px,1fr));
 gap:clamp(2rem,4vw,3.5rem);padding-bottom:3rem}
.ft__name{font-family:var(--font-display);font-weight:var(--display-weight);font-size:1.25rem;margin:0 0 .6rem}
.ft__about{opacity:.8;font-size:.95rem;max-width:42ch}
.ft__contact{list-style:none;margin:1.2rem 0 0;padding:0;display:grid;gap:.45rem;font-size:.95rem;opacity:.85}
.ft__contact a{color:inherit;text-decoration:none}
.ft__contact a:hover{text-decoration:underline;color:inherit}
.ft__col h4{margin:0 0 .9rem;font-size:.82rem;text-transform:uppercase;letter-spacing:.12em;opacity:.6}
.ft__col ul{list-style:none;margin:0;padding:0;display:grid;gap:.5rem;font-size:.95rem}
.ft__col a{color:inherit;text-decoration:none;opacity:.85}
.ft__col a:hover{opacity:1;text-decoration:underline}
.ft__base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;
 padding-block:1.5rem;border-top:1px solid currentColor;font-size:.87rem;opacity:.7}
.ft__base p{margin:0}
.ft__legal{display:flex;flex-wrap:wrap;gap:.6rem}
.ft__legal a{color:inherit;text-decoration:none}
.ft__legal a:hover{text-decoration:underline}
.ft .social a{border-color:currentColor}
@media (max-width:820px){.ft__in{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.ft__in{grid-template-columns:1fr}}

/* ---------------------------------------------------------------- points de vente */
/* Titre a gauche, petite illustration calee en haut a droite. */
.sec__head--illu{display:flex;align-items:flex-start;justify-content:space-between;
 gap:clamp(1.5rem,4vw,3.5rem);max-width:none}
.sec__head--illu .sec__headtx{flex:1 1 auto;max-width:70ch}
.locs__illu{flex:0 0 auto;width:clamp(150px,19vw,280px);height:auto;align-self:flex-start}
@media (max-width:820px){
 .sec__head--illu{flex-direction:column-reverse;align-items:center;text-align:center}
 .sec__head--illu .sec__headtx{max-width:none}
 /* align-self doit etre remis a center : pose plus haut a flex-start, il
    l'emporterait sur le centrage du conteneur. */
 .locs__illu{width:min(230px,62%);margin-bottom:.5rem;align-self:center}
}

.locs__grid{display:grid;gap:clamp(1rem,2vw,1.6rem)}
.locs--2 .locs__grid{grid-template-columns:repeat(2,1fr)}
.locs--3 .locs__grid{grid-template-columns:repeat(3,1fr)}
.locs--4 .locs__grid{grid-template-columns:repeat(4,1fr)}
@media (max-width:1080px){.locs--4 .locs__grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:820px){.locs--3 .locs__grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.locs__grid{grid-template-columns:1fr!important}}
.loc{display:flex;flex-direction:column;background:var(--c-surface);color:var(--c-ink);
 border:1px solid var(--c-border);border-radius:var(--radius);overflow:hidden;
 transition:border-color .18s,transform .14s}
.loc:hover{border-color:var(--c-primary);transform:translateY(-2px)}
.loc.is-nearest{border-color:var(--c-primary);border-width:2px;box-shadow:var(--shadow)}
.loc__media{overflow:hidden}
.loc__img{width:100%;aspect-ratio:3/2}
.loc__body{display:flex;gap:.75rem;padding:1.15rem 1.15rem .75rem;flex:1 1 auto}
.loc__pin{color:var(--c-primary-text);flex:0 0 auto;margin-top:2px}
.loc__body h3{margin:0 0 .25em;font-size:1.12rem}
.loc__addr{margin:0;color:var(--c-ink-muted);font-size:.93rem;line-height:1.5}
.loc__open{display:inline-flex;align-items:center;gap:.3rem;margin-top:.6rem;
 padding:.18em .6em;border-radius:99px;font-size:.76rem;font-weight:650;
 background:var(--c-primary-soft);color:var(--c-primary-text)}
.loc__note{margin:.5rem 0 0;font-size:.88rem;color:var(--c-ink-muted)}
.loc__links{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;
 padding:.75rem 1.15rem 1.15rem;margin-top:auto}
.loc__go{font-weight:650;font-size:.92rem;text-decoration:none;color:var(--c-primary-text)}
.loc__go:hover{text-decoration:underline}
.loc__links .btn{padding:0;border:0;background:none;color:var(--c-ink-muted);
 font-size:.88rem;font-weight:500;text-decoration:underline}
.loc__find{margin-top:clamp(1.75rem,3vw,2.5rem);text-align:center}
.loc__privacy{margin:.75rem auto 0;font-size:.85rem;color:var(--c-ink-muted);max-width:52ch}
.loc__result{margin:1rem 0 0;font-weight:650}
.loc__result:empty{margin:0}
.sec[style] .loc__privacy,.sec[style] .loc__result{color:inherit}

/* ---------------------------------------------------------------- document PDF */
.pdfsec__box{margin-top:1.75rem;border:1px solid var(--c-border);border-radius:var(--radius-lg);
 overflow:hidden;background:var(--c-surface-alt)}
.pdfsec__view{width:100%;display:block;border:0}
.pdfsec--moyenne .pdfsec__view{height:min(70vh,640px)}
.pdfsec--grande .pdfsec__view{height:min(85vh,900px)}
.pdfsec--page .pdfsec__view{height:min(120vh,1400px)}
.pdfsec__fallback{padding:clamp(2rem,5vw,3.5rem);text-align:center;color:var(--c-ink)}
.pdfsec__fallback p{margin:0 0 1.25rem}
/* Aucun navigateur mobile n'affiche un PDF dans la page : on montre
   directement le repli plutot qu'un cadre vide. */
@media (max-width:820px){.pdfsec__box{display:none}}

/* ---------------------------------------------------------------- apparition au defilement */
.sec.reveal{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease}
.sec.reveal.is-in{opacity:1;transform:none}
/* variantes choisies par bloc (Animation d'apparition) */
.sec.reveal.anim--fade{transform:none}
.sec.reveal.anim--zoom{transform:scale(.93)}
.sec.reveal.anim--left{transform:translateX(-34px)}
.sec.reveal.anim--right{transform:translateX(34px)}
@media (prefers-reduced-motion:reduce){.sec.reveal,.sec.reveal.anim--fade,.sec.reveal.anim--zoom,.sec.reveal.anim--left,.sec.reveal.anim--right{opacity:1;transform:none;transition:none}}

/* ---------------------------------------------------------------- bandeau d'annonce */
.announce{padding-block:0}
.announce__in{display:flex;align-items:center;justify-content:center;gap:1rem;padding-block:.6rem;position:relative}
.announce__in p{margin:0;font-size:.92rem;font-weight:600;text-align:center}
.announce__in a{color:inherit;text-decoration:underline;white-space:nowrap}
.announce__x{position:absolute;right:0;background:none;border:0;color:inherit;font-size:1.3rem;line-height:1;cursor:pointer;opacity:.75;padding:0 .3rem}
.announce__x:hover{opacity:1}

/* ---------------------------------------------------------------- actualites */
.news__grid{display:grid;gap:clamp(1.1rem,2.2vw,1.75rem)}
.news--2 .news__grid{grid-template-columns:repeat(2,1fr)}
.news--3 .news__grid{grid-template-columns:repeat(3,1fr)}
@media (max-width:900px){.news--3 .news__grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.news__grid{grid-template-columns:1fr!important}}
.news__it{display:flex;flex-direction:column;background:var(--c-surface);color:var(--c-ink);
 border:1px solid var(--c-border);border-radius:var(--radius);overflow:hidden;transition:transform .2s,box-shadow .2s}
.news__it:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.news__media{position:relative}
.news__img{width:100%;aspect-ratio:3/2}
.news__cat{position:absolute;top:.7rem;left:.7rem;background:var(--c-primary);color:var(--c-on-primary);
 font-size:.72rem;font-weight:700;padding:.24em .7em;border-radius:99px}
.news__body{padding:1.2rem;display:flex;flex-direction:column;gap:.4rem;flex:1 1 auto}
.news__date{margin:0;font-size:.8rem;color:var(--c-ink-muted);font-weight:600}
.news__body h3{margin:0}
.news__tx{margin:0;color:var(--c-ink-muted);font-size:.95rem}
.news__body .btn{align-self:flex-start;margin-top:auto;padding-inline:0;border:0;background:none;color:var(--c-primary-text);text-decoration:underline}

/* ---------------------------------------------------------------- avant / apres */
.ba__box{position:relative;max-width:900px;margin-inline:auto;border-radius:var(--radius-lg);
 overflow:hidden;box-shadow:var(--shadow);user-select:none;touch-action:none;line-height:0}
.ba__after{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}
.ba__before{position:absolute;top:0;left:0;height:100%;width:50%;overflow:hidden;border-right:2px solid #fff}
/* La largeur de l'image « avant » est calee sur celle du cadre par le script,
   pour qu'elle ne se deforme pas quand la fenetre change de taille. */
.ba__before img{position:absolute;top:0;left:0;height:100%;width:auto;max-width:none;object-fit:cover}
.ba__lbl{position:absolute;top:1rem;padding:.25em .7em;border-radius:99px;font-size:.74rem;
 font-weight:700;background:rgba(0,0,0,.6);color:#fff;pointer-events:none}
.ba__lbl--l{left:1rem}
.ba__lbl--r{right:1rem}
.ba__handle{position:absolute;top:0;bottom:0;left:50%;width:2px;background:#fff;transform:translateX(-50%);pointer-events:none}
.ba__handle span{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:38px;height:38px;
 border-radius:50%;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.35);display:grid;place-items:center}
.ba__handle span::before{content:"‹ ›";font-size:.9rem;color:var(--c-ink);letter-spacing:-1px}
.ba__range{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize}

/* ---------------------------------------------------------------- zone d'intervention */
.cov__in{display:grid;grid-template-columns:1fr;gap:clamp(1.5rem,4vw,3rem);align-items:center}
.cov--map .cov__in{grid-template-columns:1fr 1fr}
@media (max-width:820px){.cov--map .cov__in{grid-template-columns:1fr}}
.cov__tags{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.2rem 0}
.cov__tag{display:inline-flex;align-items:center;gap:.3rem;padding:.35em .8em;border-radius:99px;
 background:var(--c-surface);border:1px solid var(--c-border);font-size:.88rem;font-weight:600}
.cov__tag svg{color:var(--c-primary-text)}
.cov__note{color:var(--c-ink-muted);font-size:.95rem}
.cov__map{border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--c-border);min-height:320px}
.cov__map iframe{width:100%;height:100%;min-height:320px;border:0;display:block}

/* ---------------------------------------------------------------- frise */
.tl__list{list-style:none;margin:0;padding:0;position:relative;max-width:760px;margin-inline:auto}
.tl__list::before{content:"";position:absolute;left:11px;top:6px;bottom:6px;width:2px;background:var(--c-border)}
.tl__it{position:relative;padding:0 0 2rem 3rem}
.tl__it:last-child{padding-bottom:0}
.tl__dot{position:absolute;left:4px;top:4px;width:16px;height:16px;border-radius:50%;
 background:var(--c-primary);box-shadow:0 0 0 4px var(--c-primary-soft)}
.tl__date{display:inline-block;font-family:var(--font-display);font-weight:var(--display-weight);
 font-size:1.15rem;color:var(--c-primary-text);margin-bottom:.2rem}
.tl__c h3{margin:0 0 .25em}
.tl__c p{margin:0;color:var(--c-ink-muted)}
.sec[style] .tl__c p{color:inherit;opacity:.88}

/* ---------------------------------------------------------------- compte a rebours */
.cd__in{text-align:center;max-width:60ch;margin-inline:auto}
.cd__grid{display:flex;justify-content:center;flex-wrap:wrap;gap:clamp(.7rem,2vw,1.4rem);margin:1.8rem 0}
.cd__u{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);border-radius:var(--radius);
 padding:1rem clamp(.9rem,2.5vw,1.6rem);min-width:82px}
.sec:not([style]) .cd__u,.cd .cd__u{background:var(--c-surface-alt);border-color:var(--c-border)}
.cd__n{display:block;font-family:var(--font-display);font-weight:var(--display-weight);
 font-size:clamp(2rem,1.4rem + 2vw,3.2rem);line-height:1;font-variant-numeric:tabular-nums}
.cd__l{display:block;font-size:.76rem;text-transform:uppercase;letter-spacing:.1em;opacity:.7;margin-top:.35rem}
.cd__grid[data-ended-shown]{font-family:var(--font-display);font-size:1.6rem;font-weight:var(--display-weight)}

/* ---------------------------------------------------------------- logos defilants */
.mq__title{text-align:center;font-size:.82rem;font-weight:700;letter-spacing:.14em;
 text-transform:uppercase;color:var(--c-ink-muted);margin:0 0 1.6rem}
.mq__track{display:flex;overflow:hidden;gap:0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
 mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.mq__track ul{display:flex;align-items:center;gap:clamp(2.5rem,6vw,5rem);list-style:none;margin:0;padding:0 clamp(1.25rem,3vw,2.5rem) 0 0;
 flex:0 0 auto;animation:mqscroll var(--mq-dur,28s) linear infinite}
.mq__track:hover ul{animation-play-state:paused}
.mq--lente ul{--mq-dur:44s}
.mq--rapide ul{--mq-dur:16s}
.mq__img{max-height:44px;width:auto;object-fit:contain}
.mq--gray .mq__img{filter:grayscale(1);opacity:.6;transition:filter .2s,opacity .2s}
.mq--gray .mq__img:hover{filter:none;opacity:1}
@keyframes mqscroll{to{transform:translateX(-100%)}}
@media (prefers-reduced-motion:reduce){.mq__track ul{animation:none}}

/* ---------------------------------------------------------------- texte + video */
.tv__media{align-self:stretch;min-height:260px}
.split .tv__media.placeholder{display:grid;place-items:center;border-radius:var(--radius-lg)}

/* ---------------------------------------------------------------- comparatif */
.cmp__wrap{overflow-x:auto;border-radius:var(--radius);border:1px solid var(--c-border)}
.cmp__tbl{width:100%;border-collapse:collapse;min-width:420px;background:var(--c-surface);color:var(--c-ink)}
.cmp__tbl th,.cmp__tbl td{padding:.9rem 1.1rem;text-align:center;border-bottom:1px solid var(--c-border)}
.cmp__tbl thead th{font-family:var(--font-display);font-weight:var(--display-weight);font-size:1.05rem}
.cmp__tbl thead .cmp__hi{background:var(--c-primary-soft);color:var(--c-primary-text)}
.cmp__tbl tbody th{text-align:left;font-weight:600}
.cmp__tbl tbody tr:last-child th,.cmp__tbl tbody tr:last-child td{border-bottom:0}
.cmp__tbl td:last-child{background:color-mix(in srgb,var(--c-primary-soft) 45%,transparent)}
.cmp__yes{color:#12a150;font-size:1.2rem;font-weight:700}
.cmp__no{color:#c4c9cf;font-size:1.1rem}

/* ---------------------------------------------------------------- evenements */
.ev__list{list-style:none;margin:0;padding:0;display:grid;gap:.9rem;max-width:820px}
.ev__it{display:grid;grid-template-columns:130px 1fr;gap:1.25rem;background:var(--c-surface);color:var(--c-ink);
 border:1px solid var(--c-border);border-radius:var(--radius);padding:1.15rem 1.35rem}
@media (max-width:560px){.ev__it{grid-template-columns:1fr;gap:.5rem}}
.ev__date{display:flex;flex-direction:column;justify-content:center;border-right:1px solid var(--c-border);padding-right:1rem}
@media (max-width:560px){.ev__date{border-right:0;border-bottom:1px solid var(--c-border);padding:0 0 .6rem;flex-direction:row;gap:.5rem;align-items:baseline}}
.ev__d{font-family:var(--font-display);font-weight:var(--display-weight);font-size:1.1rem;line-height:1.15;color:var(--c-primary-text)}
.ev__t{font-size:.9rem;color:var(--c-ink-muted)}
.ev__b h3{margin:0 0 .3em}
.ev__place{display:flex;align-items:center;gap:.35rem;margin:0 0 .4rem;font-size:.9rem;color:var(--c-ink-muted)}
.ev__place svg{color:var(--c-primary-text)}
.ev__tx{margin:0 0 .6rem;color:var(--c-ink-muted);font-size:.95rem}
.ev__b .btn{padding-inline:0;border:0;background:none;color:var(--c-primary-text);text-decoration:underline}

/* ---------------------------------------------------------------- recrutement */
.jobs__list{display:grid;gap:1rem;max-width:780px}
.job{background:var(--c-surface);color:var(--c-ink);border:1px solid var(--c-border);
 border-radius:var(--radius);padding:1.35rem 1.5rem}
.job__h{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.7rem;margin-bottom:.5rem}
.job__h h3{margin:0}
.job__meta{display:flex;flex-wrap:wrap;gap:.4rem}
.job__tag{background:var(--c-primary-soft);color:var(--c-primary-text);font-size:.76rem;font-weight:700;
 padding:.28em .75em;border-radius:99px;display:inline-flex;align-items:center;gap:.3rem}
.job__tag--place{background:var(--c-surface-alt);color:var(--c-ink-muted)}
.job__tx{margin:0 0 1rem;color:var(--c-ink-muted)}

/* ---------------------------------------------------------------- surcouches */
.cookie{position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:150;max-width:640px;
 margin-inline:auto;background:var(--c-surface);color:var(--c-ink);border:1px solid var(--c-border);
 border-radius:var(--radius);padding:1.25rem 1.4rem;box-shadow:0 12px 40px -8px rgba(16,24,40,.35);
 display:flex;flex-wrap:wrap;align-items:center;gap:1rem}
.cookie p{margin:0;flex:1 1 240px;font-size:.9rem}
.cookie .btn{padding:.6em 1.2em;font-size:.92rem}

.fab{position:fixed;right:1.15rem;bottom:1.15rem;z-index:120;display:inline-flex;
 align-items:center;gap:.6rem;padding:.9rem 1.3rem;border-radius:99px;
 background:var(--c-primary);color:var(--c-on-primary);text-decoration:none;font-weight:700;
 box-shadow:0 8px 28px -6px rgba(16,24,40,.45)}
.fab:hover{background:var(--c-primary-hover);color:var(--c-on-primary)}

/* --- lot 2 : grille d'icones --- */
.ig__grid{display:grid;gap:clamp(1rem,2.5vw,1.9rem)}
.ig__grid--2{grid-template-columns:repeat(2,1fr)}
.ig__grid--3{grid-template-columns:repeat(3,1fr)}
.ig__grid--4{grid-template-columns:repeat(4,1fr)}
.ig__item{text-align:center;display:flex;flex-direction:column;align-items:center;gap:.45rem}
.ig__ic{display:inline-flex;width:58px;height:58px;align-items:center;justify-content:center;border-radius:15px;background:var(--c-primary-soft);color:var(--c-primary-text)}
.ig__label{font-weight:700}
.ig__text{margin:0;font-size:.92rem;opacity:.78}
@media(max-width:760px){.ig__grid--3,.ig__grid--4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:420px){.ig__grid--2,.ig__grid--3,.ig__grid--4{grid-template-columns:1fr}}

/* --- ruban de labels --- */
.lbl__row{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem .9rem}
.lbl__item{display:inline-flex;align-items:center;gap:.45rem;font-weight:600;font-size:.95rem;
 padding:.5rem 1rem;border-radius:99px;background:var(--c-surface);box-shadow:inset 0 0 0 1px var(--c-border)}
.lbl__item svg{color:var(--c-primary-text);flex:0 0 auto}

/* --- reassurance --- */
.rea__row{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:clamp(1rem,2.5vw,2rem)}
.rea__item{display:flex;gap:.85rem;align-items:flex-start}
.rea__ic{flex:0 0 auto;display:inline-flex;width:48px;height:48px;align-items:center;justify-content:center;
 border-radius:13px;background:var(--c-primary-soft);color:var(--c-primary-text)}
.rea__item strong{display:block}
.rea__item p{margin:.25rem 0 0;font-size:.92rem;opacity:.78}

/* --- galerie a filtres --- */
.gf__filters{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-bottom:1.6rem}
.gf__f{padding:.5rem 1.15rem;border-radius:99px;border:1px solid var(--c-border);background:var(--c-surface);
 cursor:pointer;font-weight:600;font-size:.92rem;color:inherit;transition:background .15s,color .15s}
.gf__f.is-on{background:var(--c-primary);color:var(--c-on-primary);border-color:transparent}
.gf__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.8rem}
.gf__cell{margin:0;border-radius:var(--radius-sm);overflow:hidden;position:relative;aspect-ratio:4/3;background:var(--c-surface-alt)}
.gf__cell.is-hidden{display:none}
.gf__img{width:100%;height:100%;object-fit:cover;display:block}
.gf__ph{position:absolute;inset:0;background:repeating-linear-gradient(45deg,var(--c-surface-alt),var(--c-surface-alt) 11px,var(--c-border) 11px,var(--c-border) 22px)}
.gf__cell figcaption{position:absolute;left:0;right:0;bottom:0;padding:.5rem .7rem;font-size:.85rem;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.6))}

/* --- image plein ecran --- */
.imfsec{position:relative}
.imf{position:relative;width:100%;overflow:hidden}
.imf--moyenne{height:42vh;min-height:280px}
.imf--grande{height:62vh;min-height:360px}
.imf--plein-ecran{height:100vh}
.imf__img{width:100%;height:100%;object-fit:cover;display:block}
.imf__ph{position:absolute;inset:0;background:var(--c-surface-alt)}
.imf__veil{position:absolute;inset:0}
.imf__cap{position:absolute;left:0;right:0;bottom:0;padding:2.2rem 0;color:#fff}
.imf__cap p{margin:0;font-size:clamp(1.15rem,3vw,1.9rem);font-weight:700;font-family:var(--font-display)}

/* --- carrousel de videos --- */
.vc__track{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:.6rem}
.vc__card{flex:0 0 clamp(240px,72%,340px);scroll-snap-align:start}
.vc__play{position:relative;display:block;width:100%;aspect-ratio:16/9;border:0;padding:0;border-radius:var(--radius-sm);overflow:hidden;cursor:pointer;background:var(--c-ink)}
.vc__thumb{width:100%;height:100%;object-fit:cover;display:block}
.vc__thumb--plain{display:block;background:var(--c-ink)}
.vc__btn{position:absolute;inset:0;margin:auto;width:58px;height:58px;display:flex;align-items:center;justify-content:center;
 border-radius:50%;background:rgba(0,0,0,.55);color:#fff;font-size:1.15rem}
.vc__card--empty{flex:0 0 260px;display:flex;align-items:center;justify-content:center;aspect-ratio:16/9;
 border:1px dashed var(--c-border);border-radius:var(--radius-sm);color:var(--c-ink-muted);font-size:.9rem;text-align:center;padding:1rem}
.vc__title{margin:.5rem 0 0;font-weight:600;font-size:.95rem}
.vc__box{position:relative;width:100%;aspect-ratio:16/9}
.vc__box iframe{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:var(--radius-sm)}

/* --- ouvert / ferme --- */
.ost{text-align:center}
.ost__badge{display:inline-flex;align-items:center;gap:.6rem;padding:.7rem 1.25rem;border-radius:99px;
 background:var(--c-surface);box-shadow:inset 0 0 0 1px var(--c-border);font-weight:700}
.ost__dot{width:11px;height:11px;border-radius:50%;background:var(--c-ink-muted);flex:0 0 auto}
.ost__badge.is-open .ost__dot{background:#16a34a;box-shadow:0 0 0 4px rgba(22,163,74,.18)}
.ost__badge.is-closed .ost__dot{background:#dc2626;box-shadow:0 0 0 4px rgba(220,38,38,.15)}

/* --- boutons de contact --- */
.qc{text-align:center}
.qc__title{margin:0 0 1.5rem}
.qc__row{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center}
.qc__b{display:inline-flex;align-items:center;gap:.55rem;padding:.9rem 1.5rem;border-radius:var(--radius-sm);
 background:var(--c-surface);color:var(--c-ink);font-weight:700;text-decoration:none;
 box-shadow:0 6px 18px -8px rgba(16,24,40,.5);transition:transform .12s}
.qc__b:hover{transform:translateY(-1px)}
.qc__hint{opacity:.85;margin:.5rem 0 0}

/* --- promo + compte a rebours --- */
.pc{text-align:center}
.pc__title{margin:0 0 .6rem}
.pc__text{margin:0 auto 1.4rem;max-width:52ch;opacity:.92}
.pc__cd{display:inline-flex;gap:1.3rem;margin-bottom:1.6rem;font-family:var(--font-display)}
.pc__cd span{display:flex;flex-direction:column-reverse;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;opacity:.85}
.pc__cd b{font-size:clamp(1.8rem,5vw,2.7rem);line-height:1}

/* --- grande phrase --- */
.stmt{text-align:center}
.stmt__in{max-width:22ch;margin:0 auto}
.stmt__eyebrow{display:block;text-transform:uppercase;letter-spacing:.12em;font-size:.82rem;font-weight:700;opacity:.7;margin-bottom:1rem}
.stmt__title{margin:0;font-family:var(--font-display);font-weight:800;line-height:1.08;font-size:clamp(1.9rem,5.5vw,3.7rem)}
.stmt__title em{font-style:normal;color:var(--c-primary)}

/* --- le saviez-vous --- */
.dyk__list{display:grid;gap:.6rem;max-width:760px;margin-inline:auto}
.dyk__item{border:1px solid var(--c-border);border-radius:var(--radius-sm);background:var(--c-surface);overflow:hidden}
.dyk__item summary{display:flex;align-items:center;gap:.6rem;padding:1rem 1.2rem;font-weight:700;cursor:pointer;list-style:none}
.dyk__item summary::-webkit-details-marker{display:none}
.dyk__ic{display:inline-flex;color:var(--c-primary-text);flex:0 0 auto}
.dyk__a{padding:0 1.2rem 1.15rem 3rem}
.dyk__a p{margin:0}
.dyk__item[open] summary{color:var(--c-primary-text)}

/* --- nos engagements --- */
.eng__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:clamp(1rem,2.5vw,1.8rem)}
.eng__card{padding:1.7rem;border-radius:var(--radius-sm);background:var(--c-surface);
 box-shadow:0 10px 30px -18px rgba(16,24,40,.4);text-align:center}
.eng__ic{display:inline-flex;width:62px;height:62px;align-items:center;justify-content:center;
 border-radius:17px;background:var(--c-primary-soft);color:var(--c-primary-text);margin-bottom:.9rem}
.eng__card h3{margin:0 0 .4rem}
.eng__card p{margin:0;opacity:.82}

@media print{.hdr,.ft,.fab,.cookie,.car__nav,.car__dots{display:none!important}
 .sec{padding-block:1.5rem;break-inside:avoid}}