@charset "UTF-8";
/* Couche site — assemble les tokens du design system en patterns de pages.
   Passe de style v3 (retours client) : scrim plat (plus de dégradé), échelle typo
   contrastée, interlignes serrés, tuiles éditoriales (numéro + hairline, pas de
   grilles de boîtes), rouge réservé au logo. */

html{scroll-behavior:smooth}

.container{max-width:var(--container-max);margin:0 auto;padding:0 var(--page-margin)}

/* ---------- Barre utilitaire (univers JP Schweizer) ---------- */
.utility-bar{background:var(--surface-inverse-deep);color:var(--text-on-dark-muted)}
.utility-bar .container{display:flex;justify-content:flex-end;gap:var(--space-6);height:40px;align-items:center}
.utility-bar a{font:var(--fw-medium) var(--fs-label)/1 var(--font-primary);color:var(--text-on-dark-muted);border-bottom:none;display:inline-flex;align-items:center;gap:var(--space-1)}
.utility-bar a:hover{color:var(--white)}
.utility-bar a.active{color:var(--white)}
.utility-bar .icon{width:12px;height:12px}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:100;background:var(--surface-page);border-bottom:var(--border-hairline)}
.site-header .container{display:flex;align-items:center;justify-content:space-between;height:84px;gap:var(--space-8)}
.brand{display:flex;align-items:center;gap:var(--space-3);border-bottom:none}
.brand:hover{border-bottom:none}
.brand img.symbol{height:36px;width:auto;display:block}
.brand img.wordmark{height:18px;width:auto;display:block}
.site-nav{display:flex;align-items:center;gap:var(--space-6)}
.site-nav a{font:var(--fw-medium) var(--fs-small)/1 var(--font-primary);color:var(--text-muted);border-bottom:none;padding:6px 0;white-space:nowrap;transition:var(--transition-color)}
.site-nav a:hover{color:var(--text-heading);border-bottom:none}
.site-nav a.active{color:var(--text-heading);font-weight:var(--fw-semibold)}
/* Le bouton du header doit rester un bouton : `.site-nav a` (0,1,1) l'emporterait
   sinon sur `.btn-solid` (0,1,0) et ecraserait padding et rayon. */
.site-nav a.btn-solid{color:var(--white);padding:15px 26px;border-radius:var(--radius-xs)}
.site-nav a.btn-solid:hover{color:var(--white)}
.nav-toggle{display:none}

/* ---------- Boutons ---------- */
/* Boutons v5 : sobres, généreux, coins à peine arrondis. */
.btn,.btn-solid{display:inline-flex;align-items:center;justify-content:center;font:var(--fw-medium) var(--fs-small)/1 var(--font-primary);color:var(--white);background:var(--surface-inverse);padding:18px 34px;border:1px solid transparent;border-bottom:1px solid transparent;border-radius:var(--radius-xs);cursor:pointer;white-space:nowrap;transition:var(--transition-base)}
.btn:hover,.btn-solid:hover{background:var(--navy-700);color:var(--white);border-bottom-color:transparent}
.btn:active,.btn-solid:active{transform:translateY(1px)}
.btn-on-dark{background:var(--white);color:var(--navy-800)}
.btn-on-dark:hover{background:var(--steel-100);color:var(--navy-800)}
.btn-outline{background:transparent;color:var(--text-heading);border-color:var(--line-rule)}
.btn-outline:hover{background:transparent;color:var(--text-heading);border-color:var(--line-strong)}
.arrow-link{display:inline-flex;align-items:center;gap:var(--space-3);font:var(--fw-medium) var(--fs-micro)/1 var(--font-primary);letter-spacing:0.1em;text-transform:uppercase;color:var(--text-heading);border-bottom:none}
.arrow-link::after{content:"→";color:var(--red-500);font-size:15px;letter-spacing:0;transition:transform var(--dur-base) var(--ease-standard)}
.arrow-link.ext::after{content:"↗"}
.arrow-link:hover::after{transform:translateX(3px)}

