@font-face{font-family:"Arimo"; font-style:normal; font-weight:400 700; font-display:swap; src:url(../fonts/arimo-latin-wght-normal.woff2) format("woff2"); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Arimo"; font-style:italic; font-weight:400 700; font-display:swap; src:url(../fonts/arimo-latin-wght-italic.woff2) format("woff2"); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* Leadr · leadr.ch v2 · feuille de style partagée */
:root{
  --red:#E8192C; --red-dark:#C5101F;
  --ink:#1D1D1F; --paper:#FAF7F2; --white:#FFFFFF;
  --muted:#57534C; --rule:#D9D2C5; --rule-dark:#3A3A3D;
  --font:"Arimo", Arial, Helvetica, sans-serif;
  --wrap:1200px; --gutter:24px;
  --s1:clamp(2.6rem, 5.6vw, 4.9rem);
  --s2:clamp(1.9rem, 3.4vw, 2.9rem);
  --s3:1.25rem;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth}
body{margin:0; background:var(--paper); color:var(--ink); font-family:var(--font); font-size:1.125rem; line-height:1.6; overflow-x:hidden}
img,svg{max-width:100%; display:block}
a{color:inherit}
h1,h2,h3{margin:0; font-weight:700; line-height:1.05; letter-spacing:-0.025em}
h1{font-size:var(--s1); letter-spacing:-0.035em; line-height:1.0}
h2{font-size:var(--s2); line-height:1.08}
h3{font-size:var(--s3); letter-spacing:-0.01em; line-height:1.25}
p{margin:0 0 1em}
.wrap{max-width:var(--wrap); margin:0 auto; padding:0 var(--gutter)}
.sr{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0)}
.skip{position:absolute; left:-999px; top:8px; background:var(--ink); color:#fff; padding:8px 14px; z-index:100}
.skip:focus{left:8px}
:focus-visible{outline:3px solid var(--red); outline-offset:3px}

/* Boutons */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:.5em; font-weight:700; font-size:1rem; text-decoration:none; padding:.95em 1.5em; border-radius:2px; border:2px solid transparent; transition:background-color .15s, color .15s, border-color .15s; white-space:nowrap}
.btn-red{background:var(--red); color:#fff}
.btn-red:hover{background:var(--red-dark)}
.btn-line{border-color:currentColor; color:var(--ink)}
.btn-line:hover{background:var(--ink); color:var(--paper); border-color:var(--ink)}
.btn-sm{padding:.65em 1.1em; font-size:.95rem}
.btn-lg{padding:1.1em 1.8em; font-size:1.05rem}
.actions{display:flex; flex-wrap:wrap; gap:12px; margin-top:32px}

/* En-tête */
.site-header{position:sticky; top:0; z-index:50; background:rgba(250,247,242,.96); backdrop-filter:saturate(1.4) blur(6px); border-bottom:1px solid var(--rule)}
.site-header::before{content:""; display:block; height:4px; background:var(--red)}
.header-in{display:flex; align-items:center; justify-content:space-between; height:72px}
.brand img{height:30px; width:auto}
.nav{display:flex; align-items:center; gap:28px}
.nav ul{display:flex; gap:24px; list-style:none; margin:0; padding:0}
.nav ul a{text-decoration:none; font-size:.98rem; font-weight:700; padding:6px 0; border-bottom:2px solid transparent}
.nav ul a:hover{border-color:var(--ink)}
.nav ul a[aria-current]{border-color:var(--red)}
.nav-toggle{display:none; background:none; border:0; padding:10px; cursor:pointer}
.nav-toggle span:not(.sr){display:block; width:24px; height:2px; background:var(--ink); margin:5px 0; transition:transform .2s, opacity .2s}

/* Sections */
.sec{padding:clamp(64px, 9vw, 120px) 0}
.sec-white{background:var(--white)}
.sec-dark{background:var(--ink); color:var(--paper)}
.sec-dark .kicker{color:#FF4A58}
.sec-dark .row{border-color:var(--rule-dark)}
.sec-dark .rows .row p, .sec-dark .intro{color:#CFCAC0}
.kicker{color:var(--red); font-weight:700; font-size:1rem; margin:0 0 18px; letter-spacing:0}
.intro{font-size:1.2rem; color:var(--muted); max-width:62ch; margin:22px 0 0}
.w-narrow{max-width:22ch}
.link-line{margin:40px 0 0}
.link-line a, .more{font-weight:700; text-decoration:underline; text-decoration-color:var(--red); text-decoration-thickness:2px; text-underline-offset:5px}

/* Hero */
.hero{padding:clamp(56px, 8vw, 104px) 0 clamp(56px, 8vw, 96px); border-bottom:1px solid var(--rule)}
.hero h1{max-width:16ch}
.hero .lead{font-size:clamp(1.15rem, 1.6vw, 1.35rem); color:var(--muted); max-width:56ch; margin:28px 0 0}
.hero-sm h1{font-size:clamp(2.3rem, 4.6vw, 3.8rem)}
.hero-home .hero-grid{display:grid; grid-template-columns:minmax(0, 7fr) minmax(0, 5fr); gap:48px; align-items:center}
.hero-home h1{font-size:clamp(2.7rem, 5.8vw, 5.4rem); max-width:13ch}

/* Carte signature */
.map{margin:0}
.map svg{width:100%; height:auto; overflow:visible}
.map .land{fill:var(--white); stroke:var(--ink); stroke-width:2; stroke-linejoin:round}
.map .ch-e{fill:#F1ECE3}
.map .sarine{fill:none; stroke:var(--ink); stroke-width:1.5; stroke-dasharray:4 5}
.map .arrow{fill:none; stroke:var(--red); stroke-width:4; stroke-linecap:round; stroke-dasharray:400; stroke-dashoffset:400; animation:draw 1.1s cubic-bezier(.4,0,.2,1) forwards}
.map .a1{animation-delay:.35s} .map .a2{animation-delay:.85s} .map .a3{animation-delay:1.35s}
.map .lbl{font:700 22px var(--font); fill:var(--ink)}
.map .lbl.sm{font-size:14px}
@keyframes draw{to{stroke-dashoffset:0}}

/* Directions */
.dirs{display:grid; grid-template-columns:repeat(3, 1fr); margin-top:56px; border-top:2px solid var(--ink)}
.dir{display:block; text-decoration:none; padding:32px 32px 36px 0; border-right:1px solid var(--rule)}
.dir + .dir{padding-left:32px}
.dir:last-child{border-right:0}
.dir svg{width:120px; height:28px; margin-bottom:24px}
.dir .g-a{fill:var(--white); stroke:var(--ink); stroke-width:2}
.dir .g-b{fill:var(--ink)}
.dir .g-l{stroke:var(--red); stroke-width:3; fill:none}
.dir h3{font-size:1.45rem; margin-bottom:12px}
.dir p{color:var(--muted)}
.dir:hover h3{text-decoration:underline; text-decoration-color:var(--red); text-decoration-thickness:3px; text-underline-offset:6px}

/* Split : titre à gauche, contenu à droite */
.split{display:grid; grid-template-columns:minmax(0, 5fr) minmax(0, 7fr); gap:clamp(32px, 6vw, 96px); align-items:start}
.split-head{position:sticky; top:110px}
.rows .row{display:grid; grid-template-columns:minmax(0, 4fr) minmax(0, 7fr); gap:24px; padding:26px 0; border-top:1px solid var(--rule)}
.rows .row:last-of-type{border-bottom:1px solid var(--rule)}
.rows .row p{margin:0; color:var(--muted)}
.note{margin:32px 0 0; padding:22px 24px; border-left:4px solid var(--red); font-size:1.15rem; font-weight:700}
.sec-dark .note{background:#2A2A2D; color:var(--paper)}
.prose p{font-size:1.2rem; max-width:60ch}
.aside{margin-top:28px; padding:26px 28px; background:var(--paper); border-left:4px solid var(--red)}
.sec:not(.sec-white) .aside{background:var(--white)}

/* Étapes numérotées (vraie séquence) */
.steps{list-style:none; margin:56px 0 0; padding:0; display:grid; grid-template-columns:repeat(auto-fit, minmax(210px, 1fr)); gap:0; border-top:2px solid var(--ink)}
.steps li{padding:28px 28px 8px 0; position:relative}
.steps li + li{padding-left:28px; border-left:1px solid var(--rule)}
.steps .n{display:block; font-size:3.4rem; font-weight:700; line-height:1; color:var(--red); letter-spacing:-0.04em; margin-bottom:18px}
.steps h3{margin-bottom:10px}
.steps p{color:var(--muted); font-size:1.05rem}
.steps strong{color:var(--ink)}

/* Colonnes */
.cols{display:grid; gap:0; margin-top:48px; border-top:2px solid var(--ink)}
.cols.n3{grid-template-columns:repeat(3, 1fr)} .cols.n2{grid-template-columns:repeat(2, 1fr)} .cols.n4{grid-template-columns:repeat(4, 1fr)}
.col{padding:28px 28px 12px 0; text-decoration:none; display:block}
.col + .col{padding-left:28px; border-left:1px solid var(--rule)}
.col h3{margin-bottom:10px}
.col p{color:var(--muted)}
.col-link:hover h3{text-decoration:underline; text-decoration-color:var(--red); text-decoration-thickness:3px; text-underline-offset:6px}

/* Grande phrase (bloc rouge, un seul par page) */
.statement{background:var(--red); color:#fff}
.statement .st{font-size:clamp(2.2rem, 5.4vw, 4.6rem); font-weight:700; line-height:1.02; letter-spacing:-0.035em; max-width:18ch; margin:0}
.statement .st-sub{font-size:1.25rem; max-width:58ch; margin:32px 0 0; color:#FFE3E5}
.statement .st-who{margin:28px 0 0; font-weight:700}

/* Cas clients */
.cases{display:grid; gap:0; margin-top:48px}
.case{display:grid; grid-template-columns:minmax(0, 5fr) minmax(0, 7fr); gap:clamp(24px, 5vw, 80px); padding:40px 0; border-top:2px solid var(--ink)}
.case:last-child{border-bottom:1px solid var(--rule)}
.case-q{font-size:clamp(1.5rem, 2.4vw, 2.05rem); line-height:1.15; letter-spacing:-0.02em}
.case-sect{margin:16px 0 0; color:var(--red); font-weight:700; font-size:.98rem}
.case dl{margin:0}
.case dl div{padding:0 0 18px}
.case dt{font-weight:700; margin-bottom:4px}
.case dd{margin:0; color:var(--muted)}

/* Fondateur */
.person{background:var(--paper); border-top:1px solid var(--rule)}
.person-grid{display:grid; grid-template-columns:minmax(0, 4fr) minmax(0, 7fr); gap:clamp(32px, 6vw, 96px); align-items:center}
.portrait{position:relative; aspect-ratio:4/5; background:var(--ink); overflow:hidden}
.portrait{max-width:380px}
.portrait img{position:absolute; inset:0; z-index:1; width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.05)}
.portrait .ph{display:flex; position:absolute; inset:0; align-items:flex-end; padding:28px; color:var(--paper); font-size:6rem; font-weight:700; letter-spacing:-0.05em; line-height:.8}
.portrait .ph::after{content:""; position:absolute; top:28px; left:28px; width:48px; height:6px; background:var(--red)}
.person-txt p:not(.kicker){font-size:1.2rem; max-width:58ch; margin-top:22px}

/* FAQ */
.faq details{border-top:1px solid var(--rule)}
.faq details:last-child{border-bottom:1px solid var(--rule)}
.faq summary{cursor:pointer; list-style:none; padding:22px 44px 22px 0; font-weight:700; font-size:1.15rem; position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:""; position:absolute; right:6px; top:50%; width:14px; height:14px; margin-top:-10px; border-right:3px solid var(--red); border-bottom:3px solid var(--red); transform:rotate(45deg); transition:transform .2s}
.faq details[open] summary::after{transform:rotate(-135deg); margin-top:-3px}
.faq .ans p{color:var(--muted); margin:0 0 24px; max-width:60ch}

/* Appel final */
.cta{background:var(--ink); color:var(--paper); padding:clamp(56px, 7vw, 88px) 0}
.cta-in{display:flex; align-items:center; justify-content:space-between; gap:32px}
.cta h2{max-width:20ch}
.cta p{color:#C9C4BA; margin:16px 0 0; max-width:56ch}

/* Formulaire */
.form{display:grid; gap:20px}
.f2{display:grid; grid-template-columns:1fr 1fr; gap:20px}
.form label{display:grid; gap:8px; font-weight:700; font-size:1rem}
.opt{font-weight:400; color:var(--muted)}
.form input:not([type=radio]):not([type=checkbox]), .form select, .form textarea{font:inherit; font-size:1rem; font-weight:400; padding:14px 14px; border:1.5px solid #B8B0A2; border-radius:2px; background:var(--white); color:var(--ink); width:100%}
.form input:focus, .form select:focus, .form textarea:focus{outline:none; border-color:var(--ink); box-shadow:0 0 0 3px rgba(232,25,44,.25)}
fieldset{border:0; padding:0; margin:0}
legend{font-weight:700; font-size:1rem; margin-bottom:10px}
.chips{display:flex; flex-wrap:wrap; gap:10px}
.chip{display:inline-flex !important; cursor:pointer}
.chip input{position:absolute; opacity:0}
.chip span{padding:10px 14px; border:1.5px solid #B8B0A2; font-weight:400; font-size:.97rem}
.chip input:checked + span{background:var(--ink); color:var(--paper); border-color:var(--ink)}
.chip input:focus-visible + span{outline:3px solid var(--red); outline-offset:2px}
.consent{display:flex !important; gap:10px; align-items:flex-start; font-weight:400 !important; font-size:.95rem !important; color:var(--muted)}
.consent input{margin-top:4px; width:18px; height:18px; accent-color:var(--red)}
.form-msg{margin:0; font-weight:700}
.form-msg.err{color:var(--red-dark)}
.contact-direct{margin-top:32px; font-weight:700}

/* Pied de page */
.site-footer{background:var(--ink); color:#C9C4BA; padding:72px 0 28px; border-top:1px solid var(--rule-dark)}
.foot-top{display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:40px}
.foot-brand img{height:30px; width:auto; margin-bottom:22px}
.foot-brand p{max-width:34ch; font-size:1rem}
.foot-addr a{color:#fff}
.site-footer h2{font-size:1rem; color:#fff; letter-spacing:0; margin-bottom:14px}
.site-footer ul{list-style:none; padding:0; margin:0}
.site-footer li{margin:0 0 8px}
.site-footer li a{text-decoration:none; font-size:.98rem}
.site-footer li a:hover{color:#fff; text-decoration:underline}
.foot-bottom{display:flex; justify-content:space-between; margin-top:56px; padding-top:22px; border-top:1px solid var(--rule-dark); font-size:.9rem}

/* Tablette */
@media (max-width:1020px){
  .nav ul{gap:16px} .nav{gap:18px}
  .nav ul a{font-size:.92rem}
}
@media (max-width:900px){
  .nav-toggle{display:block}
  .nav{position:fixed; inset:76px 0 auto 0; background:var(--paper); flex-direction:column; align-items:stretch; gap:0; padding:8px var(--gutter) 24px; border-bottom:1px solid var(--rule); transform:translateY(-130%); transition:transform .25s; z-index:-1}
  .nav.open{transform:none}
  .nav ul{flex-direction:column; gap:0}
  .nav ul a{display:block; padding:14px 0; border-bottom:1px solid var(--rule); font-size:1.1rem}
  .nav ul a[aria-current]{color:var(--red); border-bottom-color:var(--rule)}
  .nav .btn{margin-top:18px}
  .nav-toggle[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .nav-toggle[aria-expanded=true] span:nth-child(2){opacity:0}
  .nav-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .hero-home .hero-grid{grid-template-columns:1fr; gap:24px}
  .map{max-width:520px}
  .split, .person-grid, .case{grid-template-columns:1fr}
  .split-head{position:static}
  .dirs, .cols.n3, .cols.n2, .cols.n4{grid-template-columns:1fr}
  .dir, .dir + .dir, .col, .col + .col{padding:28px 0; border-left:0; border-right:0; border-bottom:1px solid var(--rule)}
  .steps{grid-template-columns:1fr 1fr}
  .steps li, .steps li + li{padding:28px 20px 8px 0; border-left:0}
  .cta-in{flex-direction:column; align-items:flex-start}
  .foot-top{grid-template-columns:1fr 1fr}
  .portrait{max-width:340px}
}
@media (max-width:600px){
  :root{--gutter:16px}
  body{font-size:1.06rem}
  .rows .row{grid-template-columns:1fr; gap:8px}
  .steps{grid-template-columns:1fr}
  .f2{grid-template-columns:1fr}
  .actions .btn{width:100%}
  .foot-top{grid-template-columns:1fr}
  .foot-bottom{flex-direction:column; gap:10px}
  .btn{white-space:normal; text-align:center}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none !important; transition:none !important; scroll-behavior:auto !important}
  .map .arrow{stroke-dashoffset:0}
}

/* ===== v2.1 : optimisations conversion ===== */
.micro{margin:14px 0 0; font-size:.95rem; color:var(--muted)}
.hero-home .actions{margin-top:36px}
.founder-chip{display:flex; align-items:center; gap:14px; margin-top:36px; padding-top:24px; border-top:1px solid var(--rule); max-width:560px}
.founder-chip p{margin:0; font-size:.98rem; color:var(--muted); line-height:1.45}
.founder-chip strong{color:var(--ink)}
.founder-chip a{color:var(--ink); font-weight:700; text-decoration-color:var(--red); text-underline-offset:3px; white-space:nowrap}
.avatar{position:relative; flex:none; width:52px; height:52px; border-radius:50%; background:var(--ink); color:var(--paper); display:flex; align-items:center; justify-content:center; font-weight:700; font-size:1rem; overflow:hidden}
.avatar img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:1}

.map .city circle{fill:var(--ink)}
.map .city text{font:700 13px var(--font); fill:var(--ink)}
.map .lbl{font-size:24px}
.map figcaption{display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-size:.9rem; color:var(--muted); margin-top:10px; padding-left:8%}
.map .sw{display:inline-block; width:14px; height:14px; border:1.5px solid var(--ink); margin-left:10px}
.map .sw:first-child{margin-left:0}
.map .sw-w{background:var(--white)} .map .sw-e{background:#F1ECE3}

.proof{background:var(--ink); color:var(--paper)}
.proof-in{display:grid; grid-template-columns:repeat(4, 1fr)}
.proof-in div{padding:26px 24px 26px 0; display:grid; gap:4px}
.proof-in div + div{padding-left:24px; border-left:1px solid var(--rule-dark)}
.proof strong{font-size:1.02rem}
.proof span{font-size:.92rem; color:#BDB8AE; line-height:1.4}

.dirs2{display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; margin-top:52px}
.dir2{display:flex; flex-direction:column; text-decoration:none; background:var(--paper); padding:30px 30px 28px; border-top:4px solid var(--ink); transition:border-color .15s, background-color .15s}
.dir2:hover{border-color:var(--red); background:#F3EEE6}
.route{display:flex; align-items:center; gap:10px; font-size:1.7rem; font-weight:700; letter-spacing:-0.03em; margin-bottom:22px}
.route i{font-style:normal; color:var(--red)}
.dir2:nth-child(3) .route{font-size:1.15rem; letter-spacing:-0.01em}
.dir2 h3{margin-bottom:10px}
.dir2 p{color:var(--muted); flex:1}

.qgrid{display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; margin-top:52px}
.qcard{background:var(--white); padding:32px 30px; display:flex; flex-direction:column; border:1px solid var(--rule)}
.qcard-sect{font-size:.9rem; font-weight:700; color:var(--red); margin:0 0 14px}
.qcard h3{font-size:1.45rem; line-height:1.18; letter-spacing:-0.02em; margin-bottom:22px}
.qcard dl{margin:0 0 22px; flex:1}
.qcard dl div{margin-bottom:14px}
.qcard dt{font-size:.9rem; font-weight:700}
.qcard dd{margin:2px 0 0; color:var(--muted); font-size:1rem; line-height:1.5}
.qcard-res{margin:0; padding:16px 18px; background:var(--ink); color:var(--paper); font-weight:700; line-height:1.4}
.qcard-res span{display:block; font-size:.82rem; color:#FF7A85; margin-bottom:4px}

.further{border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); background:var(--paper); padding:48px 0}
.further-in{display:grid; grid-template-columns:minmax(0, 5fr) minmax(0, 7fr); gap:clamp(32px, 6vw, 96px); align-items:start}
.further-t{margin:0; color:var(--muted)}
.further-links{display:grid; grid-template-columns:repeat(3, 1fr); gap:0; border-top:2px solid var(--ink)}
.further-links a{display:grid; gap:6px; padding:18px 18px 4px 0; text-decoration:none}
.further-links a + a{padding-left:18px; border-left:1px solid var(--rule)}
.further-links span{font-size:.95rem; color:var(--muted); line-height:1.45}
.further-links a:hover strong{text-decoration:underline; text-decoration-color:var(--red); text-decoration-thickness:2px; text-underline-offset:4px}

.cta-act{display:flex; flex-direction:column; align-items:flex-start}
.cta .micro{color:#BDB8AE}

.mbar{display:none}
@media (max-width:900px){
  .proof-in{grid-template-columns:1fr 1fr}
  .proof-in div, .proof-in div + div{padding:18px 16px 18px 0; border-left:0}
  .proof-in div:nth-child(even){padding-left:16px; border-left:1px solid var(--rule-dark)}
  .dirs2, .qgrid{grid-template-columns:1fr}
  .further-in{grid-template-columns:1fr}
  .further-links{grid-template-columns:1fr}
  .further-links a, .further-links a + a{padding:16px 0; border-left:0; border-bottom:1px solid var(--rule)}
  .mbar{display:block; position:fixed; left:0; right:0; bottom:0; z-index:60; padding:10px 16px calc(10px + env(safe-area-inset-bottom)); background:rgba(250,247,242,.97); border-top:1px solid var(--rule); transform:translateY(110%); transition:transform .25s}
  .mbar.show{transform:none}
  .mbar .btn{width:100%}
  body{padding-bottom:0}
}
@media (max-width:600px){
  .proof-in{grid-template-columns:1fr}
  .proof-in div:nth-child(even){padding-left:0; border-left:0}
  .proof-in div + div{border-top:1px solid var(--rule-dark)}
  .route{font-size:1.4rem}
  .founder-chip a{white-space:normal}
}
/* ajustements v2.1 */
.hero-home{padding-top:clamp(40px, 6vw, 80px)}
.hero-home .hero-grid{grid-template-columns:minmax(0, 6fr) minmax(0, 6fr); gap:56px}
.hero-home h1{font-size:clamp(2.6rem, 5vw, 4.6rem)}
.hero-home .map{margin-right:-24px}
.proof-in div, .further-links a{align-content:start}
.portrait{max-width:320px}
@media (max-width:900px){ .hero-home .map{margin-right:0} }
@media (max-width:900px){
  .hero-home .hero-grid{grid-template-columns:1fr; gap:32px}
  .site-header{backdrop-filter:none; background:var(--paper)}
}
.site-header{top:env(safe-area-inset-top, 0px)}
/* carte réelle v2.3 */
.map .land{stroke-width:1.1; fill-rule:evenodd}
.map .ch-w{fill:var(--white)}
.map .ch-e{fill:#E9E1D3}
.map .ch-i{fill:#F4EFE7}
.map .lake{fill:#C9D3D8; fill-rule:evenodd}
.map .graben{fill:none; stroke:var(--red); stroke-width:2.2; stroke-dasharray:3 3; stroke-linecap:round}
.map .arrow{stroke-width:3}
.map .city circle{fill:var(--ink)}
.map .city text{font:700 11px var(--font); fill:var(--ink); paint-order:stroke; stroke:var(--paper); stroke-width:3px; stroke-linejoin:round}
.map .sw-g{border:0; height:0; width:18px; border-top:2.5px dashed var(--red); margin-left:12px}
.map .sw-e{background:#E9E1D3}
.ico{width:1.15em; height:1.15em; flex:none}
.btn-wa{background:var(--white); color:var(--ink); border-color:var(--ink); padding-left:1em; padding-right:1em}
.mbar{gap:10px}
@media (max-width:900px){ .mbar{display:flex} .mbar .btn-red{flex:1; width:auto} .mbar .btn-wa{width:auto} }
.person-li{margin-top:18px !important; font-size:1rem !important}
.person-li a{font-weight:700; text-decoration-color:var(--red); text-underline-offset:4px}
.founder-chip .who{display:block; margin-top:4px; font-size:.9rem}
/* sélecteur de langue */
.lang{display:flex; gap:2px; font-size:.85rem; font-weight:700}
.lang a{text-decoration:none; padding:6px 7px; color:var(--muted); border-bottom:2px solid transparent}
.lang a:hover{color:var(--ink)}
.lang a[aria-current]{color:var(--ink); border-bottom-color:var(--red)}
@media (max-width:900px){ .lang{padding:14px 0 0; gap:8px; font-size:1rem} .lang a{padding:6px 10px; border:1.5px solid var(--rule)} .lang a[aria-current]{border-color:var(--ink)} }
/* photo du fondateur (v2.5) */
.portrait{aspect-ratio:1/1; border-radius:50%; background:var(--white); max-width:340px; width:100%; box-shadow:0 0 0 1px var(--rule)}
.portrait img{filter:none}
.portrait .ph::after{display:none}
.portrait .ph{align-items:center; justify-content:center; padding:0; color:var(--ink); font-size:4.5rem}
.hp{position:absolute !important; left:-9999px; width:1px; height:1px; opacity:0}

/* ===== v2.8 : optimisation smartphone et tablette ===== */
h1, h2, h3, .st, .case-q, .qcard h3{overflow-wrap:normal; hyphens:manual; -webkit-hyphens:manual}
.brand{display:flex; align-items:center; min-height:44px}
.foot-bottom a{display:inline-block; padding:10px 0}
.chip span{display:inline-flex; align-items:center; min-height:44px; padding:10px 16px}
.consent input{width:22px; height:22px; margin-top:1px}
.lang a{min-width:40px; min-height:40px; display:inline-flex; align-items:center; justify-content:center}

@media (max-width:900px){
  .site-footer li a{display:inline-block; padding:10px 0}
  .site-footer li{margin:0}
  .sec{padding:56px 0}
  .hero{padding:40px 0 48px}
  .map{max-width:560px; margin:0 auto}
  .map .city text{font-size:15px}
  .map figcaption{padding-left:0; justify-content:center}
  .dirs2, .qgrid{gap:14px; margin-top:36px}
  .cols, .dirs, .steps{margin-top:36px}
  .cta{padding:48px 0}
}
@media (max-width:600px){
  h1, .hero-sm h1{font-size:2.15rem; letter-spacing:-0.03em}
  .hero-home h1{font-size:2.35rem}
  h2{font-size:1.65rem}
  .statement .st{font-size:2rem}
  .intro, .hero .lead, .prose p, .person-txt p:not(.kicker){font-size:1.06rem}
  .map .city text{font-size:19px}
  .map .lbl{font-size:26px}
  .qcard{padding:24px 20px}
  .qcard h3{font-size:1.25rem}
  .dir2{padding:24px 20px}
  .case-q{font-size:1.35rem}
  .steps .n{font-size:2.6rem}
  .rows .row{padding:20px 0}
  .portrait{max-width:260px; margin:0 auto}
  .person-grid{gap:28px}
  .proof-in div{padding:16px 0}
  .further{padding:40px 0}
  .faq summary{font-size:1.05rem; padding:18px 40px 18px 0}
  .cta h2{font-size:1.7rem}
  .cta-act, .cta-act .btn{width:100%}
  .foot-top{gap:28px}
  .site-footer{padding:52px 0 96px}
  .header-in{height:64px}
  .nav{inset:68px 0 auto 0}
}
@media (max-width:380px){
  :root{--gutter:14px}
  h1, .hero-sm h1{font-size:1.95rem}
  .hero-home h1{font-size:2.1rem}
  .route{font-size:1.25rem}
}

/* menu compact (burger) jusqu'à 1180 px : tablettes en paysage et allemand plus long */
@media (max-width:1199px){
  .nav-toggle{display:block}
  .nav{position:fixed; inset:76px 0 auto 0; background:var(--paper); flex-direction:column; align-items:stretch; gap:0; padding:8px var(--gutter) 24px; border-bottom:1px solid var(--rule); transform:translateY(-130%); transition:transform .25s; z-index:-1; box-shadow:0 12px 24px rgba(29,29,31,.08)}
  .nav.open{transform:none}
  .nav ul{flex-direction:column; gap:0}
  .nav ul a{display:block; padding:14px 0; border-bottom:1px solid var(--rule); font-size:1.1rem}
  .nav ul a[aria-current]{color:var(--red); border-bottom-color:var(--rule)}
  .nav .btn{margin-top:18px}
  .lang{padding:14px 0 0; gap:8px; font-size:1rem}
  .lang a{padding:6px 10px; border:1.5px solid var(--rule)}
  .lang a[aria-current]{border-color:var(--ink)}
  .nav-toggle[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .nav-toggle[aria-expanded=true] span:nth-child(2){opacity:0}
  .nav-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .site-header{backdrop-filter:none; background:var(--paper)}
}
@media (min-width:901px) and (max-width:1199px){
  .nav{left:auto; width:380px; border-left:1px solid var(--rule)}
}
.consent input{flex:none}
/* icônes LinkedIn et WhatsApp (v2.10) */
.social{display:flex; gap:10px; align-items:center}
.soc{display:inline-flex; align-items:center; justify-content:center; width:48px; height:48px; border:2px solid var(--ink); color:var(--ink); border-radius:2px; transition:background-color .15s, color .15s, border-color .15s}
.soc .ico{width:22px; height:22px}
.soc-li:hover{background:#0A66C2; border-color:#0A66C2; color:#fff}
.soc-wa:hover{background:#25D366; border-color:#25D366; color:#fff}
.social-foot{margin-top:18px}
.social-foot .soc{width:44px; height:44px; border-color:#55555A; color:#fff}
.contact-direct + .social{margin-top:14px}
.actions-soc{align-items:center}
.mbar .btn-wa .ico{width:24px; height:24px}
/* bloc rouge moins imposant */
.statement{padding:clamp(44px, 5.5vw, 72px) 0}
.statement .st{font-size:clamp(1.9rem, 4.2vw, 3.5rem)}
.statement .st-sub{margin-top:20px; font-size:1.12rem}
.statement .st-who{margin-top:16px}
@media (max-width:600px){ .statement .st{font-size:1.75rem} .statement{padding:40px 0} }
.actions-soc .soc{width:52px; height:52px}

/* ---------- v2.14 : photos de fond (Cervin, Oberland bernois) ---------- */
.sec-alps, .st-graph, .cta{position:relative; overflow:hidden; isolation:isolate}
.sec-alps{padding-bottom:clamp(120px, 12vw, 190px)}
.sec-alps::before, .st-graph::before, .cta::before{content:""; position:absolute; left:0; right:0; bottom:0; pointer-events:none; z-index:-1; background-repeat:no-repeat}
.sec-alps::before{height:clamp(320px, 31vw, 480px); background-image:url(../img/antenne.jpg); background-size:cover; background-position:27% 100%; opacity:.85}
.st-graph::before{top:0; background-image:url(../img/rouge.jpg); background-size:cover; background-position:100% 100%}
.cta::before{top:0; background-image:url(../img/cta.jpg); background-size:cover; background-position:50% 100%; opacity:.62}
@media (max-width:900px){
  .sec-alps{padding-bottom:190px}
  .sec-alps::before{height:340px}
  .st-graph::before{background-position:78% 100%; opacity:.75}
}
@media (max-width:600px){
  .sec-alps{padding-bottom:170px}
  .sec-alps::before{height:300px; background-position:26% 100%}
  .cta::before{background-position:40% 100%; opacity:.55}
}
.sec.sec-dark .aside{background:#2A2A2D; color:var(--paper)}
.sec-dark .text-body p, .sec-dark .split-body p{color:#CFCAC0}
.sec-dark .aside strong{color:#fff}

/* ---------- v2.15 : menu Services déroulant, Contact ---------- */
.has-dd{position:relative}
.nav > ul{align-items:center}
@media (min-width:1200px){ .nav{gap:22px} .nav > ul{gap:20px} .nav > ul > li > a{display:inline-block} html[lang=de] .nav > ul > li > a, html[lang=de] .dd-btn{font-size:.92rem} }
.nav > ul > li > a, .dd-btn{white-space:nowrap; line-height:1.5}
.dd-btn{font:inherit; font-size:.98rem; font-weight:700; color:inherit; background:none; border:0; border-bottom:2px solid transparent; padding:6px 0; cursor:pointer; display:inline-flex; align-items:center; gap:6px}
.dd-btn:hover{border-color:var(--ink)}
.has-dd.is-cur > .dd-btn{border-color:var(--red)}
.chev{transition:transform .2s}
.nav .dd{position:absolute; top:calc(100% + 12px); left:-20px; min-width:270px; display:flex; flex-direction:column; gap:0; background:#fff; border:1px solid var(--rule); border-top:3px solid var(--red); box-shadow:0 18px 36px rgba(29,29,31,.14); padding:8px 0; opacity:0; visibility:hidden; transform:translateY(-6px); transition:opacity .18s, transform .18s, visibility .18s; z-index:60}
.nav .dd::before{content:""; position:absolute; left:0; right:0; top:-16px; height:16px}
.nav .dd a{display:block; padding:11px 20px; border:0; font-size:.95rem; font-weight:600; white-space:nowrap}
.nav .dd a:hover, .nav .dd a:focus-visible{background:var(--paper); color:var(--red)}
.nav .dd a[aria-current]{color:var(--red)}
.has-dd:hover > .dd, .has-dd:focus-within > .dd, .has-dd.open > .dd{opacity:1; visibility:visible; transform:none}
.has-dd:hover .chev, .has-dd.open .chev{transform:rotate(180deg)}
.nav-extra{display:none}
.person-more{margin-top:18px}
@media (max-width:1199px){
  .nav{max-height:calc(100vh - 76px); overflow-y:auto}
  .nav-extra{display:block}
  .dd-btn{display:flex; width:100%; justify-content:space-between; padding:14px 0; border-bottom:1px solid var(--rule); font-size:1.1rem; cursor:default; pointer-events:none}
  .has-dd.is-cur > .dd-btn{color:var(--red); border-bottom-color:var(--rule)}
  .dd-btn .chev{display:none}
  .nav .dd{position:static; opacity:1; visibility:visible; transform:none; min-width:0; background:none; border:0; box-shadow:none; padding:4px 0 8px 16px; border-left:2px solid var(--rule); margin:8px 0 6px}
  .nav .dd::before{display:none}
  .nav .dd a{padding:10px 0; font-size:1rem; border-bottom:0; white-space:normal}
  .nav .dd a:hover{background:none}
}

/* ---------- v2.16 : guides ---------- */
.art-meta{color:var(--muted); font-size:.95rem; margin-top:18px}
.hero .kicker a{color:inherit; text-decoration:none; border-bottom:1px solid currentColor}
.article-body{max-width:760px; margin:0 auto; font-size:1.06rem; line-height:1.72}
.article-body h2{font-size:clamp(1.45rem, 2.6vw, 1.9rem); line-height:1.2; margin:56px 0 18px; letter-spacing:-0.01em}
.article-body h2:first-child{margin-top:0}
.article-body h3{font-size:1.15rem; margin:32px 0 10px}
.article-body p, .article-body li{color:#3A3A3C}
.article-body ul, .article-body ol{padding-left:1.3em}
.article-body li{margin:8px 0}
.article-body strong{color:var(--ink)}
.article-body > p:first-of-type{font-size:1.12rem}
.article-body em{color:var(--muted); font-size:.95rem}
.table-scroll{overflow-x:auto; margin:24px 0; border:1px solid var(--rule); -webkit-overflow-scrolling:touch}
.article-body table{border-collapse:collapse; width:100%; min-width:640px; font-size:.93rem; line-height:1.5}
.article-body th, .article-body td{padding:12px 14px; border-bottom:1px solid var(--rule); text-align:left; vertical-align:top}
.article-body th{background:var(--paper); font-weight:700; color:var(--ink)}
.article-body tr:last-child td{border-bottom:0}
@media (max-width:600px){ .article-body{font-size:1rem} .article-body h2{margin-top:44px} }

/* ---------- v2.18 : blocs rouges des pages intérieures, plus légers ---------- */
.statement:not(.st-graph){padding:clamp(40px, 4.5vw, 60px) 0}
.statement:not(.st-graph) .st{font-size:clamp(1.5rem, 2.6vw, 2.15rem); font-weight:600; line-height:1.22; letter-spacing:-0.015em; max-width:32ch}
.statement:not(.st-graph) .st-sub{font-size:1.05rem; margin-top:14px}
.st-quote .st{font-weight:500; font-style:italic}
.st-quote .st::before{content:"«\00a0"} .st-quote .st::after{content:"\00a0»"}
html[lang=de] .st-quote .st::before{content:"«"} html[lang=de] .st-quote .st::after{content:"»"}
html[lang=en] .st-quote .st::before{content:"\201C"} html[lang=en] .st-quote .st::after{content:"\201D"}
.st-quote .st-who{margin-top:14px; font-weight:600; font-size:.98rem; opacity:.92}
@media (max-width:600px){ .statement:not(.st-graph) .st{font-size:1.4rem} .statement:not(.st-graph){padding:36px 0} }

/* ---------- v2.19 : titres plus fins, sans coupure de mots ---------- */
h1, h2, h3, .st, .case-q, .qcard h3, .further-t{text-wrap:balance}
h1{font-weight:620; letter-spacing:-0.025em; line-height:1.04}
h2{font-weight:600; letter-spacing:-0.018em; line-height:1.12}
h3{font-weight:600; letter-spacing:-0.005em}
.statement .st{font-weight:600; letter-spacing:-0.022em}
.statement:not(.st-graph) .st{font-weight:600}
.st-quote .st{font-weight:480}
.case-q, .qcard h3{font-weight:600; letter-spacing:-0.012em}
.site-footer h2{font-weight:700}
.nw{white-space:nowrap}

/* ---------- v2.20 : guides en pied de page, contraste ---------- */
.foot-guides{display:flex; flex-wrap:wrap; gap:8px 22px; align-items:baseline; margin-top:40px; padding-top:22px; border-top:1px solid var(--rule-dark); font-size:.95rem}
.foot-guides span{color:#fff; font-weight:700; margin-right:4px}
.foot-guides a{text-decoration:none; display:inline-block; padding:10px 0}
.foot-guides a:hover{color:#fff; text-decoration:underline}
.foot-guides + .foot-bottom{margin-top:22px}
.kicker, .case-sect, .qcard-sect{color:var(--red-dark)}
.sec-dark .kicker, .cta .kicker, .statement .kicker, .site-footer .kicker{color:#FF4A58}

/* ---------- v2.21 : formats d'intervention ---------- */
.fmts{display:grid; grid-template-columns:repeat(2, 1fr); gap:24px; margin-top:8px}
.fmts-mini{grid-template-columns:repeat(4, 1fr); margin-top:40px}
.fmt{background:var(--paper); border:1px solid var(--rule); border-top:4px solid var(--red); padding:30px 30px 28px; display:flex; flex-direction:column}
.sec:not(.sec-white) .fmt{background:#fff}
.fmt-n{margin:0 0 14px; font-size:.9rem; font-weight:700; color:var(--red-dark); letter-spacing:.06em}
.fmt h3{font-size:clamp(1.3rem, 1.9vw, 1.6rem); margin:0 0 8px}
.fmt-line{margin:0 0 18px; color:var(--muted); font-size:1.05rem}
.fmt-dur, .fmt-who{margin:0 0 12px; font-size:1rem; line-height:1.5}
.fmt-dur span, .fmt-who span, .fmt-get-t{display:block; font-size:.82rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--ink); margin-bottom:4px}
.fmt-get-t{margin:10px 0 8px}
.fmt-get{margin:0; padding:0; list-style:none}
.fmt-get li{position:relative; padding:0 0 0 26px; margin:0 0 9px; font-size:1rem; line-height:1.5; color:#3A3A3C}
.fmt-get li::before{content:""; position:absolute; left:2px; top:.5em; width:12px; height:7px; border-left:2px solid var(--red); border-bottom:2px solid var(--red); transform:rotate(-45deg)}
.fmt-mini{text-decoration:none; color:inherit; transition:transform .15s, box-shadow .15s}
.fmt-mini:hover{transform:translateY(-3px); box-shadow:0 12px 28px rgba(29,29,31,.08)}
.fmt-mini .fmt-line{font-size:1rem; margin-bottom:auto; padding-bottom:16px}
.fmt-mini .fmt-dur{margin:0}
#choisir .rows .row p{font-weight:700; color:var(--ink)}
@media (max-width:1100px){ .fmts-mini{grid-template-columns:repeat(2, 1fr)} }
@media (max-width:760px){ .fmts, .fmts-mini{grid-template-columns:1fr} .fmt{padding:24px 22px} }
