
/* ===== Publications (études téléchargeables) ===== */
.pubgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(14px, 1.6vw, 22px); }
.pubcard { position: relative; display: flex; flex-direction: column; gap: 14px; padding: 30px 28px 28px; border-radius: var(--r); background: var(--noir); color: var(--blanc); text-decoration: none; border: 1px solid rgba(161,132,100,.25); transition: transform .4s cubic-bezier(.2,.8,.2,1), border-color .3s; min-height: 330px; }
.pubcard:hover { transform: translateY(-4px); border-color: var(--taupe); }
.pubcard .pk { font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: var(--taupe); }
.pubcard .pn { font-size: clamp(38px, 3.6vw, 54px); font-weight: 300; line-height: 1; letter-spacing: -.02em; }
.pubcard .pnl { font-size: 13px; opacity: .7; margin-top: -6px; }
.pubcard h3 { font-size: 19px; font-weight: 500; line-height: 1.3; margin: auto 0 0; }
.pubcard .pm { display: flex; justify-content: space-between; align-items: center; font-size: 12px; opacity: .75; padding-top: 14px; border-top: 1px solid rgba(248,248,248,.12); }
.pubcard .pm svg.arrow { width: 22px; height: 10px; color: var(--taupe); }
.bg-blanc .pubcard, .bg-tint .pubcard { box-shadow: 0 20px 40px -24px rgba(0,0,0,.45); }
.pubfeat { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(24px, 4vw, 60px); align-items: center; padding: clamp(26px, 3vw, 44px); border-radius: var(--r); background: var(--noir); color: var(--blanc); margin-bottom: clamp(24px, 3vw, 40px); }
.pubfeat .pk { font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: var(--taupe); }
.pubfeat h2 { font-size: clamp(26px, 2.6vw, 38px); font-weight: 400; line-height: 1.15; margin: 14px 0 16px; }
.pubfeat p { opacity: .8; line-height: 1.7; }
.pubfeat .fig { background: #fff; }
.pub-meta { display: flex; flex-wrap: wrap; gap: 8px 22px; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--taupe); margin: 0 0 18px; }
.pub-dl { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; margin-top: 30px; }
.pblock { display: grid; grid-template-columns: 1fr 1.15fr; gap: clamp(28px, 5vw, 80px); align-items: center; }
.pblock.rev > :first-child { order: 2; }
.pblock p { line-height: 1.8; }
.fig { margin: 0; background: #fff; border-radius: var(--r); padding: clamp(18px, 2.2vw, 30px); box-shadow: 0 30px 60px -36px rgba(0,0,0,.35); }
.fig.dark { background: var(--noir); }
.fig figcaption { font-size: 12px; color: #6b6b6b; margin-top: 14px; line-height: 1.5; }
.fig.dark figcaption { color: rgba(248,248,248,.6); }
svg.chart { width: 100%; height: auto; display: block; font-family: var(--font, Poppins, sans-serif); }
svg.chart .c-lab { font-size: 13px; fill: #3C3C3C; }
svg.chart .c-val { font-size: 13px; font-weight: 600; fill: #131313; }
svg.chart .c-big { font-size: 30px; font-weight: 500; fill: #131313; }
svg.cmap .m-lab { font-size: 16px; fill: #F8F8F8; font-weight: 500; }
svg.cmap .m-val { font-size: 13px; fill: #A18464; }
svg.cmap .m-sea { font-size: 12px; fill: rgba(248,248,248,.4); letter-spacing: .3em; text-transform: uppercase; }
.reading { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; counter-reset: rd; }
.reading li { list-style: none; background: rgba(248,248,248,.04); border: 1px solid rgba(248,248,248,.1); border-radius: var(--r-sm); padding: 28px 26px; line-height: 1.7; counter-increment: rd; }
.reading li::before { content: "0" counter(rd); display: block; font-size: 34px; font-weight: 300; color: var(--taupe); margin-bottom: 14px; }
.reading { padding: 0; margin: 0; }
.srcs { padding: 0; margin: 0; list-style: none; display: grid; gap: 10px; }
.srcs li { padding: 14px 0; border-bottom: 1px solid rgba(0,0,0,.1); font-size: 14px; line-height: 1.6; }
.srcs li::before { content: "Source · "; color: var(--taupe); font-weight: 500; }
/* fenêtre de téléchargement */
.gate[hidden] { display: none !important; }
.gate { position: fixed; inset: 0; z-index: 400; display: grid; place-items: center; padding: 20px; background: rgba(19,19,19,.72); backdrop-filter: blur(6px); }
.gate-box { position: relative; width: min(640px, 100%); max-height: calc(100vh - 40px); overflow: auto; background: var(--blanc); color: var(--noir); border-radius: var(--r); padding: clamp(24px, 3.4vw, 40px); box-shadow: 0 40px 90px -30px rgba(0,0,0,.6); }
.gate-x { position: absolute; top: 14px; right: 14px; width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(0,0,0,.15); background: transparent; font-size: 22px; line-height: 1; cursor: pointer; color: var(--noir); }
.gate .pk { font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: var(--taupe); }
.gate h2 { font-size: clamp(22px, 2.2vw, 28px); font-weight: 500; line-height: 1.2; margin: 10px 44px 8px 0; }
.gate p.g-sub { color: #555; font-size: 14px; line-height: 1.6; margin: 0 0 20px; }
.g-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 14px; }
.g-f { display: flex; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 500; }
.g-f.full { grid-column: 1 / -1; }
.g-f input, .g-f select { height: 48px; border: 1px solid #BDBDBD; border-radius: 10px; padding: 0 14px; font: inherit; font-weight: 400; font-size: 15px; background: #fff; color: var(--noir); }
.g-f input:focus, .g-f select:focus { outline: 2px solid var(--taupe); outline-offset: 1px; border-color: var(--taupe); }
.g-consent { display: flex; gap: 10px; align-items: flex-start; font-size: 12px; line-height: 1.5; color: #555; margin: 16px 0 0; }
.g-consent input { margin-top: 3px; width: 18px; height: 18px; accent-color: var(--taupe); }
.g-err { color: #A1342C; font-size: 13px; margin: 12px 0 0; }
.g-actions { margin-top: 22px; display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.g-done { text-align: left; }
.g-done .ok { width: 54px; height: 54px; border-radius: 50%; display: grid; place-items: center; background: var(--taupe); color: #fff; margin-bottom: 14px; }
.g-done .ok svg { width: 22px; height: 22px; }
/* ressources et articles */
.rescard .ricon { width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; border: 1px solid rgba(161,132,100,.5); color: var(--taupe); }
.rescard .ricon svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.bg-noir .pubcard { background: var(--anthracite); }
.artgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(14px, 1.6vw, 22px); }
.artcard { display: flex; flex-direction: column; gap: 12px; padding: 28px; border-radius: var(--r); background: #fff; color: var(--noir); text-decoration: none; border: 1px solid rgba(0,0,0,.08); transition: transform .4s cubic-bezier(.2,.8,.2,1), border-color .3s; }
.artcard:hover { transform: translateY(-4px); border-color: var(--taupe); }
.artcard .pk { font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--taupe); }
.artcard h3 { font-size: 19px; font-weight: 500; line-height: 1.3; margin: 0; }
.artcard p { font-size: 14px; line-height: 1.6; color: #555; margin: 0; }
.artcard .pm { margin-top: auto; display: flex; justify-content: space-between; font-size: 12px; color: #6b6b6b; padding-top: 14px; border-top: 1px solid rgba(0,0,0,.08); }
.artcard .pm svg.arrow { width: 22px; height: 10px; color: var(--taupe); }
.pubnav { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: clamp(24px, 3vw, 36px); }
.pubnav a { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 20px; border-radius: 999px; border: 1px solid rgba(0,0,0,.2); color: var(--noir); text-decoration: none; font-size: 14px; }
.pubnav a b { font-weight: 500; color: var(--taupe); }
.pubnav a:hover { border-color: var(--taupe); }
@media (max-width: 1000px) { .artgrid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .artgrid { grid-template-columns: 1fr; } }

@media (max-width: 1000px) { .pubgrid { grid-template-columns: 1fr 1fr; } .pubfeat, .pblock { grid-template-columns: 1fr; } .pblock.rev > :first-child { order: 0; } .reading { grid-template-columns: 1fr; } }
@media (max-width: 640px) { .pubgrid { grid-template-columns: 1fr; } .g-grid { grid-template-columns: 1fr; } }

/* ===== Outils en ligne ===== */
.tool { background: #fff; color: var(--noir); border-radius: var(--r); padding: clamp(20px, 3vw, 40px); box-shadow: 0 30px 60px -36px rgba(0,0,0,.35); display: grid; gap: 22px; }
.tool h3 { font-size: 18px; font-weight: 500; margin: 0; }
.t-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; }
.t-btn, .t-actions button, .t-copy, .t-toggle button { min-height: 44px; padding: 0 18px; border-radius: 999px; border: 1px solid var(--noir); background: transparent; color: var(--noir); font: inherit; font-size: 13px; cursor: pointer; }
.t-btn:hover, .t-actions button:hover, .t-copy:hover { background: var(--noir); color: #fff; }
.t-toggle { display: inline-flex; gap: 6px; }
.t-toggle button[aria-pressed="true"] { background: var(--noir); color: #fff; }
.t-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.t-scroll { overflow-x: auto; }
.t-table { width: 100%; border-collapse: collapse; min-width: 640px; font-size: 14px; }
.t-table th { text-align: left; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: #6b6b6b; font-weight: 500; padding: 8px 6px; border-bottom: 1px solid #DDD; }
.t-table td { padding: 6px; border-bottom: 1px solid #EEE; vertical-align: middle; }
.t-table tbody th { text-transform: none; letter-spacing: 0; font-size: 14px; color: var(--noir); font-weight: 400; }
.tool input, .tool select, .tool textarea { width: 100%; min-height: 42px; border: 1px solid #CFCFCF; border-radius: 8px; padding: 8px 10px; font: inherit; font-size: 14px; background: #FDFCFA; color: var(--noir); box-sizing: border-box; }
.tool textarea { resize: vertical; }
.tool input:focus, .tool select:focus, .tool textarea:focus { outline: 2px solid var(--taupe); outline-offset: 1px; }
.t-x { width: 36px; height: 36px; border-radius: 50%; border: 1px solid #DDD; background: transparent; cursor: pointer; font-size: 18px; color: #777; }
.t-sum { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; }
.t-kpi { background: var(--noir); color: var(--blanc); border-radius: var(--r-sm); padding: 18px 20px; }
.t-kpi span { display: block; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--taupe); }
.t-kpi b { display: block; font-size: 28px; font-weight: 300; margin-top: 6px; }
.t-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.t-bar { display: grid; grid-template-columns: 1fr; gap: 4px; margin: 0 0 12px; position: relative; font-size: 13px; }
.t-bar i { display: block; height: 12px; background: var(--anthracite); border-radius: 3px; min-width: 2px; }
.t-bar:first-child i, .t-bar.me i { background: var(--taupe); }
.t-bar b { position: absolute; right: 0; top: 0; font-weight: 600; }
.t-note { color: #777; font-size: 14px; margin: 0; }
.t-cal { border-collapse: collapse; min-width: 720px; width: 100%; font-size: 12px; }
.t-cal th { padding: 6px; text-align: center; font-weight: 500; color: #6b6b6b; }
.t-cal tbody th { text-align: left; color: var(--noir); font-weight: 400; max-width: 240px; }
.t-cal td { border: 2px solid #fff; background: #F1EEE9; height: 26px; }
.t-cal td.on { background: var(--taupe); }
.t-fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; }
.t-f { display: flex; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 500; }
.t-f.full { grid-column: 1 / -1; }
.t-out { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.t-out div { background: #F6F3EE; border-radius: 12px; padding: 14px 16px; font-size: 13px; color: #555; }
.t-out b { display: block; font-size: 22px; font-weight: 500; color: var(--noir); margin-top: 4px; }
.t-verdict { padding: 14px 18px; border-radius: 12px; font-size: 15px; }
.t-verdict.ok { background: #EAF1E6; color: #2F5130; } .t-verdict.ko { background: #F6E6E3; color: #8A2C22; }
.t-prog { height: 10px; background: #EEE; border-radius: 999px; overflow: hidden; } .t-prog i { display: block; height: 100%; width: 0; background: var(--taupe); transition: width .3s; }
.t-list { list-style: none; padding: 0; margin: 0; }
.t-list li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 16px; padding: 12px 0; border-bottom: 1px solid #EEE; font-size: 14px; }
.t-list label { display: flex; gap: 12px; align-items: flex-start; cursor: pointer; flex: 1 1 360px; }
.t-list input[type=checkbox] { width: 20px; height: 20px; min-height: 0; flex: 0 0 20px; margin-top: 2px; accent-color: var(--taupe); }
.t-list li.ok span { text-decoration: line-through; color: #8A8A8A; }
.t-list li.late time { color: #A1342C; }
.t-list time { font-size: 12px; color: #6b6b6b; white-space: nowrap; }
.t-list b { font-weight: 600; }
.t-ph { font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--taupe); margin: 18px 0 0; font-weight: 500; }
.t-pc { background: var(--noir); color: var(--blanc); border-radius: var(--r); padding: 26px; display: grid; gap: 12px; align-content: start; }
.pc-top { display: flex; gap: 14px; align-items: center; }
.pc-av { width: 56px; height: 56px; border-radius: 50%; background: var(--taupe); display: grid; place-items: center; font-size: 24px; color: var(--noir); }
.pc-top b { display: block; font-size: 20px; font-weight: 500; } .pc-top span { font-size: 13px; opacity: .7; }
.pc-row { border-top: 1px solid rgba(248,248,248,.12); padding-top: 10px; } .pc-row span { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--taupe); } .pc-row p { margin: 4px 0 0; font-size: 14px; line-height: 1.6; }
.t-q { padding-left: 22px; margin: 0; display: grid; gap: 10px; font-size: 15px; line-height: 1.6; list-style: none; }
.t-nps { display: grid; grid-template-columns: repeat(11, 1fr); gap: 6px; }
.t-nps label { font-size: 12px; text-align: center; display: grid; gap: 4px; }
.t-nps input { text-align: center; padding: 6px 2px; }
.t-gauge { position: relative; height: 12px; border-radius: 999px; background: linear-gradient(90deg, #C9675C, #E6C46B 50%, #6FA36A); margin: 30px 0 8px; }
.t-gauge i { position: absolute; top: -8px; width: 4px; height: 28px; background: var(--noir); border-radius: 2px; transform: translateX(-50%); transition: left .3s; }
.t-score { font-size: 54px; font-weight: 300; line-height: 1; }
.t-tpl { border: 1px solid #E5E5E5; border-radius: 12px; padding: 16px 18px; }
.t-tpl-h { display: flex; justify-content: space-between; gap: 10px; align-items: center; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--taupe); }
.t-tpl p { margin: 10px 0 0; font-size: 15px; line-height: 1.6; }
.t-avis { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 12px; }
.t-rules { background: #F6F3EE; border-radius: 12px; padding: 18px 22px; font-size: 14px; line-height: 1.7; }
.t-rules ul { margin: 6px 0 0; padding-left: 18px; }
[data-grille] td:nth-child(2) select, [data-grille] td:nth-child(2) input { min-width: 64px; }
.dlbar { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; margin-bottom: 26px; }
/* ===== Lecteur de document (rapport) ===== */
.docview { display: grid; gap: 24px; justify-items: center; overflow-x: auto; padding-bottom: 10px; }
.docview .pg { width: 210mm; min-height: 297mm; padding: 22mm 20mm 20mm; position: relative; overflow: hidden; background: #F8F8F8; color: #131313; box-shadow: 0 30px 60px -30px rgba(0,0,0,.6); font-family: Poppins, sans-serif; flex: 0 0 auto; box-sizing: border-box; }
.docview .pg.dark { background: #131313; color: #F8F8F8; } .docview .pg.taupe { background: #A18464; }
.docview .kick { font-size: 9pt; letter-spacing: .25em; text-transform: uppercase; color: #A18464; } .docview .pg.taupe .kick { color: #131313; }
.docview h1 { font-weight: 300; font-size: 34pt; line-height: 1.1; margin: 10mm 0 8mm; color: inherit; }
.docview h2 { font-weight: 400; font-size: 20pt; line-height: 1.2; margin: 4mm 0 6mm; color: inherit; }
.docview p { font-size: 10.5pt; line-height: 1.75; font-weight: 300; color: inherit; }
.docview .logo { width: 46mm; display: block; }
.docview .foot { position: absolute; left: 20mm; right: 20mm; bottom: 12mm; display: flex; justify-content: space-between; font-size: 8pt; letter-spacing: .12em; text-transform: uppercase; color: #8A8A8A; }
.docview .kpis { display: grid; grid-template-columns: 1fr 1fr; gap: 6mm; margin-top: 10mm; }
.docview .kpi { border-top: 1px solid rgba(161,132,100,.6); padding-top: 5mm; } .docview .kpi b { display: block; font-weight: 300; font-size: 30pt; color: #A18464; } .docview .kpi span { font-size: 10pt; opacity: .8; }
.docview .fig { background: #fff; border-radius: 4mm; padding: 6mm; margin-top: 6mm; box-shadow: none; } .docview .fig.dark { background: #131313; }
.docview .cap { font-size: 8pt; color: #6b6b6b; margin-top: 3mm; }
.docview ol.rd { padding: 0; margin: 8mm 0 0; list-style: none; counter-reset: r; } .docview ol.rd li { counter-increment: r; padding: 6mm 0; border-top: 1px solid rgba(248,248,248,.2); font-size: 11pt; line-height: 1.7; font-weight: 300; }
.docview ol.rd li::before { content: "0" counter(r); display: block; color: #A18464; font-size: 20pt; margin-bottom: 2mm; }
.docview ul.src { padding: 0; list-style: none; } .docview ul.src li { font-size: 9.5pt; padding: 3mm 0; border-bottom: 1px solid rgba(0,0,0,.15); }
@media (max-width: 860px) { .docview .pg { width: 100%; min-height: 0; padding: 10% 7% 16%; } .docview .kpi b { font-size: 24pt; } .t-grid2 { grid-template-columns: 1fr; } .t-nps { grid-template-columns: repeat(6, 1fr); } }
@media print { .header, .footer, .menu, .shero, .dlbar, .final, .gate, .cookie, .fab, .progress, .cursor { display: none !important; } .docview .pg { box-shadow: none; page-break-after: always; break-after: page; width: 210mm; height: 297mm; min-height: 297mm; margin: 0; -webkit-print-color-adjust: exact; print-color-adjust: exact; } .docview .pg:last-child { page-break-after: auto; break-after: auto; } .docview { display: block; gap: 0; padding: 0; overflow: visible; } body { background: #fff !important; } main, main > section, main .wrap { padding: 0 !important; margin: 0 !important; max-width: none !important; } }
@page { size: A4; margin: 0; }

/* ===== Rubriques séparées ===== */
.pubnav a.on { background: var(--noir); color: var(--blanc); border-color: var(--noir); }
.pubfeat.big { padding: clamp(30px, 4vw, 60px); min-height: 440px; }
.pubfeat.big h2 { font-size: clamp(30px, 3.4vw, 50px); }
.pubfeat .feat-in { display: grid; gap: 10px; background: rgba(248,248,248,.05); border: 1px solid rgba(248,248,248,.12); border-radius: var(--r-sm); padding: clamp(20px, 2.4vw, 32px); }
.pubfeat .feat-in .ricon { width: 64px; height: 64px; display: grid; place-items: center; border-radius: 50%; background: var(--taupe); color: var(--noir); margin-bottom: 8px; }
.pubfeat .feat-in .ricon svg { width: 30px; height: 30px; }
.pubfeat .feat-in li { list-style: none; padding: 12px 0; border-top: 1px solid rgba(248,248,248,.12); font-size: 15px; line-height: 1.55; }
.pubfeat .feat-in li b { display: block; color: var(--taupe); font-weight: 500; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; margin-bottom: 2px; }
.pubfeat .feat-in ul { margin: 0; padding: 0; }
.pubfeat blockquote { margin: 0; font-size: clamp(22px, 2.2vw, 32px); line-height: 1.35; font-weight: 300; border-left: 3px solid var(--taupe); padding-left: clamp(18px, 2vw, 30px); }
.pubfeat blockquote span { display: block; margin-top: 18px; font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--taupe); }
.hubgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.hubcard { display: grid; gap: 14px; align-content: start; padding: clamp(24px, 2.6vw, 36px); border-radius: var(--r); background: var(--blanc); color: var(--noir); text-decoration: none; border: 1px solid #E6E1DA; transition: transform .3s, box-shadow .3s; }
.hubcard:hover { transform: translateY(-4px); box-shadow: 0 30px 50px -30px rgba(0,0,0,.35); }
.hubcard .hn { font-size: 54px; font-weight: 300; color: var(--taupe); line-height: 1; }
.hubcard h3 { font-size: 22px; font-weight: 500; margin: 0; }
.hubcard p { margin: 0; color: #555; line-height: 1.6; }
.hubcard .last { font-size: 13px; border-top: 1px solid #EEE; padding-top: 12px; color: #6b6b6b; }
.hubcard .last b { display: block; color: var(--noir); font-weight: 500; margin-top: 4px; }
@media (max-width: 1000px) { .hubgrid { grid-template-columns: 1fr; } .pubfeat.big { min-height: 0; } }

.pas { margin: 48px 0 0; padding: clamp(28px, 4vw, 52px); border-radius: var(--r); background: var(--noir); color: var(--blanc); position: relative; overflow: hidden; }
.pas::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: var(--taupe); }
.pas .pas-k { font-size: 11px; letter-spacing: .24em; text-transform: uppercase; color: var(--taupe); margin: 0; }
.a-body .pas .pas-h, .pas .pas-h { font-size: clamp(26px, 2.6vw, 38px); line-height: 1.15; font-weight: 400; margin: 14px 0 18px; color: var(--blanc); padding: 0; border: 0; }
.pas .pas-ag { font-size: 17px; line-height: 1.7; opacity: .78; margin: 0 0 24px; }
.pas .pas-so { border-top: 1px solid rgba(248,248,248,.15); padding-top: 22px; }
.pas .pas-l { display: inline-block; font-size: 11px; letter-spacing: .2em; text-transform: uppercase; background: var(--taupe); color: var(--noir); padding: 6px 12px; border-radius: 999px; }
.pas .pas-so p { font-size: 18px; line-height: 1.65; margin: 14px 0 0; }
.pas .pas-ft { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; margin-top: 28px; }
.pas .pas-ft span { font-size: 13px; letter-spacing: .06em; opacity: .7; }

.lg-dl { display: grid; grid-template-columns: minmax(160px, 240px) 1fr; gap: 0; margin: 0; border-top: 1px solid var(--ligne, #ddd); }
.lg-dl dt, .lg-dl dd { margin: 0; padding: 12px 0; border-bottom: 1px solid var(--ligne, #ddd); font-size: 15px; }
.lg-dl dt { font-weight: 500; padding-right: 16px; }
.lg-table { overflow-x: auto; margin: 18px 0; }
.lg-table table { border-collapse: collapse; width: 100%; min-width: 620px; font-size: 14px; }
.lg-table th { text-align: left; font-weight: 500; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; padding: 10px 12px; background: var(--noir); color: var(--blanc); }
.lg-table td { padding: 12px; border-bottom: 1px solid var(--ligne, #ddd); vertical-align: top; line-height: 1.55; }
.lg-box { background: #F1EEE9; border-left: 4px solid var(--taupe); padding: 18px 22px; border-radius: 8px; margin-top: 18px; }
.g-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } .g-grid input, .g-grid select { min-width: 0; width: 100%; box-sizing: border-box; }
@media (max-width: 600px) { .g-grid { grid-template-columns: 1fr !important; } }
.g-info { font-size: 12px; line-height: 1.55; opacity: .75; margin: 10px 0 0; }
.nl-info { font-size: 11px; line-height: 1.5; opacity: .6; margin: 8px 0 0; }
.nl-info a { color: inherit; }
.rv-note { font-size: 12px; opacity: .65; margin-top: 18px; }
@media (max-width: 700px) { .lg-dl { grid-template-columns: 1fr; } .lg-dl dt { padding-bottom: 0; border-bottom: 0; } }

/* ===== Pôles : navigation et visuels ===== */
.pole-nav { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; border: 1px solid rgba(19,19,19,.12); border-radius: var(--r); overflow: hidden; margin-top: clamp(30px, 4vw, 50px); }
.pole-nav a { display: grid; gap: 4px; padding: 18px 20px; text-decoration: none; color: var(--noir); border-right: 1px solid rgba(19,19,19,.12); transition: background .25s; }
.pole-nav a:last-child { border-right: 0; }
.pole-nav a span { font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--taupe); }
.pole-nav a b { font-weight: 500; font-size: 16px; }
.pole-nav a:hover { background: #F1EEE9; }
.pole-nav a[aria-current] { background: var(--noir); color: var(--blanc); }
.vz-sec .vz-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.vz-card { background: #fff; color: var(--noir); border-radius: var(--r); padding: clamp(20px, 2.4vw, 32px); display: grid; gap: 14px; align-content: start; }
.vz-card.dark { background: #1c1c1c; color: var(--blanc); border: 1px solid rgba(248,248,248,.08); }
.vz-card.wide { grid-column: 1 / -1; }
.vz-card h3 { margin: 0; font-size: 19px; font-weight: 500; }
.vz-card .vz-k { font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--taupe); }
.vz-card > p { margin: 0; font-size: 14.5px; line-height: 1.65; opacity: .85; }
.vz-card .vz-cap { font-size: 12px; opacity: .6; margin: 0; }
.vz-svg { width: 100%; height: auto; display: block; }
.vz-pestel { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.vz-pt { background: #F6F3EE; border-radius: 12px; padding: 14px; display: grid; gap: 4px; align-content: start; }
.vz-pt b { font-size: 30px; font-weight: 300; color: var(--taupe); line-height: 1; }
.vz-pt span { font-weight: 500; font-size: 14px; }
.vz-pt p { margin: 0; font-size: 12.5px; line-height: 1.5; color: #555; }
.vz-swot { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.vz-q { border-radius: 12px; padding: 16px 18px; }
.vz-q h4 { margin: 4px 0 8px; font-size: 18px; font-weight: 500; }
.vz-q ul { margin: 0; padding-left: 16px; font-size: 13.5px; line-height: 1.6; }
.vz-qk { font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase; opacity: .7; }
.vz-q.s { background: var(--taupe); color: var(--noir); } .vz-q.w { background: #F1EEE9; } .vz-q.o { background: var(--noir); color: var(--blanc); } .vz-q.t { background: #3C3C3C; color: var(--blanc); }
.vz-table { overflow-x: auto; } .vz-table table { width: 100%; border-collapse: collapse; font-size: 14px; min-width: 460px; }
.vz-table th, .vz-table td { text-align: left; padding: 11px 10px; border-bottom: 1px solid #ECE7E0; }
.vz-table thead th { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: #6b6b6b; font-weight: 500; }
.vz-table tbody th { font-weight: 500; } .vz-table tr.hi { background: #F6F0E8; } .vz-table tr.hi td:last-child { color: #7a5f42; font-weight: 600; }
.vz-dots { display: inline-flex; gap: 4px; } .vz-dots i { width: 10px; height: 10px; border-radius: 50%; background: #E3DDD4; } .vz-dots i.on { background: var(--taupe); }
.vz-persona { background: var(--noir); color: var(--blanc); border-radius: 14px; padding: 22px; display: grid; gap: 10px; }
.vz-ph { display: flex; gap: 14px; align-items: center; margin-bottom: 4px; } .vz-ph b { display: block; font-size: 20px; font-weight: 500; } .vz-ph span { font-size: 12.5px; opacity: .7; }
.vz-av { width: 54px; height: 54px; border-radius: 50%; background: var(--taupe); color: var(--noir); display: grid; place-items: center; font-size: 22px; }
.vz-pr { border-top: 1px solid rgba(248,248,248,.12); padding-top: 9px; } .vz-pr span { font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--taupe); } .vz-pr p { margin: 3px 0 0; font-size: 14px; line-height: 1.55; }
.vz-quote { margin: 6px 0 0; font-style: italic; color: #d9cbb8; font-size: 14px; }
.vz-gantt { overflow-x: auto; } .vz-gantt table { border-collapse: separate; border-spacing: 3px; width: 100%; min-width: 560px; font-size: 12.5px; }
.vz-gantt thead th { font-weight: 500; color: #6b6b6b; text-align: center; font-size: 11px; }
.vz-gantt tbody th { text-align: left; font-weight: 400; padding-right: 10px; white-space: nowrap; }
.vz-gantt td { background: #F1EEE9; height: 22px; border-radius: 4px; } .vz-gantt td.on { background: var(--taupe); }
.vz-gantt tr.grp th { font-size: 10.5px; letter-spacing: .18em; text-transform: uppercase; color: var(--taupe); font-weight: 600; padding-top: 10px; }
.vz-gal { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.vz-gal figure { margin: 0; position: relative; border-radius: var(--r); overflow: hidden; aspect-ratio: 4 / 5; background: #222; }
.vz-gal img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .8s var(--ease, ease); }
.vz-gal figure:hover img { transform: scale(1.04); }
.vz-gal figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 40px 18px 16px; background: linear-gradient(transparent, rgba(0,0,0,.75)); color: #fff; display: grid; gap: 2px; }
.vz-gal figcaption b { font-weight: 500; font-size: 16px; } .vz-gal figcaption span { font-size: 12.5px; opacity: .8; }
.vz-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.vz-kpi { background: #1c1c1c; border: 1px solid rgba(248,248,248,.08); border-radius: 14px; padding: 18px; display: grid; gap: 6px; }
.vz-kpi span { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: #a7a7a7; } .vz-kpi b { font-size: 30px; font-weight: 300; color: var(--blanc); }
.vz-kpi em { font-style: normal; font-size: 12px; } .vz-kpi em.up { color: #9cc49a; } .vz-kpi em.down { color: #e09a90; }
.vz-funnel { display: grid; justify-items: center; gap: 6px; } .vz-fs { background: var(--taupe); color: var(--noir); border-radius: 10px; padding: 12px 16px; text-align: center; display: grid; }
.vz-fs:nth-child(2) { background: #c4ad92; } .vz-fs:nth-child(3) { background: #e2d5c3; } .vz-fs:nth-child(4) { background: var(--noir); color: var(--blanc); }
.vz-fs b { font-size: 22px; font-weight: 400; } .vz-fs span { font-size: 12.5px; } .vz-fn { margin: 8px 0 0; font-size: 13px; color: #6b6b6b; }
.vz-note { font-size: 12.5px; opacity: .65; margin-top: 22px; }
.next-pole { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 20px; padding: clamp(26px, 3.4vw, 44px); border-radius: var(--r); background: var(--taupe); color: var(--noir); text-decoration: none; }
.next-pole span { font-size: 12px; letter-spacing: .2em; text-transform: uppercase; } .next-pole b { display: block; font-size: clamp(24px, 2.6vw, 36px); font-weight: 400; margin-top: 6px; } .next-pole p { margin: 6px 0 0; max-width: 620px; }
.tools-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.pm-tool { border: 1px solid rgba(248,248,248,.14); border-radius: 14px; padding: 18px 20px; } .pm-tool b { display: block; color: var(--taupe); font-weight: 500; font-size: 15px; margin-bottom: 6px; } .pm-tool p { margin: 0; font-size: 14px; line-height: 1.6; opacity: .85; }
@media (max-width: 1000px) { .vz-sec .vz-grid, .tools-list { grid-template-columns: 1fr; } .vz-kpis { grid-template-columns: 1fr 1fr; } .vz-gal { grid-template-columns: 1fr 1fr; } .pole-nav { grid-template-columns: 1fr 1fr; } .pole-nav a:nth-child(2) { border-right: 0; } .pole-nav a:nth-child(-n+2) { border-bottom: 1px solid rgba(19,19,19,.12); } }
@media (max-width: 600px) { .vz-pestel { grid-template-columns: 1fr 1fr; } .vz-swot { grid-template-columns: 1fr; } .vz-gal { grid-template-columns: 1fr; } }

/* ===== Menu : sous-catégories Expertises ===== */
.menu-acc { all: unset; box-sizing: border-box; cursor: pointer; display: flex; align-items: center; gap: 18px; font-size: clamp(2rem, min(4.4vw, 5.63vh), 3.6rem); font-weight: 500; line-height: 1.25; color: var(--blanc); transition: color .4s, padding-left .5s var(--ease); }
.menu-acc:hover, .menu-acc[aria-expanded="true"] { color: var(--taupe); }
.menu-acc:hover { padding-left: 12px; }
.menu-acc:focus-visible { outline: 2px solid var(--taupe); outline-offset: 4px; }
.acc-ic { position: relative; width: 22px; height: 22px; flex: 0 0 22px; }
.acc-ic::before, .acc-ic::after { content: ""; position: absolute; left: 0; top: 50%; width: 22px; height: 2px; background: currentColor; transition: transform .5s var(--ease); }
.acc-ic::after { transform: rotate(90deg); }
.menu-acc[aria-expanded="true"] .acc-ic::after { transform: rotate(0deg); }
.menu-sub { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .6s var(--ease); }
.menu-sub > ul { overflow: hidden; min-height: 0; list-style: none; margin: 0; padding: 0 0 0 4px; }
.menu-sub.open { grid-template-rows: 1fr; }
.menu.open .menu-main .menu-sub li { animation: none; }
.menu-sub li { opacity: 0; transform: translateX(-28px); transition: opacity .45s var(--ease), transform .55s var(--ease); }
.menu-sub.open li { opacity: 1; transform: none; }
.menu-sub.open li:nth-child(1) { transition-delay: .12s; } .menu-sub.open li:nth-child(2) { transition-delay: .19s; }
.menu-sub.open li:nth-child(3) { transition-delay: .26s; } .menu-sub.open li:nth-child(4) { transition-delay: .33s; }
.menu-main .menu-sub a { display: flex; align-items: baseline; gap: 14px; font-size: clamp(1.15rem, min(2vw, 2.6vh), 1.6rem); font-weight: 400; line-height: 1.9; color: var(--doux-clair, #cfcfcf); }
.menu-main .menu-sub a small { font-size: 11px; letter-spacing: .2em; color: var(--taupe); }
.menu-main .menu-sub a:hover { color: var(--blanc); }
.menu-sub.open > ul { padding-bottom: 10px; }
@media (prefers-reduced-motion: reduce) { .menu-sub, .menu-sub li { transition: none; } }

/* ===== Pôles : déroulé, méthodes expliquées, métiers, exemples compacts ===== */
.pm-steps { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; counter-reset: st; border-top: 1px solid rgba(19,19,19,.14); }
.pm-step { counter-increment: st; padding: 24px 22px 6px 0; position: relative; }
.pm-step::before { content: counter(st, decimal-leading-zero); display: block; font-size: 13px; letter-spacing: .14em; color: var(--taupe); margin-bottom: 14px; }
.pm-step::after { content: ""; position: absolute; top: -5px; left: 0; width: 9px; height: 9px; border-radius: 50%; background: var(--taupe); }
.pm-step h3 { margin: 0 0 8px; font-size: 18px; font-weight: 500; }
.pm-step p { margin: 0; font-size: 14.5px; line-height: 1.65; opacity: .85; }
.pm-deep { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: clamp(30px, 5vw, 80px); align-items: start; }
.pm-deep-h { position: sticky; top: 110px; }
.pm-deep-h .s2-head { display: block; margin: 0; } .pm-deep-h .s2-head > p { margin-top: 18px; max-width: 420px; }
.pm-art { padding: clamp(26px, 3vw, 38px) 0; border-top: 1px solid rgba(19,19,19,.12); display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 0 18px; }
.pm-art:first-child { border-top: 0; padding-top: 0; }
.pm-art .n { font-size: 13px; letter-spacing: .12em; color: var(--taupe); padding-top: 7px; }
.pm-art h3 { margin: 0 0 12px; font-size: clamp(20px, 1.9vw, 24px); font-weight: 500; line-height: 1.3; }
.pm-art p { margin: 0 0 12px; font-size: 16px; line-height: 1.75; }
.pm-art .pm-tools { font-size: 13px; color: #6b6b6b; margin: 4px 0 0; } .pm-art .pm-tools b { font-weight: 500; color: var(--noir); }
.pm-met { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.pm-m { background: #1c1c1c; border: 1px solid rgba(248,248,248,.08); border-radius: var(--r); padding: 22px 20px; display: grid; gap: 10px; align-content: start; color: var(--blanc); }
.pm-m .ico { width: 28px; height: 28px; color: var(--taupe); }
.pm-m h3 { margin: 0; font-size: 17px; font-weight: 500; }
.pm-m p { margin: 0; font-size: 14px; line-height: 1.6; opacity: .82; }
.pm-m .pm-plus { font-size: 13.5px; color: #d9cbb8; opacity: 1; border-top: 1px solid rgba(248,248,248,.12); padding-top: 10px; }
.pm-met-note { margin-top: 22px; font-size: 15px; line-height: 1.7; color: var(--blanc); opacity: .8; max-width: 860px; }
.vz-mini .vz-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.vz-mini .vz-card { padding: 16px 16px 14px; gap: 8px; overflow: hidden; }
.vz-mini .vz-card.wide { grid-column: auto; }
.vz-mini .vz-card h3 { font-size: 15px; }
.vz-mini .vz-card > p:not(.vz-cap) { display: none; }
.vz-mini .vz-cap { font-size: 11px; }
.vz-mini .vz-body { zoom: .58; pointer-events: none; max-height: 520px; overflow: hidden; }
.vz-mini .s2-head h2 { font-size: clamp(24px, 2.4vw, 32px); }
.vz-mini.s2 { padding-top: clamp(50px, 6vw, 80px); padding-bottom: clamp(50px, 6vw, 80px); }
.vz-mini .vz-gal { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }
.vz-mini .vz-gal figcaption { padding: 26px 10px 10px; } .vz-mini .vz-gal figcaption b { font-size: 13px; } .vz-mini .vz-gal figcaption span { display: none; }
@media (max-width: 1100px) { .pm-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); } .pm-met { grid-template-columns: repeat(2, minmax(0, 1fr)); } .vz-mini .vz-gal { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 900px) { .pm-deep { grid-template-columns: 1fr; } .pm-deep-h { position: static; } .vz-mini .vz-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .pm-steps { grid-template-columns: 1fr; } .pm-step { padding-right: 0; } .pm-met { grid-template-columns: 1fr; } .vz-mini .vz-grid { grid-template-columns: 1fr; } .vz-mini .vz-gal { grid-template-columns: 1fr 1fr; } .pm-art { grid-template-columns: 1fr; } .pm-art .n { padding: 0 0 6px; } }