/* ---------- Hero plein écran ---------- */
.hero{position:relative;min-height:calc(100vh - 124px);display:flex;align-items:center;background:var(--surface-inverse)}
.hero .bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:saturate(.9)}
/* Scrim PLAT et uniforme (--surface-scrim) : plus de dégradé visible sur la photo. */
.hero .scrim{position:absolute;inset:0;background:var(--surface-scrim)}
.hero .copy{position:relative;width:100%}
.hero .copy-inner{padding-top:var(--space-16);padding-bottom:var(--space-16)}
.hero .eyebrow{font:var(--fw-medium) var(--fs-small)/1.4 var(--font-primary);color:rgba(255,255,255,.85);margin-bottom:var(--space-5)}
.hero .eyebrow::before{content:"/ ";color:var(--red-500)}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--red-500);transform:scaleX(0);transform-origin:left;animation:rule-draw 1100ms var(--ease-out) 250ms forwards}
.hero h1{font:var(--type-display);letter-spacing:var(--ls-display);color:var(--white);max-width:20ch}
.hero .lead{font:var(--type-lead);color:var(--text-on-dark-muted);max-width:54ch;margin:var(--space-5) 0 var(--space-8)}
.hero .actions{display:flex;gap:var(--space-4);flex-wrap:wrap}

/* ---------- Sections ---------- */
.section{padding:var(--section-y) 0}
.section-tight{padding:var(--section-y-tight) 0}
.section-alt{background:var(--surface-subtle);border-top:var(--border-hairline);border-bottom:var(--border-hairline)}
.section-head{margin-bottom:var(--space-12)}
.kicker{font:var(--fw-medium) var(--fs-small)/1.4 var(--font-primary);color:var(--red-500);margin-bottom:var(--space-5)}
.kicker::before{content:"/ "}
.section-head h2{font:var(--type-h1);letter-spacing:var(--ls-heading);max-width:20ch}
.section-head .sub{font:var(--type-lead);color:var(--text-muted);margin-top:var(--space-5);max-width:54ch}

/* ---------- Tuiles services — éditorial : index + média + corps ---------- */
.services-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--col-gap)}
.service-tile{position:relative;display:flex;flex-direction:column;background:var(--surface-card);border-top:var(--border-hairline);transition:var(--transition-base);color:inherit}
.service-tile:hover{border-top-color:var(--red-500);color:inherit}
.service-tile .media{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--surface-panel)}
.service-tile .media .img{position:absolute;inset:0;background-size:cover;background-position:center;filter:saturate(.9);transition:transform 700ms var(--ease-out)}
.service-tile:hover .media .img{transform:scale(1.05)}
.service-tile .media.contain{display:flex;align-items:center;justify-content:center}
.service-tile .media.contain img{max-height:76%;max-width:72%;object-fit:contain;box-shadow:var(--shadow-lg);transition:transform 700ms var(--ease-out)}
.service-tile:hover .media.contain img{transform:scale(1.04)}
.service-tile .idx{position:absolute;top:0;left:0;z-index:2;background:var(--surface-page);color:var(--text-faint);font:var(--fw-regular) var(--fs-h3)/1 var(--font-primary);padding:var(--space-3) var(--space-4)}
.service-tile .body{padding:var(--space-8) 0 0;display:flex;flex-direction:column;flex:1;gap:var(--space-4)}
.service-tile h3{font:var(--fw-regular) var(--fs-h2)/var(--lh-heading) var(--font-primary);letter-spacing:var(--ls-heading)}
.service-tile .desc{color:var(--text-body);margin:0;max-width:44ch}
.service-tile .foot{margin-top:auto;padding-top:var(--space-6)}

/* ---------- Listes flèches ---------- */
.arrow-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}
.arrow-list li{display:grid;grid-template-columns:18px 1fr;gap:var(--space-3);align-items:start;font:var(--fw-regular) var(--fs-small)/var(--lh-list) var(--font-text);color:var(--text-body)}
.arrow-list li::before{content:"→";color:var(--steel-400);font:var(--fw-regular) var(--fs-small)/var(--lh-list) var(--font-text)}
.arrow-list.cols-3{grid-template-columns:repeat(3,1fr);gap:var(--space-4) var(--col-gap)}
.arrow-list.cols-2{grid-template-columns:repeat(2,1fr);gap:var(--space-4) var(--col-gap)}
.arrow-list.cols-3 li,.arrow-list.cols-2 li{grid-template-columns:18px 1fr}
.arrow-list.spaced{gap:var(--space-3)}

