/* ==========================================================================
   Innovation Bureau — Design system (front-office)
   Police : Montserrat (auto-hébergée — RGPD-friendly, aucun appel externe).
   ========================================================================== */
@font-face{font-family:'Montserrat';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/montserrat-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/montserrat-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/montserrat-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/montserrat-latin-700-normal.woff2') format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:800;font-display:swap;src:url('../fonts/montserrat-latin-800-normal.woff2') format('woff2')}
@font-face{font-family:'Montserrat';font-style:italic;font-weight:400;font-display:swap;src:url('../fonts/montserrat-latin-400-italic.woff2') format('woff2')}
@font-face{font-family:'Montserrat';font-style:italic;font-weight:600;font-display:swap;src:url('../fonts/montserrat-latin-600-italic.woff2') format('woff2')}

:root{
  --green:#40A858; --green-600:#34924a; --green-700:#27733a; --green-50:#eef7f1; --green-100:#dcefe2;
  --ink:#14202b; --ink-2:#1d2c3a; --slate:#46586a; --muted:#6b7c8c;
  --line:#e6ebef; --bg:#ffffff; --bg-tint:#f4f8f5; --bg-dark:#14202b;
  --blue:#2BA8E0; --red:#E2241A; --orange:#F39C12; --lime:#6FB94E; --grey:#8A9197;
  --radius:14px; --radius-lg:22px; --radius-sm:9px;
  --shadow-sm:0 1px 3px rgba(20,32,43,.06),0 1px 2px rgba(20,32,43,.04);
  --shadow:0 10px 30px -12px rgba(20,32,43,.18);
  --shadow-lg:0 30px 60px -20px rgba(20,32,43,.28);
  --container:1200px; --gut:clamp(1rem,4vw,2rem); --header-h:74px;
  --t:cubic-bezier(.22,.61,.36,1);
  --font:'Montserrat',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,"Apple Color Emoji",sans-serif;
}

/* ---------- Reset / base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;overflow-x:hidden;overflow-x:clip}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;font-family:var(--font);color:var(--ink);background:var(--bg);
  line-height:1.65;font-size:17px;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
svg,video,canvas,iframe,embed,object{max-width:100%}
table{max-width:100%}
a{color:var(--green-700);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4{line-height:1.15;color:var(--ink);font-weight:800;letter-spacing:-.02em;margin:0 0 .5em}
p{margin:0 0 1rem}
ul{margin:0 0 1rem;padding-left:1.2rem}
button{font-family:inherit}
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gut)}
.container.narrow{max-width:820px}
.center{text-align:center}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--green);color:#fff;padding:.6rem 1rem;z-index:1000;border-radius:0 0 8px 0}
.skip-link:focus{left:0}
:focus-visible{outline:3px solid var(--green);outline-offset:2px;border-radius:4px}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.8rem 1.5rem;border-radius:999px;font-weight:700;font-size:.98rem;
  border:2px solid transparent;cursor:pointer;transition:transform .25s var(--t),box-shadow .25s var(--t),background .2s,color .2s;
  text-decoration:none;white-space:nowrap}
.btn:hover{text-decoration:none;transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn-lg{padding:1rem 1.9rem;font-size:1.05rem}
.btn-block{display:flex;width:100%}
.btn-primary{background:var(--green);color:#fff;box-shadow:0 8px 20px -8px rgba(64,168,88,.7)}
.btn-primary:hover{background:var(--green-600);color:#fff;box-shadow:0 14px 26px -8px rgba(64,168,88,.65)}
.btn-outline{background:transparent;color:var(--ink);border-color:var(--line)}
.btn-outline:hover{border-color:var(--green);color:var(--green-700)}
.btn-light{background:#fff;color:var(--green-700)}
.btn-light:hover{background:#fff;color:var(--green-700)}
.btn-ghost-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.5)}
.btn-ghost-light:hover{background:rgba(255,255,255,.12);color:#fff}
.link-button{background:none;border:none;color:inherit;cursor:pointer;text-decoration:underline;padding:0;font-size:inherit}

/* ---------- Header ---------- */
.site-header{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(255,255,255,.86);
  -webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);
  border-bottom:1px solid transparent;transition:.3s var(--t)}
.site-header.scrolled{box-shadow:var(--shadow-sm);border-bottom-color:var(--line)}
.header-inner{display:flex;align-items:center;gap:.75rem;height:var(--header-h);min-width:0;max-width:none}
.header-spacer{height:var(--header-h)}
.brand{display:flex;align-items:center;margin-right:auto;flex:0 0 auto}
.brand-logo{height:24px;width:auto}
.brand-logo--white{display:none}
.main-nav .nav-list{display:flex;align-items:center;flex-wrap:nowrap;gap:.15rem;list-style:none;margin:0;padding:0}
/* Lien de menu : taille uniforme, jamais sur deux lignes, s'adapte à l'écran */
.nav-link{display:inline-flex;align-items:center;gap:.25rem;white-space:nowrap;
  padding:.5rem .4rem;border-radius:8px;
  color:var(--ink-2);font-weight:600;font-size:.8125rem;line-height:1.1;transition:.2s}
.nav-link:hover{background:var(--green-50);color:var(--green-700);text-decoration:none}
.nav-link.is-active{color:var(--green-700)}
.caret{font-size:.7em;opacity:.7}
.has-dropdown{position:relative}
.dropdown{position:absolute;top:calc(100% + 6px);left:0;min-width:280px;background:#fff;border:1px solid var(--line);
  border-radius:var(--radius);box-shadow:var(--shadow);padding:.5rem;opacity:0;visibility:hidden;transform:translateY(8px);
  transition:.22s var(--t);display:flex;flex-direction:column}
