/* Polices hébergées sur le site (Outfit et Source Sans 3, licence SIL OFL), reprises à l'identique de Google Fonts
   (alphabets latin et latin étendu). Plus aucun appel aux serveurs de Google : l'adresse IP des visiteurs ne part plus aux États-Unis. */
/* latin-ext */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/outfit-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/outfit-normal-latin.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;
}
/* latin-ext */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/outfit-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/outfit-normal-latin.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;
}
/* latin-ext */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(../fonts/outfit-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(../fonts/outfit-normal-latin.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;
}
/* latin-ext */
@font-face {
  font-family: 'Source Sans 3';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/source-sans-3-italic-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Source Sans 3';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/source-sans-3-italic-latin.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;
}
/* latin-ext */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/source-sans-3-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/source-sans-3-normal-latin.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;
}
/* latin-ext */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/source-sans-3-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/source-sans-3-normal-latin.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;
}
/* latin-ext */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/source-sans-3-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/source-sans-3-normal-latin.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;
}

/* =========================================================
   Delsmer, site vitrine
   Structure et animations inspirées d'un site de cabinet de conseil,
   couleurs et contenu Delsmer. Tout est en CSS et JS natifs, sans dépendance.
   ========================================================= */
:root{
  --mint:#30D090;        /* couleur phare (fond d'accueil, bandes, titres) */
  --mint-dark:#1FA774;   /* hachures des grands chiffres, survols */
  --navy:#283848;        /* sous-titres, pied de page, boutons */
  --navy-deep:#1B2734;   /* texte courant foncé */
  --ink:#1B2632;
  --muted:#5B6873;
  --paper:#fff;
  --grey:#F4F6F8;
  --line:rgba(40,56,72,.25);
  --display:"Outfit","Helvetica Neue",Arial,sans-serif;
  --body:"Source Sans 3","Source Sans Pro","Helvetica Neue",Arial,sans-serif;
  --gutter:38px;
}
*{box-sizing:border-box}
html{color-scheme:light;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/32px var(--body);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{max-width:100%}
a{color:inherit}
h1,h2,h3,h4,p{margin:0}
.container{width:100%;max-width:1320px;margin:0 auto;padding:0 12px}
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px}
.sec{position:relative}
.sec .wp{margin:60px auto 80px}
.skip{position:absolute;left:-999px;top:0;background:#fff;padding:8px 12px;z-index:100}
.skip:focus{left:12px}

/* ---------- typographie ---------- */
.t-big{font-family:var(--display);font-weight:900;font-size:95px;line-height:1;text-transform:uppercase;letter-spacing:-.005em;color:var(--navy)}
.t-big .l{display:block;overflow:hidden;padding-bottom:.06em;margin-bottom:-.06em}
.t-big .l>span{display:inline-block;transform:translateY(112%);transition:transform .8s cubic-bezier(.2,.75,.2,1)}
.t-big.in .l>span,.no-js .t-big .l>span{transform:none}
.t-big .l:nth-child(2)>span{transition-delay:.08s}.t-big .l:nth-child(3)>span{transition-delay:.16s}.t-big .l:nth-child(4)>span{transition-delay:.24s}
.t-big.small{font-size:40px;line-height:1.1}
.t-big.mid{font-size:64px}
.c-mint{color:var(--mint)} .c-white{color:#fff} .c-navy{color:var(--navy)}
.t-sub{font-family:var(--display);font-weight:900;font-size:40px;line-height:1.1;color:var(--navy)}
.t-page{font-family:var(--display);font-weight:900;font-size:56px;line-height:1.05;color:var(--mint);letter-spacing:-.01em;text-wrap:balance}
.t-sec{font-family:var(--display);font-weight:900;font-size:36px;line-height:1.1;color:var(--mint);margin-bottom:20px;text-wrap:balance}
.t-h4{font-family:var(--body);font-weight:700;font-size:22px;line-height:1.3;color:var(--navy);margin-bottom:10px}
.txt{font-size:16px;line-height:32px}
.txt p+p{margin-top:16px}
.txt.large{font-size:28px;line-height:46px}
.txt.medium{font-size:24px;line-height:40px}
.txt.small{font-size:14px;line-height:25px}
.txt ul{padding:0;margin:0 0 20px;list-style:none}
.txt ul li{position:relative;padding-left:20px;margin-bottom:6px}
.txt ul li::before{content:"";position:absolute;left:0;top:14px;width:5px;height:5px;border-radius:50%;background:var(--mint)}
.txt strong{font-weight:700}
.lbl{font-weight:700;font-size:14px;line-height:22px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);display:block;margin-bottom:14px}
.crumb{font-size:14px;color:var(--muted);margin-bottom:24px;display:flex;gap:8px}
.crumb a{text-decoration:none}
.crumb a:hover{text-decoration:underline}

/* apparition au défilement */
[data-reveal]{opacity:0;transition:opacity .5s ease}
[data-reveal].in,.no-js [data-reveal]{opacity:1}

/* ---------- boutons ---------- */
.btn{display:inline-flex;align-items:center;gap:20px;padding:9px 22px;border:2px solid var(--navy);border-radius:50px;background:transparent;color:var(--navy);font:600 16px/24px var(--body);text-decoration:none;position:relative;overflow:hidden;z-index:0;transition:color .3s cubic-bezier(.75,0,.125,1);cursor:pointer}
.btn::before,.btn::after{content:"";position:absolute;height:150%;width:150%;bottom:120%;left:-15%;z-index:-1;border-radius:50px;pointer-events:none;transition:transform .3s cubic-bezier(.75,0,.125,1)}
.btn::before{background:var(--mint)}
.btn::after{background:var(--navy)}
.btn:hover{color:#fff}
.btn:hover::before,.btn:hover::after{transform:translate3d(0,96%,0)}
.btn:hover::after{transition-delay:.175s}
.btn svg{display:block;flex:none}
.btn svg path{fill:var(--navy);transition:fill .25s}
.btn:hover svg path{fill:#fff}
.btn:focus-visible{outline:2px solid var(--mint);outline-offset:3px}
.btn.video{text-align:left;padding-right:10px;gap:12px;max-width:520px}
.btn.video svg{width:35px;height:35px}
.btn.white{border-color:#fff;color:#fff}
.btn.white svg path{fill:#fff}
.btn.white::before{background:#dbe6e0}.btn.white::after{background:#fff}
.btn.white:hover{color:var(--navy)}.btn.white:hover svg path{fill:var(--navy)}

/* ---------- en-tête ---------- */
.hd{position:fixed;top:0;left:0;right:0;z-index:60;padding:36px var(--gutter);transition:padding .2s ease-in-out}
.hd.sticky{padding:20px var(--gutter)}
.hd .bg{position:absolute;inset:0;background:#fff;box-shadow:0 2px 2px rgba(0,0,0,.05);opacity:0;z-index:-1}
.hd.page .bg,.hd.page .logo{opacity:1}
.hd .in{display:flex;align-items:center;justify-content:space-between;gap:24px}
.hd .logo{display:block;width:150px;opacity:0;text-decoration:none}
.hd .logo img{display:block;width:150px;height:auto}
.nav{display:flex;align-items:center;gap:22px;list-style:none;margin:0;padding:0}
.nav a,.nav button{font:600 14px/20px var(--body);color:var(--navy-deep);text-decoration:none;background:none;border:0;padding:0;cursor:pointer;white-space:nowrap}
.nav a:hover,.nav button:hover,.nav a[aria-current]{color:var(--mint-dark)}
.nav .ico{display:flex;align-items:center}
.burger{display:none;width:34px;height:26px;position:relative;background:none;border:0;padding:0;cursor:pointer}
.burger span{position:absolute;left:4px;right:4px;height:2px;background:var(--navy);transition:.25s}
.burger span:nth-child(1){top:5px}.burger span:nth-child(2){top:12px}.burger span:nth-child(3){top:19px}
.burger.open span:nth-child(1){top:12px;transform:rotate(-135deg)}
.burger.open span:nth-child(2){opacity:0;transform:translateX(120%)}
.burger.open span:nth-child(3){top:12px;transform:rotate(135deg)}

/* méga-menus */
.mega{position:fixed;left:0;right:0;top:0;z-index:55;padding:150px var(--gutter) 70px;color:var(--navy);transform:translateY(-110%);transition:transform .45s cubic-bezier(.75,0,.125,1);box-shadow:0 20px 40px rgba(0,0,0,.08)}
.mega.open{transform:none}
.mega.mint{background:var(--mint)} .mega.navy{background:var(--navy);color:#fff} .mega.grey{background:var(--grey)}
.mega .close{position:absolute;right:var(--gutter);top:120px;width:40px;height:40px;background:none;border:0;cursor:pointer;display:grid;place-items:center}
.mega.navy .close path{stroke:#fff}
.mega .tt{font-family:var(--display);font-weight:900;font-size:56px;line-height:1;text-transform:uppercase;margin-bottom:40px}
.mega .links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 40px;max-width:1000px;margin-left:auto;margin-right:8%}
.mega .links a{font:700 22px/1.3 var(--body);text-decoration:none;display:inline-block;padding-bottom:4px;border-bottom:3px solid transparent;transition:border-color .2s}
.mega .links a:hover{border-color:currentColor}
.mega .links small{display:block;font:400 14px/1.4 var(--body);opacity:.8}
.mega .deco{position:absolute;inset:0;opacity:.05;background-image:repeating-linear-gradient(45deg,#000 0 6px,transparent 6px 26px);mask-image:linear-gradient(to left,#000,transparent 55%);-webkit-mask-image:linear-gradient(to left,#000,transparent 55%);pointer-events:none}

/* ---------- accueil : bandes et calques fixes ---------- */
.banner-wrap{position:relative;overflow:hidden}
/* hauteur fixe (100lvh) et non inset:0 : sur iPhone, la barre de Safari qui se replie changeait la hauteur
   et faisait sauter tout ce qui est calé en bas (photo, grand logo, bandes) pendant le défilement */
.fx{position:fixed;top:0;left:0;right:0;height:100vh;height:100lvh;z-index:0;pointer-events:none;background:#fff}
.banner-wrap.sticked .fx{position:absolute;top:auto;bottom:0;left:0;right:0;height:100vh}
.banner-wrap.sticked .bands,.banner-wrap.sticked .clip{opacity:0}
.bands,.clip{transition:opacity .3s}
.fx-photo{position:absolute;right:-20px;bottom:0;width:min(1000px,66vw);aspect-ratio:3/2;z-index:1}
.fx-photo::after{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(to right,#fff 0,rgba(255,255,255,0) 14%),linear-gradient(to bottom,#fff 0,rgba(255,255,255,0) 14%)}
.bw{filter:grayscale(1) contrast(1.04)}
.photo{position:relative;display:block;background:linear-gradient(135deg,#dfe5ea,#f3f5f7 45%,#c9d2d9 70%,#e6ebef);overflow:hidden}
.photo::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(-45deg,rgba(40,56,72,.08) 0 3px,transparent 3px 9px)}
.photo::after{content:attr(data-label);position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font:600 13px/1.4 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--navy);text-align:center;white-space:pre-line;padding:8px 14px;border:1px solid rgba(40,56,72,.35);background:rgba(255,255,255,.6)}
.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;z-index:1}
.photo.has-img::before,.photo.has-img::after{display:none}
.fx-photo .photo{width:100%;height:100%}
.bands{position:absolute;display:flex;flex-direction:row;width:4000px;height:max(794px,100vh);left:-600px;bottom:-400px;pointer-events:none}
.bands span{display:block;width:5%;height:120%;transform:rotate(45deg);transform-origin:left top;position:relative;flex:none}
.bands span i{display:block;width:100%;height:400vh;top:-200vh;position:relative;background:var(--mint)}
.bands1{z-index:2}
.clip{position:absolute;inset:0;z-index:3;background:#fff;-webkit-mask-image:url(../img/delsmer-logo.png);mask-image:url(../img/delsmer-logo.png);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:135vw auto;mask-size:135vw auto;-webkit-mask-position:-12vw calc(100% + 9vw);mask-position:-12vw calc(100% + 9vw)}
.clip .fx-photo{z-index:1}
.clip .bands{z-index:2}
.hero{position:relative;z-index:2;min-height:100vh;padding:150px 0 60px;display:flex;align-items:flex-start}
.hero .wp{margin:0;width:100%}
.tt-logo{display:block;width:340px;max-width:60vw;aspect-ratio:4000/984;margin-bottom:12px;background:repeating-linear-gradient(45deg,#fff 0 5px,transparent 5px 10px);-webkit-mask:url(../img/delsmer-white.png) no-repeat left center / contain;mask:url(../img/delsmer-white.png) no-repeat left center / contain}
.title-banner{font-family:var(--display);font-weight:900;font-size:110px;line-height:.95;text-transform:uppercase;color:#fff;letter-spacing:-.005em}
.title-banner .sub{display:block;font-size:64px;line-height:1;margin-top:8px;color:var(--navy)}
.top-news{position:relative;padding-top:20px;width:342px;max-width:100%;color:var(--navy)}
.top-news .lbl{display:block;position:relative;font-weight:700;font-size:16px;line-height:22px;text-transform:uppercase;letter-spacing:0;padding-bottom:5px;margin-bottom:26px;color:var(--navy)}
.top-news .lbl::after{content:"";position:absolute;left:0;bottom:0;width:100vw;height:1px;background:var(--navy)}
.top-news a{display:block;text-decoration:none;color:var(--navy)}
.top-news .date{font-family:var(--display);font-weight:700;font-size:22px;line-height:1.3;margin-bottom:10px;letter-spacing:-.01em}
.top-news .exc{max-width:222px;font-size:16px;line-height:26px;margin-bottom:16px}
.top-news .arr{display:block;transition:transform .2s ease-in-out}
.top-news a:hover .arr{transform:translateX(10px)}
.intro{position:relative;z-index:2;padding:60px 0 100px;min-height:78vh}
.intro .wp{margin:0 auto}
.intro .title-home{font-family:var(--body);font-weight:500;font-size:28px;line-height:46px;margin-bottom:36px;color:var(--navy-deep)}
.intro .txt{margin-bottom:40px}
.note-video{display:block;font-size:14px;line-height:22px;color:var(--muted);margin-top:10px}
.mob-photo{display:none;margin-top:40px;aspect-ratio:3/2}
.mob-photo .photo{width:100%;height:100%}

/* ---------- piliers 01 à 05 ---------- */
.slider{padding:20px 0 0}
.nav-num{display:flex;gap:20px;margin-bottom:40px}
.nav-num button{background:none;border:0;padding:0 0 3px;font:600 18px/22px var(--body);color:var(--navy);opacity:.25;cursor:pointer;position:relative;transition:opacity .2s}
.nav-num button::before{content:"";position:absolute;left:0;bottom:-3px;height:3px;width:100%;background:var(--mint-dark);transform:scale3d(0,1,1);transform-origin:100% 50%;transition:transform .3s ease}
.nav-num button.active,.nav-num button:hover{opacity:1}
.nav-num button.active::before{transform:scale3d(1,1,1);transform-origin:0 50%}
.count{position:relative;height:260px}
.count svg{position:absolute;left:0;top:0;height:260px;width:auto;opacity:0;transition:opacity .5s}
.count svg.active{opacity:1}
.slides{position:relative;min-height:340px}
.slide{position:absolute;inset:0;opacity:0;transform:translateY(16px);transition:opacity .5s,transform .5s;pointer-events:none}
.slide.active{opacity:1;transform:none;pointer-events:auto;position:relative}
.slide h3{margin-bottom:24px;color:var(--mint)}
.slide .txt{margin-bottom:40px;max-width:520px}

/* ---------- société mise en avant ---------- */
.label .wp{margin:40px auto 80px}
.label .badge{display:grid;place-items:center;width:250px;height:250px;border-radius:40px;background:#fff;box-shadow:0 20px 50px rgba(40,56,72,.12);margin:0 auto}
.label .badge img{width:160px;height:auto}
.shot-wrap{position:relative;padding:28px 0 0 28px}
.badge-float{position:absolute;left:0;top:0;width:124px;height:124px;border-radius:30px;background:#fff;box-shadow:0 14px 34px rgba(40,56,72,.2);display:grid;place-items:center;z-index:2}
.badge-float img{width:76px;height:auto;display:block}
.label .grid{align-items:center}
.label .txt{margin:30px 0 40px}

/* ---------- actualités (accueil) ---------- */
.articles{background:var(--mint)}
.articles .wp{margin:0 auto;padding:110px 0 140px}
.articles .t-big{margin-bottom:106px}
.feature{margin-bottom:80px}
.img-feature{display:block;aspect-ratio:754/314;background:linear-gradient(135deg,#283848,#5b6873 50%,#c9d2d9);position:relative;overflow:hidden}
.img-feature img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;z-index:1}
.shot-wrap2{position:relative}
.sticker{position:absolute;right:-22px;top:26px;transform:rotate(6deg);background:#fff;border-radius:999px;padding:10px 14px 10px 14px;display:flex;align-items:center;gap:10px;box-shadow:0 16px 36px rgba(40,56,72,.24),0 0 0 1px rgba(40,56,72,.06);font:600 14px/1.1 var(--body);color:var(--navy);z-index:3;white-space:nowrap}
.sticker img{height:22px;width:auto;display:block}
.sticker b{font-weight:700;font-size:15px}
.sticker .sep{width:1px;height:20px;background:var(--line)}
.sticker .check{width:20px;height:20px;border-radius:50%;background:#0081FB;display:grid;place-items:center;flex:none}
.sticker .check svg{width:12px;height:12px;display:block}
/* organigramme et frise (page Le groupe) */
.org{background:var(--grey);border-radius:24px;padding:36px 28px;display:grid;gap:22px;justify-items:center}
.org-top{background:#fff;border-radius:16px;padding:18px 28px;box-shadow:0 12px 30px rgba(40,56,72,.10)}
.org-top img{width:150px;height:auto;display:block}
.org-lines{width:66%;height:34px;border:2px solid var(--line);border-bottom:0;border-radius:14px 14px 0 0;position:relative}
.org-lines::before{content:"";position:absolute;left:50%;top:-24px;width:2px;height:24px;background:var(--line)}
.org-kids{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;width:100%}
.org-card .q.sci{font-size:13px;letter-spacing:.04em}
/* illustration Medu-IA (accueil) */
.medu-illu{position:relative;height:360px;max-width:460px;margin:0 auto}
.mi-card{position:absolute;background:#fff;border-radius:18px;box-shadow:0 24px 60px rgba(40,56,72,.16),0 0 0 1px rgba(40,56,72,.06);padding:18px 20px;font-family:var(--body)}
.mi-tag{display:inline-block;font:700 11px/1 var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--mint-dark);background:rgba(48,208,144,.14);border-radius:999px;padding:6px 10px;margin-bottom:14px}
.mi-fiche{left:0;top:20px;width:250px;transform:rotate(-5deg)}
.mi-fiche i{display:block;height:9px;border-radius:5px;background:#E4EAEE;margin-bottom:9px;width:100%}
.mi-fiche i.s{width:78%}.mi-fiche i.xs{width:52%;margin-bottom:0}
.mi-qcm{right:0;top:0;width:230px;transform:rotate(4deg)}
.mi-qcm b{display:flex;align-items:center;gap:10px;font-weight:600;font-size:14px;color:var(--navy);padding:8px 10px;border-radius:10px;margin-bottom:6px;background:var(--grey)}
.mi-qcm b em{width:16px;height:16px;border-radius:50%;border:2px solid #C8D1D8;display:block;flex:none}
.mi-qcm b.ok{background:rgba(48,208,144,.14);color:var(--mint-dark)}
.mi-qcm b.ok em{border-color:var(--mint);background:var(--mint)}
.mi-flash{left:110px;bottom:0;width:250px;background:var(--navy);color:#fff;transform:rotate(-2deg)}
.mi-flash .mi-tag{color:#fff;background:rgba(255,255,255,.14)}
.mi-flash strong{display:block;font-family:var(--display);font-weight:700;font-size:20px;line-height:1.15}
.mi-flash small{display:block;font-size:13px;opacity:.75;margin-top:6px}
.mi-logo{position:absolute;left:-10px;bottom:56px;width:92px;height:92px;border-radius:26px;background:#fff;box-shadow:0 14px 34px rgba(40,56,72,.18);display:grid;place-items:center;z-index:2}
.mi-logo img{width:58px;height:58px}
/* tableau candidature spontanée (accueil) */
.jobs{background:var(--navy);color:#fff;border-radius:22px;padding:28px;display:grid;gap:12px;box-shadow:0 30px 70px rgba(40,56,72,.25);aspect-ratio:auto;pointer-events:auto}
.jobs-head{margin-bottom:8px}
.jobs-head .lbl{color:var(--mint);margin-bottom:6px}
.jobs-head b{font-family:var(--display);font-weight:700;font-size:24px;line-height:1.15;display:block}
.job{display:grid;grid-template-columns:52px minmax(0,1fr) 39px;align-items:center;gap:16px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:14px 16px;text-decoration:none;color:#fff;transition:background .2s,transform .2s}
.job:hover{background:rgba(255,255,255,.12);transform:translateX(4px)}
.job-logo{width:52px;height:52px;border-radius:14px;background:#fff;display:grid;place-items:center}
.job-logo img{width:34px;height:34px;display:block}
.job-logo.d{background:transparent}
.job-logo.d img{width:52px;height:52px;border-radius:14px}
.job-txt b{display:block;font-family:var(--display);font-weight:700;font-size:18px;line-height:1.1}
.job-txt small{display:block;font-size:13px;opacity:.75;margin-top:3px}
.job svg path{fill:var(--mint)}
/* arbre du groupe (page Le groupe) */
.block-ti .txt-col.wide{grid-column:2 / span 9}
.tree-sec{background:var(--grey);padding:10px 0 40px}
.tree{display:grid;justify-items:center;padding-top:10px}
.node{background:#fff;border-radius:16px;padding:16px 18px;box-shadow:0 14px 34px rgba(40,56,72,.10);text-align:center;display:grid;justify-items:center;gap:6px;position:relative}
.node small{font-size:12px;line-height:1.35;color:var(--muted)}
.node b{font-family:var(--display);font-weight:700;font-size:16px;line-height:1.15;color:var(--navy)}
.node.root{padding:22px 34px;border-radius:20px}
.node.root img{width:170px;height:auto;display:block;margin-bottom:4px}
.node.root::after{content:"";position:absolute;left:50%;bottom:-44px;width:2px;height:44px;background:var(--line)}
.node.mid{background:var(--navy);color:#fff;padding:14px 22px;width:min(100%,320px)}
.node.mid b{color:#fff}.node.mid small{color:rgba(255,255,255,.75)}
.node.leaf{padding:16px 12px;min-width:0}
.node.leaf img{width:40px;height:40px;display:block}
.node.leaf.soon{background:transparent;box-shadow:none;border:1.5px dashed var(--line)}
.node .q{width:40px;height:40px;border-radius:50%;border:2px solid var(--mint);color:var(--mint-dark);font:700 20px/1 var(--display);display:grid;place-items:center}
.node .q.sci{font-size:13px;letter-spacing:.04em}
.branches{position:relative;display:grid;grid-template-columns:3fr 2fr;gap:36px;width:100%;padding-top:44px;margin-top:44px}
.branches::before{content:"";position:absolute;top:0;left:calc(30% - 18px);right:calc(20% - 18px);height:2px;background:var(--line)}
.branch{position:relative;display:grid;justify-items:center}
.branch::before{content:"";position:absolute;top:-44px;left:50%;width:2px;height:44px;background:var(--line)}
.leaves{position:relative;display:grid;gap:14px;width:100%;padding-top:44px;margin-top:8px}
.leaves.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.leaves.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.leaves::before{content:"";position:absolute;top:-8px;left:50%;width:2px;height:30px;background:var(--line)}
.leaves::after{content:"";position:absolute;top:22px;height:2px;background:var(--line)}
.leaves.three::after{left:calc(100% / 6);right:calc(100% / 6)}
.leaves.two::after{left:25%;right:25%}
.leaves .node::before{content:"";position:absolute;top:-22px;left:50%;width:2px;height:22px;background:var(--line)}
section[id],div[id^="mega-"]{scroll-margin-top:100px}
#contactForm{scroll-margin-top:130px}
.org-card{background:#fff;border-radius:16px;padding:18px 12px;text-align:center;display:grid;gap:6px;justify-items:center;box-shadow:0 12px 30px rgba(40,56,72,.08)}
.org-card img{width:42px;height:42px;display:block}
.org-card b{font-family:var(--display);font-weight:700;font-size:16px;color:var(--navy);line-height:1.1}
.org-card small{font-size:12px;line-height:1.3;color:var(--muted)}
.org-card.soon{background:transparent;box-shadow:none;border:1.5px dashed var(--line)}
.org-card .q{width:42px;height:42px;border-radius:50%;border:2px solid var(--mint);color:var(--mint-dark);font:700 20px/1 var(--display);display:grid;place-items:center}
.tl{list-style:none;margin:0;padding:6px 0 6px 30px;border-left:2px solid var(--mint);display:grid;gap:26px}
.tl li{position:relative}
.tl li::before{content:"";position:absolute;left:-39px;top:6px;width:14px;height:14px;border-radius:50%;background:var(--mint);box-shadow:0 0 0 4px #fff}
.tl li.soon::before{background:#fff;border:2px solid var(--mint);width:10px;height:10px;left:-37px}
.tl .y{display:block;font:700 12px/1 var(--body);letter-spacing:.1em;text-transform:uppercase;color:var(--mint-dark)}
.tl b{display:block;font-family:var(--display);font-weight:700;font-size:20px;line-height:1.2;color:var(--navy);margin:6px 0 2px}
.tl small{display:block;font-size:14px;line-height:1.4;color:var(--muted)}
.avatar.photo-av{background:var(--mint);border-radius:50%;overflow:hidden}
.avatar.photo-av img{width:100%;height:100%;object-fit:cover;object-position:50% 0;display:block;filter:grayscale(1) contrast(1.05)}
.art{display:flex;flex-direction:column;justify-content:space-between;height:100%;gap:24px}
.art .tt{font-family:var(--display);font-weight:700;font-size:26px;line-height:1.15;text-decoration:none;color:var(--navy);letter-spacing:-.01em}
.art .tt.small{font-size:22px}
.art .tt:hover{text-decoration:underline}
.art .date{font-size:12px;line-height:20px;margin-top:14px;display:flex;gap:10px;align-items:center;color:var(--navy)}
.art .date b{font-weight:700}
.art .date i{width:6px;height:1px;background:var(--navy);display:inline-block}
.tips{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--navy);font-size:14px;line-height:18px}
.tips .ico{width:32px;height:32px;border:2px solid var(--navy);border-radius:6px;display:grid;place-items:center;flex:none}
.tips b{display:block;font-weight:700}
.line-sep{height:1px;background:rgba(40,56,72,.35);margin:0 0 64px}
.small-list{padding-right:28px;border-right:1px solid rgba(40,56,72,.25)}
.small-list:last-child{border-right:0}
.articles .center{text-align:center;margin-top:110px}

/* ---------- équipe (accueil) ---------- */
.team{padding-top:109px;overflow:visible;position:relative;z-index:3}
.team .wp{margin:0}
.team .intro-team{position:relative;padding:40px 0 20px;min-height:600px}
.team .t-big{margin-bottom:50px}
.team .txt{max-width:560px;margin-bottom:40px}
.par{position:absolute;pointer-events:none}
.par .photo{box-shadow:0 12px 30px rgba(40,56,72,.14)}
.par-1{left:-26%;top:-40px;width:150px;height:220px}
.par-2{left:-28%;top:360px;width:120px;height:180px}
.par-3{left:104%;top:-60px;width:200px;height:290px}
.par-4{position:relative;margin:40px 6% -150px auto;width:min(760px,70%);aspect-ratio:3/2;pointer-events:none;z-index:3}
.par .photo,.par-4 .photo{width:100%;height:100%}
.shot{display:block;aspect-ratio:3/2;border-radius:18px;overflow:hidden;box-shadow:0 24px 60px rgba(40,56,72,.18)}
.avatar{display:block;width:120px;height:120px;margin-bottom:6px}
.avatar svg{display:block;width:100%;height:100%}

/* ---------- contact (bandeau) ---------- */
.contact{background:var(--mint);position:relative;overflow:hidden}
.contact::after{content:"";position:absolute;left:0;right:0;bottom:-40%;height:80%;background:repeating-linear-gradient(-45deg,rgba(255,255,255,.35) 0 26px,transparent 26px 92px);opacity:.1;pointer-events:none}
.contact .wp{margin:0;padding:220px 0 100px;position:relative;z-index:1}
.contact .t-big{margin-bottom:30px}
.contact .grid{align-items:center}
.t-contact{font-size:86px}
.t-join{font-size:82px}
.contact .txt{color:var(--navy)}

/* ---------- pied de page ---------- */
.ft{background:var(--navy);color:#fff;padding:64px 0 40px}
.ft .logo img{display:block;width:130px;height:auto;margin-bottom:22px}
.ft p{font-size:17px;line-height:22px;margin-bottom:13px}
.ft .cities{font-weight:700}
.ft .menu a{display:block;font:700 20px/32px var(--body);color:#fff;text-decoration:none;margin-bottom:12px}
.ft .menu a:hover{text-decoration:underline}
.ft .bottom{text-align:center;font-size:12px;margin-top:70px}
.ft .bottom a{color:#fff;text-decoration:none;margin:0 10px}

/* =========================================================
   Gabarits des pages intérieures (Le groupe, Nos sociétés, Actualités, Contact)
   ========================================================= */
.page-top{padding:180px 0 40px;position:relative}
.page-top .bar{display:block;width:8px;height:110px;background:var(--mint);border-radius:4px;margin-bottom:28px}
.page-top .sub-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;margin-top:40px}
.page-top .sub-grid .lead{grid-column:1 / span 5;font-weight:700;font-size:20px;line-height:32px;color:var(--navy)}
.page-top .sub-grid .aside{grid-column:7 / span 5;font-size:16px;line-height:30px}
.block-ti{padding:40px 0}
.block-ti .grid{align-items:center}
.block-ti .txt-col{grid-column:2 / span 5}
.block-ti .img-col{grid-column:8 / span 5}
.block-ti .img-col .photo{aspect-ratio:4/3;width:100%;display:block}
.block-ti.rev .txt-col{grid-column:8 / span 5;order:2}
.block-ti.rev .img-col{grid-column:2 / span 5;order:1}
.numbers{background:var(--grey);padding:80px 0}
.numbers .grid{align-items:center}
.numbers .lead{grid-column:2 / span 4}
.numbers .list{grid-column:7 / span 5;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 24px}
.numbers .num{font-family:var(--display);font-weight:900;font-size:64px;line-height:1;color:var(--mint);letter-spacing:-.02em}
.numbers .num small{display:block;font:700 16px/1.4 var(--body);color:var(--navy);margin-top:8px;text-transform:none;letter-spacing:0}
.quote-band{background:var(--navy);color:#fff;padding:100px 0;text-align:center;position:relative;overflow:hidden}
.quote-band::before{display:none}
.quote-band .qin{position:relative;max-width:820px;margin:0 auto}
.quote-band blockquote{margin:0 0 30px;font-family:var(--display);font-weight:700;font-size:40px;line-height:1.2;text-wrap:balance}
.quote-band cite{display:block;font-style:normal;font-size:16px;margin-bottom:40px;opacity:.85}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.cards.two{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:40px}
.card .logo-box{gap:14px}
.card .logo-box strong{font-family:var(--display);font-weight:700;font-size:20px;color:var(--navy)}
.card{border:1px solid var(--line);border-radius:16px;padding:28px;background:#fff;display:flex;flex-direction:column;gap:14px;transition:transform .25s,box-shadow .25s}
.card:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(40,56,72,.12)}
.card .logo-box{height:64px;display:flex;align-items:center}
.card .logo-box img{max-height:56px;width:auto}
.card h3{font-family:var(--display);font-weight:700;font-size:24px;color:var(--navy);line-height:1.15}
.card p{font-size:15px;line-height:26px}
.card .btn{margin-top:auto;align-self:flex-start}
.card.soon{border-style:dashed;color:var(--muted)}
.list-news{display:grid;gap:0}
.list-news .row{display:grid;grid-template-columns:140px minmax(0,1fr) auto;gap:24px;align-items:center;padding:28px 0;border-bottom:1px solid var(--line)}
.list-news .row:first-child{border-top:1px solid var(--line)}
.list-news .when{font-size:14px;color:var(--muted)}
.list-news h3{font-family:var(--display);font-weight:700;font-size:24px;line-height:1.2;color:var(--navy)}
.list-news p{font-size:15px;line-height:26px;margin-top:6px}
.list-news .tag{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--mint-dark);white-space:nowrap}
.form{display:grid;gap:18px;max-width:640px}
.form label{display:block;font-weight:700;font-size:14px;color:var(--navy);margin-bottom:6px}
.form input,.form textarea{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:10px;font:400 16px/24px var(--body);color:var(--ink);background:#fff}
.form input:focus,.form textarea:focus{outline:2px solid var(--mint);border-color:var(--mint)}
.form textarea{min-height:160px;resize:vertical}
.form .row2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form .note{font-size:13px;line-height:20px;color:var(--muted)}
.info-list{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.info-list li{display:grid;grid-template-columns:28px minmax(0,1fr);gap:12px;align-items:start;font-size:16px;line-height:26px}
.info-list svg{margin-top:4px}
.legal h2{font-family:var(--display);font-weight:700;font-size:24px;color:var(--navy);margin:40px 0 12px}
.legal p,.legal li{font-size:16px;line-height:30px}

/* ---------- responsive ---------- */
@media (max-width:1199px){
  .t-big{font-size:72px}
  .title-banner{font-size:84px}.title-banner .sub{font-size:48px}
  .t-page{font-size:44px}
}
@media (max-width:991px){
  :root{--gutter:20px}
  .hd{padding:24px var(--gutter)}
  .nav{display:none}
  .burger{display:block}
  .nav.open{display:flex;flex-direction:column;align-items:flex-start;gap:14px;position:absolute;left:0;right:0;top:100%;background:#fff;padding:20px var(--gutter) 30px;box-shadow:0 10px 30px rgba(0,0,0,.08)}
  .nav.open a,.nav.open button{font-size:18px}
  .mega{padding:120px var(--gutter) 50px}
  .mega .tt{font-size:36px}
  .mega .links{grid-template-columns:1fr;margin:0}
  .grid{column-gap:16px}
  .grid>[style*="grid-column"]{grid-column:1 / -1 !important}
  .title-banner{font-size:56px}.title-banner .sub{font-size:34px}
  .hero{padding-top:110px;min-height:0;padding-bottom:120px}
  .top-news{margin-top:40px}
  .fx-photo{display:none}
  .mob-photo{display:block}
  .t-big{font-size:44px}.t-big.small{font-size:30px}.t-big.mid{font-size:40px}
  .t-sub{font-size:30px}
  .t-contact{font-size:38px}
  .t-join{font-size:36px}
  .count{height:160px}.count svg{height:160px}
  .slides{min-height:0}
  .label .badge{width:160px;height:160px;margin-bottom:20px}
  .articles .t-big{margin-bottom:50px}
  .small-list{border-right:0;padding:0;margin-bottom:36px}
  .team .intro-team{min-height:0}
  .par-1,.par-2,.par-3{display:none}
  .par-4{width:100%;margin:20px 0 -80px}
  .medu-illu{height:320px;max-width:340px}
  .mi-fiche{width:200px}.mi-qcm{width:190px}.mi-flash{width:210px;left:70px}
  .job{grid-template-columns:44px minmax(0,1fr) 30px;gap:12px}
  .block-ti .txt-col.wide{grid-column:1 / -1}
  .branches{grid-template-columns:1fr;gap:28px;padding-top:0;margin-top:28px}
  .branches::before,.branch::before,.node.root::after,.leaves::before,.leaves::after,.leaves .node::before{display:none}
  .leaves.three,.leaves.two{grid-template-columns:1fr;padding-top:14px}
  .contact .txt.medium{font-size:20px;line-height:32px;margin-bottom:24px}
  .ft .menu{margin-top:30px}
  .page-top{padding:130px 0 30px}
  .page-top .sub-grid .lead,.page-top .sub-grid .aside{grid-column:1 / -1}
  .block-ti .txt-col,.block-ti .img-col,.block-ti.rev .txt-col,.block-ti.rev .img-col{grid-column:1 / -1;order:0}
  .block-ti .img-col{margin-bottom:24px}
  .numbers .lead,.numbers .list{grid-column:1 / -1}
  .numbers .list{margin-top:30px}
  .quote-band blockquote{font-size:28px}
  .cards{grid-template-columns:1fr}
  .list-news .row{grid-template-columns:1fr;gap:6px}
  .form .row2{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  .t-big .l>span,[data-reveal],.slide,.btn::before,.btn::after,.card{transition:none}
  [data-reveal]{opacity:1}
  .t-big .l>span{transform:none}
}

/* état "page en cours" sur le bouton Nos sociétés (méga-menu), comme sur les liens */
.nav button[aria-current]{color:var(--mint-dark)}

/* =========================================================
   V2 pages intérieures : logo animé, chiffres hachurés, principes qui défilent
   ========================================================= */
.page-top{overflow:hidden}
.page-top .container{position:relative;z-index:2}
.page-mark{position:absolute;right:-8vw;top:60px;width:min(980px,68vw);aspect-ratio:4000/984;z-index:1;pointer-events:none;-webkit-mask:url(../img/delsmer-logo.png) no-repeat center/contain;mask:url(../img/delsmer-logo.png) no-repeat center/contain;background:repeating-linear-gradient(45deg,var(--mint) 0 9px,transparent 9px 20px);background-size:200% 200%;animation:markDrift 14s linear infinite;opacity:.9;will-change:transform,opacity}
.page-mark::after{content:"";position:absolute;inset:0;background:linear-gradient(to right,#fff 0,rgba(255,255,255,0) 55%)}
@keyframes markDrift{from{background-position:0 0}to{background-position:57px 0}}
.num-hatch{font-family:var(--display);font-weight:900;font-size:96px;line-height:1;letter-spacing:-.02em;background:repeating-linear-gradient(45deg,var(--mint) 0 6px,rgba(48,208,144,.12) 6px 12px);-webkit-background-clip:text;background-clip:text;color:transparent;display:inline-block}
.numbers .num.hatch{font-size:0}
.numbers .num.hatch .num-hatch{font-size:88px}
.numbers .num.hatch small{font-size:16px;margin-top:10px}
/* principes qui défilent (numéro collant) */
.pillars .pil-left{grid-column:2 / span 3}
.pillars .pil-items{grid-column:6 / span 6}
.pil-sticky{position:sticky;top:150px;display:grid;gap:26px;justify-items:start}
.pil-count{font-size:200px;line-height:.9}
.pil-dots{display:flex;gap:10px}
.pil-dots span{width:10px;height:10px;border-radius:50%;background:var(--line);transition:background .3s,transform .3s}
.pil-dots span.on{background:var(--mint);transform:scale(1.3)}
.pil-item{min-height:58vh;display:flex;flex-direction:column;justify-content:center;padding:48px 0;border-top:1px solid var(--line);opacity:.35;transition:opacity .4s}
.pil-item:first-child{border-top:0}
.pil-item.on{opacity:1}
.pil-item .t-sub{margin-bottom:18px}
.pil-item .txt{max-width:520px}
.pil-item .btn{margin-top:26px;align-self:flex-start}
.pillars .pil-intro{grid-column:2 / span 8;margin-bottom:20px}
/* bandeau citation avec le logo hachuré */
.quote-band{overflow:hidden}
.qmark{position:absolute;right:-6vw;bottom:-4vw;width:min(900px,70vw);aspect-ratio:4000/984;-webkit-mask:url(../img/delsmer-white.png) no-repeat center/contain;mask:url(../img/delsmer-white.png) no-repeat center/contain;background:repeating-linear-gradient(45deg,rgba(255,255,255,.14) 0 8px,transparent 8px 18px);pointer-events:none}
/* fiche société */
.soc-hero{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;align-items:center;margin-top:36px}
.soc-hero .soc-logo{grid-column:1 / span 2;width:96px;height:96px;border-radius:26px;background:#fff;box-shadow:0 14px 34px rgba(40,56,72,.14);display:grid;place-items:center}
.soc-hero .soc-logo img{width:60px;height:60px;display:block}
.soc-hero .soc-lead{grid-column:3 / span 7;font-weight:700;font-size:20px;line-height:32px;color:var(--navy)}
.soc-hero .soc-cta{grid-column:10 / span 3;justify-self:end}
.feature-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.feature-list li{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px 22px;display:grid;gap:6px}
.feature-list b{font-family:var(--display);font-weight:700;font-size:18px;color:var(--navy);line-height:1.2}
.feature-list small{font-size:14px;line-height:1.5;color:var(--muted)}
.soc-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:center;padding:40px 0;border-top:1px solid var(--line)}
.soc-card:first-child{border-top:0}
.soc-card .shot{display:block}
@media (max-width:991px){
  .page-mark{width:120vw;right:-30vw;top:70px;opacity:.5}
  .pillars .pil-left,.pillars .pil-items,.pillars .pil-intro{grid-column:1 / -1}
  .pil-sticky{position:static;grid-auto-flow:column;align-items:center;gap:18px;margin-bottom:10px}
  .pil-count{font-size:96px}
  .pil-item{min-height:0;padding:28px 0}
  .numbers .num.hatch .num-hatch{font-size:64px}
  .soc-hero .soc-logo,.soc-hero .soc-lead,.soc-hero .soc-cta{grid-column:1 / -1;justify-self:start}
  .feature-list{grid-template-columns:1fr}
  .soc-card{grid-template-columns:1fr;gap:20px}
}
@media (prefers-reduced-motion:reduce){.page-mark{animation:none}}

/* ---------- fond discret : logo Delsmer rayé, très pâle, derrière le contenu ---------- */
.page-bg{position:fixed;left:50%;top:50%;width:min(1500px,120vw);aspect-ratio:4000/984;transform:translate(-50%,-50%);z-index:0;pointer-events:none;-webkit-mask:url(../img/delsmer-logo.png) no-repeat center/contain;mask:url(../img/delsmer-logo.png) no-repeat center/contain;background:repeating-linear-gradient(45deg,var(--navy) 0 3px,transparent 3px 11px);background-size:200% 200%;animation:markDrift 30s linear infinite;opacity:.06}
.page-bg ~ section,.page-bg ~ footer,.page-bg ~ main{position:relative;z-index:1}
.team-bg{position:absolute;left:50%;top:40px;width:min(1400px,110vw);aspect-ratio:4000/984;transform:translateX(-50%);z-index:0;pointer-events:none;-webkit-mask:url(../img/delsmer-logo.png) no-repeat center/contain;mask:url(../img/delsmer-logo.png) no-repeat center/contain;background:repeating-linear-gradient(45deg,var(--navy) 0 3px,transparent 3px 11px);opacity:.06}
.team .container{position:relative;z-index:1}
.brand-tile{display:grid;place-items:center;aspect-ratio:4/3;width:100%;border-radius:22px;background:var(--mint);position:relative;overflow:hidden}
.brand-tile::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(45deg,rgba(255,255,255,.10) 0 14px,transparent 14px 40px)}
.brand-tile span{position:relative;width:62%;aspect-ratio:4000/984;-webkit-mask:url(../img/delsmer-white.png) no-repeat center/contain;mask:url(../img/delsmer-white.png) no-repeat center/contain;background:repeating-linear-gradient(45deg,#fff 0 6px,transparent 6px 13px)}
@media (prefers-reduced-motion:reduce){.page-bg{animation:none}}

/* ---------- motif : vagues rayées (remplace les rayures droites) ---------- */
:root{
  --wave-white:url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 width=%27120%27 height=%2766%27 viewBox=%270 0 120 66%27><g fill=%27none%27 stroke=%27%23ffffff%27 stroke-width=%274.6%27 stroke-linecap=%27round%27><path d=%27M0 5 q30 -8 60 0 t60 0%27/><path d=%27M0 16 q30 -8 60 0 t60 0%27/><path d=%27M0 27 q30 -8 60 0 t60 0%27/><path d=%27M0 38 q30 -8 60 0 t60 0%27/><path d=%27M0 49 q30 -8 60 0 t60 0%27/><path d=%27M0 60 q30 -8 60 0 t60 0%27/></g></svg>");
  --wave-mint:url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 width=%27120%27 height=%2766%27 viewBox=%270 0 120 66%27><g fill=%27none%27 stroke=%27%2330D090%27 stroke-width=%274.6%27 stroke-linecap=%27round%27><path d=%27M0 5 q30 -8 60 0 t60 0%27/><path d=%27M0 16 q30 -8 60 0 t60 0%27/><path d=%27M0 27 q30 -8 60 0 t60 0%27/><path d=%27M0 38 q30 -8 60 0 t60 0%27/><path d=%27M0 49 q30 -8 60 0 t60 0%27/><path d=%27M0 60 q30 -8 60 0 t60 0%27/></g></svg>");
  --wave-mint-soft:url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 width=%27120%27 height=%2766%27 viewBox=%270 0 120 66%27><g fill=%27none%27 stroke=%27%2330D090%27 stroke-width=%273.2%27 stroke-linecap=%27round%27><path d=%27M0 5 q30 -8 60 0 t60 0%27/><path d=%27M0 16 q30 -8 60 0 t60 0%27/><path d=%27M0 27 q30 -8 60 0 t60 0%27/><path d=%27M0 38 q30 -8 60 0 t60 0%27/><path d=%27M0 49 q30 -8 60 0 t60 0%27/><path d=%27M0 60 q30 -8 60 0 t60 0%27/></g></svg>");
  --wave-navy:url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 width=%27120%27 height=%2766%27 viewBox=%270 0 120 66%27><g fill=%27none%27 stroke=%27%23283848%27 stroke-width=%273%27 stroke-linecap=%27round%27><path d=%27M0 5 q30 -8 60 0 t60 0%27/><path d=%27M0 16 q30 -8 60 0 t60 0%27/><path d=%27M0 27 q30 -8 60 0 t60 0%27/><path d=%27M0 38 q30 -8 60 0 t60 0%27/><path d=%27M0 49 q30 -8 60 0 t60 0%27/><path d=%27M0 60 q30 -8 60 0 t60 0%27/></g></svg>");
}
.tt-logo{background:var(--wave-white);background-size:120px 66px}
.page-mark{background:var(--wave-mint);background-size:120px 66px;animation:waveDrift 12s linear infinite}
.page-bg,.team-bg{background:var(--wave-navy);background-size:120px 66px;opacity:.07}
.page-bg{animation:waveDrift 40s linear infinite}
.num-hatch{background:var(--wave-mint);background-size:120px 66px;-webkit-background-clip:text;background-clip:text;color:transparent}
.brand-tile span{background:var(--wave-white);background-size:120px 66px}
.brand-tile::before{background:var(--wave-white);background-size:240px 132px;opacity:.12}
.contact::after{background:var(--wave-white);background-size:240px 132px;opacity:.12}
@keyframes waveDrift{from{background-position:0 0}to{background-position:120px 0}}
@media (prefers-reduced-motion:reduce){.page-mark,.page-bg{animation:none}}
.tt-logo{background-size:76px 42px}

/* ---------- famille de motifs rayés : vagues, cercles, spirale, zigzag, diagonales ---------- */
:root{
  --waves-white:url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 width=%27120%27 height=%2766%27 viewBox=%270 0 120 66%27><g fill=%27none%27 stroke=%27%23ffffff%27 stroke-width=%274.6%27 stroke-linecap=%27round%27><path d=%27M0 5 q30 -8 60 0 t60 0%27/><path d=%27M0 16 q30 -8 60 0 t60 0%27/><path d=%27M0 27 q30 -8 60 0 t60 0%27/><path d=%27M0 38 q30 -8 60 0 t60 0%27/><path d=%27M0 49 q30 -8 60 0 t60 0%27/><path d=%27M0 60 q30 -8 60 0 t60 0%27/></g></svg>");
  --waves-mint:url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 width=%27120%27 height=%2766%27 viewBox=%270 0 120 66%27><g fill=%27none%27 stroke=%27%2330D090%27 stroke-width=%274.6%27 stroke-linecap=%27round%27><path d=%27M0 5 q30 -8 60 0 t60 0%27/><path d=%27M0 16 q30 -8 60 0 t60 0%27/><path d=%27M0 27 q30 -8 60 0 t60 0%27/><path d=%27M0 38 q30 -8 60 0 t60 0%27/><path d=%27M0 49 q30 -8 60 0 t60 0%27/><path d=%27M0 60 q30 -8 60 0 t60 0%27/></g></svg>");
  --waves-navy:url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 width=%27120%27 height=%2766%27 viewBox=%270 0 120 66%27><g fill=%27none%27 stroke=%27%23283848%27 stroke-width=%274.6%27 stroke-linecap=%27round%27><path d=%27M0 5 q30 -8 60 0 t60 0%27/><path d=%27M0 16 q30 -8 60 0 t60 0%27/><path d=%27M0 27 q30 -8 60 0 t60 0%27/><path d=%27M0 38 q30 -8 60 0 t60 0%27/><path d=%27M0 49 q30 -8 60 0 t60 0%27/><path d=%27M0 60 q30 -8 60 0 t60 0%27/></g></svg>");
  --rings-white:url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 width=%27360%27 height=%27360%27 viewBox=%270 0 360 360%27><g fill=%27none%27 stroke=%27%23ffffff%27 stroke-width=%274.6%27><circle cx=%27180%27 cy=%27180%27 r=%276%27/><circle cx=%27180%27 cy=%27180%27 r=%2717%27/><circle cx=%27180%27 cy=%27180%27 r=%2728%27/><circle cx=%27180%27 cy=%27180%27 r=%2739%27/><circle cx=%27180%27 cy=%27180%27 r=%2750%27/><circle cx=%27180%27 cy=%27180%27 r=%2761%27/><circle cx=%27180%27 cy=%27180%27 r=%2772%27/><circle cx=%27180%27 cy=%27180%27 r=%2783%27/><circle cx=%27180%27 cy=%27180%27 r=%2794%27/><circle cx=%27180%27 cy=%27180%27 r=%27105%27/><circle cx=%27180%27 cy=%27180%27 r=%27116%27/><circle cx=%27180%27 cy=%27180%27 r=%27127%27/><circle cx=%27180%27 cy=%27180%27 r=%27138%27/><circle cx=%27180%27 cy=%27180%27 r=%27149%27/><circle cx=%27180%27 cy=%27180%27 r=%27160%27/><circle cx=%27180%27 cy=%27180%27 r=%27171%27/><circle cx=%27180%27 cy=%27180%27 r=%27182%27/><circle cx=%27180%27 cy=%27180%27 r=%27193%27/><circle cx=%27180%27 cy=%27180%27 r=%27204%27/><circle cx=%27180%27 cy=%27180%27 r=%27215%27/><circle cx=%27180%27 cy=%27180%27 r=%27226%27/><circle cx=%27180%27 cy=%27180%27 r=%27237%27/><circle cx=%27180%27 cy=%27180%27 r=%27248%27/></g></svg>");
  --rings-mint:url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 width=%27360%27 height=%27360%27 viewBox=%270 0 360 360%27><g fill=%27none%27 stroke=%27%2330D090%27 stroke-width=%274.6%27><circle cx=%27180%27 cy=%27180%27 r=%276%27/><circle cx=%27180%27 cy=%27180%27 r=%2717%27/><circle cx=%27180%27 cy=%27180%27 r=%2728%27/><circle cx=%27180%27 cy=%27180%27 r=%2739%27/><circle cx=%27180%27 cy=%27180%27 r=%2750%27/><circle cx=%27180%27 cy=%27180%27 r=%2761%27/><circle cx=%27180%27 cy=%27180%27 r=%2772%27/><circle cx=%27180%27 cy=%27180%27 r=%2783%27/><circle cx=%27180%27 cy=%27180%27 r=%2794%27/><circle cx=%27180%27 cy=%27180%27 r=%27105%27/><circle cx=%27180%27 cy=%27180%27 r=%27116%27/><circle cx=%27180%27 cy=%27180%27 r=%27127%27/><circle cx=%27180%27 cy=%27180%27 r=%27138%27/><circle cx=%27180%27 cy=%27180%27 r=%27149%27/><circle cx=%27180%27 cy=%27180%27 r=%27160%27/><circle cx=%27180%27 cy=%27180%27 r=%27171%27/><circle cx=%27180%27 cy=%27180%27 r=%27182%27/><circle cx=%27180%27 cy=%27180%27 r=%27193%27/><circle cx=%27180%27 cy=%27180%27 r=%27204%27/><circle cx=%27180%27 cy=%27180%27 r=%27215%27/><circle cx=%27180%27 cy=%27180%27 r=%27226%27/><circle cx=%27180%27 cy=%27180%27 r=%27237%27/><circle cx=%27180%27 cy=%27180%27 r=%27248%27/></g></svg>");
  --rings-navy:url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 width=%27360%27 height=%27360%27 viewBox=%270 0 360 360%27><g fill=%27none%27 stroke=%27%23283848%27 stroke-width=%274.6%27><circle cx=%27180%27 cy=%27180%27 r=%276%27/><circle cx=%27180%27 cy=%27180%27 r=%2717%27/><circle cx=%27180%27 cy=%27180%27 r=%2728%27/><circle cx=%27180%27 cy=%27180%27 r=%2739%27/><circle cx=%27180%27 cy=%27180%27 r=%2750%27/><circle cx=%27180%27 cy=%27180%27 r=%2761%27/><circle cx=%27180%27 cy=%27180%27 r=%2772%27/><circle cx=%27180%27 cy=%27180%27 r=%2783%27/><circle cx=%27180%27 cy=%27180%27 r=%2794%27/><circle cx=%27180%27 cy=%27180%27 r=%27105%27/><circle cx=%27180%27 cy=%27180%27 r=%27116%27/><circle cx=%27180%27 cy=%27180%27 r=%27127%27/><circle cx=%27180%27 cy=%27180%27 r=%27138%27/><circle cx=%27180%27 cy=%27180%27 r=%27149%27/><circle cx=%27180%27 cy=%27180%27 r=%27160%27/><circle cx=%27180%27 cy=%27180%27 r=%27171%27/><circle cx=%27180%27 cy=%27180%27 r=%27182%27/><circle cx=%27180%27 cy=%27180%27 r=%27193%27/><circle cx=%27180%27 cy=%27180%27 r=%27204%27/><circle cx=%27180%27 cy=%27180%27 r=%27215%27/><circle cx=%27180%27 cy=%27180%27 r=%27226%27/><circle cx=%27180%27 cy=%27180%27 r=%27237%27/><circle cx=%27180%27 cy=%27180%27 r=%27248%27/></g></svg>");
  --spiral-white:url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 width=%27300%27 height=%27300%27 viewBox=%270 0 300 300%27><path fill=%27none%27 stroke=%27%23ffffff%27 stroke-width=%274.4%27 d=%27M154 150 L154 151 L154 152 L154 153 L154 154 L153 155 L152 156 L150 157 L149 157 L147 157 L145 156 L144 155 L142 154 L141 153 L141 151 L140 148 L141 146 L141 144 L143 142 L144 140 L146 139 L149 138 L152 138 L154 138 L157 139 L160 140 L162 143 L164 145 L165 148 L165 151 L165 155 L164 158 L162 161 L159 164 L156 166 L153 167 L149 168 L145 168 L141 166 L137 164 L134 161 L132 158 L130 154 L129 149 L130 145 L131 140 L133 136 L137 132 L141 130 L145 128 L150 127 L155 127 L160 128 L165 131 L169 134 L172 139 L175 144 L176 149 L176 155 L174 161 L172 166 L168 171 L163 175 L158 177 L152 179 L145 179 L139 177 L133 175 L128 171 L124 165 L120 159 L119 153 L119 146 L120 139 L123 132 L127 127 L132 122 L139 118 L146 116 L153 116 L161 117 L168 120 L175 124 L180 130 L184 137 L186 145 L187 153 L186 161 L183 169 L179 176 L172 181 L165 186 L157 189 L148 190 L140 189 L131 186 L124 181 L117 175 L112 167 L109 159 L107 150 L108 140 L111 131 L116 123 L122 116 L130 110 L139 106 L149 105 L159 105 L169 108 L178 113 L185 119 L192 128 L196 137 L198 147 L198 158 L195 168 L190 178 L183 186 L175 193 L165 198 L154 200 L143 201 L132 198 L122 193 L113 186 L105 178 L100 167 L97 156 L97 144 L99 133 L103 122 L110 112 L119 104 L130 98 L142 95 L154 94 L166 96 L178 100 L189 107 L197 117 L204 128 L208 140 L209 153 L207 166 L203 178 L196 189 L187 198 L175 206 L163 210 L149 212 L136 210 L123 206 L111 199 L101 190 L93 178 L88 165 L86 151 L86 137 L90 123 L97 111 L107 100 L119 91 L132 86 L147 83 L162 83 L176 87 L189 94 L201 104 L210 116 L216 130 L220 144 L220 160 L216 175 L209 189 L200 201 L188 211 L173 218 L158 222 L142 223 L126 219 L111 213 L98 203 L88 191 L80 176 L75 161 L75 144 L77 128 L84 112 L93 98 L106 87 L120 78 L137 73 L154 72 L171 74 L187 80 L202 90 L214 102 L223 117 L229 134 L231 151 L229 169 L223 186 L214 202 L201 215 L186 225 L169 231 L151 234 L133 232 L115 227 L99 218 L85 205 L74 190 L67 172 L64 154 L65 135 L70 116 L79 99 L91 85 L107 73 L124 65 L143 61 L163 61 L182 66 L200 75 L215 87 L228 103 L237 121 L241 140 L242 161 L237 180 L229 199 L217 215 L201 229 L183 238 L163 244 L142 245 L122 241 L102 233 L85 221 L71 205 L60 187 L54 166 L53 145 L56 124 L63 103 L75 85 L91 70 L110 59 L130 52 L152 50 L174 52 L195 60 L214 71 L230 87 L242 106 L250 127 L253 149 L251 172 L244 193 L233 213 L217 230 L198 243 L177 252 L154 256 L131 254 L108 248 L88 237 L70 222 L56 203 L47 181 L42 158 L42 134 L48 111 L59 89 L74 70 L93 55 L115 45 L139 39 L163 39 L187 45 L210 55 L229 70 L245 89 L256 111 L263 135 L264 160 L259 185 L249 208 L235 228 L216 245 L193 258 L169 265 L143 267 L118 263 L94 253 L72 239 L55 220 L41 198 L33 173 L30 147 L34 121 L43 96 L57 73 L75 55 L98 40 L123 31 L149 28 L176 30 L202 38 L225 52 L245 71 L260 93 L271 119 L275 146 L273 173 L266 200 L252 224 L234 245 L211 261 L186 272 L158 277 L130 277 L103 270 L78 257 L56 239 L39 216 L27 190 L20 163 L20 134 L27 106 L39 80 L57 57 L79 38 L105 25 L133 18 L162 17 L191 23 L218 34 L242 52 L262 74 L276 100 L284 129 L286 158 L281 188 L270 216 L253 241 L231 261 L205 277 L176 286 L146 289 L115 285 L87 274 L61 258 L39 236 L23 210 L12 181 L8 150 L12 119 L21 89 L37 63 L59 40 L85 22 L114 11 L146 6 L177 8 L208 17 L236 32 L259 54 L278 80 L291 109 L297 141 L295 173 L287 205 L272 233 L251 258 L226 278 L196 292 L164 299 L131 299 L99 291 L69 277 L43 257 L22 231 L7 201 L-1 169 L-2 135 L5 102 L18 72 L38 44 L64 22 L94 6 L126 -3 L160 -5 L194 1 L226 13 L254 33 L277 58 L295 88 L305 121 L308 156 L303 190 L291 223 L272 252 L247 277 L217 295 L184 307 L149 311 L114 307 L81 296 L50 277 L24 253 L5 223 L-8 190 L-13 154 L-11 118 L-0 84 L17 53 L42 26 L71 5 L105 -9 L141 -16 L177 -14 L212 -5 L245 12 L273 36 L295 65 L311 99 L318 135 L318 172 L309 209%27/></svg>");
  --spiral-mint:url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 width=%27300%27 height=%27300%27 viewBox=%270 0 300 300%27><path fill=%27none%27 stroke=%27%2330D090%27 stroke-width=%274.4%27 d=%27M154 150 L154 151 L154 152 L154 153 L154 154 L153 155 L152 156 L150 157 L149 157 L147 157 L145 156 L144 155 L142 154 L141 153 L141 151 L140 148 L141 146 L141 144 L143 142 L144 140 L146 139 L149 138 L152 138 L154 138 L157 139 L160 140 L162 143 L164 145 L165 148 L165 151 L165 155 L164 158 L162 161 L159 164 L156 166 L153 167 L149 168 L145 168 L141 166 L137 164 L134 161 L132 158 L130 154 L129 149 L130 145 L131 140 L133 136 L137 132 L141 130 L145 128 L150 127 L155 127 L160 128 L165 131 L169 134 L172 139 L175 144 L176 149 L176 155 L174 161 L172 166 L168 171 L163 175 L158 177 L152 179 L145 179 L139 177 L133 175 L128 171 L124 165 L120 159 L119 153 L119 146 L120 139 L123 132 L127 127 L132 122 L139 118 L146 116 L153 116 L161 117 L168 120 L175 124 L180 130 L184 137 L186 145 L187 153 L186 161 L183 169 L179 176 L172 181 L165 186 L157 189 L148 190 L140 189 L131 186 L124 181 L117 175 L112 167 L109 159 L107 150 L108 140 L111 131 L116 123 L122 116 L130 110 L139 106 L149 105 L159 105 L169 108 L178 113 L185 119 L192 128 L196 137 L198 147 L198 158 L195 168 L190 178 L183 186 L175 193 L165 198 L154 200 L143 201 L132 198 L122 193 L113 186 L105 178 L100 167 L97 156 L97 144 L99 133 L103 122 L110 112 L119 104 L130 98 L142 95 L154 94 L166 96 L178 100 L189 107 L197 117 L204 128 L208 140 L209 153 L207 166 L203 178 L196 189 L187 198 L175 206 L163 210 L149 212 L136 210 L123 206 L111 199 L101 190 L93 178 L88 165 L86 151 L86 137 L90 123 L97 111 L107 100 L119 91 L132 86 L147 83 L162 83 L176 87 L189 94 L201 104 L210 116 L216 130 L220 144 L220 160 L216 175 L209 189 L200 201 L188 211 L173 218 L158 222 L142 223 L126 219 L111 213 L98 203 L88 191 L80 176 L75 161 L75 144 L77 128 L84 112 L93 98 L106 87 L120 78 L137 73 L154 72 L171 74 L187 80 L202 90 L214 102 L223 117 L229 134 L231 151 L229 169 L223 186 L214 202 L201 215 L186 225 L169 231 L151 234 L133 232 L115 227 L99 218 L85 205 L74 190 L67 172 L64 154 L65 135 L70 116 L79 99 L91 85 L107 73 L124 65 L143 61 L163 61 L182 66 L200 75 L215 87 L228 103 L237 121 L241 140 L242 161 L237 180 L229 199 L217 215 L201 229 L183 238 L163 244 L142 245 L122 241 L102 233 L85 221 L71 205 L60 187 L54 166 L53 145 L56 124 L63 103 L75 85 L91 70 L110 59 L130 52 L152 50 L174 52 L195 60 L214 71 L230 87 L242 106 L250 127 L253 149 L251 172 L244 193 L233 213 L217 230 L198 243 L177 252 L154 256 L131 254 L108 248 L88 237 L70 222 L56 203 L47 181 L42 158 L42 134 L48 111 L59 89 L74 70 L93 55 L115 45 L139 39 L163 39 L187 45 L210 55 L229 70 L245 89 L256 111 L263 135 L264 160 L259 185 L249 208 L235 228 L216 245 L193 258 L169 265 L143 267 L118 263 L94 253 L72 239 L55 220 L41 198 L33 173 L30 147 L34 121 L43 96 L57 73 L75 55 L98 40 L123 31 L149 28 L176 30 L202 38 L225 52 L245 71 L260 93 L271 119 L275 146 L273 173 L266 200 L252 224 L234 245 L211 261 L186 272 L158 277 L130 277 L103 270 L78 257 L56 239 L39 216 L27 190 L20 163 L20 134 L27 106 L39 80 L57 57 L79 38 L105 25 L133 18 L162 17 L191 23 L218 34 L242 52 L262 74 L276 100 L284 129 L286 158 L281 188 L270 216 L253 241 L231 261 L205 277 L176 286 L146 289 L115 285 L87 274 L61 258 L39 236 L23 210 L12 181 L8 150 L12 119 L21 89 L37 63 L59 40 L85 22 L114 11 L146 6 L177 8 L208 17 L236 32 L259 54 L278 80 L291 109 L297 141 L295 173 L287 205 L272 233 L251 258 L226 278 L196 292 L164 299 L131 299 L99 291 L69 277 L43 257 L22 231 L7 201 L-1 169 L-2 135 L5 102 L18 72 L38 44 L64 22 L94 6 L126 -3 L160 -5 L194 1 L226 13 L254 33 L277 58 L295 88 L305 121 L308 156 L303 190 L291 223 L272 252 L247 277 L217 295 L184 307 L149 311 L114 307 L81 296 L50 277 L24 253 L5 223 L-8 190 L-13 154 L-11 118 L-0 84 L17 53 L42 26 L71 5 L105 -9 L141 -16 L177 -14 L212 -5 L245 12 L273 36 L295 65 L311 99 L318 135 L318 172 L309 209%27/></svg>");
  --spiral-navy:url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 width=%27300%27 height=%27300%27 viewBox=%270 0 300 300%27><path fill=%27none%27 stroke=%27%23283848%27 stroke-width=%274.4%27 d=%27M154 150 L154 151 L154 152 L154 153 L154 154 L153 155 L152 156 L150 157 L149 157 L147 157 L145 156 L144 155 L142 154 L141 153 L141 151 L140 148 L141 146 L141 144 L143 142 L144 140 L146 139 L149 138 L152 138 L154 138 L157 139 L160 140 L162 143 L164 145 L165 148 L165 151 L165 155 L164 158 L162 161 L159 164 L156 166 L153 167 L149 168 L145 168 L141 166 L137 164 L134 161 L132 158 L130 154 L129 149 L130 145 L131 140 L133 136 L137 132 L141 130 L145 128 L150 127 L155 127 L160 128 L165 131 L169 134 L172 139 L175 144 L176 149 L176 155 L174 161 L172 166 L168 171 L163 175 L158 177 L152 179 L145 179 L139 177 L133 175 L128 171 L124 165 L120 159 L119 153 L119 146 L120 139 L123 132 L127 127 L132 122 L139 118 L146 116 L153 116 L161 117 L168 120 L175 124 L180 130 L184 137 L186 145 L187 153 L186 161 L183 169 L179 176 L172 181 L165 186 L157 189 L148 190 L140 189 L131 186 L124 181 L117 175 L112 167 L109 159 L107 150 L108 140 L111 131 L116 123 L122 116 L130 110 L139 106 L149 105 L159 105 L169 108 L178 113 L185 119 L192 128 L196 137 L198 147 L198 158 L195 168 L190 178 L183 186 L175 193 L165 198 L154 200 L143 201 L132 198 L122 193 L113 186 L105 178 L100 167 L97 156 L97 144 L99 133 L103 122 L110 112 L119 104 L130 98 L142 95 L154 94 L166 96 L178 100 L189 107 L197 117 L204 128 L208 140 L209 153 L207 166 L203 178 L196 189 L187 198 L175 206 L163 210 L149 212 L136 210 L123 206 L111 199 L101 190 L93 178 L88 165 L86 151 L86 137 L90 123 L97 111 L107 100 L119 91 L132 86 L147 83 L162 83 L176 87 L189 94 L201 104 L210 116 L216 130 L220 144 L220 160 L216 175 L209 189 L200 201 L188 211 L173 218 L158 222 L142 223 L126 219 L111 213 L98 203 L88 191 L80 176 L75 161 L75 144 L77 128 L84 112 L93 98 L106 87 L120 78 L137 73 L154 72 L171 74 L187 80 L202 90 L214 102 L223 117 L229 134 L231 151 L229 169 L223 186 L214 202 L201 215 L186 225 L169 231 L151 234 L133 232 L115 227 L99 218 L85 205 L74 190 L67 172 L64 154 L65 135 L70 116 L79 99 L91 85 L107 73 L124 65 L143 61 L163 61 L182 66 L200 75 L215 87 L228 103 L237 121 L241 140 L242 161 L237 180 L229 199 L217 215 L201 229 L183 238 L163 244 L142 245 L122 241 L102 233 L85 221 L71 205 L60 187 L54 166 L53 145 L56 124 L63 103 L75 85 L91 70 L110 59 L130 52 L152 50 L174 52 L195 60 L214 71 L230 87 L242 106 L250 127 L253 149 L251 172 L244 193 L233 213 L217 230 L198 243 L177 252 L154 256 L131 254 L108 248 L88 237 L70 222 L56 203 L47 181 L42 158 L42 134 L48 111 L59 89 L74 70 L93 55 L115 45 L139 39 L163 39 L187 45 L210 55 L229 70 L245 89 L256 111 L263 135 L264 160 L259 185 L249 208 L235 228 L216 245 L193 258 L169 265 L143 267 L118 263 L94 253 L72 239 L55 220 L41 198 L33 173 L30 147 L34 121 L43 96 L57 73 L75 55 L98 40 L123 31 L149 28 L176 30 L202 38 L225 52 L245 71 L260 93 L271 119 L275 146 L273 173 L266 200 L252 224 L234 245 L211 261 L186 272 L158 277 L130 277 L103 270 L78 257 L56 239 L39 216 L27 190 L20 163 L20 134 L27 106 L39 80 L57 57 L79 38 L105 25 L133 18 L162 17 L191 23 L218 34 L242 52 L262 74 L276 100 L284 129 L286 158 L281 188 L270 216 L253 241 L231 261 L205 277 L176 286 L146 289 L115 285 L87 274 L61 258 L39 236 L23 210 L12 181 L8 150 L12 119 L21 89 L37 63 L59 40 L85 22 L114 11 L146 6 L177 8 L208 17 L236 32 L259 54 L278 80 L291 109 L297 141 L295 173 L287 205 L272 233 L251 258 L226 278 L196 292 L164 299 L131 299 L99 291 L69 277 L43 257 L22 231 L7 201 L-1 169 L-2 135 L5 102 L18 72 L38 44 L64 22 L94 6 L126 -3 L160 -5 L194 1 L226 13 L254 33 L277 58 L295 88 L305 121 L308 156 L303 190 L291 223 L272 252 L247 277 L217 295 L184 307 L149 311 L114 307 L81 296 L50 277 L24 253 L5 223 L-8 190 L-13 154 L-11 118 L-0 84 L17 53 L42 26 L71 5 L105 -9 L141 -16 L177 -14 L212 -5 L245 12 L273 36 L295 65 L311 99 L318 135 L318 172 L309 209%27/></svg>");
  --zigzag-white:url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 width=%2760%27 height=%2766%27 viewBox=%270 0 60 66%27><g fill=%27none%27 stroke=%27%23ffffff%27 stroke-width=%274.4%27 stroke-linejoin=%27round%27><path d=%27M0 7 l15 -7 l15 7 l15 -7 l15 7%27/><path d=%27M0 18 l15 -7 l15 7 l15 -7 l15 7%27/><path d=%27M0 29 l15 -7 l15 7 l15 -7 l15 7%27/><path d=%27M0 40 l15 -7 l15 7 l15 -7 l15 7%27/><path d=%27M0 51 l15 -7 l15 7 l15 -7 l15 7%27/><path d=%27M0 62 l15 -7 l15 7 l15 -7 l15 7%27/></g></svg>");
  --zigzag-mint:url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 width=%2760%27 height=%2766%27 viewBox=%270 0 60 66%27><g fill=%27none%27 stroke=%27%2330D090%27 stroke-width=%274.4%27 stroke-linejoin=%27round%27><path d=%27M0 7 l15 -7 l15 7 l15 -7 l15 7%27/><path d=%27M0 18 l15 -7 l15 7 l15 -7 l15 7%27/><path d=%27M0 29 l15 -7 l15 7 l15 -7 l15 7%27/><path d=%27M0 40 l15 -7 l15 7 l15 -7 l15 7%27/><path d=%27M0 51 l15 -7 l15 7 l15 -7 l15 7%27/><path d=%27M0 62 l15 -7 l15 7 l15 -7 l15 7%27/></g></svg>");
  --zigzag-navy:url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 width=%2760%27 height=%2766%27 viewBox=%270 0 60 66%27><g fill=%27none%27 stroke=%27%23283848%27 stroke-width=%274.4%27 stroke-linejoin=%27round%27><path d=%27M0 7 l15 -7 l15 7 l15 -7 l15 7%27/><path d=%27M0 18 l15 -7 l15 7 l15 -7 l15 7%27/><path d=%27M0 29 l15 -7 l15 7 l15 -7 l15 7%27/><path d=%27M0 40 l15 -7 l15 7 l15 -7 l15 7%27/><path d=%27M0 51 l15 -7 l15 7 l15 -7 l15 7%27/><path d=%27M0 62 l15 -7 l15 7 l15 -7 l15 7%27/></g></svg>");
}

.page-mark.rings{background:var(--rings-mint);background-size:360px 360px}
.page-mark.spiral{background:var(--spiral-mint);background-size:300px 300px}
.page-mark.zigzag{background:var(--zigzag-mint);background-size:60px 66px}
.page-mark.diag{background:repeating-linear-gradient(45deg,var(--mint) 0 9px,transparent 9px 20px);background-size:auto}
.page-bg.rings{background:var(--rings-navy);background-size:360px 360px}
.page-bg.spiral{background:var(--spiral-navy);background-size:300px 300px}
.page-bg.zigzag{background:var(--zigzag-navy);background-size:60px 66px}
.page-bg.diag{background:repeating-linear-gradient(45deg,var(--navy) 0 3px,transparent 3px 11px);background-size:auto}
.num-hatch.diag{background:repeating-linear-gradient(45deg,var(--mint) 0 6px,rgba(48,208,144,.12) 6px 12px);-webkit-background-clip:text;background-clip:text}
.num-hatch.rings{background:var(--rings-mint);background-size:180px 180px;-webkit-background-clip:text;background-clip:text}
.num-hatch.zigzag{background:var(--zigzag-mint);background-size:60px 66px;-webkit-background-clip:text;background-clip:text}
/* bande contact : rayures diagonales d'origine */
.contact::after{background:repeating-linear-gradient(-45deg,rgba(255,255,255,.35) 0 26px,transparent 26px 92px);background-size:auto;opacity:.35}
/* tuiles graphiques (à la place des photos) */
.tile{position:relative;display:block;width:100%;height:100%;border-radius:18px;overflow:hidden;background:var(--mint)}
.tile.navy{background:var(--navy)}
.tile.paper{background:var(--grey)}
.tile .fill{position:absolute;inset:0;opacity:.9}
.tile.paper .fill{opacity:.55}
.tile .fill.waves{background:var(--waves-white);background-size:120px 66px}
.tile .fill.rings{background:var(--rings-white);background-size:360px 360px;background-position:center}
.tile .fill.spiral{background:var(--spiral-white);background-size:300px 300px;background-position:center}
.tile .fill.zigzag{background:var(--zigzag-white);background-size:60px 66px}
.tile .fill.diag{background:repeating-linear-gradient(45deg,#fff 0 7px,transparent 7px 16px)}
.tile.paper .fill.rings{background:var(--rings-mint);background-size:360px 360px;background-position:center}
.tile.paper .fill.spiral{background:var(--spiral-mint);background-size:300px 300px;background-position:center}
.tile .mark{position:absolute;left:8%;right:8%;top:50%;transform:translateY(-50%);aspect-ratio:4000/984;-webkit-mask:url(../img/delsmer-white.png) no-repeat center/contain;mask:url(../img/delsmer-white.png) no-repeat center/contain;background:var(--spiral-white);background-size:300px 300px;background-position:center}
.tile .mark.rings{background:var(--rings-white);background-size:360px 360px}
.tile .mark.waves{background:var(--waves-white);background-size:120px 66px}
.tile .mark.navy{-webkit-mask-image:url(../img/delsmer-logo.png);mask-image:url(../img/delsmer-logo.png);background:var(--rings-navy);background-size:360px 360px}
.par-4 .tile{aspect-ratio:3/2;height:auto}

/* ---------- réglages : chiffres unis, fonds statiques, logo d'accueil uni ---------- */
.num-hatch,.num-hatch.diag,.num-hatch.rings,.num-hatch.zigzag{background:none;color:var(--mint);-webkit-text-fill-color:var(--mint)}
.pil-count{background:repeating-linear-gradient(45deg,var(--mint) 0 6px,rgba(48,208,144,.12) 6px 12px);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.page-bg,.page-bg.rings,.page-bg.zigzag,.page-bg.diag{animation:none;opacity:.06}
.page-mark.rings,.page-mark.zigzag,.page-mark.spiral{animation:none}
.tt-logo{background:#fff}
.contact .wp{padding:100px 0}
.team .intro-team{min-height:0;padding-bottom:0}
.team .wp{margin:0 0 90px}

/* ---------- derniers réglages : fond d'origine, logo zébré animé, chiffres qui tiennent, contact uni ---------- */
.page-bg,.page-bg.rings,.page-bg.zigzag,.page-bg.diag,.page-bg.spiral{background:repeating-linear-gradient(45deg,var(--navy) 0 3px,transparent 3px 11px);background-size:auto;opacity:.06;animation:none}
.tt-logo{background:repeating-linear-gradient(45deg,#fff 0 5px,transparent 5px 10px);background-size:auto;animation:zebraDrift 7s linear infinite}
@keyframes zebraDrift{from{background-position:0 0}to{background-position:141.42px 0}}
@media (prefers-reduced-motion:reduce){.tt-logo{animation:none}}
.contact::after{display:none}
.numbers .lead{grid-column:2 / span 4}
.numbers .list{grid-column:7 / span 6;gap:36px 28px}
.numbers .num{min-width:0}
.numbers .num.hatch .num-hatch,.numbers .num-hatch{font-size:64px;white-space:nowrap}
@media (max-width:991px){.numbers .num.hatch .num-hatch,.numbers .num-hatch{font-size:48px}}

/* ---------- accueil : logo Delsmer en points (halftone), sans animation ---------- */
.tt-logo{background:url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 width=%279%27 height=%279%27 viewBox=%270 0 9 9%27><circle cx=%274.5%27 cy=%274.5%27 r=%272.1%27 fill=%27%23ffffff%27/></svg>");background-size:9px 9px;animation:none}
.page-mark,.page-bg{animation:none}
/* ---------- bande Contact : logo Delsmer à peine visible, flouté ---------- */
.contact::after{content:"";display:block;position:absolute;right:-4vw;top:50%;width:min(760px,60vw);height:auto;aspect-ratio:4000/984;transform:translateY(-50%);background:#fff;-webkit-mask:url(../img/delsmer-white.png) no-repeat center/contain;mask:url(../img/delsmer-white.png) no-repeat center/contain;opacity:.07;filter:blur(1.5px);pointer-events:none}

.tt-logo{background:url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 width=%279%27 height=%279%27 viewBox=%270 0 9 9%27><circle cx=%274.5%27 cy=%274.5%27 r=%272.6%27 fill=%27%23ffffff%27/></svg>");background-size:9px 9px}
.contact::after{left:auto;bottom:auto;height:auto}
.team .intro-team{min-height:600px;padding-bottom:20px}
.team .wp{margin:0}
.contact .wp{padding:220px 0 100px}

/* ---------- accueil : logo officiel deux tons (blanc + bleu marine), sans motif ---------- */
.tt-logo{-webkit-mask:none;mask:none;background:none;aspect-ratio:auto;width:360px;max-width:62vw;margin-bottom:16px;animation:none}
.tt-logo img{display:block;width:100%;height:auto}

/* ---------- pied de page : grand Delsmer sur toute la largeur, coupé en bas comme sur l'accueil ---------- */
.contact::after{display:none}
.ft{position:relative;overflow:hidden;padding-bottom:0}
.ft .container{position:relative;z-index:1}
.ft .bottom{margin-bottom:40px}
.ft-mark{position:relative;display:block;width:104%;margin:24px -2% -6%;aspect-ratio:4000/984;-webkit-mask:url(../img/delsmer-white.png) no-repeat center/contain;mask:url(../img/delsmer-white.png) no-repeat center/contain;background:#fff;opacity:.16;pointer-events:none}
@media (max-width:991px){.ft-mark{width:120%;margin:20px -10% -8%}}

/* =========================================================
   Version téléphone et tablette. Placée en dernier pour l'emporter sur les réglages ci-dessus.
   ========================================================= */
html,body{overflow-x:hidden}
@supports (overflow-x:clip){html,body{overflow-x:clip}}
.fx,.contact,.ft,.page-top,.quote-band{overflow:hidden}
.sticker{max-width:100%}

@media (max-width:991px){
  /* colonnes qui restaient côte à côte (règles ajoutées après le premier bloc responsive) */
  .numbers .lead,.numbers .list{grid-column:1 / -1}
  .numbers .list{margin-top:28px;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 18px}
  .numbers .num.hatch .num-hatch,.numbers .num-hatch{font-size:48px;white-space:normal}
  .cards,.cards.two{grid-template-columns:1fr}
  .team .intro-team{min-height:0;padding-bottom:0}
  .team .wp{margin:0}
  .contact .wp{padding:110px 0 90px}
  .top-news .lbl::after{width:100%}
  .page-bg{width:110vw}
  /* badge Meta : sous la capture, sans dépasser */
  .sticker{position:relative;right:auto;top:auto;display:inline-flex;margin:-18px 0 0 10px;transform:rotate(-2deg);white-space:normal;font-size:13px;padding:9px 12px;gap:8px;max-width:calc(100% - 20px)}
  .sticker b{font-size:14px}
  /* méga-menus : tiennent dans l'écran, bouton fermer accessible */
  .mega{max-height:100vh;max-height:100dvh;overflow:auto;padding:96px var(--gutter) 40px}
  .mega .close{top:22px;right:12px}
  .mega .links a{font-size:19px}
  .mega .links small{font-size:13px}
}

@media (max-width:767px){
  :root{--gutter:18px}
  body{line-height:28px}
  .container{padding:0 6px}
  .sec .wp{margin:44px 0 56px}
  .btn{padding:9px 18px;font-size:15px;gap:14px}
  .btn svg{width:30px;height:auto}
  .btn.video svg{width:32px;height:32px}
  .crumb{margin-bottom:18px}

  /* en-tête */
  .hd{padding:18px var(--gutter)}
  .hd.sticky{padding:14px var(--gutter)}
  .hd .logo,.hd .logo img{width:118px}
  .nav.open{padding:14px var(--gutter) 24px;gap:12px}
  .nav.open a,.nav.open button{font-size:17px}
  .mega .tt{font-size:32px;margin-bottom:22px}

  /* typographie */
  .t-big{font-size:clamp(36px,11vw,44px)}
  .t-big.small{font-size:27px}
  .t-big.mid{font-size:34px}
  .t-sub{font-size:27px}
  .t-page{font-size:clamp(36px,10.5vw,44px)}
  .t-sec{font-size:29px;margin-bottom:16px}
  .t-h4{font-size:20px}
  .txt.large{font-size:21px;line-height:34px}
  .txt.medium{font-size:19px;line-height:31px}
  .lbl{margin-bottom:10px}

  /* accueil : bandeau */
  .hero{padding:96px 0 34vw}
  .tt-logo{width:220px;max-width:64vw;margin-bottom:14px}
  .title-banner{font-size:clamp(50px,16.4vw,72px);line-height:.94}
  .title-banner .sub{font-size:clamp(28px,8.6vw,40px);margin-top:10px}
  .top-news{margin-top:34px;width:100%}
  .top-news .lbl{margin-bottom:18px}
  .top-news .date{font-size:20px}
  .top-news .exc{max-width:none;margin-bottom:12px}
  .intro{padding:34px 0 64px;min-height:0}
  .intro .title-home{font-size:22px;line-height:34px;margin-bottom:22px}
  .intro .txt{margin-bottom:28px}
  .btn.video{max-width:100%}
  .mob-photo{margin-top:30px;border-radius:14px;overflow:hidden;box-shadow:0 18px 44px rgba(40,56,72,.16)}

  /* accueil : principes 01 à 05 */
  .slider{padding-top:6px}
  .nav-num{gap:16px;margin-bottom:22px}
  .count{height:120px}.count svg{height:120px}
  .slide h3{margin-bottom:14px}
  .slide .txt{margin-bottom:26px}

  /* accueil : Medu-IA et FanCRM */
  .label .wp{margin:28px 0 56px}
  .label .txt{margin:22px 0 28px}
  .medu-illu{height:300px;max-width:100%;margin-top:20px}
  .mi-card{padding:14px 16px}
  .mi-fiche{width:188px;left:0;top:8px}
  .mi-qcm{width:176px;right:4px;top:0}
  .mi-qcm b{font-size:13px;padding:7px 9px}
  .mi-flash{width:196px;left:auto;right:8px;bottom:0}
  .mi-flash strong{font-size:18px}
  .mi-logo{left:0;bottom:36px;width:74px;height:74px;border-radius:20px}
  .mi-logo img{width:46px;height:46px}
  .shot-wrap2{margin-top:26px;padding-bottom:16px}
  .shot{border-radius:14px}

  /* accueil : actualités */
  .articles .wp{padding:64px 0 84px}
  .articles .t-big{margin-bottom:34px}
  .feature{margin-bottom:44px}
  .art{gap:16px}
  .art .tt{font-size:22px}
  .art .tt.small{font-size:19px}
  .art .date{margin-top:8px}
  .line-sep{margin-bottom:36px}
  .small-list{margin-bottom:26px;padding-bottom:26px;border-bottom:1px solid rgba(40,56,72,.25)}
  .small-list:last-child{border-bottom:0;padding-bottom:0}
  .articles .center{margin-top:44px}

  /* accueil : équipe et contact */
  .team{padding-top:56px}
  .team .t-big{margin-bottom:26px}
  .t-join{font-size:clamp(30px,9.2vw,36px)}
  .team .txt{margin-bottom:28px}
  .par-4{margin:28px 0 -56px;border-radius:14px;overflow:hidden}
  .contact .wp{padding:88px 0 76px}
  .t-contact{font-size:clamp(30px,9vw,38px)}
  .contact .t-big{margin-bottom:18px}
  .contact [style*="text-align:center"]{text-align:left !important}
  .contact .grid{row-gap:22px}

  /* pied de page */
  .ft{padding-top:48px}
  .ft .logo img{width:118px;margin-bottom:16px}
  .ft p{font-size:16px;line-height:24px}
  .ft .menu{margin-top:26px}
  .ft .menu a{font-size:18px;line-height:28px;margin-bottom:8px}
  .ft .bottom{margin:40px 0 28px}
  .ft-mark{width:132%;margin:14px -16% -9%}

  /* pages intérieures */
  .page-top{padding:98px 0 22px}
  .page-top .bar{height:70px;margin-bottom:18px}
  .page-top .sub-grid{margin-top:22px;row-gap:12px}
  .page-top .sub-grid .lead{font-size:18px;line-height:29px}
  .page-top .sub-grid .aside{line-height:28px}
  .page-mark{width:150vw;right:-46vw;top:44px;opacity:.35}
  .block-ti{padding:22px 0}
  .block-ti .img-col{margin-bottom:18px}
  .block-ti .img-col .badge{width:190px !important;height:190px !important;border-radius:30px !important}
  .block-ti .img-col .badge img{width:120px !important}
  .numbers{padding:52px 0}
  .numbers .list{margin-top:22px;gap:22px 14px}
  .numbers .num{font-size:42px}
  .numbers .num.hatch .num-hatch,.numbers .num-hatch{font-size:42px}
  .numbers .num small{font-size:14px;margin-top:6px}
  .tree-sec{padding:6px 0 28px}
  .node.root{padding:18px 26px}
  .node.root img{width:136px}
  .tl{padding-left:22px;gap:18px}
  .tl li::before{left:-31px}
  .tl li.soon::before{left:-29px}
  .pil-sticky{gap:14px;margin-bottom:4px}
  .pil-count{font-size:72px}
  .pil-item{padding:22px 0}
  .pil-item .t-sub{font-size:25px;margin-bottom:12px}
  .pil-item .btn{margin-top:18px}
  .card{padding:22px;gap:12px}
  .card h3{font-size:22px}
  .avatar{width:96px;height:96px}
  .cards.two{margin-top:22px;gap:14px}
  .quote-band{padding:60px 0}
  .quote-band blockquote{font-size:24px;line-height:1.25;margin-bottom:22px}
  .quote-band cite{margin-bottom:26px}
  .list-news .row{padding:20px 0}
  .list-news h3{font-size:20px}
  .form{gap:14px}
  .form textarea{min-height:130px}
  #contactForm{scroll-margin-top:90px}
  .info-list{margin-top:8px}
  .legal h2{font-size:20px;margin:28px 0 10px}
  .legal p,.legal li{font-size:15px;line-height:27px}
}

/* écrans tactiles : pas d'effet de survol qui reste collé */
@media (hover:none){
  .card:hover{transform:none;box-shadow:none}
  .btn:hover{color:var(--navy)}
  .btn:hover::before,.btn:hover::after{transform:none}
  .btn:hover svg path{fill:var(--navy)}
  .btn.white:hover{color:#fff}
  .btn.white:hover svg path{fill:#fff}
}

/* tablette (768 à 991 px) : titres plus généreux, fiches sur deux colonnes */
@media (min-width:768px) and (max-width:991px){
  .hero{padding-top:130px}
  .tt-logo{width:300px}
  .title-banner{font-size:88px}.title-banner .sub{font-size:48px}
  .intro .title-home{font-size:26px;line-height:40px}
  .t-big{font-size:58px}.t-big.small{font-size:36px}.t-big.mid{font-size:48px}
  .t-join,.t-contact{font-size:54px}
  .t-page{font-size:52px}
  .cards.two{grid-template-columns:repeat(2,minmax(0,1fr))}
  .numbers .list{grid-template-columns:repeat(4,minmax(0,1fr))}
  .medu-illu{height:360px;max-width:520px}
  .mob-photo{max-width:640px}
}

/* téléphone et tablette : menu ouvert sur fond blanc, méga-menus par-dessus l'en-tête avec leur propre bouton fermer */
@media (max-width:991px){
  .hd.menu-open .bg,.hd.menu-open .logo{opacity:1 !important}
  .nav.open{border-top:1px solid rgba(40,56,72,.12)}
  .mega{z-index:70;padding-top:84px}
  .mega .close{top:20px;right:14px;width:44px;height:44px}
}

/* =========================================================
   Révision téléphone 2 : marges, badge Meta en ruban adhésif, actualités, menus, finitions.
   ========================================================= */
/* badge Meta : ruban adhésif collé sur le coin haut gauche de la capture (toutes largeurs) */
.shot-wrap2{overflow:visible}
.sticker{left:-14px;right:auto;top:-14px;transform:rotate(-4deg);background:rgba(255,255,255,.9);border-radius:3px;padding:11px 20px;box-shadow:0 10px 26px rgba(40,56,72,.2),inset 0 0 0 1px rgba(255,255,255,.7);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);clip-path:polygon(0 0,100% 0,100% 12%,calc(100% - 4px) 20%,100% 28%,calc(100% - 4px) 36%,100% 44%,calc(100% - 4px) 52%,100% 60%,calc(100% - 4px) 68%,100% 76%,calc(100% - 4px) 84%,100% 92%,100% 100%,0 100%,0 92%,4px 84%,0 76%,4px 68%,0 60%,4px 52%,0 44%,4px 36%,0 28%,4px 20%,0 12%)}
.sticker::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(40,56,72,.035) 0 2px,transparent 2px 7px);pointer-events:none}
.legal p+p{margin-top:12px}

@media (max-width:991px){
  .articles .wp{padding-left:var(--gutter);padding-right:var(--gutter)}
  .contact .wp{padding:100px var(--gutter) 80px}
  .shot-wrap2{margin-top:34px;padding:0}
  .sticker{position:absolute;left:-8px;top:-14px;margin:0;display:inline-flex;transform:rotate(-4deg);white-space:nowrap;font-size:13px;padding:9px 14px;gap:8px;max-width:none}
  .sticker b,.sticker .sep{display:none}
  /* bouton menu : zone tactile de 44 px sans changer la hauteur de l'en-tête */
  .burger{width:44px;height:44px;margin:-9px -6px -9px 0}
  .burger span{left:10px;right:10px}
  .burger span:nth-child(1){top:14px}.burger span:nth-child(2){top:21px}.burger span:nth-child(3){top:28px}
  .burger.open span:nth-child(1),.burger.open span:nth-child(3){top:21px}
  /* menu ouvert : rangées pleine largeur faciles à toucher */
  .nav.open{gap:0;padding:6px var(--gutter) 12px}
  .nav.open li{width:100%}
  .nav.open a,.nav.open button{display:block;width:100%;text-align:left;padding:10px 0;line-height:24px}
}

@media (max-width:767px){
  :root{--gutter:20px}
  .container{padding:0 var(--gutter)}
  .mega .container{padding:0}
  .grid{row-gap:32px}
  .hero .grid{row-gap:0}
  .contact .grid{row-gap:22px}
  .ft .grid{row-gap:6px}
  .ft .menu{margin-top:18px}
  .numbers .list{margin-top:0}
  .block-ti .img-col{margin-bottom:0}
  .hero .wp,.intro .wp,.articles .wp,.team .wp,.contact .wp{margin:0}
  .hero{min-height:100vh;min-height:100svh;padding-bottom:30vw}
  .intro{padding-bottom:26px}
  .slider .wp{margin-top:36px}
  .team{padding-top:20px}
  .team .intro-team{padding-top:0}
  .txt{line-height:27px}
  .txt p+p{margin-top:12px}
  .page-top .sub-grid .aside{line-height:27px}
  .legal p,.legal li{line-height:26px}
  /* actualités (accueil) */
  .articles .wp{padding:60px var(--gutter) 70px}
  .articles .t-big{font-size:clamp(30px,9.4vw,38px);margin-bottom:30px}
  .feature{row-gap:16px;margin-bottom:0}
  .img-feature{border-radius:14px;aspect-ratio:16/10}
  .img-feature img{object-position:50% 30%}
  .art{gap:12px}
  .art .tt{font-size:22px;line-height:1.2}
  .art .tt.small{font-size:19px}
  .art .date{margin-top:6px;font-size:13px}
  .tips{font-size:13px;line-height:16px}
  .tips .ico{width:28px;height:28px}
  .line-sep{margin:28px 0 0}
  .articles .grid{row-gap:0}
  .small-list{margin:0;padding:18px 0;border-bottom:1px solid rgba(40,56,72,.25)}
  .small-list:last-child{border-bottom:0;padding-bottom:6px}
  .articles .center{margin-top:30px;text-align:left}
  /* bande contact */
  .contact .wp{padding:64px var(--gutter) 60px}
  /* titres bicolores de deux lignes : coulent comme un paragraphe sur petit écran */
  .t-big.small .l{display:inline;overflow:visible;padding:0;margin:0}
  .t-big.small .l+.l::before{content:" "}
  .t-big.small .l>span{display:inline;transform:none;opacity:0;transition:opacity .8s ease}
  .t-big.small.in .l>span,.no-js .t-big.small .l>span{opacity:1}
  /* illustration Medu-IA */
  .medu-illu{height:320px}
  .mi-fiche{width:176px}.mi-qcm{width:166px}.mi-flash{width:186px}
  .mi-qcm b{line-height:20px}
  /* onglets 01 à 05 */
  .nav-num{gap:6px}
  .nav-num button{min-width:40px;min-height:40px;padding:8px 8px 6px}
  /* pied de page : liens lisibles et faciles à toucher */
  .ft .bottom{font-size:13px;margin:32px 0 20px}
  .ft .bottom a{display:inline-block;padding:10px 6px;margin:0 2px}
  .ft .menu a{padding:6px 0;margin-bottom:0}
  /* petits textes */
  .list-news .tag{font-size:13px}
  .node small{font-size:13px}
  .tl .y{font-size:13px}
  .info-list a,.crumb a{display:inline-block;padding:9px 0;margin:-9px 0}
  /* logos décoratifs plus discrets derrière le texte */
  .page-top .page-mark{filter:opacity(.45);top:56px}
  .page-bg{opacity:.035}
  /* logo FanCRM non déformé */
  .block-ti .img-col .badge img{width:120px !important;height:120px !important}
  /* principes : tous lisibles, numérotés un par un */
  .pillars .pil-left{display:none}
  .pil-items{counter-reset:pil}
  .pil-item{opacity:1;counter-increment:pil;padding:22px 0 26px}
  .pil-item::before{content:counter(pil,decimal-leading-zero);display:block;font-family:var(--display);font-weight:900;font-size:40px;line-height:1;color:var(--mint);margin-bottom:10px}
  /* arbre du groupe : feuilles en lignes compactes reliées par un trait */
  .branch{justify-items:stretch}
  .node.mid{width:100%;padding:12px 16px}
  .leaves.three,.leaves.two{width:auto;margin-left:14px;padding:10px 0 0 14px;border-left:2px solid var(--line);gap:10px}
  .node.leaf{display:grid;grid-template-columns:40px minmax(0,1fr);column-gap:14px;row-gap:2px;justify-items:start;text-align:left;padding:12px 14px}
  .node.leaf img,.node.leaf .q{grid-row:1 / span 2}
}

@media (hover:none){
  .mega .links a:hover{border-color:transparent}
  .nav a:hover,.nav button:hover{color:var(--navy-deep)}
  .nav a[aria-current],.nav button[aria-current]{color:var(--mint-dark)}
}

/* ---------- ruban Meta sans rayures ---------- */
.sticker::before{display:none}
.sticker{background:rgba(255,255,255,.93)}

/* ---------- téléphone : la photo de Carl dans le bandeau, révélée par les bandes comme sur ordinateur ---------- */
@media (max-width:767px){
  .fx-photo{display:block;left:0;right:0;bottom:0;width:100%;aspect-ratio:4/5}
  .fx-photo::after{background:linear-gradient(to bottom,#fff 0,rgba(255,255,255,0) 16%)}
  .fx-photo .photo img{object-position:50% 100%}
  .hero{min-height:calc(100vh + 420px);min-height:calc(100svh + 420px);padding-bottom:0}
  .hero .top-news{display:none}
  .intro{background:#fff}
  .intro .mob-photo{display:none}
}

/* ---------- téléphone : grand logo découpé plus présent, actualité de retour dans le bandeau, photo qui remonte au défilement ---------- */
@media (max-width:767px){
  .hero .top-news{display:block;margin-top:30px}
  .fx-photo{bottom:-160px;will-change:transform,opacity}
  .clip{-webkit-mask-size:200vw auto;mask-size:200vw auto;-webkit-mask-position:-42vw calc(100% + 8vw);mask-position:-42vw calc(100% + 8vw)}
}

/* ---------- stabilité : principes 01 à 05 empilés dans une grille (hauteur fixe, plus de saut de page), calques fixes sur le GPU, hauteur dynamique iOS ---------- */
.slides{display:grid}
.slide,.slide.active{grid-area:1 / 1;position:static;inset:auto}
.clip,.bands,.fx-photo{-webkit-transform:translateZ(0);transform:translateZ(0)}
.banner-wrap.sticked .fx{height:100vh;height:100lvh}

/* ---------- ruban Meta sur téléphone : le mot Meta reste à côté du logo, le texte passe sur deux lignes ---------- */
@media (max-width:991px){
  .sticker b,.sticker .sep{display:block}
  .sticker{white-space:normal;font-size:12px;line-height:1.15;padding:8px 12px;gap:7px;max-width:calc(100vw - 36px)}
  .sticker b{font-size:13px}
  .sticker>span:not(.sep):not(.check){max-width:150px}
}

/* ---------- finitions bandeau (retour des agents de vérification) ---------- */
.top-news .date{text-wrap:balance}
.bands,.clip{transition:opacity .6s}
@media (max-width:767px){
  /* le mot commence par le D : « Dels » lisible en bas de l'écran */
  .clip{-webkit-mask-position:-6vw calc(100% + 8vw);mask-position:-6vw calc(100% + 8vw)}
  /* voile blanc dégradé au-dessus de l'intro : la photo s'efface en douceur, sans arête */
  .intro{position:relative}
  .intro::before{content:"";position:absolute;left:0;right:0;top:-150px;height:150px;background:linear-gradient(to bottom,rgba(255,255,255,0),#fff);pointer-events:none}
}

/* ---------- Révision desktop / grands écrans (23/09) ----------
   Sur un écran large (1920), des sections de l'accueil restaient calées à
   gauche avec un grand vide à droite. On les recentre, on cale la carte
   « Actualité » à droite (hero pleine largeur aligné sur l'en-tête) et on
   agrandit un peu la navigation. Posé en fin de fichier pour l'emporter sur les
   règles dupliquées plus haut. Scopé desktop : le mobile (<=767px, hero empilé
   + burger) N'EST PAS touché. */
.team .wp{margin:0 auto}
.contact .wp{margin:0 auto}
@media (min-width:992px){
  .hero .wp{max-width:none;padding-left:var(--gutter);padding-right:var(--gutter)}
  .top-news{margin-left:auto}
}
@media (min-width:1440px){
  .nav{gap:28px}
  .nav a,.nav button{font-size:16px}
}

/* Surtitre de page (ex. « Notre engagement RSE ») : petit label mint au-dessus du grand titre. */
.page-top .page-eyebrow{margin:0 0 14px;font:700 13px/1.4 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--mint-dark)}
@media (max-width:767px){.page-top .page-eyebrow{font-size:12px;margin-bottom:10px}}

/* =========================================================
   Newsletter : fenêtre d'inscription (marine, grand Delsmer en anneaux ; sur téléphone elle monte du bas)
   ========================================================= */
html.nl-open{overflow:hidden}
.nl-backdrop{position:fixed;inset:0;z-index:90;background:rgba(27,38,50,.55);display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;transition:opacity .3s}
.nl-backdrop.on{opacity:1}
.nl-backdrop[hidden],.btn[hidden]{display:none}
.nl{position:relative;width:min(880px,100%);background:var(--navy);color:#fff;border-radius:22px;overflow:hidden;box-shadow:0 40px 90px rgba(27,38,50,.35);transform:translateY(18px);transition:transform .4s cubic-bezier(.2,.75,.2,1)}
.nl-backdrop.on .nl{transform:none}
.nl-word{position:absolute;left:-8px;bottom:-62px;width:102%;aspect-ratio:4000/984;background:var(--rings-mint);background-size:360px 360px;-webkit-mask:url(../img/delsmer-white.png) no-repeat left center/contain;mask:url(../img/delsmer-white.png) no-repeat left center/contain;pointer-events:none}
.nl-body{position:relative;z-index:1;padding:46px 48px 150px}
.nl-close{position:absolute;right:14px;top:14px;width:40px;height:40px;border:0;border-radius:50%;display:grid;place-items:center;cursor:pointer;z-index:3;background:rgba(255,255,255,.12);color:#fff;transition:background .2s}
.nl-close:hover{background:rgba(255,255,255,.24)}
.nl-close:focus-visible{outline:2px solid var(--mint);outline-offset:2px}
.nl-pill{display:inline-block;font:700 12px/1 var(--body);letter-spacing:.1em;text-transform:uppercase;padding:8px 12px;border-radius:999px;margin-bottom:18px;background:rgba(255,255,255,.1);color:var(--mint)}
.nl-title{font-family:var(--display);font-weight:900;font-size:38px;line-height:1.08;margin:0 0 14px;letter-spacing:-.01em;color:#fff;max-width:620px;text-wrap:balance}
.nl-title em{font-style:normal;color:var(--mint)}
.nl-txt{font-size:16px;line-height:26px;margin:0 0 24px;color:rgba(255,255,255,.85);max-width:600px}
.nl-form{display:flex;gap:10px;flex-wrap:wrap;max-width:620px}
.nl-form input[type=email]{flex:1 1 230px;min-width:0;padding:12px 16px;border:1px solid transparent;border-radius:999px;font:400 16px/24px var(--body);background:#fff;color:var(--ink)}
.nl-form input[type=email]:focus{outline:2px solid var(--mint);outline-offset:2px}
.nl-form .btn{padding:10px 20px}
.nl-form .btn:disabled{opacity:.6;cursor:wait}
.nl-trap{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.nl-note{font-size:13px;line-height:20px;margin:14px 0 0;color:rgba(255,255,255,.7)}
.nl-note a{color:var(--mint);font-weight:700}
.nl-ok{margin:16px 0 0;font-weight:700;color:var(--mint);max-width:620px;line-height:24px}
.nl-ok.err{color:#FFB4A8}
@media (max-width:767px){
  .nl-backdrop{align-items:flex-end;padding:0}
  /* le grand mot déborde exprès : la carte le coupe, seul le texte défile (verticalement) quand l'écran est très bas */
  .nl{width:100%;border-radius:22px 22px 0 0;max-height:94vh;max-height:94dvh;overflow:hidden;touch-action:pan-y;transform:translateY(40px)}
  .nl-body{padding:28px 20px 96px;max-height:94vh;max-height:94dvh;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}
  .nl-word{bottom:-32px;width:104%}
  .nl-title{font-size:30px}
  .nl-form .btn{width:100%;justify-content:center}
}
@media (prefers-reduced-motion:reduce){.nl-backdrop,.nl{transition:none}}

/* ---------- accueil sur téléphone : bandes cadrées à la taille de l'écran ----------
   Avant, chaque jeu de bandes formait un calque de 9 500 x 2 500 px (x3 sur iPhone) alors que seules 11 bandes sur 36
   sont visibles : quand la barre de Safari se replie, l'iPhone redessinait ces calques géants et l'animation tombait
   à ~8 images/s (mesuré image par image sur la vidéo de Carl, 25/09). Ici la boîte des bandes = l'écran, avec
   overflow:hidden, et les bandes gardent exactement le même dessin : ancrages à x = -600 + 200k et
   y = 400 + hauteur - max(794, 100vh), comme avec left:-600px / bottom:-400px / width:4000px. */
@media (max-width:767px){
  .bands{left:0;right:auto;top:0;bottom:auto;width:100%;height:100%;overflow:hidden;
    padding-top:calc(400px + 100vh - max(794px, 100vh));padding-top:calc(400px + 100lvh - max(794px, 100vh))}
  .bands span{width:200px}
  .bands span:first-child{margin-left:-600px}
}

/* ---------- téléphone, tous navigateurs : en-tête et fenêtre newsletter collés aux bords de l'écran ----------
   Sur iPhone, Firefox affiche une bande de page au-dessus de l'en-tête et sous la fenêtre newsletter quand ses barres
   se replient (la zone visible déborde la zone « fixe »). On respecte les zones sûres (encoche, barre d'accueil) et on
   prolonge les fonds au-delà des bords : invisible là où il n'y a pas de débordement (Safari, Chrome, ordinateur). */
@media (max-width:767px){
  .hd{padding-top:calc(18px + env(safe-area-inset-top, 0px))}
  .hd.sticky{padding-top:calc(14px + env(safe-area-inset-top, 0px))}
  .hd .bg{top:-160px}
  .nl-body{padding-bottom:calc(96px + env(safe-area-inset-bottom, 0px))}
}
/* Les navigateurs iPhone ne dessinent pas les éléments « fixes » dans la bande qui apparaît quand leur barre se replie
   (vérifié : un prolongement fixe ne s'y voit pas dans Firefox). Ces deux bandes font partie de la page, pas de
   l'écran : js/site.js les pose juste au-dessus et juste en dessous de l'écran quand la fenêtre newsletter est ouverte. */
.nl-fill{position:absolute;left:0;right:0;height:400px;z-index:89;pointer-events:none;opacity:0;transition:opacity .3s}
.nl-fill.on{opacity:1}
.nl-fill.top{background:rgba(27,38,50,.55)}
.nl-fill.bot{background:var(--navy)}
@media (min-width:768px){.nl-fill{display:none}}


/* ---------- arbre du groupe : pastille d'état (société en développement) ---------- */
.tree .node .etat{display:inline-block;margin-top:10px;padding:6px 11px;border-radius:999px;background:rgba(48,208,144,.14);color:var(--mint-dark);font:700 11px/1 var(--body);letter-spacing:.08em;text-transform:uppercase}

/* ---------- accueil : illustration Olmo (une conversation, pas de capture d'écran) ---------- */
.olmo-illu{max-width:430px;margin:0 auto;background:#0a0a0a;border-radius:34px;padding:26px 24px 22px;box-shadow:0 30px 70px rgba(40,56,72,.28);color:#fff}
.olmo-illu .oi-top{display:flex;align-items:center;gap:12px;margin-bottom:22px;font:700 18px/1 var(--display)}
.olmo-illu .oi-top img{width:36px;height:36px;border-radius:10px;display:block}
.olmo-illu .oi-top small{margin-left:auto;display:flex;align-items:center;gap:7px;font:600 13px/1 var(--body);color:rgba(255,255,255,.6)}
.olmo-illu .oi-top small::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--mint)}
.olmo-illu .b{margin:0 0 10px;max-width:82%;width:fit-content;padding:11px 16px;border-radius:20px;font:500 16px/1.4 var(--body)}
.olmo-illu .moi{margin-left:auto;background:#262626;border-bottom-right-radius:6px}
.olmo-illu .olmo{background:#fff;color:#0a0a0a;border-bottom-left-radius:6px}
@media (max-width:767px){.olmo-illu{margin-top:10px}.olmo-illu .b{font-size:15px}}