/* ---------- Panneau signature (encoche) ---------- */
.panel{position:relative;background:var(--surface-panel);color:var(--navy-800);padding:var(--space-10)}
.panel.notch-left::before{content:"";position:absolute;left:0;top:var(--space-8);width:0;height:0;border-top:11px solid transparent;border-bottom:11px solid transparent;border-left:11px solid var(--surface-page)}
.panel.notch-right::before{content:"";position:absolute;right:0;top:var(--space-8);width:0;height:0;border-top:11px solid transparent;border-bottom:11px solid transparent;border-right:11px solid var(--surface-page)}
.panel h3{margin-bottom:var(--space-5)}
.section-alt .panel.notch-left::before{border-left-color:var(--surface-subtle)}
.section-alt .panel.notch-right::before{border-right-color:var(--surface-subtle)}

/* ---------- Bande de réassurance ---------- */
.trust-strip{background:var(--surface-subtle);border-top:var(--border-hairline);border-bottom:var(--border-hairline)}
.trust-strip .container{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--col-gap);padding-top:var(--space-20);padding-bottom:var(--space-20)}
.trust-strip .trust-item{opacity:0;transform:translateY(14px);transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out)}
.trust-strip.in .trust-item{opacity:1;transform:none}
.trust-strip.in .trust-item:nth-child(2){transition-delay:100ms}
.trust-strip.in .trust-item:nth-child(3){transition-delay:200ms}
.trust-strip.in .trust-item:nth-child(4){transition-delay:300ms}
.trust-item .num::after{content:"";display:block;width:28px;height:2px;background:var(--red-500);margin-top:var(--space-3);transform:scaleX(0);transform-origin:left;transition:transform 500ms var(--ease-out) 400ms}
.trust-strip.in .num::after{transform:scaleX(1)}
.trust-item .num{font:var(--fw-regular) var(--fs-h2)/1 var(--font-primary);letter-spacing:var(--ls-heading);color:var(--text-heading);display:block;margin-bottom:var(--space-3)}
.trust-item .lbl{font:var(--fw-regular) var(--fs-small)/var(--lh-list) var(--font-text);color:var(--text-muted);display:block;max-width:26ch}

/* ---------- À propos ---------- */
.about-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:var(--space-16);align-items:start}
.about-grid h2{font:var(--type-h1);letter-spacing:var(--ls-heading)}
.about-grid .lead{font:var(--type-lead);color:var(--text-body);margin:0 0 var(--space-6)}

/* ---------- Rangées éditoriales numérotées (avantages, solutions, points clefs) ---------- */
.feature-rows{display:grid;grid-template-columns:1fr 1fr;column-gap:var(--space-16)}
.feature-rows.cols-3{grid-template-columns:repeat(3,1fr)}
.feature-row{display:grid;grid-template-columns:auto 1fr;gap:var(--space-5);padding:var(--space-6) 0;border-top:var(--border-hairline);transition:var(--transition-color)}
.feature-row:hover{border-top-color:var(--line-strong)}
.feature-row .n{font:var(--fw-regular) var(--fs-small)/1.5 var(--font-primary);color:var(--steel-400);font-variant-numeric:tabular-nums}
.feature-row h4{font:var(--fw-medium) 20px/1.25 var(--font-primary);color:var(--text-heading);margin-bottom:var(--space-2)}
.feature-row p{font:var(--fw-regular) var(--fs-small)/var(--lh-body) var(--font-text);color:var(--text-muted);margin:0;max-width:40ch}

/* Blocs à grand numéro (points clefs) */
.key-rows{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--col-gap)}
.key-row{border-top:var(--border-hairline);padding-top:var(--space-5);display:grid;gap:var(--space-4)}
.key-row .n{font:var(--fw-regular) 96px/1 var(--font-primary);letter-spacing:var(--ls-display);color:var(--steel-100)}
.key-row h4{font:var(--type-h3);color:var(--text-heading)}

