/* Polices auto-hébergées (licence SIL OFL) : Outfit (titres) et DM Sans (texte) */
@font-face{font-family:"Outfit";font-weight:300;font-display:swap;src:url(/fonts/outfit-latin-300-normal.woff2) format("woff2")}
@font-face{font-family:"Outfit";font-weight:400;font-display:swap;src:url(/fonts/outfit-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Outfit";font-weight:500;font-display:swap;src:url(/fonts/outfit-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Outfit";font-weight:600;font-display:swap;src:url(/fonts/outfit-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Outfit";font-weight:700;font-display:swap;src:url(/fonts/outfit-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"DM Sans";font-weight:400;font-display:swap;src:url(/fonts/dm-sans-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"DM Sans";font-weight:500;font-display:swap;src:url(/fonts/dm-sans-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"DM Sans";font-weight:700;font-display:swap;src:url(/fonts/dm-sans-latin-700-normal.woff2) format("woff2")}

:root{--ink:#0a1222;--ink-2:#1b2a3f;--teal:#0e8e8b;--teal-d:#0a6f6d;--soft:#eaf4f3;--paper:#f6f5f2;--sand:#f1ece4;--card:#fff;--line:#e2e0da;--muted:#56637a;--coral:#e8714f;--r:18px;
  --f-head:"Outfit","Avenir Next","Century Gothic",system-ui,sans-serif;--f-body:"DM Sans",system-ui,-apple-system,"Segoe UI",sans-serif;--ease:cubic-bezier(.2,.7,.2,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:96px}
body{margin:0;font:400 17px/1.7 var(--f-body);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3{font-family:var(--f-head);font-weight:500;line-height:1.12;letter-spacing:-.02em;margin:0}
a{color:inherit}img{max-width:100%;height:auto}.wrap{width:min(1160px,100% - 40px);margin-inline:auto}
.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;background:#fff;padding:8px 12px;z-index:99;border-radius:8px}
.progress{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--teal),var(--coral));z-index:60;transition:width .1s linear}

/* ---------- En-tête ---------- */
.top{position:sticky;top:0;z-index:50;background:rgba(246,245,242,.82);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid transparent;transition:border-color .3s,box-shadow .3s}
.top.is-scrolled{border-color:var(--line);box-shadow:0 6px 24px rgba(10,18,34,.06)}
.top__in{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.brand img{display:block;height:74px;width:auto;transition:height .35s var(--ease);margin:2px 0}
.top.is-scrolled .brand img{height:50px}
.nav{display:flex;gap:2px;flex-wrap:wrap;font-family:var(--f-head)}
.nav a{position:relative;padding:8px 14px;text-decoration:none;font-size:1rem;font-weight:400;border-radius:99px;transition:color .2s,background .2s}
.nav a:hover{background:var(--soft)}.nav a[aria-current]{color:var(--teal-d);font-weight:500}
.nav a[aria-current]::after{content:"";position:absolute;left:50%;bottom:2px;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:var(--teal)}

/* ---------- Boutons ---------- */
.btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:10px;padding:13px 24px;border-radius:99px;font:500 1rem var(--f-head);text-decoration:none;border:1.5px solid transparent;cursor:pointer;transition:transform .25s var(--ease),box-shadow .25s,background .25s,color .25s}
.btn i{font-style:normal;transition:transform .25s var(--ease)}.btn:hover i{transform:translateX(5px)}
.btn--primary{background:var(--ink);color:#fff;box-shadow:0 8px 22px rgba(10,18,34,.18)}
.btn--primary:hover{background:var(--teal-d);transform:translateY(-2px);box-shadow:0 12px 28px rgba(14,142,139,.35)}
.btn--primary::after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-20deg);transition:left .6s}
.btn--primary:hover::after{left:130%}
.btn--ghost{border-color:var(--ink);background:transparent}.btn--ghost:hover{background:var(--ink);color:#fff;transform:translateY(-2px)}
.btn--light{border-color:rgba(255,255,255,.6);color:#fff}.btn--light:hover{background:#fff;color:var(--ink);transform:translateY(-2px)}
.band .btn--primary{background:var(--teal)}.band .btn--primary:hover{background:#12b3af}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
:focus-visible{outline:3px solid var(--teal);outline-offset:3px;border-radius:6px}

/* ---------- Hero ---------- */
.hero{position:relative;overflow:hidden;padding:56px 0 72px;background:linear-gradient(180deg,var(--paper),var(--soft))}
.hero__blob{position:absolute;border-radius:50%;filter:blur(60px);opacity:.55;pointer-events:none}
.hero__blob--a{width:420px;height:420px;background:#bfe6e2;top:-120px;right:-80px;animation:blob 14s ease-in-out infinite}
.hero__blob--b{width:320px;height:320px;background:#f8d9cc;bottom:-120px;left:-60px;animation:blob 18s ease-in-out infinite reverse}
@keyframes blob{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(40px,30px) scale(1.12)}}
.hero__in{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
.hero h1{font-size:clamp(2.3rem,5.2vw,4rem);font-weight:500;margin:.35em 0 .45em}
.lead{font-size:1.15rem;color:var(--muted);max-width:60ch}
.chip,.badge{display:inline-flex;align-items:center;gap:10px;margin:0;padding:7px 16px;border-radius:99px;background:#fff;border:1px solid var(--line);font:500 .9rem var(--f-head);color:var(--ink-2)}
.badge{margin-top:18px;font-family:var(--f-body);font-weight:400;font-size:.92rem;border-radius:14px;max-width:62ch;line-height:1.5}
.dot{flex:none;width:9px;height:9px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 0 rgba(14,142,139,.6);animation:ping 2s infinite}
@keyframes ping{70%{box-shadow:0 0 0 10px rgba(14,142,139,0)}100%{box-shadow:0 0 0 0 rgba(14,142,139,0)}}
.hero__txt>*{animation:rise .8s var(--ease) backwards}
.hero__txt>:nth-child(1){animation-delay:.05s}.hero__txt>:nth-child(2){animation-delay:.18s}.hero__txt>:nth-child(3){animation-delay:.32s}.hero__txt>:nth-child(4){animation-delay:.46s}
@keyframes rise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
.hero__art,.pagehead__art{animation:pop 1s .25s var(--ease) backwards;will-change:transform}
@keyframes pop{from{opacity:0;transform:translateY(30px) scale(.96)}to{opacity:1;transform:none}}
.art{display:block;width:100%;border-radius:24px;box-shadow:0 24px 60px -20px rgba(10,18,34,.28)}
.art--photo{object-fit:cover;aspect-ratio:4/3;background:var(--soft)}
.card .art--photo,.topic .art--photo{aspect-ratio:16/10}
.eyebrow{margin:0 0 10px;font:500 .85rem var(--f-head);letter-spacing:.14em;text-transform:uppercase;color:var(--teal-d)}

/* ---------- Bandeau défilant ---------- */
.marquee{overflow:hidden;background:var(--ink);color:#fff;padding:16px 0;white-space:nowrap}
.marquee__track{display:inline-flex;animation:marquee 48s linear infinite}
.marquee:hover .marquee__track{animation-play-state:paused}
.marquee span{font:300 1.25rem var(--f-head);padding:0 26px;display:inline-flex;align-items:center;gap:52px}
.marquee span::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--teal)}
@keyframes marquee{to{transform:translateX(-25%)}}

/* ---------- Sections ---------- */
.section{padding:84px 0}.section--soft{background:var(--soft)}
.head{max-width:760px;margin-bottom:40px}.head h2{font-size:clamp(1.8rem,3.4vw,2.6rem)}
.head--row{max-width:none;display:flex;justify-content:space-between;align-items:end;gap:20px;flex-wrap:wrap}
.pagehead{position:relative;overflow:hidden;padding:48px 0 56px;background:linear-gradient(180deg,var(--paper),var(--soft))}
.pagehead__bg{position:absolute;right:-120px;top:-160px;width:460px;height:460px;border-radius:50%;background:radial-gradient(circle,#bfe6e2,transparent 70%);animation:blob 16s ease-in-out infinite}
.pagehead__in{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}
.pagehead__in--solo{grid-template-columns:1fr}

.pagehead h1{font-size:clamp(2rem,4.2vw,3.2rem);margin:.3em 0 .4em}
.crumbs{font-size:.92rem;color:var(--muted);margin:0}.crumbs a{text-decoration:none}.crumbs a:hover{color:var(--teal-d)}
.pagehead__art--thumb .art{border-radius:20px}
.prose{max-width:740px}.prose--wide{max-width:none}.prose--wide>:not(.features){max-width:740px}
.prose h2{font-size:clamp(1.5rem,2.6vw,2rem);margin:2em 0 .6em}.prose h2:first-child{margin-top:0}.prose h3{font-size:1.25rem}
.prose a{color:var(--teal-d);text-underline-offset:3px}.prose blockquote{margin:1.6em 0;padding:14px 20px;border-left:4px solid var(--coral);background:#fff;border-radius:0 12px 12px 0;color:var(--muted)}
.prose ul,.prose ol{padding-left:1.2em}.prose li{margin:.3em 0}.prose li::marker{color:var(--teal)}
.prose--article{max-width:700px;margin-inline:auto;font-size:1.08rem}
.doc{display:grid;grid-template-columns:240px 1fr;gap:56px;align-items:start}
.toc{position:sticky;top:104px;font-size:.95rem}.toc p{margin:0 0 10px;font:500 .8rem var(--f-head);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.toc ol{list-style:none;margin:0;padding:0;border-left:2px solid var(--line)}
.toc a{display:block;padding:7px 14px;margin-left:-2px;border-left:2px solid transparent;text-decoration:none;color:var(--muted);line-height:1.35;transition:color .2s,border-color .2s}
.toc a:hover{color:var(--ink)}.toc a.on{color:var(--teal-d);border-color:var(--teal);font-weight:500}

/* ---------- Fonctionnalités ---------- */
.features{list-style:none;padding:0!important;margin:28px 0!important;display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:18px}
.features li{display:flex;gap:16px;padding:22px;margin:0!important;background:#fff;border:1px solid var(--line);border-radius:var(--r);transition:transform .35s var(--ease),box-shadow .35s,border-color .35s}
.features li:hover{transform:translateY(-6px);box-shadow:0 18px 40px -16px rgba(10,18,34,.22);border-color:var(--teal-l,#8fd6d1)}
.features__ic{flex:none;display:grid;place-items:center;width:50px;height:50px;border-radius:14px;background:var(--soft);color:var(--teal-d);transition:background .3s,color .3s,transform .4s var(--ease)}
.features li:hover .features__ic{background:var(--teal);color:#fff;transform:rotate(-8deg) scale(1.08)}
.features h3{font-size:1.1rem;margin:0 0 4px}.features p{margin:0;color:var(--muted);font-size:.96rem;line-height:1.55}

/* ---------- Cartes ---------- */
.topics{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}
.topic,.card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;text-decoration:none;transition:transform .4s var(--ease),box-shadow .4s}
.topic:hover,.card:hover{transform:translateY(-8px);box-shadow:0 26px 50px -22px rgba(10,18,34,.3)}
.topic__img,.card__img{display:block;overflow:hidden;background:var(--soft)}
.topic .art,.card .art{border-radius:0;box-shadow:none;transition:transform .7s var(--ease)}
.topic:hover .art,.card:hover .art{transform:scale(1.06)}
.topic__b,.card__body{display:block;padding:24px 26px 28px}
.topic h3,.card h3{font-size:1.35rem;margin:0 0 .4em}.card h3 a{text-decoration:none}
.topic p,.card p{color:var(--muted);margin:0 0 14px;font-size:.98rem;line-height:1.6}
.card__meta{margin:0 0 6px!important;font-size:.85rem!important;color:var(--muted)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px}
.more{display:inline-flex;gap:6px;align-items:center;font:500 1rem var(--f-head);color:var(--teal-d);text-decoration:none}.more i{font-style:normal;transition:transform .25s var(--ease)}
.topic:hover .more i,.card:hover .more i,.more:hover i{transform:translateX(6px)}

/* ---------- Bandeau d'appel à l'action ---------- */
.band{position:relative;overflow:hidden;background:var(--ink);color:#fff;padding:72px 0}
.band__glow{position:absolute;inset:-40%;background:radial-gradient(40% 40% at 30% 40%,rgba(14,142,139,.5),transparent 70%),radial-gradient(35% 35% at 75% 60%,rgba(232,113,79,.3),transparent 70%);animation:glow 14s ease-in-out infinite alternate}
@keyframes glow{to{transform:translate(8%,6%) rotate(8deg)}}
.band__in{position:relative;display:flex;gap:28px;justify-content:space-between;align-items:center;flex-wrap:wrap}
.band h2{font-size:clamp(1.7rem,3vw,2.4rem);margin-bottom:10px}.band p{margin:0;opacity:.82;max-width:56ch}.band .actions{margin:0}

/* ---------- Contact ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.form{background:#fff;border:1px solid var(--line);border-radius:24px;padding:30px;display:grid;gap:16px;box-shadow:0 24px 60px -30px rgba(10,18,34,.3)}
.field{display:grid;gap:6px}.field label{font:500 .95rem var(--f-head)}
input,select,textarea{font:inherit;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);width:100%;transition:border-color .2s,box-shadow .2s,background .2s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--teal);background:#fff;box-shadow:0 0 0 4px rgba(14,142,139,.15)}
.row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.field--check label{display:flex;gap:12px;font:400 .95rem var(--f-body);align-items:flex-start}.field--check input{width:auto;margin-top:5px;accent-color:var(--teal)}
.field--err input,.field--err textarea{border-color:var(--coral)}.err{color:#b4381a;margin:0;font-size:.88rem}
.hp{position:absolute;left:-9999px;height:0;overflow:hidden}.small{font-size:.86rem;color:var(--muted);margin:0}
.alert{padding:14px 16px;border-radius:12px;margin:0;animation:rise .5s var(--ease)}.alert--ok{background:#dcf1ea;border:1px solid var(--teal)}.alert--err{background:#fbe5de;border:1px solid var(--coral)}

/* ---------- Pied de page ---------- */
.foot{background:var(--ink);color:#c9d3e0;padding:56px 0 40px}
.foot__in{display:grid;grid-template-columns:auto 1fr;gap:40px;align-items:center}
.foot__logo img{display:block;height:96px;width:auto}
.foot__t{margin:0 0 14px;max-width:62ch}.foot nav{display:flex;gap:6px 22px;flex-wrap:wrap;margin-bottom:14px;font-family:var(--f-head)}
.foot a{text-decoration:none}.foot nav a:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}.foot__c{margin:0;opacity:.6;font-size:.88rem}

/* ---------- Apparition au défilement (activée seulement si JS) ---------- */
.js [data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform .8s var(--ease);transition-delay:var(--d,0ms)}
.js [data-reveal].in{opacity:1;transform:none}
.js .features li[data-reveal].in{transition:opacity .8s var(--ease) var(--d,0ms),transform .35s var(--ease),box-shadow .35s,border-color .35s}

@media(max-width:900px){.hero__in,.pagehead__in,.split,.foot__in{grid-template-columns:1fr}.doc{grid-template-columns:1fr}.toc{display:none}.hero{padding:32px 0 48px}.hero__art,.pagehead__art{max-width:520px}.section{padding:56px 0}.brand img{height:60px}.top.is-scrolled .brand img{height:46px}.nav{width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:8px}.nav a{white-space:nowrap}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.js [data-reveal]{opacity:1;transform:none}}
/* Modes de mise à disposition */
.modes{display:grid;grid-template-columns:repeat(3,1fr);border-radius:24px;overflow:hidden;border:1px solid var(--line)}
.mode{padding:44px 34px 40px;text-align:center}
.mode--1{background:#eef7f6}.mode--2{background:#f1f3f8}.mode--3{background:#fdf3ee}
.mode__ic{width:150px;height:150px;margin:0 auto 18px}.mode__ic svg{width:100%;height:100%;display:block;transition:transform .5s var(--ease)}
.mode:hover .mode__ic svg{transform:translateY(-8px) scale(1.04)}
.mode h3{font-size:1.5rem;margin-bottom:.5em}.mode p{margin:0;color:var(--muted);max-width:34ch;margin-inline:auto}
.modes__cta{text-align:center;margin:36px 0 0}
@media(max-width:900px){.modes{grid-template-columns:1fr}}







/* ---------- Page REGULTRA ---------- */
.pagehead__in:has(.shot){grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}
.shot{margin:0;min-width:0}
.shot .art--photo{aspect-ratio:auto;object-fit:contain;width:auto;max-width:100%;height:auto;max-height:380px;margin-inline:auto;background:transparent;box-shadow:0 24px 60px -24px rgba(10,18,34,.35)}
.shot--ph{display:grid;place-items:center;aspect-ratio:16/10;max-height:340px;border:2px dashed #8fd0cb;border-radius:22px;background:repeating-linear-gradient(135deg,#f3faf9,#f3faf9 14px,#ecf6f5 14px,#ecf6f5 28px);color:var(--muted);text-align:center}
.shot--ph span{display:grid;gap:6px;font:500 1.05rem var(--f-head)}.shot--ph small{font:400 .78rem var(--f-body);opacity:.8}
.aud{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
.aud__c{background:#fff;border:1px solid var(--line);border-radius:22px;padding:30px;transition:transform .35s var(--ease),box-shadow .35s}
.aud__c:hover{transform:translateY(-6px);box-shadow:0 20px 40px -20px rgba(10,18,34,.25)}
.aud__ic{display:grid;place-items:center;width:54px;height:54px;border-radius:16px;background:var(--soft);color:var(--teal-d);margin-bottom:16px}
.aud__c h3{font-size:1.3rem;margin-bottom:.4em}.aud__c p{margin:0;color:var(--muted)}
.feat{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:56px;align-items:center;padding:34px 0}
.feat--rev{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}.feat--rev .feat__txt{order:2}.feat--solo{grid-template-columns:minmax(0,720px)}
.feat__n{font:500 .9rem var(--f-head);letter-spacing:.14em;color:var(--teal-d)}
.feat h3{font-size:clamp(1.6rem,3vw,2.2rem);margin:.25em 0 .5em}.feat p{margin:0;color:var(--muted);max-width:46ch}

/* Mise en route : frise lumineuse */
.process{position:relative;overflow:hidden;background:var(--ink);color:#fff;padding:96px 0 104px}
.process__glow{position:absolute;inset:-30%;background:radial-gradient(35% 35% at 20% 30%,rgba(14,142,139,.45),transparent 70%),radial-gradient(30% 30% at 85% 75%,rgba(232,113,79,.25),transparent 70%);animation:glow 14s ease-in-out infinite alternate}
.process .wrap{position:relative}.head--light h2{color:#fff}.head--light .eyebrow{color:#8fd6d1}
.timeline{position:relative;list-style:none;margin:56px 0 0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:22px}
.timeline::before{content:"";position:absolute;top:27px;left:6%;right:6%;height:2px;background:linear-gradient(90deg,#0e8e8b,#8fd6d1 55%,#e8714f);opacity:.55}
.timeline::after{content:"";position:absolute;top:22px;left:6%;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 0 18px 6px rgba(143,214,209,.8);animation:travel 7s ease-in-out infinite}
@keyframes travel{0%{left:6%;opacity:0}8%{opacity:1}92%{opacity:1}100%{left:calc(94% - 12px);opacity:0}}
.tl{position:relative;padding-top:0}
.tl__dot{position:relative;z-index:1;display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--ink);border:2px solid #0e8e8b;color:#8fd6d1;box-shadow:0 0 0 7px rgba(14,142,139,.14);animation:lit 7s ease-in-out infinite;animation-delay:calc(var(--i) * 1.3s)}
@keyframes lit{0%,16%,100%{background:var(--ink);color:#8fd6d1;box-shadow:0 0 0 7px rgba(14,142,139,.14)}6%{background:#0e8e8b;color:#fff;box-shadow:0 0 0 10px rgba(14,142,139,.28),0 0 28px rgba(14,142,139,.6)}}
.tl__n{display:block;margin:20px 0 2px;font:300 3.4rem/1 var(--f-head);color:transparent;-webkit-text-stroke:1.2px rgba(143,214,209,.55);letter-spacing:-.02em;transition:-webkit-text-stroke-color .3s,color .3s}
.tl:hover .tl__n{color:rgba(143,214,209,.15);-webkit-text-stroke-color:#8fd6d1}
.tl h3{font-size:1.2rem;color:#fff;margin:.2em 0 .45em}.tl p{margin:0;color:rgba(255,255,255,.72);font-size:.96rem;line-height:1.6}
@media(max-width:900px){.feat,.feat--rev{grid-template-columns:minmax(0,1fr);gap:24px}.feat--rev .feat__txt{order:0}.pagehead__in:has(.shot){grid-template-columns:minmax(0,1fr)}
  .timeline{grid-template-columns:1fr;gap:30px;margin-top:40px}.timeline::before{top:0;bottom:0;left:27px;right:auto;width:2px;height:auto;background:linear-gradient(180deg,#0e8e8b,#8fd6d1 55%,#e8714f)}.timeline::after{display:none}
  .tl{padding-left:82px;min-height:60px}.tl__dot{position:absolute;left:0;top:0}.tl__n{margin-top:0;font-size:2.2rem}}
  /* Mise en route : version claire */
.process{background:linear-gradient(180deg,#f7f1e8,#fbf8f3);color:var(--ink)}
.process__glow{background:radial-gradient(35% 35% at 12% 25%,rgba(14,142,139,.16),transparent 70%),radial-gradient(30% 30% at 90% 80%,rgba(232,113,79,.14),transparent 70%)}
.head--light h2{color:var(--ink)}.head--light .eyebrow{color:var(--teal-d)}
.timeline::before{opacity:.75}
.timeline::after{background:var(--teal);box-shadow:0 0 16px 5px rgba(14,142,139,.45)}
.tl__dot{background:#fff;color:var(--teal-d);border-color:var(--teal);box-shadow:0 0 0 7px rgba(14,142,139,.12);animation-name:lit-clair}
@keyframes lit-clair{0%,16%,100%{background:#fff;color:var(--teal-d);box-shadow:0 0 0 7px rgba(14,142,139,.12)}6%{background:var(--teal);color:#fff;box-shadow:0 0 0 10px rgba(14,142,139,.22),0 10px 24px rgba(14,142,139,.4)}}
.tl__n{-webkit-text-stroke:1.2px rgba(14,142,139,.6)}
.tl:hover .tl__n{color:rgba(14,142,139,.12);-webkit-text-stroke-color:var(--teal)}
.tl h3{color:var(--ink)}.tl p{color:var(--muted)}

/* ---------- Fonctionnalités : mosaïque ---------- */
.section--white{background:#fff}
.bento{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:20px}
.bx{position:relative;overflow:hidden;border-radius:28px;padding:36px 36px 0;min-height:360px;display:flex;flex-direction:column;transition:transform .4s var(--ease),box-shadow .4s}
.bx:hover{transform:translateY(-6px);box-shadow:0 26px 50px -24px rgba(10,18,34,.3)}
.bx--l{grid-column:span 4}.bx--s{grid-column:span 2}
.bx--1{background:#e6f3f1}.bx--2{background:#fdeee6}.bx--3{background:#eceff8}.bx--4{background:#e9f3ea}
.bx__n{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--ink);color:#fff;font:500 .9rem var(--f-head);margin-bottom:16px}
.bx h3{font-size:1.7rem;margin-bottom:.4em;max-width:16ch}.bx p{margin:0;color:var(--muted);max-width:40ch}
.bx--l{flex-direction:row;gap:24px}.bx--l .bx__t{flex:0 0 42%;padding-bottom:36px}
.bx__shot{position:relative;margin-top:26px;flex:1;min-height:200px;min-width:0}
.bx--l .bx__shot{margin-top:0;align-self:flex-end}
.bx__shot img{display:block;width:100%;height:auto;border-radius:16px 16px 0 0;box-shadow:0 -4px 40px -6px rgba(10,18,34,.28);border:1px solid rgba(10,18,34,.08);border-bottom:0;transition:transform .6s var(--ease)}
.bx--l .bx__shot img{width:118%;max-width:none;border-radius:16px 0 0 0;border-right:0}
.bx:hover .bx__shot img{transform:translateY(-8px) scale(1.02)}
/* version sans image : le chiffre fait l'illustration */
.bx__big{position:absolute;right:28px;bottom:-.18em;font:600 11rem/1 var(--f-head);letter-spacing:-.04em;color:rgba(10,18,34,.07);pointer-events:none;transition:transform .6s var(--ease),color .4s}
.bx:hover .bx__big{transform:translateY(-10px);color:rgba(10,18,34,.11)}
.bx--noshot{min-height:300px;padding-bottom:40px;justify-content:flex-start}
.bx--noshot.bx--l .bx__t{flex:1;padding-bottom:0}
.bx--noshot::before{content:"";position:absolute;left:36px;right:36px;top:0;height:5px;border-radius:0 0 6px 6px;background:var(--ink);opacity:.85;transform:scaleX(.12);transform-origin:left;transition:transform .6s var(--ease)}
.bx--noshot:hover::before{transform:scaleX(1)}
.bx--1.bx--noshot::before{background:var(--teal)}.bx--2.bx--noshot::before{background:var(--coral)}.bx--3.bx--noshot::before{background:#5a6bd0}.bx--4.bx--noshot::before{background:#3f9a55}
.bx:not(.bx--noshot) .bx__big{display:none}
@media(max-width:900px){.bx--l,.bx--s{grid-column:span 6}.bx--l{flex-direction:column;gap:0}.bx--l .bx__t{flex:none;padding-bottom:0}.bx--l .bx__shot{margin-top:26px;align-self:stretch}.bx--l .bx__shot img{width:100%;border-radius:16px 16px 0 0;border-right:1px solid rgba(10,18,34,.08)}}
.bx--s .bx__big{font-size:7rem;right:20px;color:rgba(10,18,34,.05)}
.bx--s.bx--noshot{padding-bottom:84px}
@media(max-width:900px){.bx .bx__big{font-size:6rem;right:18px;color:rgba(10,18,34,.05)}.bx--noshot{padding-bottom:90px;min-height:0}}







/* ---------- Bandeau photo plein cadre ---------- */
.pband-sec{padding-top:0}
.pband{position:relative;min-height:480px;border-radius:32px;overflow:hidden;display:flex;align-items:flex-end;background:linear-gradient(135deg,#dfe9ee,#c3d3dc)}
.pband__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 65%;transition:transform 1.4s var(--ease)}
.pband:hover .pband__img{transform:scale(1.04)}
.pband::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,18,34,.5),rgba(10,18,34,0) 60%);pointer-events:none}
.pband--nophoto::after{display:none}
.pband__glass{position:relative;z-index:2;margin:44px;width:min(480px,100%);padding:34px;border-radius:24px;background:rgba(255,255,255,.85);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 30px 60px -30px rgba(10,18,34,.5)}
.pband__glass h2{font-size:2.3rem;margin:0 0 .4em}.pband__glass p{color:var(--muted);line-height:1.6}.pband__glass .eyebrow{margin:0 0 10px}
.pband__link{display:inline-block;margin-top:6px;font:500 .95rem var(--f-head);color:var(--teal-d)}
.pband__link:hover{text-decoration:underline}
@media(max-width:700px){.pband{min-height:420px}.pband__glass{margin:16px;padding:24px}.pband__glass h2{font-size:1.8rem}}
.pband__glass h2{color:var(--ink)}.pband__glass{background:rgba(255,255,255,.9)}