.has-dropdown:hover .dropdown,.has-dropdown:focus-within .dropdown{opacity:1;visibility:visible;transform:translateY(0)}
.dropdown a{display:flex;align-items:center;gap:.6rem;padding:.6rem .7rem;border-radius:8px;color:var(--ink-2);font-weight:600;font-size:.92rem}
.dropdown a:hover{background:var(--bg-tint);text-decoration:none}
.dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto}
.header-cta{flex:0 0 auto;padding:.6rem .95rem;font-size:.82rem}
.nav-cta-mobile{display:none}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px;z-index:120}
.burger span{width:26px;height:3px;background:var(--ink);border-radius:2px;transition:.3s var(--t)}
.burger.open span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

/* Header confort sur grand ecran (>=1360px) — tient avec ~140px de marge */
@media (min-width:1360px){
  .header-inner{gap:1rem}
  .brand-logo{height:27px}
  .main-nav .nav-list{gap:.2rem}
  .nav-link{font-size:.875rem;padding:.55rem .55rem}
  .nav-link::after{left:.55rem;right:.55rem}
  .header-cta{font-size:.9rem;padding:.65rem 1.15rem}
}

/* ---------- Sections ---------- */
.section{padding:clamp(3.5rem,7vw,6rem) 0}
.section-tint{background:var(--bg-tint)}
.section-dark{background:var(--bg-dark);color:#dfe7ee}
.section-dark .section-title{color:#fff}
.section-title{font-size:clamp(1.7rem,3.6vw,2.6rem)}
.section-lead{font-size:1.15rem;color:var(--slate);max-width:760px}
.center .section-lead{margin-inline:auto}
.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.78rem;font-weight:800;color:var(--green);margin-bottom:.6rem}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:2.2rem;flex-wrap:wrap}
.lead-text{font-size:1.2rem;color:var(--ink-2)}
.link-arrow{font-weight:700;color:var(--green-700);white-space:nowrap}
.link-arrow--light{color:#bfe6cd}

/* ---------- Hero ---------- */
.hero{position:relative;padding:clamp(5rem,12vw,8.5rem) 0 clamp(3rem,7vw,5rem);overflow:hidden;isolation:isolate}
.hero-bg{position:absolute;inset:0;z-index:-1}
.blob{position:absolute;border-radius:50%;filter:blur(60px);opacity:.5}
.blob-1{width:480px;height:480px;background:radial-gradient(circle,#7fd79a,transparent 70%);top:-160px;right:-80px;animation:float1 16s var(--t) infinite}
.blob-2{width:420px;height:420px;background:radial-gradient(circle,#bfe6cd,transparent 70%);bottom:-180px;left:-120px;animation:float2 20s var(--t) infinite}
.grid-overlay{position:absolute;inset:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:44px 44px;opacity:.35;-webkit-mask-image:radial-gradient(ellipse at 50% 0,#000,transparent 75%);mask-image:radial-gradient(ellipse at 50% 0,#000,transparent 75%)}
.hero-inner{max-width:880px}
.hero-title{font-size:clamp(2.3rem,6vw,4.3rem);margin-bottom:1.2rem}
.hero-title .hl{color:var(--green);position:relative}
.hero-lead{font-size:clamp(1.1rem,2vw,1.35rem);color:var(--slate);max-width:680px;margin-bottom:2rem}
.hero-cta{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:2.4rem}
.hero-trust{list-style:none;display:flex;gap:2rem;flex-wrap:wrap;padding:0;margin:0;color:var(--muted);font-size:.98rem}
.hero-trust strong{color:var(--ink)}
.hero-trust li{position:relative;padding-left:1.4rem}
.hero-trust li::before{content:"";position:absolute;left:0;top:50%;width:9px;height:9px;border-radius:50%;background:var(--green);transform:translateY(-50%)}
.scroll-hint{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);width:24px;height:38px;border:2px solid var(--muted);border-radius:14px;opacity:.5}
.scroll-hint span{position:absolute;top:7px;left:50%;width:4px;height:8px;background:var(--muted);border-radius:2px;transform:translateX(-50%);animation:scrolldot 1.6s infinite}

/* ---------- Stats ---------- */
.stats-band{padding:clamp(2.5rem,5vw,3.5rem) 0;background:linear-gradient(180deg,#fff,var(--bg-tint))}
.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem}
.stat{text-align:center;padding:1rem}
.stat-value{font-size:clamp(2.2rem,5vw,3.4rem);font-weight:800;color:var(--green);letter-spacing:-.03em;line-height:1}
.stat-label{color:var(--slate);font-size:.95rem;margin-top:.6rem}

/* ---------- Cards grids ---------- */
.cards-grid{display:grid;gap:1.5rem}
.expertise-cards{grid-template-columns:repeat(4,minmax(0,1fr))}
.expertise-cards--full{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.8rem}
.exp-card{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);
  border-radius:var(--radius-lg);padding:1.8rem;overflow:hidden;transition:.3s var(--t);color:var(--ink)}
.exp-card::before{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--t)}
.exp-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);text-decoration:none;border-color:transparent}
.exp-card:hover::before{transform:scaleX(1)}
.exp-num{font-size:2.4rem;font-weight:800;color:var(--accent);line-height:1;opacity:.9}
.exp-name{font-size:1.25rem;margin:.7rem 0 .5rem}
.exp-card--lg .exp-name{font-size:1.5rem}
.exp-tagline{color:var(--slate);font-weight:600;margin-bottom:.6rem}
.exp-intro{color:var(--muted);font-size:.95rem}
.exp-more{margin-top:auto;padding-top:1rem;font-weight:700;color:var(--accent)}

/* ---------- Sectors ---------- */
.sector-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:1.2rem}
.sector-chip{display:flex;align-items:center;gap:.9rem;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);
  border-radius:var(--radius);padding:1.2rem 1.3rem;color:#eaf1f6;font-weight:700;transition:.25s var(--t)}
.sector-chip:hover{transform:translateY(-4px);background:rgba(255,255,255,.09);text-decoration:none;color:#fff}
.sector-chip--light{background:#fff;border-color:var(--line);color:var(--ink)}
.sector-chip--light:hover{box-shadow:var(--shadow);color:var(--ink)}
.sector-bar{width:5px;height:34px;border-radius:3px;background:var(--accent);flex:0 0 auto}
.sector-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
.sector-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.8rem;transition:.3s var(--t);color:var(--ink);position:relative}
.sector-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg);text-decoration:none}
.sector-card .sector-bar{height:42px;margin-bottom:1rem}
.sector-card-name{font-size:1.4rem}

/* ---------- Split layout ---------- */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,5vw,4rem);align-items:center}
.split--reverse .split-visual{order:-1}
.dimsorr-section{overflow:hidden}
.check-list{list-style:none;padding:0;display:grid;gap:.6rem;margin:1.3rem 0 1.8rem}
.check-list li{position:relative;padding-left:2rem;font-weight:600;color:var(--ink-2)}
.check-list li::before{content:"✓";position:absolute;left:0;top:0;width:1.4rem;height:1.4rem;background:var(--green-100);color:var(--green-700);border-radius:50%;display:grid;place-items:center;font-size:.8rem;font-weight:800}