/* Solutions — blocs larges */
.solution-rows{display:grid;gap:0}
.solution-row{display:grid;grid-template-columns:auto minmax(0,22ch) 1fr;gap:var(--space-8);padding:var(--space-8) 0;border-top:var(--border-hairline);align-items:start}
.solution-row .n{font:var(--fw-regular) 64px/0.9 var(--font-primary);letter-spacing:var(--ls-display);color:var(--steel-200);font-variant-numeric:tabular-nums}
.solution-row h4{font:var(--fw-regular) var(--fs-h2)/var(--lh-heading) var(--font-primary);letter-spacing:var(--ls-heading);color:var(--text-heading)}
.solution-row p{font:var(--type-small);color:var(--text-body);margin:0;max-width:62ch}

/* Variante compacte : numeros/titres au gabarit des 'avantages' */
.solution-rows.compact .solution-row{padding:var(--space-6) 0;gap:var(--space-8)}
.solution-rows.compact .n{font:var(--fw-regular) var(--fs-small)/1.5 var(--font-primary);color:var(--steel-400)}
.solution-rows.compact h4{font:var(--fw-medium) 20px/1.25 var(--font-primary);letter-spacing:0;color:var(--text-heading)}

/* ---------- Bande contact (navy) ---------- */
.contact-band{background:var(--surface-inverse);color:var(--text-on-dark)}
.contact-band .container{padding-top:var(--section-y);padding-bottom:var(--section-y)}
.contact-band .band-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:var(--space-16);align-items:start;margin-top:var(--space-6)}
.contact-band .eyebrow{font:var(--fw-medium) var(--fs-small)/1.4 var(--font-primary);color:rgba(255,255,255,.85);margin-bottom:var(--space-4)}
.contact-band .eyebrow::before{content:"/ ";color:var(--red-500)}
.contact-band h2{font:var(--type-h1);letter-spacing:var(--ls-heading);color:var(--white);max-width:20ch}
.contact-band p{color:var(--text-on-dark-muted)}
.contact-list{display:grid;gap:var(--space-4);font:var(--type-small)}
.contact-list .row{display:grid;grid-template-columns:24px 1fr;gap:var(--space-3);align-items:start;color:var(--text-on-dark-muted);line-height:var(--lh-list)}
.contact-list .row .icon{width:19px;height:19px;color:var(--text-on-dark-muted)}
.contact-list a{color:var(--white);border-bottom-color:rgba(255,255,255,.3)}
.contact-list a:hover{color:var(--white);border-bottom-color:var(--white)}

/* ---------- Footer ---------- */
.site-footer{background:var(--surface-inverse-deep);color:var(--text-on-dark-muted)}
.site-footer .container{padding-top:var(--space-16);padding-bottom:var(--space-10)}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:var(--col-gap);padding-bottom:var(--space-10);border-bottom:1px solid rgba(255,255,255,.12)}
.site-footer img.wordmark{height:16px;width:auto;display:block;margin-bottom:var(--space-5)}
.site-footer .col-title{font:var(--fw-semibold) var(--fs-small)/1.4 var(--font-primary);color:var(--white);margin-bottom:var(--space-4)}
.site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}
.site-footer a{color:var(--text-on-dark-muted);border-bottom:none;font:var(--fw-regular) var(--fs-small)/var(--lh-list) var(--font-text)}
.site-footer a:hover{color:var(--white)}
.site-footer .small{font:var(--fw-regular) var(--fs-small)/var(--lh-list) var(--font-text);color:var(--text-on-dark-muted)}
.footer-bottom{display:flex;justify-content:space-between;gap:var(--space-6);padding-top:var(--space-6);font:var(--fw-regular) var(--fs-label)/1.5 var(--font-text)}

/* ---------- Formulaire ---------- */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5)}
.form-grid .full{grid-column:1 / -1}
.field label{display:block;font:var(--fw-medium) var(--fs-small)/1.4 var(--font-primary);color:var(--text-heading);margin-bottom:var(--space-2)}
.field input,.field select,.field textarea{width:100%;font:var(--type-small);color:var(--text-heading);background:var(--surface-page);border:var(--border-rule);border-radius:var(--radius-xs);padding:14px 16px;transition:var(--transition-color)}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--line-strong);box-shadow:inset 0 -2px 0 var(--navy-800)}
.field textarea{min-height:150px;resize:vertical}
/* Honeypot anti-spam : hors écran pour les humains, visible pour les bots. */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-status{font:var(--type-small);margin:var(--space-2) 0 0;padding:var(--space-4) var(--space-5);border-radius:var(--radius-xs)}
.form-status.is-ok{background:rgba(47,125,93,.1);color:var(--state-ok);border:1px solid rgba(47,125,93,.3)}
.form-status.is-error{background:var(--red-100);color:var(--red-600);border:1px solid rgba(220,79,65,.35)}

/* ---------- Colonne décalée : le corps de section s'indente sous le titre ---------- */
.offset{padding-left:16.6%}
@media (max-width:960px){.offset{padding-left:0}}

/* ---------- Reveal ---------- */
.reveal{opacity:0;transform:translateY(12px);transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* ---------- Page hero (pages intérieures) ---------- */
.page-hero{position:relative;background:var(--surface-inverse);min-height:460px;display:flex;align-items:flex-end}
.page-hero .bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:saturate(.9)}
.page-hero .scrim{position:absolute;inset:0;background:var(--surface-scrim)}
.page-hero .copy{position:relative;width:100%}
.page-hero .copy-inner{padding-top:var(--space-16);padding-bottom:var(--space-12)}
.page-hero .eyebrow{font:var(--fw-medium) var(--fs-small)/1.4 var(--font-primary);color:rgba(255,255,255,.85);margin-bottom:var(--space-4)}
.page-hero .eyebrow::before{content:"/ ";color:var(--red-500)}
.page-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--red-500);transform:scaleX(0);transform-origin:left;animation:rule-draw 1100ms var(--ease-out) 250ms forwards}
.page-hero h1{font:var(--type-h1);letter-spacing:var(--ls-display);color:var(--white);max-width:22ch}
.page-hero .lead{font:var(--type-lead);color:var(--text-on-dark-muted);max-width:54ch;margin-top:var(--space-4)}

/* ---------- Process (frise) ---------- */
.process{position:relative;display:grid;grid-template-columns:repeat(6,1fr);gap:var(--col-gap)}
.process::before{content:"";position:absolute;top:5px;left:0;right:0;height:1px;background:var(--line-rule)}
/* Ligne de progression pilotée par le scroll (variable --p posée en JS, 0→1,
   réversible à la remontée). Les points s'allument quand la ligne les atteint. */
.process::after{content:"";position:absolute;top:5px;left:0;width:calc(var(--p,0)*100%);height:1px;background:var(--red-500);transition:width 120ms linear}
.process .step{position:relative;display:grid;gap:var(--space-3);align-content:start;padding-top:var(--space-6)}
.process .step::before{content:"";position:absolute;top:0;left:0;width:11px;height:11px;border-radius:var(--radius-pill);background:var(--surface-page);border:2px solid var(--navy-800);z-index:1;transition:background-color var(--dur-base) var(--ease-standard),border-color var(--dur-base) var(--ease-standard)}
.process .step.lit::before{background:var(--red-500);border-color:var(--red-500)}
.process .n{font:var(--fw-medium) var(--fs-label)/1.4 var(--font-primary);color:var(--steel-400);font-variant-numeric:tabular-nums}
.process .t{font:var(--fw-semibold) var(--fs-small)/1.3 var(--font-primary);color:var(--text-heading)}
.process .d{font:var(--fw-regular) var(--fs-label)/var(--lh-list) var(--font-text);color:var(--text-muted)}
.process .step{opacity:0;transform:translateY(10px);transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out)}
.process.in .step{opacity:1;transform:none}
.process.in .step:nth-child(2){transition-delay:90ms}
.process.in .step:nth-child(3){transition-delay:180ms}
.process.in .step:nth-child(4){transition-delay:270ms}
.process.in .step:nth-child(5){transition-delay:360ms}
.process.in .step:nth-child(6){transition-delay:450ms}

/* ---------- Tableau tarifs ---------- */
.spec-table{width:100%;border-collapse:collapse}
.spec-table th{font:var(--fw-semibold) var(--fs-small)/1.4 var(--font-primary);color:var(--text-heading);text-align:left;padding:var(--space-4) var(--space-5);border-bottom:var(--border-strong)}
.spec-table td{font:var(--fw-regular) var(--fs-small)/var(--lh-list) var(--font-text);color:var(--text-body);padding:var(--space-5);border-bottom:var(--border-hairline);vertical-align:top}
.spec-table td.val{background:var(--surface-panel);color:var(--navy-800);font:var(--fw-semibold) var(--fs-small)/var(--lh-list) var(--font-text);white-space:nowrap}
.spec-table .detail{display:block;font:var(--fw-regular) var(--fs-label)/var(--lh-list) var(--font-text);color:var(--text-muted);margin-top:var(--space-1)}
.table-note{font:var(--fw-regular) var(--fs-label)/var(--lh-body) var(--font-text);color:var(--text-muted);margin-top:var(--space-4);text-align:right}