/* ---------- DIMSoRR orbit ---------- */
.dimsorr-orbit{position:relative;width:min(100%,460px);aspect-ratio:1;margin-inline:auto}
.orbit-lines{position:absolute;inset:0;width:100%;height:100%}
.orbit-lines line{stroke:var(--line);stroke-width:2}
.orbit-ring{fill:none;stroke:var(--green-100);stroke-width:2;stroke-dasharray:5 8;animation:spin 60s linear infinite;transform-origin:center}
.orbit-node{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  border-radius:50%;color:#fff;box-shadow:var(--shadow);padding:.5rem}
.orbit-center{top:50%;left:50%;transform:translate(-50%,-50%);width:38%;height:38%;background:var(--c);z-index:3;
  border:5px solid #fff;animation:pulse 4s var(--t) infinite}
.orbit-sat{width:25%;height:25%;background:var(--c);z-index:2;animation:bob 6s var(--t) infinite;animation-delay:var(--delay)}
.pos-top{top:0;left:50%;transform:translate(-50%,0)}
.pos-right{top:50%;right:0;transform:translate(0,-50%)}
.pos-bottom{bottom:0;left:50%;transform:translate(-50%,0)}
.pos-left{top:50%;left:0;transform:translate(0,-50%)}
.orbit-key{font-weight:800;font-size:clamp(.9rem,2.4vw,1.4rem)}
.orbit-label{font-size:clamp(.5rem,1.3vw,.72rem);font-weight:600;line-height:1.15;opacity:.95;margin-top:.15rem}
.orbit-center .orbit-label{font-size:clamp(.6rem,1.5vw,.85rem)}

/* ---------- Steps / chips / callout ---------- */
.steps-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}
.step-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.8rem;position:relative;transition:.3s var(--t)}
.step-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.step-num{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:var(--accent);color:#fff;font-weight:800;font-size:1.3rem;margin-bottom:1rem}
.chips{display:flex;flex-wrap:wrap;gap:.6rem;margin:1rem 0 1.5rem}
.chip{display:inline-flex;align-items:center;padding:.45rem 1rem;border-radius:999px;background:var(--green-50);
  color:var(--ink-2);font-weight:600;font-size:.9rem;border:1px solid var(--green-100)}
.chip::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent,var(--green));margin-right:.5rem}
.tool-callout{display:flex;gap:1rem;align-items:flex-start;background:var(--green-50);border-left:5px solid var(--accent,var(--green));
  border-radius:var(--radius);padding:1.2rem 1.4rem;font-style:italic;color:var(--ink-2)}
.tool-callout p{margin:0}
.other-list{list-style:none;padding:0;display:grid;gap:.7rem}
.other-list a{display:flex;align-items:center;gap:.8rem;padding:1rem 1.2rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius);font-weight:700;color:var(--ink);transition:.25s var(--t)}
.other-list a:hover{transform:translateX(4px);border-color:var(--accent);text-decoration:none}
.other-list .arrow{margin-left:auto;color:var(--accent)}

/* ---------- Values ---------- */
.values-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem;margin-top:2rem}
.value-card{padding:1.6rem;border-radius:var(--radius-lg);background:#fff;border:1px solid var(--line);border-top:4px solid var(--green);transition:.3s var(--t)}
.value-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.value-card h3{font-size:1.15rem;margin-bottom:.4rem}
.value-card p{color:var(--slate);margin:0;font-size:.96rem}

/* ---------- Page hero (inner) ---------- */
.page-hero{position:relative;padding:clamp(7rem,12vw,9rem) 0 clamp(2.5rem,5vw,3.5rem);background:var(--bg-tint);
  border-bottom:1px solid var(--line);overflow:hidden}
.page-hero::before{content:"";position:absolute;top:0;left:0;width:100%;height:6px;background:var(--accent,var(--green))}
.page-hero--brand::before{background:linear-gradient(90deg,var(--blue),var(--green),var(--orange),var(--red))}
.page-title{font-size:clamp(2rem,5vw,3.4rem);margin-bottom:.6rem}
.page-title .thin{font-weight:400;color:var(--slate)}
.page-lead{font-size:1.2rem;color:var(--slate);max-width:720px}
.breadcrumb{font-size:.88rem;color:var(--muted);margin-bottom:1rem;display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
.breadcrumb a{color:var(--muted)}.breadcrumb a:hover{color:var(--green-700)}
.breadcrumb span{color:var(--muted)}

/* ---------- DIMSoRR cards grid ---------- */
.dim-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1.2rem}
.dim-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem;border-top:4px solid var(--accent);transition:.3s var(--t)}
.dim-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.dim-key{display:inline-grid;place-items:center;min-width:42px;height:42px;padding:0 .5rem;border-radius:12px;background:var(--accent);color:#fff;font-weight:800;margin-bottom:.8rem}
.dim-card h3{font-size:1.02rem}
.dim-card p{font-size:.9rem;color:var(--slate);margin:0}

/* ---------- Enjeux list ---------- */
.enjeux-list{list-style:none;padding:0;display:grid;gap:.9rem}
.enjeux-list li{position:relative;padding:1rem 1.2rem 1rem 3rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius);font-weight:600;color:var(--ink-2)}
.enjeux-list li::before{content:"→";position:absolute;left:1.1rem;top:50%;transform:translateY(-50%);color:var(--accent);font-weight:800}
.fact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.2rem}
.fact{background:var(--green-50);border-radius:var(--radius);padding:1.4rem;border:1px solid var(--green-100)}
.fact-value{font-size:2rem;font-weight:800;color:var(--green-700);line-height:1}
.fact-label{font-size:.9rem;color:var(--slate);margin-top:.4rem}
.pull-quote{border-left:5px solid var(--green);margin:1.5rem 0;padding:.5rem 0 .5rem 1.3rem;font-size:1.2rem;font-style:italic;color:var(--ink-2)}