/* ---------- Citation ---------- */
.pull-quote{font:var(--fw-light) var(--fs-h2)/1.3 var(--font-text);letter-spacing:var(--ls-lead);color:var(--text-heading);max-width:36ch;margin:0}

/* ---------- Responsive ----------
   L'échelle typographique descend par les tokens (--fs-*) à chaque palier :
   tous les titres suivent, sans dépassement du viewport. */
@media (max-width:1100px){
  .hero h1{font-size:var(--fs-h1)}
  .process{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:960px){
  :root{--fs-display:56px;--fs-h1:44px;--fs-h2:32px}
  .services-grid,.about-grid,.form-grid,.feature-rows,.feature-rows.cols-3{grid-template-columns:1fr}
  .contact-band .band-grid{grid-template-columns:1fr;gap:var(--space-8)}
  .trust-strip .container{grid-template-columns:repeat(2,1fr)}
  .key-rows{grid-template-columns:1fr}
  .solution-row{grid-template-columns:auto 1fr;gap:var(--space-5)}
  .solution-row p{grid-column:2}
  .arrow-list.cols-3{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .section-head h2{max-width:none}
}
@media (max-width:640px){
  :root{--page-margin:20px;--section-y:64px;--section-y-tight:48px;--fs-display:38px;--fs-h1:31px;--fs-h2:25px;--fs-h3:21px;--fs-lead:19px}
  .site-nav{display:none;position:absolute;top:84px;left:0;right:0;background:var(--surface-page);border-bottom:var(--border-hairline);flex-direction:column;align-items:flex-start;padding:var(--space-5) var(--page-margin);gap:var(--space-5)}
  .site-nav.open{display:flex}
  .nav-toggle{display:inline-flex;background:none;border:none;cursor:pointer;padding:8px;margin-right:6px;color:var(--navy-800)}
  .trust-strip .container{grid-template-columns:1fr}
  .key-row .n{font-size:64px}
  .pull-quote{font-size:var(--fs-h3)}
  /* Process : timeline verticale — la ligne relie les points, le contenu est décalé à droite. */
  .process{grid-template-columns:1fr;gap:var(--space-6)}
  .process::before{top:6px;bottom:6px;left:5px;right:auto;width:1px;height:auto}
  .process::after{top:6px;left:5px;width:1px;height:calc(var(--p,0)*(100% - 12px));transition:height 120ms linear}
  .process .step{padding-top:0;padding-left:var(--space-8)}
  .process .step::before{top:2px;left:0}
  /* Footer : contenu centré. */
  .site-footer{text-align:center}
  .footer-grid{justify-items:center}
  .site-footer img.wordmark{margin-left:auto;margin-right:auto}
  .footer-bottom{flex-direction:column;align-items:center;gap:var(--space-2)}
}


/* ---------- Rollover liens : rouge + soulignement animé ---------- */
.site-nav a:not(.btn):not(.btn-solid),.utility-bar a,.site-footer a,.contact-list a,.arrow-link{border-bottom:none;background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:0 100%;background-size:0 1px;transition:color var(--dur-fast) var(--ease-standard),background-size var(--dur-base) var(--ease-standard)}
.site-nav a:not(.btn):not(.btn-solid):hover,.utility-bar a:hover,.site-footer a:hover,.contact-list a:hover,.arrow-link:hover{color:var(--red-500);background-size:100% 1px;border-bottom:none}

@keyframes rule-draw{to{transform:scaleX(1)}}
@media (prefers-reduced-motion:reduce){
  .hero::after,.page-hero::after{animation:none;transform:none}
  .process .step,.trust-strip .trust-item{opacity:1;transform:none;transition:none}
  .process::after,.process .step::before{transition:none}
  .process{--p:1}
  .process .step::before{background:var(--red-500);border-color:var(--red-500)}
  .trust-item .num::after{transform:none;transition:none}
}