/* ---------- Blog ---------- */
.blog-cards{grid-template-columns:repeat(3,minmax(0,1fr))}
.post-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;transition:.3s var(--t)}
.post-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.post-card-media{display:block;aspect-ratio:16/9;background:linear-gradient(135deg,var(--green),var(--blue));overflow:hidden}
.post-card-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--t)}
.post-card:hover .post-card-media img{transform:scale(1.05)}
.post-card-placeholder{display:grid;place-items:center;height:100%;color:rgba(255,255,255,.85);font-weight:800;font-size:3rem;letter-spacing:.1em}
.post-card-body{padding:1.4rem;display:flex;flex-direction:column;flex:1}
.post-card-cat{align-self:flex-start;font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:var(--green-700);background:var(--green-50);padding:.25rem .7rem;border-radius:999px;margin-bottom:.7rem}
.post-card-title{font-size:1.2rem;margin-bottom:.5rem}
.post-card-title a{color:var(--ink)}
.post-card-excerpt{color:var(--slate);font-size:.95rem;flex:1}
.post-card-meta{display:flex;align-items:center;justify-content:space-between;margin-top:1rem;font-size:.85rem;color:var(--muted)}
.blog-filters{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:2.2rem}
.filter-chip{padding:.5rem 1.1rem;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--ink-2);font-weight:600;font-size:.92rem;transition:.2s}
.filter-chip span{opacity:.6;font-size:.85em}
.filter-chip:hover{border-color:var(--green);text-decoration:none}
.filter-chip.is-active{background:var(--green);color:#fff;border-color:var(--green)}
.empty-note{text-align:center;color:var(--muted);padding:3rem 0}
.pagination{display:flex;gap:.5rem;justify-content:center;margin-top:3rem;flex-wrap:wrap}
.page-link{min-width:42px;text-align:center;padding:.55rem .9rem;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--ink-2);font-weight:700}
.page-link:hover{border-color:var(--green);text-decoration:none}
.page-link.is-active{background:var(--green);color:#fff;border-color:var(--green)}

/* ---------- Article ---------- */
.article-hero{padding:clamp(7rem,12vw,9rem) 0 2rem;background:var(--bg-tint);border-bottom:1px solid var(--line)}
.article-cat{display:inline-block;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:#fff;background:var(--accent);padding:.3rem .8rem;border-radius:999px;margin-bottom:1rem}
.article-cat:hover{text-decoration:none;opacity:.9}
.article-title{font-size:clamp(1.9rem,4.5vw,3rem)}
.article-meta{color:var(--muted);font-size:.92rem;display:flex;gap:.4rem;flex-wrap:wrap}
.article-cover{width:100%;border-radius:var(--radius-lg);margin:2rem 0;box-shadow:var(--shadow)}
.article-body{padding:2.5rem 0 1rem;font-size:1.1rem;color:var(--ink-2)}
.article-share{display:flex;gap:1rem;align-items:center;border-top:1px solid var(--line);padding:1.5rem 0;color:var(--muted);font-size:.9rem}
.article-share a{font-weight:700}

/* Rich content (rendu des articles) */
.rich-content h2{font-size:1.6rem;margin:2rem 0 .8rem}
.rich-content h3{font-size:1.3rem;margin:1.6rem 0 .6rem}
.rich-content p{margin:0 0 1.2rem}
.rich-content ul,.rich-content ol{margin:0 0 1.2rem;padding-left:1.4rem}
.rich-content li{margin-bottom:.4rem}
.rich-content a{color:var(--green-700);text-decoration:underline}
.rich-content img,.rich-content .ib-img{max-width:100%;height:auto;border-radius:var(--radius);margin:1rem 0}
.rich-content figure{margin:1.5rem 0}
.rich-content figcaption{font-size:.88rem;color:var(--muted);text-align:center;margin-top:.5rem}
.rich-content blockquote{border-left:4px solid var(--green);padding-left:1.2rem;margin:1.5rem 0;font-style:italic;color:var(--slate)}
.rich-content img[style*="float:left"],.rich-content img.align-left{float:left;margin:.3rem 1.4rem 1rem 0}
.rich-content img[style*="float:right"],.rich-content img.align-right{float:right;margin:.3rem 0 1rem 1.4rem}
.rich-content img.align-center{margin-inline:auto}
.rich-content::after{content:"";display:block;clear:both}

/* ---------- Forms ---------- */
.form-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem}
.form-group{margin-bottom:1.1rem}
.form label{display:block;font-weight:600;font-size:.92rem;margin-bottom:.4rem;color:var(--ink-2)}
.form input,.form textarea,.form select{width:100%;padding:.8rem 1rem;border:1.5px solid var(--line);border-radius:10px;font:inherit;color:var(--ink);background:#fff;transition:.2s}
.form input:focus,.form textarea:focus,.form select:focus{border-color:var(--green);outline:none;box-shadow:0 0 0 3px var(--green-100)}
.form textarea{resize:vertical}
.form-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-consent{display:flex;gap:.6rem;align-items:flex-start;font-size:.9rem;color:var(--slate);margin:.5rem 0 1.3rem;font-weight:400}
.form-consent input{width:auto;margin-top:.25rem}
.alert{padding:1rem 1.3rem;border-radius:var(--radius);margin-bottom:1.5rem;font-weight:600}
.alert-success{background:#e7f6ec;color:#1c7a3e;border:1px solid #b9e6c8}
.alert-error{background:#fdeceb;color:#b3261e;border:1px solid #f6c9c5}

/* ---------- Contact ---------- */
.contact-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:2.5rem;align-items:start}
.contact-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.8rem;margin-bottom:1.2rem}
.contact-list{list-style:none;padding:0;display:grid;gap:.9rem;margin-bottom:1.5rem}
.contact-list li{display:flex;gap:.7rem;align-items:flex-start;color:var(--ink-2)}
.contact-quote{background:var(--green);color:#fff}
.contact-quote p{margin:0;font-size:1.2rem;font-weight:700;font-style:italic}

/* ---------- Tabs (contact) ---------- */
.tabs{max-width:1040px;margin-inline:auto}
.tablist{position:relative;display:flex;gap:.4rem;border-bottom:2px solid var(--line);margin-bottom:2rem;flex-wrap:wrap}
.tab{position:relative;display:inline-flex;align-items:center;gap:.5rem;padding:.9rem 1.4rem;border:none;background:none;
  font:inherit;font-weight:700;font-size:1.02rem;color:var(--muted);cursor:pointer;transition:color .2s;border-radius:10px 10px 0 0}
.tab:hover{color:var(--green-700)}
.tab.is-active{color:var(--ink)}
.tab-ic{font-size:1.1em}
.tab-indicator{position:absolute;bottom:-2px;left:0;height:3px;background:var(--green);border-radius:3px;width:0;
  transition:transform .35s var(--t),width .35s var(--t)}
.tabpanel{animation:fadeTab .4s var(--t)}
.tabpanel[hidden]{display:none}
@keyframes fadeTab{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* ---------- Booking ---------- */
.booking-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:2.5rem;align-items:start}
.booking-calendar{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm)}
.cal-loading{padding:3rem;text-align:center;color:var(--muted)}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}
.cal-head h3{margin:0;font-size:1.2rem;text-transform:capitalize}
.cal-nav{display:flex;gap:.5rem}
.cal-nav button{width:38px;height:38px;border-radius:10px;border:1px solid var(--line);background:#fff;cursor:pointer;font-size:1.1rem;transition:.2s}
.cal-nav button:hover:not(:disabled){border-color:var(--green);color:var(--green-700)}
.cal-nav button:disabled{opacity:.35;cursor:not-allowed}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.cal-dow{text-align:center;font-size:.74rem;font-weight:800;color:var(--muted);text-transform:uppercase;padding:.4rem 0}
.cal-day{aspect-ratio:1;display:grid;place-items:center;border-radius:10px;border:1px solid transparent;background:var(--bg-tint);color:var(--ink-2);font-weight:600;cursor:pointer;transition:.15s}
.cal-day:hover:not(.disabled){background:var(--green-100)}
.cal-day.disabled{color:var(--line);background:transparent;cursor:not-allowed}
.cal-day.empty{background:transparent;cursor:default}
.cal-day.selected{background:var(--green);color:#fff;border-color:var(--green)}
.cal-day.today{border-color:var(--green)}
.slots{margin-top:1.4rem;border-top:1px solid var(--line);padding-top:1.2rem}
.slots h4{margin:0 0 .8rem;font-size:1rem}
.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:.5rem}
.slot-btn{padding:.6rem;border-radius:10px;border:1.5px solid var(--line);background:#fff;font-weight:700;cursor:pointer;transition:.15s;font-size:.92rem}
.slot-btn:hover:not(:disabled){border-color:var(--green);color:var(--green-700)}
.slot-btn.selected{background:var(--green);color:#fff;border-color:var(--green)}
.slot-btn:disabled{opacity:.35;text-decoration:line-through;cursor:not-allowed}
.slots-empty{color:var(--muted);font-size:.92rem}
.selected-slot{display:flex;align-items:center;gap:.7rem;background:var(--green-50);border:1px dashed var(--green);border-radius:var(--radius);padding:1rem 1.2rem;margin-bottom:1.3rem;font-weight:700;color:var(--green-700)}
.booking-tz{font-size:.84rem;color:var(--muted);margin-top:.8rem}
.booking-form-col .form{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.8rem;box-shadow:var(--shadow-sm)}

/* ---------- Legal ---------- */
.legal-doc h2{font-size:1.4rem;margin:2rem 0 .7rem}
.legal-doc .note{font-size:.9rem;color:var(--muted)}
.legal-table{width:100%;border-collapse:collapse;margin:1rem 0;font-size:.92rem}
.legal-table th,.legal-table td{border:1px solid var(--line);padding:.7rem .9rem;text-align:left}
.legal-table th{background:var(--bg-tint)}

/* ---------- CTA band ---------- */
.cta-band{position:relative;background:linear-gradient(135deg,var(--green-700),var(--green));color:#fff;padding:clamp(3rem,7vw,5rem) 0;overflow:hidden;isolation:isolate}
.cta-bg{position:absolute;inset:0;z-index:-1}
.blob-3{width:500px;height:500px;background:radial-gradient(circle,rgba(255,255,255,.25),transparent 70%);top:-200px;right:-100px}
.cta-inner{text-align:center;max-width:680px;margin-inline:auto}
.cta-inner h2{color:#fff;font-size:clamp(1.8rem,4vw,2.8rem)}
.cta-inner p{font-size:1.15rem;opacity:.92;margin-bottom:2rem}
.cta-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}

/* ---------- Footer ---------- */
.site-footer{background:var(--bg-dark);color:#aab8c4}
.footer-grid{display:grid;grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr));gap:2.5rem;padding:clamp(3rem,6vw,4.5rem) 0 2.5rem}
.footer-logo{height:34px;margin-bottom:1.2rem}
.footer-tagline{color:#cdd8e1;font-weight:600}
.footer-quote{font-style:italic;font-size:.92rem;opacity:.8;border-left:3px solid var(--green);padding-left:1rem;margin:1.2rem 0}
.footer-contact{font-size:.92rem;line-height:1.9}
.footer-contact a{color:#cdd8e1}
.footer-col h3{color:#fff;font-size:1rem;margin-bottom:1rem}
.footer-col ul{list-style:none;padding:0;display:grid;gap:.6rem}
.footer-col a{color:#aab8c4;font-size:.93rem}
.footer-col a:hover{color:var(--green);text-decoration:none}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1)}
.footer-bottom-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.3rem 0;font-size:.85rem;flex-wrap:wrap}
.footer-legal{display:flex;gap:1.2rem;flex-wrap:wrap;align-items:center}
.footer-legal a,.footer-legal .link-button{color:#aab8c4}
.footer-legal a:hover{color:var(--green);text-decoration:none}

/* ---------- Cookie banner ---------- */
.cookie-banner{position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:200;background:#fff;border:1px solid var(--line);
  border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:560px;margin-inline:auto;animation:slideUp .4s var(--t)}
.cookie-inner{padding:1.4rem}
.cookie-text strong{display:block;margin-bottom:.4rem}
.cookie-text p{font-size:.9rem;color:var(--slate);margin:0 0 1rem}
.cookie-actions{display:flex;gap:.7rem;justify-content:flex-end;flex-wrap:wrap}
.cookie-actions .btn-ghost-light{color:var(--ink);border-color:var(--line)}
.cookie-actions .btn-ghost-light:hover{background:var(--bg-tint)}

/* ---------- Back to top ---------- */
.back-to-top{position:fixed;right:1.3rem;bottom:1.3rem;z-index:150;width:46px;height:46px;border-radius:50%;border:none;
  background:var(--green);color:#fff;font-size:1.3rem;cursor:pointer;box-shadow:var(--shadow);opacity:0;visibility:hidden;
  transform:translateY(12px);transition:.3s var(--t)}
.back-to-top.show{opacity:1;visibility:visible;transform:translateY(0)}
.back-to-top:hover{background:var(--green-600)}

/* ---------- Error page ---------- */
.error-page{min-height:70vh;display:grid;place-items:center;padding:5rem 0}
.error-code{font-size:clamp(5rem,18vw,11rem);font-weight:800;line-height:1;color:var(--green);letter-spacing:-.05em}

/* ---------- Reveal animations ---------- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s var(--t),transform .7s var(--t)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}
  .blob,.orbit-ring,.orbit-center,.orbit-sat,.scroll-hint span{animation:none!important}}

/* ---------- Keyframes ---------- */
@keyframes float1{50%{transform:translate(-40px,30px) scale(1.1)}}
@keyframes float2{50%{transform:translate(40px,-30px) scale(1.08)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(64,168,88,.4)}50%{box-shadow:0 0 0 18px rgba(64,168,88,0)}}
@keyframes bob{50%{transform:var(--bob-t,translate(-50%,-8px))}}
.pos-right{--bob-t:translate(-8px,-50%)}
.pos-left{--bob-t:translate(8px,-50%)}
.pos-top{--bob-t:translate(-50%,-8px)}
.pos-bottom{--bob-t:translate(-50%,8px)}
@keyframes scrolldot{0%{opacity:1;top:7px}100%{opacity:0;top:20px}}
@keyframes slideUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}

/* ==========================================================================
   Polish & micro-interactions (inspiré tada — pro)
   ========================================================================== */
/* Barre de progression de lecture */
.scroll-progress{position:fixed;top:0;left:0;height:3px;width:0;z-index:200;
  background:linear-gradient(90deg,var(--green),var(--blue));transition:width .1s linear}

/* Texte highlight animé du hero */
.hero-title .hl{background:linear-gradient(100deg,var(--green),#2bd47a,var(--blue),var(--green));
  background-size:280% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  animation:hlflow 8s linear infinite}
.hero-title .hl::after{content:"";position:absolute;left:0;right:0;bottom:.06em;height:.12em;border-radius:4px;
  background:linear-gradient(90deg,var(--green),var(--blue));opacity:.25}
@keyframes hlflow{to{background-position:280% 0}}

/* Boutons : reflet au survol */
.btn-primary,.btn-light{position:relative;overflow:hidden}
.btn-primary::after,.btn-light::after{content:"";position:absolute;top:0;left:-120%;width:60%;height:100%;
  background:linear-gradient(120deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-20deg);transition:left .6s var(--t)}
.btn-primary:hover::after,.btn-light:hover::after{left:140%}

/* Sheen sur les cartes */
.exp-card,.sector-card,.value-card,.step-card,.dim-card,.post-card{position:relative}
.exp-card::after,.post-card::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%),rgba(64,168,88,.08),transparent 40%);opacity:0;transition:opacity .3s}
.exp-card:hover::after,.post-card:hover::after{opacity:1}

/* Marquee de mots-clés */
.marquee{overflow:hidden;border-block:1px solid var(--line);background:var(--bg-tint);padding:1.1rem 0;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee-track{display:flex;gap:3rem;width:max-content;animation:marquee 32s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-item{display:inline-flex;align-items:center;gap:.7rem;font-weight:800;font-size:1.05rem;color:var(--ink-2);
  text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
.marquee-item::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--green)}
@keyframes marquee{to{transform:translateX(-50%)}}

/* Lien animé (nav desktop) */
.nav-link{position:relative}
.nav-link::after{content:"";position:absolute;left:.4rem;right:.4rem;bottom:.25rem;height:2px;background:var(--green);
  transform:scaleX(0);transform-origin:left;transition:transform .25s var(--t)}
.nav-link:hover::after,.nav-link.is-active::after{transform:scaleX(1)}

/* Apparition directionnelle */
.reveal-left{opacity:0;transform:translateX(-30px);transition:opacity .7s var(--t),transform .7s var(--t)}
.reveal-right{opacity:0;transform:translateX(30px);transition:opacity .7s var(--t),transform .7s var(--t)}
.reveal-left.in,.reveal-right.in{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  .hero-title .hl{animation:none}
  .marquee-track{animation:none}
  .btn-primary::after,.btn-light::after{display:none}
  .reveal-left,.reveal-right{opacity:1;transform:none}
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width:1024px){
  .expertise-cards,.sector-grid,.dim-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .values-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .blog-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:1200px){
  .header-cta{display:none}
  .burger{display:flex}
  .main-nav{position:fixed;inset:var(--header-h) 0 auto 0;background:#fff;border-bottom:1px solid var(--line);
    box-shadow:var(--shadow);transform:translateY(-120%);transition:transform .35s var(--t);overflow:auto;
    max-height:calc(100vh - var(--header-h));max-height:calc(100dvh - var(--header-h))}
  .main-nav.open{transform:translateY(0)}
  .main-nav .nav-list{flex-direction:column;align-items:stretch;flex-wrap:nowrap;padding:1rem;gap:.2rem}
  .nav-link{padding:.9rem 1rem;font-size:1.05rem;white-space:normal}
  .has-dropdown .dropdown{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:none;
    padding:0 0 .5rem 1rem;min-width:0}
  .nav-cta-mobile{display:block;margin-top:.8rem}
  .nav-cta-mobile .btn{width:100%}
  .split,.contact-layout,.booking-layout{grid-template-columns:minmax(0,1fr)}
  .split--reverse .split-visual{order:0}
  .steps-grid{grid-template-columns:minmax(0,1fr)}
  .sector-cards{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:560px){
  body{font-size:16px}
  .expertise-cards,.sector-grid,.values-grid,.blog-cards,.dim-grid,.stats-grid,.form-row,.fact-grid{grid-template-columns:1fr}
  .hero-trust{gap:.5rem 1.2rem}
  .footer-grid{grid-template-columns:1fr 1fr}
  .footer-brand{grid-column:1/-1}
  .footer-bottom-inner{flex-direction:column;align-items:flex-start}
  .cta-actions,.hero-cta{flex-direction:column}
  .cta-actions .btn,.hero-cta .btn{width:100%}
}

/* ============================================================
   Performance Durable (page RSE) + visuel DIMSoRR officiel
   ============================================================ */

/* Visuel DIMSoRR officiel — remplace l'ancien diagramme animé (home, à propos, méthode) */
.dimsorr-figure{margin:0;width:100%}
.dimsorr-figure img{display:block;width:100%;height:auto;border-radius:var(--radius-lg)}

/* Baseline du hero, sous le lead */
.page-tagline{margin-top:.9rem;font-style:italic;font-size:1.05rem;color:var(--muted);max-width:680px}

/* Intro de section centrée */
.pd-head{max-width:760px;margin:0 auto 2.6rem;text-align:center}
.pd-head .section-lead{margin-inline:auto}

/* Grille des 6 piliers DIMSoRR (réutilise .dim-card / .dim-key) */
.pd-pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}

/* Bloc « 12 jours » */
.pd-stat{display:flex;align-items:baseline;gap:.6rem;margin-bottom:1.4rem;color:var(--green-700)}
.pd-stat-num{font-size:clamp(3.4rem,8vw,4.8rem);font-weight:800;line-height:1}
.pd-stat-unit{display:flex;flex-direction:column;font-weight:700;font-size:1.3rem;line-height:1.1}
.pd-stat-unit small{font-size:.78rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.pd-proof{list-style:none;padding:0;display:grid;gap:.9rem;margin:0}
.pd-proof li{position:relative;padding-left:1.7rem;color:var(--slate);font-size:.98rem;line-height:1.5}
.pd-proof li::before{content:"\2713";position:absolute;left:0;top:0;color:var(--green);font-weight:800}
.pd-proof strong{color:var(--ink-2)}

/* Grille des engagements ODD */
.odd-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:1.2rem}
.odd-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:.3s var(--t)}
.odd-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.odd-chip{display:flex;align-items:center;gap:.85rem;padding:1rem 1.1rem;background:var(--odd,var(--green));color:#fff}
.odd-num{display:inline-grid;place-items:center;min-width:40px;height:40px;border-radius:10px;background:rgba(255,255,255,.22);font-weight:800;font-size:1.18rem;flex:none}
.odd-name{font-weight:700;font-size:.95rem;line-height:1.25}
.odd-items{list-style:none;padding:1rem 1.1rem 1.2rem;margin:0;display:grid;gap:.55rem}
.odd-items li{position:relative;padding-left:1.25rem;font-size:.9rem;color:var(--slate);line-height:1.45}
.odd-items li::before{content:"";position:absolute;left:0;top:.5em;width:7px;height:7px;border-radius:50%;background:var(--odd,var(--green))}

/* Vos enjeux (numérotés) */
.pd-enjeux{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem;margin-top:2rem}
.pd-enjeu{display:flex;gap:1rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem;transition:.3s var(--t)}
.pd-enjeu:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.pd-enjeu-num{flex:none;display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--green-50);color:var(--green-700);font-weight:800;border:1px solid var(--green-100)}
.pd-enjeu-body h3{font-size:1.02rem;margin-bottom:.35rem}
.pd-enjeu-body p{font-size:.92rem;color:var(--slate);margin:0;line-height:1.55}

/* Lien réseau social — pied de page */
.footer-social{display:inline-flex;align-items:center;gap:.6rem;margin-top:1.1rem;color:#cdd8e1;font-size:.92rem;font-weight:600}
.footer-social svg{flex:none}
.footer-social:hover{color:var(--green);text-decoration:none}

/* Bénéfices DIMSoRR — page méthode */
.benefits-kicker{font-weight:800;color:var(--ink-2);margin-bottom:.4rem}
.dimsorr-note{font-size:.95rem;color:var(--muted);font-style:italic;margin-top:.6rem}

@media (max-width:1024px){
  .pd-pillars{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pd-enjeux{grid-template-columns:1fr}
}
@media (max-width:560px){
  .pd-pillars{grid-template-columns:1fr}
  .odd-grid{grid-template-columns:1fr}
}

/* ===== Révisions éditoriales : contenu enrichi (expertises / secteurs / à propos) ===== */
.rich-text p:not(.lead-text):not(.sec-note){color:var(--slate);font-size:1.02rem;line-height:1.75;margin:0 0 1.1rem}
.rich-text p:not(.lead-text):last-child{margin-bottom:0}
.pain-block{margin-top:2.2rem}
.pain-title{font-size:clamp(1.25rem,2.3vw,1.6rem);line-height:1.25;margin-bottom:1.1rem;color:var(--ink)}
.sec-block{margin-bottom:2.6rem}
.sec-block:last-child{margin-bottom:0}
.sec-block .section-title{margin-bottom:1rem}
.sec-note{font-weight:700;color:var(--ink-2);background:var(--green-50);border-left:4px solid var(--green);border-radius:0 var(--radius) var(--radius) 0;padding:.9rem 1.1rem;margin-top:1.3rem}
.enjeux-list li strong{color:var(--ink)}
.values-detail{display:grid;gap:1.2rem;max-width:880px;margin:2.4rem auto 0}
.value-detail{display:flex;gap:1.2rem;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem 1.7rem}
.value-detail-num{flex:none;display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--green-50);color:var(--green-700);font-weight:800;font-size:1.05rem;border:1px solid var(--green-100)}
.value-detail-body h3{font-size:1.12rem;margin-bottom:.3rem;color:var(--ink)}
.value-detail-lead{font-style:italic;color:var(--green-700);font-size:.95rem;margin-bottom:.6rem}
.value-detail-body p:last-child{color:var(--slate);font-size:.96rem;line-height:1.65;margin:0}
@media (max-width:560px){
  .value-detail{flex-direction:column;gap:.8rem;padding:1.3rem}
}

/* ===== Schéma « équation de la réussite » (Transformation responsable) ===== */
.equation-figure{margin:2.4rem auto 0;max-width:640px;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:2.2rem 1.6rem;box-shadow:var(--shadow);text-align:center}
.equation{display:flex;align-items:center;justify-content:center;gap:1rem;flex-wrap:wrap}
.eq-result{font-size:clamp(1.3rem,3vw,1.9rem);font-weight:800;color:var(--ink)}
.eq-equals{font-size:clamp(1.3rem,3vw,1.9rem);font-weight:700;color:var(--muted)}
.eq-fraction{display:inline-flex;flex-direction:column;align-items:center;gap:.5rem}
.eq-bar{width:100%;height:3px;background:var(--ink-2);border-radius:2px}
.eq-num,.eq-den{display:flex;align-items:center;justify-content:center;gap:.6rem;flex-wrap:wrap;padding:.2rem .4rem}
.eq-term{display:inline-flex;align-items:center;gap:.3rem;font-weight:700;font-size:clamp(.95rem,2vw,1.15rem);padding:.35rem .8rem;border-radius:999px}
.eq-up{background:var(--green-50);color:var(--green-700);border:1px solid var(--green-100)}
.eq-down{background:#fdeceb;color:var(--red);border:1px solid #f6d4d1}
.eq-arrow{font-weight:800}
.eq-times{font-weight:700;color:var(--muted)}
.equation-figure figcaption{margin:1.4rem auto 0;color:var(--slate);font-size:.96rem;line-height:1.6;max-width:520px}
@media (max-width:560px){
  .eq-result,.eq-equals{font-size:1.4rem}
}
.eq-result .eq-arrow-up{color:var(--green-700);font-weight:800}
/* Accroche « Adhésion & performance des équipes » sur une seule ligne (desktop) */
@media (min-width:1024px){
  .page-exp-performance-equipes .page-hero .page-lead{max-width:none}
}
.sector-grid .sector-chip{flex:0 1 230px}
.odd-grid .odd-card{flex:0 1 258px}

/* ==========================================================================
   Correctifs responsive — adaptation totale, zero debordement horizontal
   ========================================================================== */
/* Enfants de grilles/flex : autorises a retrecir sous leur contenu minimal */
.split>*,.contact-layout>*,.booking-layout>*,.cards-grid>*,.stats-grid>*,
.values-grid>*,.dim-grid>*,.steps-grid>*,.footer-grid>*,.fact-grid>*,
.pd-pillars>*,.pd-enjeux>*,.form-row>*,.header-inner>*{min-width:0}
.main-nav{min-width:0}

/* Contenus riches (articles du blog) : jamais plus larges que l'ecran */
.rich-content{max-width:100%}
.rich-content pre{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.rich-content code{overflow-wrap:anywhere}
.rich-content table{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.rich-content iframe,.rich-content video{width:100%}
.rich-content img[style*="float"]{max-width:min(46%,320px)}

/* Liens longs (e-mails, URL) : cesure plutot que debordement */
.footer-contact a,.contact-list a,.article-share a{overflow-wrap:anywhere}

/* Footer : palier tablette (4 colonnes trop etroites entre 561 et 1024px) */
@media (max-width:1024px){
  .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .footer-brand{grid-column:1/-1}
}

/* Tableaux des pages legales : defilement interne sur mobile, pas de scroll page */
@media (max-width:760px){
  .legal-table{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .legal-table th,.legal-table td{min-width:140px}
}

/* Tres petits ecrans (<=400px) : marges internes reduites, tout reste visible */
@media (max-width:400px){
  .booking-calendar{padding:1rem .8rem}
  .equation-figure{padding:1.4rem .9rem}
  .tab{padding:.75rem .8rem;font-size:.92rem}
  .cookie-banner{left:.6rem;right:.6rem;bottom:.6rem}
  .exp-card,.sector-card,.step-card,.contact-card{padding:1.3rem}
  .hero-title{font-size:clamp(1.9rem,8.5vw,2.3rem)}
}
