/* No remote fonts, trackers or third-party rendering dependencies. */
:root{--ink:#173733;--accent:#a8d8b5;--strong:#246653;--wash:#edf3ed;--paper:#fafbf8;--line:#dce4db;--muted:#5d6e68;--white:#fff;--max:1248px;color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.65;font-size:16px;-webkit-font-smoothing:antialiased}body[data-theme=blue]{--ink:#132f46;--accent:#b2d9ec;--strong:#236087;--wash:#edf3f7;--paper:#fbfcfd;--line:#dce5ec;--muted:#526776}body[data-theme=orange]{--ink:#292e2d;--accent:#f8b46b;--strong:#9a4820;--wash:#f4eee6;--paper:#fcfaf6;--line:#e5ddd2;--muted:#67665f}body[data-theme=navy]{--ink:#1e3042;--accent:#c7d8f0;--strong:#354f79;--wash:#edf1f7;--paper:#fcfcfd;--line:#dbe1e9;--muted:#5a6677}body[data-theme=plum]{--ink:#3c3040;--accent:#e2c9e2;--strong:#79517b;--wash:#f4edf3;--paper:#fcfafc;--line:#e6dce5;--muted:#706272}body[data-theme=steel]{--ink:#102b3f;--accent:#f2a33a;--strong:#1f5c7a;--wash:#edf3f6;--paper:#fbfcfd;--line:#d6e1e7;--muted:#506675}body[data-theme=olive]{--ink:#333e2d;--accent:#d0daa1;--strong:#536536;--wash:#f0f2e7;--paper:#fcfcf8;--line:#e0e4d3;--muted:#646d56}body[data-theme=clay]{--ink:#423129;--accent:#efc4a2;--strong:#91522f;--wash:#f5ece4;--paper:#fcfaf7;--line:#e7ddd3;--muted:#78685b}body[data-theme=cyan]{--ink:#173b42;--accent:#b3e4e4;--strong:#236970;--wash:#eaf4f3;--paper:#f9fcfb;--line:#d5e6e3;--muted:#536e71}
a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,summary,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}img{max-width:100%;display:block}a,button{touch-action:manipulation}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--strong);outline-offset:5px}p{margin:0 0 1.2em}h1,h2,h3,h4{line-height:1.1;margin:0;font-weight:500;letter-spacing:-.045em}h1{font-size:clamp(44px,5.4vw,78px)}h2{font-size:clamp(32px,3.5vw,49px)}h3{font-size:24px;letter-spacing:-.025em}small{font-size:13px}.container{width:min(var(--max),calc(100% - 96px));margin-inline:auto}.skip-link{position:fixed;left:20px;top:-100px;z-index:100;background:var(--ink);color:white;padding:12px 20px}.skip-link:focus{top:12px}.topbar{background:var(--ink);color:#f5f8f4;font-size:11px;letter-spacing:.06em}.topbar .container{min-height:32px;display:flex;justify-content:space-between;align-items:center;gap:16px}.topbar a{border-bottom:1px solid #ffffff70}.site-header{background:color-mix(in srgb,var(--paper) 97%,transparent);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;backdrop-filter:blur(14px)}.header-inner{display:flex;align-items:center;gap:24px;min-height:88px}.brand{display:flex;gap:11px;align-items:center;flex-shrink:0}.brand img{width:40px;height:42px;object-fit:contain}.brand-name{font-size:18px;letter-spacing:-.04em;font-weight:700;line-height:1.2}.brand-sub{font-size:9px;letter-spacing:.16em;text-transform:uppercase;display:block;margin-top:5px;color:var(--muted)}.main-nav{display:flex;align-items:center;gap:25px;margin-left:auto;font-size:13px}.main-nav a{position:relative;white-space:nowrap}.main-nav a:not(.button):after{content:'';position:absolute;bottom:-9px;left:0;right:0;height:2px;transform:scaleX(0);transform-origin:left;background:var(--strong);transition:transform .2s}.main-nav a:hover:after,.main-nav a[aria-current=page]:after{transform:scaleX(1)}.button{display:inline-flex;justify-content:center;align-items:center;gap:24px;min-height:50px;padding:12px 23px;border:1px solid var(--ink);background:var(--ink);color:white;font-size:13px;font-weight:600;border-radius:4px;line-height:1.4;text-align:center;transition:background .2s,transform .2s}.button:hover{background:var(--strong);transform:translateY(-2px)}.button.light{background:var(--accent);color:var(--ink);border-color:var(--accent)}.button.outline{color:var(--ink);background:transparent}.button.outline:hover{background:var(--wash)}.button.small{min-height:42px;padding:10px 17px;font-size:12px;gap:14px}.arrow{font-size:20px;line-height:1;font-weight:400}.menu-toggle{display:none;border:1px solid var(--line);background:transparent;padding:10px 13px;border-radius:4px;color:var(--ink)}.eyebrow{text-transform:uppercase;font-size:10px;font-weight:600;letter-spacing:.15em;display:flex;align-items:center;gap:11px;margin:0 0 23px}.eyebrow:before{content:'';height:6px;width:6px;background:var(--strong);border-radius:50%}.hero{padding:62px 0 0}.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:68px;align-items:center}.hero h1{margin-bottom:25px}.hero h1 em{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.055em;color:var(--strong)}.hero-lead{color:var(--muted);max-width:490px;font-size:17px;line-height:1.75}.actions{display:flex;gap:20px;align-items:center;flex-wrap:wrap;margin-top:27px}.text-link{display:inline-flex;align-items:center;gap:12px;font-size:13px;font-weight:600;border-bottom:1px solid var(--line);padding:7px 0}.text-link:hover{border-color:var(--strong)}.hero-visual{position:relative;min-width:0}.hero-photo{height:492px;position:relative;overflow:hidden;border-radius:5px 5px 65px 5px;background:var(--wash)}.hero-photo img{width:100%;height:100%;object-fit:cover}.hero-photo:after{content:'';position:absolute;inset:55% 0 0;background:linear-gradient(transparent,#102c2a99)}.photo-label{position:absolute;bottom:25px;left:26px;color:white;font-size:11px;letter-spacing:.06em;z-index:1}.photo-tag{position:absolute;left:-23px;top:30px;background:var(--paper);padding:12px 18px;border:1px solid var(--line);font-size:10px;font-weight:bold;letter-spacing:.1em;box-shadow:0 8px 30px #14292208}.visual-note{position:absolute;right:24px;bottom:-22px;width:237px;background:var(--paper);padding:18px 21px;border:1px solid var(--line);border-radius:4px;box-shadow:0 8px 30px #14292209}.visual-note strong{font-size:13px;display:block;margin-bottom:4px}.visual-note span{font-size:11px;color:var(--muted);line-height:1.5;display:block}.hero-proof{display:flex;gap:20px;flex-wrap:wrap;color:var(--muted);font-size:11px;margin-top:30px}.hero-proof span:before{content:'✓';color:var(--strong);margin-right:7px}.topic-rail{display:grid;grid-template-columns:1.2fr repeat(3,1fr);gap:30px;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:70px;padding:23px 0;font-size:11px;color:var(--muted)}.topic-rail strong{font-size:12px;color:var(--ink);font-weight:500}.topic-rail span{border-left:1px solid var(--line);padding-left:24px}.section{padding:88px 0}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:35px;margin-bottom:35px}.section-heading h2{max-width:680px}.section-heading p{max-width:400px;color:var(--muted);font-size:15px;margin:0}.section-kicker{font-size:10px;letter-spacing:.16em;font-weight:600;text-transform:uppercase;margin-bottom:18px;color:var(--strong)}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:26px}.card{background:var(--white);border:1px solid var(--line);border-radius:5px;position:relative;overflow:hidden;transition:transform .25s,box-shadow .25s}.card:hover{transform:translateY(-4px);box-shadow:0 12px 32px #1737330b}.card-content{padding:27px}.card .card-number{display:block;font-size:11px;color:var(--strong);font-family:monospace;letter-spacing:.1em;margin-bottom:36px}.card h3{margin-bottom:15px}.card p{font-size:14px;line-height:1.7;color:var(--muted);margin-bottom:22px}.card .card-arrow{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:bold;border-top:1px solid var(--line);padding-top:17px;margin-top:auto}.card>a{display:flex;flex-direction:column;height:100%}.card>a .card-content{display:flex;flex-direction:column;flex:1}.card-image{height:188px;width:100%;object-fit:cover}.feature-card{background:var(--ink);color:white;border-color:var(--ink)}.feature-card .card-number,.feature-card p{color:#d3ded9}.feature-card .card-arrow{border-color:#ffffff30}.feature-card .pill{align-self:start;background:var(--accent);color:var(--ink);padding:5px 9px;font-size:9px;letter-spacing:.1em;border-radius:2px;margin-bottom:23px}.feature-card h3{font-size:32px;margin:9px 0 20px}.wash{background:var(--wash)}.intro-split{display:grid;grid-template-columns:.9fr 1.1fr;gap:100px;align-items:start}.intro-split>div>p{color:var(--muted);font-size:17px;line-height:1.85}.intro-split h2{max-width:420px}.skills{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:27px}.skill{border-top:1px solid var(--line);padding-top:18px}.skill span{font-size:11px;color:var(--strong);display:block;margin-bottom:10px}.skill h3{font-size:18px;margin-bottom:9px;letter-spacing:-.02em}.skill p{font-size:13px;color:var(--muted);margin:0}.wide-photo{position:relative;margin-top:40px;overflow:hidden;border-radius:5px;height:350px}.wide-photo img{width:100%;height:100%;object-fit:cover}.wide-photo figcaption{position:absolute;bottom:18px;left:23px;background:var(--paper);padding:9px 15px;font-size:11px}.route-strip{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);margin-top:36px}.route-stop{padding:22px;border-right:1px solid var(--line)}.route-stop:last-child{border-right:0}.route-stop small{display:block;color:var(--strong);margin-bottom:12px;font-family:monospace}.route-stop strong{font-size:15px}.route-stop p{font-size:12px;color:var(--muted);margin-top:8px;margin-bottom:0}.planner{display:grid;grid-template-columns:1fr 1fr;gap:75px;align-items:center;background:var(--ink);color:white;padding:52px;border-radius:6px}.planner .section-kicker{color:var(--accent)}.planner p{color:#d7e2df;font-size:15px;margin-top:22px;max-width:390px}.planner h2{font-size:42px}.planner-form{background:var(--paper);color:var(--ink);padding:28px;border-radius:4px}.field{display:grid;gap:8px;margin-bottom:17px}.field label{font-size:12px;font-weight:600}.field select,.field input,.field textarea{border:1px solid var(--line);border-radius:3px;padding:12px;background:white;color:var(--ink);width:100%;min-height:46px}.planner-form .button{width:100%}.planner-result{border-top:1px solid var(--line);margin-top:22px;padding-top:20px}.planner-result p{color:var(--ink);font-size:14px;margin:0 0 15px}.planner-form .privacy-note{font-size:10px;color:var(--muted);margin:14px 0 0}.risk-list{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:33px}.risk-item{padding-left:20px;border-left:2px solid var(--strong)}.risk-item h3{font-size:20px;margin-bottom:12px}.risk-item p{font-size:14px;color:var(--muted);margin:0}.callout{border:1px solid var(--line);padding:22px 26px;background:var(--wash);border-radius:3px;margin:30px 0}.callout p{font-size:14px;margin:8px 0 0;color:var(--muted)}.callout strong{font-size:14px}.faq-split{display:grid;grid-template-columns:.8fr 1.2fr;gap:100px}.faq-split>div>p{color:var(--muted);margin-top:20px}.faq-list details{border-bottom:1px solid var(--line);padding:20px 0}.faq-list details:first-child{border-top:1px solid var(--line)}.faq-list summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:25px;font-weight:500;font-size:16px;line-height:1.45}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:'+';font-size:24px;color:var(--strong);flex-shrink:0}.faq-list details[open] summary:after{content:'−'}.faq-list details p{font-size:14px;color:var(--muted);margin:16px 25px 0 0}.cta-band{background:var(--wash);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:60px 0}.cta-band .container{display:flex;align-items:center;justify-content:space-between;gap:45px}.cta-band h2{max-width:620px;font-size:42px}.cta-band p{color:var(--muted);margin:16px 0 0;max-width:580px;font-size:15px}.footer{padding:58px 0 23px;background:var(--paper)}.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:45px}.footer-title{font-size:18px;font-weight:bold}.footer p{font-size:12px;color:var(--muted);margin-top:14px;max-width:270px}.footer h3{font-size:11px;font-weight:bold;letter-spacing:.09em;text-transform:uppercase;margin-bottom:18px}.footer ul{list-style:none;padding:0;margin:0;display:grid;gap:10px;font-size:12px}.footer a:hover{text-decoration:underline}.footer-bottom{display:flex;justify-content:space-between;gap:25px;border-top:1px solid var(--line);padding-top:20px;margin-top:42px;font-size:10px;color:var(--muted)}.footer-bottom div{display:flex;gap:20px}.breadcrumb{padding:28px 0;font-size:11px;color:var(--muted);display:flex;gap:10px;flex-wrap:wrap}.breadcrumb a{text-decoration:underline;text-underline-offset:4px}.page-hero{padding:22px 0 50px;border-bottom:1px solid var(--line)}.page-hero h1{font-size:clamp(38px,4.4vw,62px);max-width:950px}.page-hero .lead{font-size:19px;max-width:780px;color:var(--muted);margin:25px 0 0}.article-meta{display:flex;gap:18px;flex-wrap:wrap;font-size:11px;color:var(--muted);margin-top:24px}.article-layout{display:grid;grid-template-columns:240px 1fr;gap:85px;padding:50px 0 80px}.toc{position:sticky;top:122px;align-self:start;font-size:12px}.toc strong{display:block;letter-spacing:.08em;font-size:10px;text-transform:uppercase;margin-bottom:18px}.toc ul{padding:0;list-style:none;display:grid;gap:13px}.toc li{padding-left:15px;border-left:1px solid var(--line)}.toc a:hover{color:var(--strong)}.article-body{max-width:790px;min-width:0}.article-body h2{font-size:32px;margin:0 0 22px}.article-body h3{font-size:22px;margin:28px 0 15px}.article-body p,.article-body li{color:var(--muted);font-size:16px;line-height:1.9}.article-body section{margin-bottom:42px;scroll-margin-top:130px}.article-body a:not(.button){color:var(--strong);text-decoration:underline;text-underline-offset:4px}.article-body ul{padding-left:22px}.article-body .checklist{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:15px}.checklist li{padding:16px 20px;background:var(--wash);border:1px solid var(--line);font-size:14px}.checklist li:before{content:'✓';margin-right:10px;color:var(--strong)}.author{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:25px 0;margin-top:35px;display:flex;gap:18px;align-items:center}.author img{height:45px;width:45px;object-fit:contain}.author p{margin:3px 0 0;font-size:12px}.sources{font-size:12px;margin-top:28px}.sources ul{padding-left:18px}.sources li,.sources p{font-size:12px}.search-box{display:flex;gap:12px;align-items:center;margin:25px 0 30px;max-width:620px}.search-box input{width:100%;padding:14px 18px;border:1px solid var(--line);border-radius:4px;background:white;color:var(--ink)}.search-count{font-size:12px;color:var(--muted);margin-bottom:20px}.glossary{display:grid;grid-template-columns:1fr 1fr;gap:18px}.definition{padding:25px;border:1px solid var(--line);background:white}.definition h2{font-size:23px;margin-bottom:12px}.definition p{font-size:14px;color:var(--muted);margin:0}.contact-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:70px}.contact-box{padding:35px;background:var(--wash);border:1px solid var(--line);border-radius:5px}.contact-box h2{font-size:28px;margin-bottom:22px}.contact-box a{display:block;margin-top:20px}.contact-box .button{display:inline-flex}.contact-grid li{margin:12px 0;color:var(--muted)}.resource-row{display:grid;grid-template-columns:60px 1fr 40px;align-items:center;gap:20px;border-top:1px solid var(--line);padding:25px 0}.resource-row:last-child{border-bottom:1px solid var(--line)}.resource-row>span{font-size:12px;color:var(--strong)}.resource-row h3{font-size:22px;margin-bottom:10px}.resource-row p{font-size:14px;color:var(--muted);margin:0}.empty{padding:35px;border:1px dashed var(--line);color:var(--muted)}[hidden]{display:none!important}.error-number{font-size:120px;line-height:1;color:var(--strong);font-family:Georgia,serif}.home-layout-industrial .hero-photo{border-radius:3px}.home-layout-industrial .hero h1 em{font-family:inherit;font-style:normal;font-weight:600}.home-layout-industrial .card{border-radius:2px}.home-layout-industrial .hero-grid{grid-template-columns:.95fr 1.05fr}.home-layout-split .hero-photo{border-radius:100px 4px 4px 4px}.home-layout-split .photo-tag{top:auto;bottom:45px}.home-layout-corporate .hero-photo{border-radius:6px}.home-layout-corporate .hero h1{font-size:clamp(44px,5vw,70px)}.home-layout-corporate .hero h1 em{font-family:inherit;font-style:normal;font-weight:600}.home-layout-career .hero-photo{border-radius:180px 180px 6px 6px}.home-layout-career .photo-tag{left:5px;top:85px}
@media(min-width:1550px){.hero-photo{height:535px}.hero{padding-top:75px}}
@media(max-width:1150px){.container{width:calc(100% - 64px)}.main-nav{gap:16px}.main-nav a{font-size:12px}.brand-name{font-size:16px}.hero-grid{gap:40px}.hero-photo{height:440px}.hero h1{font-size:58px}.intro-split,.faq-split{gap:55px}.article-layout{gap:45px;grid-template-columns:210px 1fr}.planner{gap:35px;padding:35px}.footer-grid{gap:25px}}
@media(max-width:940px){.header-inner{min-height:76px;justify-content:space-between}.menu-toggle{display:block}.main-nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);padding:24px 32px;box-shadow:0 12px 20px #17373312;border-bottom:1px solid var(--line);max-height:calc(100dvh - 80px);overflow:auto}.main-nav.open{display:flex;flex-direction:column;align-items:stretch;gap:0}.main-nav a{padding:13px;font-size:15px}.main-nav .button{margin-top:10px}.hero h1{font-size:48px}.hero-grid{gap:30px}.hero-lead{font-size:15px}.hero-photo{height:425px}.photo-tag{left:-12px}.hero-proof{gap:12px}.topic-rail{grid-template-columns:1fr 1fr;gap:17px}.topic-rail span{padding-left:0;border:0}.grid-3{gap:15px}.card-content{padding:21px}.card h3{font-size:21px}.card-image{height:160px}.intro-split{gap:40px}.planner{grid-template-columns:1fr 1fr;gap:30px}.planner h2{font-size:34px}.faq-split{gap:40px}.risk-list{gap:24px}.footer-grid{grid-template-columns:1.3fr 1fr 1fr}.footer-grid>div:last-child{grid-column:1/-1}.article-layout{grid-template-columns:1fr}.toc{position:static;padding:20px;border:1px solid var(--line);background:var(--wash)}.toc ul{display:flex;flex-wrap:wrap;gap:14px}.toc strong{margin-bottom:12px}.contact-grid{gap:35px}}
@media(max-width:680px){.container{width:calc(100% - 40px)}.topbar .container{min-height:30px;font-size:9px}.topbar span:last-child{display:none}.header-inner{min-height:72px}.brand-name{font-size:16px}.brand img{width:32px;height:36px}.brand-sub{font-size:8px}.hero{padding-top:34px}.hero-grid,.home-layout-industrial .hero-grid{grid-template-columns:1fr;gap:32px}.hero h1,.home-layout-corporate .hero h1{font-size:clamp(40px,11vw,56px);margin-bottom:19px}.eyebrow{font-size:8px;margin-bottom:19px;letter-spacing:.12em}.hero-lead{font-size:15px}.actions{gap:18px;margin-top:23px}.button{padding:13px 19px;font-size:12px;gap:17px}.hero-proof{font-size:9px;gap:14px;margin-top:24px}.hero-photo{height:340px;border-bottom-right-radius:45px}.home-layout-split .hero-photo{border-top-left-radius:65px}.home-layout-career .hero-photo{border-top-left-radius:100px;border-top-right-radius:100px}.photo-tag{left:12px;top:16px;padding:9px 12px;font-size:8px}.visual-note{right:15px;bottom:-13px;padding:12px 15px;width:205px}.visual-note strong{font-size:12px}.visual-note span{font-size:10px}.photo-label{bottom:43px;font-size:9px;left:18px}.topic-rail{margin-top:43px;padding:20px 0;font-size:10px;gap:14px}.topic-rail strong{font-size:11px}.section{padding:53px 0}.section-heading{display:block;margin-bottom:26px}.section-heading p{margin-top:20px;font-size:14px}.section-heading .text-link{margin-top:15px}h2{font-size:34px}.section-kicker{font-size:9px;margin-bottom:14px}.grid-3,.grid-2{grid-template-columns:1fr;gap:17px}.card-content{padding:25px}.card h3{font-size:25px}.card .card-number{margin-bottom:20px}.card-image{height:195px}.feature-card h3{font-size:30px}.intro-split{grid-template-columns:1fr;gap:27px}.intro-split>div>p{font-size:15px}.skills{gap:22px 18px}.skill h3{font-size:17px}.skill p{font-size:12px}.wide-photo{height:245px;margin:28px 0 0}.wide-photo figcaption{font-size:9px;bottom:12px;left:12px}.route-strip{grid-template-columns:1fr;margin-top:25px}.route-stop{border-right:0;border-bottom:1px solid var(--line);padding:20px}.route-stop:last-child{border-bottom:0}.route-stop small{margin-bottom:7px}.planner{grid-template-columns:1fr;padding:28px 22px;gap:25px}.planner h2{font-size:34px}.planner p{margin-top:17px;font-size:14px}.planner-form{padding:20px}.risk-list{grid-template-columns:1fr;gap:27px}.risk-item h3{font-size:21px}.faq-split{grid-template-columns:1fr;gap:27px}.faq-list summary{font-size:15px}.faq-list details{padding:18px 0}.cta-band{padding:43px 0}.cta-band .container{display:block}.cta-band h2{font-size:34px}.cta-band .button{margin-top:24px}.footer{padding-top:40px}.footer-grid{grid-template-columns:1fr 1fr;gap:32px 20px}.footer-grid>div:first-child,.footer-grid>div:last-child{grid-column:1/-1}.footer p{max-width:none}.footer-bottom{display:block;margin-top:32px}.footer-bottom div{flex-wrap:wrap;margin-top:15px;gap:15px}.breadcrumb{padding:22px 0;font-size:10px}.page-hero{padding:10px 0 30px}.page-hero h1{font-size:38px}.page-hero .lead{font-size:16px;margin-top:20px}.article-meta{font-size:10px;gap:12px}.article-layout{padding-top:28px;gap:30px;padding-bottom:45px}.article-body h2{font-size:28px}.article-body p,.article-body li{font-size:15px;line-height:1.85}.article-body .checklist{grid-template-columns:1fr;gap:10px}.article-body .checklist li{font-size:13px}.glossary{grid-template-columns:1fr}.contact-grid{grid-template-columns:1fr;gap:25px}.contact-box{padding:26px}.resource-row{grid-template-columns:25px 1fr 25px;gap:12px}.resource-row h3{font-size:20px}.resource-row p{font-size:13px}.definition h2{font-size:23px}.toc li{padding-left:10px}.callout{padding:20px}.sources li{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}@media print{.site-header,.topbar,.footer,.planner,.cta-band,.toc{display:none}.container{width:100%}.article-layout{display:block}.card{break-inside:avoid}body{background:white;color:black}}
.specialist-section{padding-top:0}.table-scroll{overflow:auto;border:1px solid var(--line);border-radius:5px}table{border-collapse:collapse;width:100%;text-align:left;font-size:14px}table caption{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden}th,td{padding:24px;vertical-align:top;border-bottom:1px solid var(--line)}thead{background:var(--ink);color:white}thead th{font-size:11px;letter-spacing:.06em;text-transform:uppercase}tbody th{font-size:16px;font-weight:500;width:24%;background:var(--wash)}tbody td{color:var(--muted);background:white;width:38%}tbody tr:last-child>*{border-bottom:0}.specialist-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}.specialist-node{padding:26px 25px;border:1px solid var(--line);background:var(--wash);position:relative}.node-index{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid var(--strong);border-radius:50%;font-size:12px;color:var(--strong);margin-bottom:27px}.specialist-node h3{font-size:22px;margin-bottom:15px}.specialist-node p{font-size:14px;color:var(--muted)}.node-question{border-top:1px solid var(--line);padding-top:17px;font-size:12px}.node-question small{display:block;text-transform:uppercase;font-size:9px;letter-spacing:.1em;color:var(--strong);margin-bottom:8px}.specialist-interfaces .specialist-node:not(:last-child):after{content:'→';position:absolute;right:-26px;top:43px;color:var(--strong);font-size:20px}.specialist-path .specialist-node{background:white;border:0;border-top:2px solid var(--strong);padding-left:0}.specialist-path .node-index{background:var(--ink);color:white;border:0}.topbar a{white-space:nowrap}
@media(max-width:680px){.specialist-grid{grid-template-columns:1fr;gap:20px}.specialist-interfaces .specialist-node:not(:last-child):after{content:'↓';right:24px;top:auto;bottom:-24px;z-index:1}th,td{padding:16px;min-width:170px}tbody th{min-width:135px}table{font-size:13px}.table-scroll{scrollbar-width:thin}.topbar .container{font-size:8px;gap:10px}.topbar .container>span:nth-child(2){display:none}.specialist-node{padding:22px}.node-index{margin-bottom:16px}}
.training-page{padding-top:48px}.training-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:72px;align-items:start}.training-layout>article>section{margin:54px 0}.training-lead{font-size:19px;line-height:1.8;color:var(--muted);border-left:3px solid var(--strong);padding-left:24px}.training-page h2{font-size:34px;margin-bottom:24px}.objective-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:14px}.objective-list li{display:grid;gap:7px;padding:20px;border:1px solid var(--line);background:var(--white)}.objective-list li:before{content:'✓';color:var(--strong);font-weight:bold}.objective-list span{font-size:13px;line-height:1.65;color:var(--muted)}.program-list{display:grid;gap:12px}.program-list article{display:grid;grid-template-columns:52px 1fr;gap:20px;padding:22px;border:1px solid var(--line);background:var(--white)}.program-list article>span{font-family:monospace;color:var(--strong);font-weight:bold}.program-list h3{font-size:19px;margin-bottom:8px}.program-list p{font-size:14px;line-height:1.7;color:var(--muted);margin:0}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.detail-grid>div{padding:22px;background:var(--wash);border-top:2px solid var(--strong)}.detail-grid h3{font-size:18px;margin-bottom:10px}.detail-grid p{font-size:14px;line-height:1.75;color:var(--muted);margin:0}.training-facts{position:sticky;top:122px;padding:28px;border:1px solid var(--line);background:var(--wash)}.training-facts h2{font-size:27px}.training-facts dl{margin:0 0 24px}.training-facts dl>div{padding:14px 0;border-top:1px solid var(--line)}.training-facts dt{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--strong);font-weight:bold;margin-bottom:5px}.training-facts dd{font-size:13px;line-height:1.55;margin:0}.training-facts .button{width:100%;margin-bottom:15px}.training-facts .text-link{display:flex}.quality-note{background:var(--ink);color:white;padding:28px;margin:40px 0}.quality-note p{color:#d7e2df;margin:10px 0 0;font-size:14px;line-height:1.7}.coverage-hero{display:grid;grid-template-columns:.85fr 1.15fr;gap:70px;align-items:center;background:var(--ink);color:white;padding:45px;margin-bottom:70px}.coverage-number{font-size:82px;line-height:1;color:var(--accent);font-family:Georgia,serif;display:block}.coverage-hero strong{font-size:22px;display:block;margin:8px 0 15px}.coverage-hero p{font-size:14px;color:#d7e2df;line-height:1.7;margin:0}.coverage-route{display:grid;grid-template-columns:1fr 1fr;gap:10px}.coverage-route span{padding:18px;border:1px solid #ffffff30;background:#ffffff0a;font-size:13px}.coverage-route span:last-child{background:var(--accent);color:var(--ink);font-weight:bold}.region-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.region-grid span{background:var(--paper);padding:18px;font-size:13px}.zone-card{border-top:3px solid var(--strong);padding:27px;background:var(--white)}.zone-card>span{font-size:9px;letter-spacing:.12em;color:var(--strong);font-weight:bold}.zone-card h3{font-size:25px;margin:17px 0}.zone-card p{font-size:14px;color:var(--muted);line-height:1.75}.quality-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:72px;align-items:start}.quality-panel{position:sticky;top:122px;background:var(--ink);color:white;padding:30px}.quality-panel>strong{font-size:12px;letter-spacing:.1em}.quality-panel ul{padding:0;list-style:none;margin:25px 0;display:grid;gap:12px}.quality-panel li{font-size:13px;padding-left:20px;position:relative}.quality-panel li:before{content:'✓';position:absolute;left:0;color:var(--accent)}.quality-panel .button{width:100%;background:var(--accent);color:var(--ink);border-color:var(--accent)}.quality-panel .text-link{display:flex;margin-top:14px;border-color:#ffffff40}.contact-top{display:grid;grid-template-columns:1fr 360px;gap:70px;align-items:start;margin-bottom:55px}.contact-top>div>p{font-size:17px;line-height:1.8;color:var(--muted);max-width:680px;margin-top:20px}.contact-strong{font-size:24px;font-weight:bold;color:var(--strong)}.process-strip{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);margin-bottom:35px}.process-strip>div{padding:25px;border-right:1px solid var(--line)}.process-strip>div:last-child{border-right:0}.process-strip span{font-family:monospace;color:var(--strong);font-size:12px}.process-strip strong{display:block;margin:12px 0 8px}.process-strip p{font-size:12px;color:var(--muted);margin:0;line-height:1.6}.request-form{border:1px solid var(--line);background:var(--white);padding:38px}.form-intro{display:grid;grid-template-columns:1fr 330px;gap:50px;align-items:start;margin-bottom:42px}.form-intro h2{font-size:38px}.form-intro p{font-size:14px;color:var(--muted);line-height:1.7;max-width:650px}.response-promise{background:var(--ink);color:white;padding:23px}.response-promise strong{display:block;color:var(--accent);font-size:18px;margin-bottom:8px}.response-promise span{font-size:12px;line-height:1.6;color:#d7e2df}.request-form fieldset{border:0;border-top:1px solid var(--line);padding:28px 0 16px;margin:0}.request-form legend{font-size:19px;font-weight:600;padding-right:18px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px 20px}.field-wide{grid-column:1/-1}.request-form .field{margin:0}.request-form label{font-size:12px;font-weight:600}.request-form input,.request-form select,.request-form textarea{width:100%;border:1px solid #b8c6c1;border-radius:4px;background:white;color:var(--ink);padding:12px 14px;min-height:48px}.request-form textarea{resize:vertical;line-height:1.5}.request-form .field small{font-size:10px;color:var(--muted);line-height:1.5}.consent{display:flex;align-items:flex-start;gap:12px;border-top:1px solid var(--line);padding-top:24px;font-size:12px!important;line-height:1.6}.consent input{width:18px;min-height:18px;flex:0 0 18px;margin-top:2px}.consent a{text-decoration:underline;color:var(--strong)}.form-actions{display:flex;gap:18px;align-items:center;margin-top:26px}.form-actions span{font-size:11px;color:var(--muted)}.request-result{margin-top:34px;padding:28px;background:var(--wash);border:1px solid var(--line)}.request-result h3{font-size:25px}.request-result>p{font-size:13px;color:var(--muted);margin-top:10px}.request-result pre{white-space:pre-wrap;overflow-wrap:anywhere;background:white;border:1px solid var(--line);padding:18px;font:12px/1.65 ui-monospace,monospace;max-height:340px;overflow:auto}.copy-status{font-size:12px;margin:10px 0 0;color:var(--strong)}
@media(max-width:1100px){.training-layout,.quality-layout{grid-template-columns:minmax(0,1fr) 285px;gap:40px}.main-nav{gap:13px}.main-nav a{font-size:11px}.main-nav .button.small{padding-inline:12px}.form-intro{grid-template-columns:1fr 285px;gap:30px}}
@media(max-width:940px){.training-layout,.quality-layout{grid-template-columns:1fr}.training-facts,.quality-panel{position:static}.coverage-hero{gap:35px}.contact-top{grid-template-columns:1fr}.form-intro{grid-template-columns:1fr}.response-promise{max-width:520px}}
@media(max-width:680px){.training-page{padding-top:28px}.objective-list,.detail-grid,.region-grid,.form-grid,.process-strip{grid-template-columns:1fr}.training-layout{gap:28px}.training-page h2{font-size:29px}.program-list article{grid-template-columns:35px 1fr;padding:18px;gap:12px}.coverage-hero{grid-template-columns:1fr;padding:27px;margin-bottom:45px}.coverage-route{grid-template-columns:1fr}.coverage-number{font-size:64px}.request-form{padding:24px 19px}.form-intro{gap:20px;margin-bottom:25px}.form-intro h2{font-size:32px}.field-wide{grid-column:auto}.request-form fieldset{padding-top:22px}.form-actions{align-items:stretch;flex-direction:column}.form-actions .button{width:100%}.request-result{padding:20px 15px}.request-result .actions{align-items:stretch;flex-direction:column}.process-strip>div{border-right:0;border-bottom:1px solid var(--line)}.process-strip>div:last-child{border-bottom:0}.contact-top{gap:25px;margin-bottom:35px}}
.region-directory{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}.region-card{border:1px solid var(--line);background:var(--white);padding:28px}.region-card header>span{font-size:10px;letter-spacing:.1em;color:var(--strong);text-transform:uppercase}.region-card h2{font-size:28px;margin:10px 0 13px}.region-card header p{font-size:13px;line-height:1.65;color:var(--muted);min-height:64px}.city-links{display:grid;grid-template-columns:1fr 1fr;gap:0 20px;margin-top:20px;border-top:1px solid var(--line)}.city-links a{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:12px}.city-links a:hover{color:var(--strong)}.city-links small{font-family:monospace;color:var(--muted)}.city-page{padding-top:45px}.city-signal{display:grid;grid-template-columns:320px 1fr;gap:65px;align-items:center;background:var(--ink);color:white;padding:38px}.city-signal>div{display:grid}.city-signal>div>span{font:54px/1 Georgia,serif;color:var(--accent)}.city-signal>div>strong{font-size:28px;margin:8px 0}.city-signal small{color:#d7e2df}.city-signal p{font-size:16px;line-height:1.8;color:#d7e2df;margin:0}.city-facts{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);margin-top:25px}.city-facts>div{padding:22px;border-right:1px solid var(--line)}.city-facts>div:last-child{border-right:0}.city-facts span,.local-request>span{font-size:9px;letter-spacing:.11em;color:var(--strong);font-weight:bold}.city-facts strong{display:block;font-size:16px;margin:11px 0}.city-facts p{font-size:12px;line-height:1.65;color:var(--muted);margin:0}.city-content{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:60px;align-items:start}.city-content>div>p{font-size:16px;line-height:1.85;color:var(--muted)}.local-request{background:var(--wash);border:1px solid var(--line);padding:28px;position:sticky;top:122px}.local-request h3{font-size:26px;margin:15px 0}.local-request p{font-size:13px;line-height:1.7;color:var(--muted)}.local-request .button{width:100%;margin:10px 0}.local-request .text-link{display:flex}.nearby-links{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.nearby-links a{display:flex;justify-content:space-between;padding:18px;border:1px solid var(--line);background:var(--white);font-size:14px}.nearby-links small{font-family:monospace;color:var(--strong)}
@media(max-width:940px){.region-directory{grid-template-columns:1fr}.city-signal{grid-template-columns:240px 1fr;gap:35px}.city-facts{grid-template-columns:1fr 1fr}.city-facts>div:nth-child(2){border-right:0}.city-facts>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.city-content{grid-template-columns:1fr}.local-request{position:static}.nearby-links{grid-template-columns:1fr 1fr}}
@media(max-width:680px){.region-card{padding:22px 18px}.region-card header p{min-height:0}.city-links{grid-template-columns:1fr}.city-signal{grid-template-columns:1fr;padding:26px 22px;gap:22px}.city-signal>div>span{font-size:44px}.city-signal>div>strong{font-size:25px}.city-signal p{font-size:14px}.city-facts{grid-template-columns:1fr}.city-facts>div{border-right:0;border-bottom:1px solid var(--line)}.city-facts>div:nth-child(2){border-bottom:1px solid var(--line)}.city-facts>div:last-child{border-bottom:0}.nearby-links{grid-template-columns:1fr}}
.terrain-promise{background:var(--ink);color:white;padding:70px 0}.terrain-promise-grid{display:grid;grid-template-columns:240px minmax(0,760px);gap:70px;align-items:center}.terrain-mark{display:block;font:72px/1 Georgia,serif;color:var(--accent)}.terrain-promise small{display:block;margin-top:10px;text-transform:uppercase;letter-spacing:.12em;color:#d7e2df}.terrain-promise h2{font-size:42px;margin-bottom:22px}.terrain-promise p{color:#d7e2df;font-size:16px;line-height:1.8}.terrain-signature,.field-signature{font-size:10px!important;letter-spacing:.12em;font-weight:700;color:var(--accent)!important;text-transform:uppercase}.terrain-method{padding:30px;border-left:4px solid var(--accent);background:var(--ink);color:white;margin:42px 0}.terrain-method>span{font-size:10px;letter-spacing:.12em;color:var(--accent);font-weight:700}.terrain-method h2{font-size:30px;margin:12px 0}.terrain-method p{color:#d7e2df;line-height:1.75;margin:0}.field-signature{margin-top:18px}.form-trap{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.request-form .field label span{font-weight:400;color:var(--muted)}.form-status{min-height:20px;margin:15px 0 0;color:var(--strong);font-size:12px}.request-form button:disabled{opacity:.6;cursor:wait}.city-search{max-width:680px;margin:0 0 32px}.city-search label{display:block;font-weight:600;font-size:13px;margin-bottom:9px}.city-search input{width:100%;min-height:52px;padding:13px 16px;border:1px solid var(--line);background:white;border-radius:4px}.city-search p{font-size:11px;color:var(--muted);margin:9px 0 0}
.terrain-promise{background:var(--ink);color:white;padding:70px 0}.terrain-promise-grid{display:grid;grid-template-columns:240px minmax(0,760px);gap:70px;align-items:center}.terrain-mark{display:block;font:72px/1 Georgia,serif;color:var(--accent)}.terrain-promise small{display:block;margin-top:10px;text-transform:uppercase;letter-spacing:.12em;color:#d7e2df}.terrain-promise h2{font-size:42px;margin-bottom:22px}.terrain-promise p{color:#d7e2df;font-size:16px;line-height:1.8}.terrain-signature,.field-signature{font-size:10px!important;letter-spacing:.12em;font-weight:700;color:var(--accent)!important;text-transform:uppercase}.terrain-method{padding:30px;border-left:4px solid var(--accent);background:var(--ink);color:white;margin:42px 0}.terrain-method>span{font-size:10px;letter-spacing:.12em;color:var(--accent);font-weight:700}.terrain-method h2{font-size:30px;margin:12px 0}.terrain-method p{color:#d7e2df;line-height:1.75;margin:0}.field-signature{margin-top:18px}.form-trap{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.request-form .field label span{font-weight:400;color:var(--muted)}.form-status{min-height:20px;margin:15px 0 0;color:var(--strong);font-size:12px}.request-form button:disabled{opacity:.6;cursor:wait}.city-search{max-width:680px;margin:0 0 32px}.city-search label{display:block;font-weight:600;font-size:13px;margin-bottom:9px}.city-search input{width:100%;min-height:52px;padding:13px 16px;border:1px solid var(--line);background:white;border-radius:4px}.city-search p{font-size:11px;color:var(--muted);margin:9px 0 0}body[data-theme=steel] .hero h1 em{font-family:inherit;font-style:normal;font-weight:700;color:var(--strong)}body[data-theme=steel] .terrain-mark{font-family:Arial,Helvetica,sans-serif;font-weight:800}body[data-theme=steel] .button{border-radius:3px}body[data-theme=steel] .hero-photo{border-bottom-right-radius:18px}body[data-theme=steel] .section-kicker{color:var(--strong)}
@media(max-width:680px){.terrain-promise{padding:48px 0}.terrain-promise-grid{grid-template-columns:1fr;gap:25px}.terrain-mark{font-size:58px}.terrain-promise h2{font-size:32px}.terrain-promise p{font-size:14px}.terrain-method{padding:24px 20px}.terrain-method h2{font-size:26px}}

/* Passage clair vers le site principal FerroTalents. */
.footer-brand-link{display:inline-flex;align-items:center;padding:8px 0;border-bottom:2px solid transparent}.footer-brand-link:hover{border-color:var(--strong);text-decoration:none!important}.footer-main-link{color:var(--strong);font-weight:700}
/* =============================================================================
   Couche visuelle (septembre 2026). Concaténée après style.css par le build.
   Ne change ni la structure des pages, ni les contenus, ni les URL.
   Direction : sobre, professionnel, rassurant, pédagogique.
   Polices Geist Sans et Geist Mono, hébergées localement (SIL OFL, Vercel).
   ============================================================================= */

/* 1. Polices locales ------------------------------------------------------- */
@font-face{font-family:'Geist';src:url('fonts/geist-variable.woff2') format('woff2-variations');font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:'Geist Mono';src:url('fonts/geist-mono-variable.woff2') format('woff2-variations');font-weight:100 900;font-style:normal;font-display:swap}

/* 2. Tokens ---------------------------------------------------------------- */
:root{
 /* Un seul système de rayons : doux et constant. */
 --r-xs:4px;--r-sm:8px;--r-md:12px;--r-lg:16px;
 /* Rythme vertical */
 --space-section:clamp(64px,7vw,104px);
 --space-block:clamp(28px,3vw,44px);
 /* Surfaces et texte : couches sémantiques, pour tenir en clair comme en sombre. */
 --surface:var(--white);
 --surface-sunken:var(--wash);
 --invert-bg:var(--ink);
 --invert-fg:#fdfdfc;
 --invert-muted:#ffffffb0;
 --invert-line:#ffffff24;
 --field-bg:var(--white);
 --field-line:var(--line);
 --shadow-sm:0 1px 2px color-mix(in srgb,var(--ink) 8%,transparent);
 --shadow-md:0 10px 30px -12px color-mix(in srgb,var(--ink) 22%,transparent);
 --ring:color-mix(in srgb,var(--strong) 42%,transparent);
}

/* 3. Site en mode clair uniquement : direction artistique d'origine conservée. */
:root{color-scheme:light}

/* 4. Typographie ----------------------------------------------------------- */
body{font-family:'Geist',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;font-synthesis-weight:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;font-size:16.5px;line-height:1.66}
h1,h2,h3,h4{font-family:'Geist',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;text-wrap:balance;font-weight:560;letter-spacing:-.028em}
h1{font-size:clamp(38px,4.6vw,62px);line-height:1.06;letter-spacing:-.035em}
h2{font-size:clamp(27px,2.9vw,40px);line-height:1.12}
h3{font-size:21px;letter-spacing:-.02em;font-weight:560}
p,li,dd{text-wrap:pretty}
.hero-lead,.page-hero .lead{font-size:clamp(17px,1.35vw,19.5px);line-height:1.62}
.section-kicker{font-family:'Geist Mono',ui-monospace,Consolas,monospace;font-size:10.5px;letter-spacing:.14em;font-weight:500}
.card-number,.node-index,.route-stop small,.dossier-index,.path-stop small,.proof-key,.error-number{font-family:'Geist Mono',ui-monospace,Consolas,monospace}
.article-body p{font-size:16.5px;line-height:1.75;max-width:68ch}

/* 5. Rayons et surfaces : un seul système ---------------------------------- */
.card,.definition,.zone-card,.region-card,.objective-list li,.program-list article,.detail-grid>div,.search-box input,.city-search input,.field select,.field input,.field textarea,.request-form,.request-form input,.request-form select,.request-form textarea,.table-scroll,.callout,.quality-note,.terrain-method,.response-promise,.nearby-links a,.specialist-node,.elearning,.why-grid>div,.catalogue-list,.dossier-grid,.key-facts,.path-steps,.hero-chips,.training-facts,.quality-panel,.coverage-hero,.city-signal,.local-request,.route-strip,.planner{border-radius:var(--r-sm)}
.button,.pill{border-radius:var(--r-xs)}
.card,.definition,.zone-card,.region-card,.objective-list li,.program-list article,.request-form,.specialist-node,.why-grid>div{background:var(--surface)}
.search-box input,.city-search input,.definition,.request-result pre,.nearby-links a,.specialist-path .specialist-node{background:var(--field-bg)}
.detail-grid>div,.callout{background:var(--surface-sunken)}
.card{box-shadow:var(--shadow-sm);transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s cubic-bezier(.16,1,.3,1),border-color .25s}
.card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:color-mix(in srgb,var(--strong) 35%,var(--line))}
.wash,.section.wash{background:var(--surface-sunken)}

/* 6. Blocs foncés : pilotés par des tokens, donc lisibles dans les deux modes */
.feature-card,.planner,.quality-note,.coverage-hero,.quality-panel,.response-promise,.city-signal,.terrain-promise,.terrain-method,.cta-band,.path-stop.current,.skip-link,.topbar{background:var(--invert-bg);color:var(--invert-fg)}
.feature-card p,.planner p,.quality-note p,.coverage-hero p,.quality-panel li,.response-promise span,.city-signal p,.terrain-promise p,.cta-band p,.path-stop.current p{color:var(--invert-muted)}
.feature-card .card-number,.card-arrow{border-color:var(--invert-line)}
.feature-card .card-arrow{color:var(--invert-fg)}
.specialist-path .node-index{background:var(--invert-bg);color:var(--invert-fg)}
.photo-label{color:#fff;text-shadow:0 1px 8px #0009}

/* 7. Boutons et liens ------------------------------------------------------ */
.button{background:var(--ink);border-color:var(--ink);color:var(--paper);font-weight:600;letter-spacing:-.005em;gap:14px;transition:transform .15s,background .2s,border-color .2s,box-shadow .2s}
.button:hover{background:color-mix(in srgb,var(--ink) 88%,var(--strong));border-color:color-mix(in srgb,var(--ink) 88%,var(--strong))}
.button:active{transform:translateY(1px)}
.button.outline{background:transparent;color:var(--ink);border-color:var(--line)}
.button.outline:hover{border-color:var(--ink);background:color-mix(in srgb,var(--ink) 5%,transparent)}
.cta-band .button{background:var(--invert-fg);border-color:var(--invert-fg);color:var(--invert-bg)}
.cta-band .button:hover{background:#fff;border-color:#fff}
.text-link{transition:color .2s,border-color .2s}
.text-link:hover{color:var(--strong);border-color:var(--strong)}
:focus-visible{outline:3px solid var(--ring);outline-offset:3px;border-radius:2px}

/* 8. En-tête --------------------------------------------------------------- */
.site-header{background:color-mix(in srgb,var(--paper) 88%,transparent);border-bottom:1px solid var(--line)}
.header-inner{min-height:72px}
.main-nav{gap:22px;font-size:13.5px}
.main-nav a:not(.button){padding-block:6px;color:var(--muted);font-weight:500}
.main-nav a:not(.button):hover,.main-nav a[aria-current=page]{color:var(--ink)}
.topbar{font-size:11px}
.topbar .container{min-height:34px}
.topbar a{color:var(--invert-fg);border-bottom-color:var(--invert-line)}
.brand-name{letter-spacing:-.03em}

/* 9. Listes du référentiel ------------------------------------------------- */
.catalogue-list{border:1px solid var(--line);background:var(--surface);overflow:hidden}
.catalogue-head,.catalogue-row{display:grid;grid-template-columns:minmax(0,1fr) 148px 116px 126px 32px;gap:24px;align-items:center;padding:0 24px}
.catalogue-head{min-height:42px;background:var(--surface-sunken);font-family:'Geist Mono',ui-monospace,monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-weight:500;color:var(--muted)}
.catalogue-row{padding-block:19px;border-top:1px solid var(--line);font-size:13.5px;transition:background .2s}
.catalogue-list>.catalogue-row:first-child{border-top:0}
.catalogue-row:hover{background:var(--surface-sunken)}
.catalogue-row:hover .catalogue-go{transform:translate(3px,-3px)}
.catalogue-main{display:grid;gap:5px;min-width:0}
.catalogue-main small{font-size:11px;letter-spacing:.01em;text-transform:none;color:var(--strong);font-weight:600}
.catalogue-main strong{font-size:17.5px;font-weight:560;letter-spacing:-.022em;line-height:1.3}
.catalogue-main em{font-style:normal;color:var(--muted);font-size:13.5px;line-height:1.55}
.catalogue-go{justify-self:end;color:var(--strong);font-size:15px;transition:transform .2s}
.catalogue-row.compact{grid-template-columns:minmax(0,1fr) 148px 32px}

/* 10. Bande de repères ----------------------------------------------------- */
.proof-band{border-block:1px solid var(--line);background:var(--surface)}
.proof-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.proof-item{padding:32px 30px;border-left:1px solid var(--line)}
.proof-item:first-child{border-left:0;padding-left:0}
.proof-key{display:block;font-size:26px;letter-spacing:-.04em;font-weight:500;color:var(--strong);margin-bottom:10px;line-height:1}
.proof-item strong{display:block;font-size:14.5px;margin-bottom:7px;font-weight:560}
.proof-item p{font-size:13px;line-height:1.6;color:var(--muted);margin:0}

/* 11. Dossiers ------------------------------------------------------------- */
.dossier-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;border:1px solid var(--line);overflow:hidden;background:var(--line)}
.dossier{display:flex;flex-direction:column;gap:13px;padding:26px;background:var(--surface);min-height:158px;transition:background .2s}
.dossier:hover{background:var(--surface-sunken)}
.dossier-index{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--strong);font-weight:500}
.dossier strong{font-size:17.5px;font-weight:560;letter-spacing:-.022em;line-height:1.35}
.dossier-meta{margin-top:auto;font-size:12.5px;color:var(--muted);display:flex;justify-content:space-between;gap:12px}

/* 12. Fiche formation ------------------------------------------------------ */
.hero-chips{list-style:none;padding:0;margin:32px 0 0;display:flex;flex-wrap:wrap;border:1px solid var(--line);background:var(--surface);width:fit-content;max-width:100%;overflow:hidden}
.hero-chips li{padding:13px 24px;border-left:1px solid var(--line);font-size:14.5px;font-weight:560}
.hero-chips li:first-child{border-left:0}
.hero-chips small{display:block;font-family:'Geist Mono',ui-monospace,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:500;margin-bottom:5px}
.training-page article>section{margin-top:52px}
.training-page article>section>h2{font-size:29px;margin-bottom:22px}
.training-lead{border-left:2px solid var(--strong);font-size:18px;line-height:1.72}
.why-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.why-grid>div{padding:24px;border:1px solid var(--line)}
.why-grid h3{font-size:17.5px;margin-bottom:9px}
.why-grid p{font-size:14.5px;line-height:1.7;color:var(--muted);margin:0}
.check-list{list-style:none;padding:0;margin:0 0 1.4em;display:grid;gap:11px}
.check-list li{position:relative;padding-left:32px;line-height:1.62}
.check-list li:before{content:"";position:absolute;left:0;top:.25em;width:19px;height:19px;border-radius:50%;background:var(--strong) url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 20 20%22%3E%3Cpath d=%22M5.5 10.4l3 3 6-6.6%22 fill=%22none%22 stroke=%22white%22 stroke-width=%222.2%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22/%3E%3C/svg%3E") center/19px no-repeat}
.check-list.plain li{padding-left:20px}
.check-list.plain li:before{width:6px;height:6px;top:.64em;background:var(--strong)}
.num-list{padding-left:20px;display:grid;gap:10px;margin:0 0 1.4em}
.num-list li::marker{color:var(--strong);font-weight:600;font-family:'Geist Mono',monospace}
.skills-line,.regulation{font-size:14.5px;color:var(--muted);margin-top:18px}
.skills-line strong,.regulation strong{color:var(--ink)}
.program-list article{border:1px solid var(--line)}
.program-list article>span{font-family:'Geist Mono',monospace;font-weight:500;color:var(--strong)}
.elearning{margin-top:18px;padding:22px 24px;border:1px solid var(--line);background:var(--surface-sunken)}
.elearning>strong{font-size:13.5px;font-weight:560}
.elearning ul{list-style:none;padding:0;margin:13px 0 0;display:grid;gap:9px}
.elearning li{display:flex;justify-content:space-between;gap:18px;font-size:13.5px;border-top:1px solid var(--line);padding-top:9px}
.elearning small{color:var(--muted);white-space:nowrap}
.training-facts{border:1px solid var(--line);background:var(--surface-sunken);padding:26px}
.training-facts:has(.same-family){position:static}
.training-facts dt{font-family:'Geist Mono',monospace;font-size:10px;letter-spacing:.1em;font-weight:500}
.training-facts .button.outline{margin-bottom:6px}
.same-family{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}
.same-family strong{font-family:'Geist Mono',monospace;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:500}
.same-family ul{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:10px}
.same-family li{display:flex;justify-content:space-between;gap:12px;font-size:13.5px}
.same-family a{border-bottom:1px solid var(--line)}
.same-family small{color:var(--muted);white-space:nowrap}
.related-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}
.related-list li{border-bottom:1px solid var(--line)}
.related-list a{display:flex;justify-content:space-between;gap:20px;padding:15px 0;font-weight:500}
.related-list a:hover{color:var(--strong)}

/* 13. Parcours ------------------------------------------------------------- */
.path-steps{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);border:1px solid var(--line);background:var(--surface);margin:24px 0;overflow:hidden}
.path-stop{position:relative;padding:22px;border-left:1px solid var(--line);display:block}
.path-stop:first-child{border-left:0}
.path-stop small{display:block;font-size:10px;letter-spacing:.1em;color:var(--muted);margin-bottom:9px;font-weight:500}
.path-stop strong{display:block;font-size:15px;line-height:1.35;font-weight:560}
.path-stop p{font-size:12.5px;color:var(--muted);margin:7px 0 0;line-height:1.55}
.path-stop.current small{color:var(--invert-muted)}
a.path-stop:hover{background:var(--surface-sunken)}
.path-steps.numbered{grid-auto-flow:row;grid-template-columns:repeat(auto-fit,minmax(196px,1fr))}
.path-steps.numbered .path-stop{border-top:1px solid var(--line);margin-top:-1px}
.route-strip{border:1px solid var(--line);background:var(--surface)}
.route-stop small{font-size:10px;letter-spacing:.1em;color:var(--muted)}

/* 14. Dossiers de fond ----------------------------------------------------- */
.key-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);overflow:hidden;margin:32px 0 0}
.key-facts>div{background:var(--surface);padding:18px 22px}
.key-facts dt{font-family:'Geist Mono',monospace;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:500;margin-bottom:6px}
.key-facts dd{margin:0;font-size:14.5px;font-weight:560;line-height:1.45}
.article-body.rich>h2{margin-top:50px;scroll-margin-top:118px}
.article-body.rich>h2:first-child{margin-top:0}
.article-body.rich a:not(.button):not(.catalogue-row):not(.text-link){color:var(--strong);border-bottom:1px solid color-mix(in srgb,var(--strong) 32%,transparent)}
.article-body.rich a:not(.button):not(.catalogue-row):not(.text-link):hover{border-bottom-color:var(--strong)}
.article-body.rich .table-scroll{margin:24px 0}
.toc{font-size:12.5px}
.toc li{border-left:1px solid var(--line);transition:border-color .2s}
.toc li:hover{border-left-color:var(--strong)}
.linked-trainings{margin-top:50px}

/* 15. Tableaux ------------------------------------------------------------- */
.table-scroll{border:1px solid var(--line);background:var(--surface)}
.data-table th,.data-table td{width:auto;min-width:0;padding:14px 18px;font-size:14px;line-height:1.55;background:transparent;color:var(--ink);font-weight:400;text-transform:none;letter-spacing:0;border-bottom:1px solid var(--line);vertical-align:top}
.data-table thead th{background:var(--surface-sunken);font-family:'Geist Mono',monospace;font-size:10px;letter-spacing:.08em;text-transform:uppercase;font-weight:500;color:var(--muted);white-space:nowrap}
.data-table tbody th{font-weight:560;min-width:148px}
.data-table tbody tr:last-child>*{border-bottom:0}
.data-table td{color:var(--muted)}
.data-table tbody tr:hover>*{background:color-mix(in srgb,var(--surface-sunken) 60%,transparent)}

/* 16. Formulaires ---------------------------------------------------------- */
.field select,.field input,.field textarea,.request-form input,.request-form select,.request-form textarea,.search-box input,.city-search input{background:var(--field-bg);border:1px solid var(--field-line);color:var(--ink);transition:border-color .2s,box-shadow .2s}
.request-form input:focus,.request-form select:focus,.request-form textarea:focus,.field input:focus,.field select:focus,.field textarea:focus,.search-box input:focus,.city-search input:focus{border-color:var(--strong);box-shadow:0 0 0 3px color-mix(in srgb,var(--strong) 18%,transparent);outline:none}
::placeholder{color:color-mix(in srgb,var(--muted) 82%,transparent)}
.form-status,.privacy-note,.copy-status{color:var(--muted)}

/* 17. Pied de page --------------------------------------------------------- */
.footer{border-top:1px solid var(--line)}
.footer h3{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:500}
.footer a:hover{color:var(--strong)}

/* 18. Mouvement : discret, motivé, coupé si l'utilisateur le demande ------- */
@media (prefers-reduced-motion:no-preference){
 @supports (animation-timeline:view()){
  .section>.container>*,.article-body.rich>section,.catalogue-row,.dossier,.proof-item,.card{animation:rise linear both;animation-timeline:view();animation-range:entry 0% entry 42%}
  @keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
 }
}

/* 19. Adaptation aux écrans ------------------------------------------------ */
@media(max-width:940px){
 .proof-grid{grid-template-columns:1fr 1fr}
 .proof-item{padding:24px 20px}
 .proof-item:nth-child(odd){border-left:0;padding-left:0}
 .proof-item:nth-child(n+3){border-top:1px solid var(--line)}
 .dossier-grid{grid-template-columns:1fr 1fr}
 .catalogue-head{display:none}
 .catalogue-row,.catalogue-row.compact{grid-template-columns:1fr 1fr 1fr;gap:6px 18px;padding:20px}
 .catalogue-main{grid-column:1/-1;margin-bottom:8px}
 .catalogue-row>span[data-label]:before{content:attr(data-label);display:block;font-family:'Geist Mono',monospace;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:500}
 .catalogue-go{display:none}
 .path-steps{grid-auto-flow:row}
 .path-stop{border-left:0;border-top:1px solid var(--line)}
 .path-stop:first-child{border-top:0}
}
@media(max-width:680px){
 body{font-size:16px}
 .proof-grid,.dossier-grid,.why-grid{grid-template-columns:1fr}
 .proof-item{border-left:0;padding-left:0;border-top:1px solid var(--line)}
 .proof-item:first-child{border-top:0}
 .hero-chips{width:100%}
 .hero-chips li{flex:1 1 45%;padding:12px 16px;border-top:1px solid var(--line);margin-top:-1px}
 .training-page article>section{margin-top:38px}
 .training-page article>section>h2{font-size:24px}
 .article-body p,.article-body.rich p{font-size:16px}
 .data-table th,.data-table td{padding:12px 14px;font-size:13.5px}
 .elearning li{flex-direction:column;gap:2px}
 .key-facts{grid-template-columns:1fr}
}

/* 20. Formulaire de demande ------------------------------------------------ */
.request-form{padding:clamp(24px,3vw,40px);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-sm)}
.request-form fieldset{border-top:1px solid var(--line);padding:30px 0 18px}
.request-form fieldset:first-of-type{border-top:0;padding-top:0}
.request-form legend{font-size:17px;font-weight:560;letter-spacing:-.02em;padding:0 14px 0 0}
.request-form label,.field label{font-size:12.5px;font-weight:560;letter-spacing:-.005em;color:var(--ink)}
.request-form input,.request-form select,.request-form textarea{border-radius:var(--r-xs);padding:12px 14px;min-height:48px;font-size:15px}
.request-form .field small{font-size:11.5px;line-height:1.55}
.form-grid{gap:18px 20px}
.form-intro h2{font-size:clamp(26px,2.6vw,34px)}
.form-intro p{font-size:14.5px}
.response-promise{padding:24px;border-radius:var(--r-sm)}
.response-promise strong{color:var(--invert-fg);font-size:16.5px;font-weight:560}
.response-promise span{color:var(--invert-muted);font-size:12.5px}
.consent{gap:14px;padding-top:26px;font-size:12.5px!important}
.consent input{accent-color:var(--strong);width:19px;min-height:19px;flex-basis:19px}
.form-actions{margin-top:28px;gap:20px}
.form-actions span{font-size:11.5px}
.process-strip{border-radius:var(--r-sm);overflow:hidden;background:var(--surface)}
.process-strip span{font-family:'Geist Mono',ui-monospace,monospace;font-size:11px;letter-spacing:.08em;font-weight:500}
.process-strip strong{font-weight:560;font-size:15.5px}
.process-strip p{font-size:12.5px}
.request-result{border-radius:var(--r-sm);background:var(--surface-sunken)}
.request-result pre{border-radius:var(--r-xs);background:var(--field-bg);color:var(--ink)}
.planner-form .field select{min-height:48px}
.privacy-note{font-size:11.5px}

/* 21. Blocs hérités : mêmes tokens, finition alignée ----------------------- */
.hero{padding-top:clamp(28px,4vw,52px)}
.hero-proof span,.topic-rail span{color:var(--muted);font-size:12.5px}
.topic-rail{border-top:1px solid var(--line);padding-top:22px}
.topic-rail strong{font-weight:560}
.section-heading h2{max-width:22ch}
.section-heading p{font-size:14.5px;line-height:1.7}
.card-content{padding:26px}
.card h3{font-size:19.5px;margin-bottom:12px}
.card p{font-size:14px;line-height:1.68}
.card .card-arrow{font-size:12.5px;font-weight:560;padding-top:16px;border-top:1px solid var(--line);color:var(--strong)}
.feature-card .card-arrow{border-top-color:var(--invert-line)}
.pill{background:color-mix(in srgb,var(--accent) 34%,transparent);color:var(--ink);font-family:'Geist Mono',monospace;font-size:9.5px;letter-spacing:.1em;padding:6px 10px}
.specialist-node{border:1px solid var(--line);padding:24px}
.node-index{font-size:11px;color:var(--strong);font-weight:500}
.skill h3,.risk-item h3{font-size:17.5px}
.skill p,.risk-item p{font-size:14px;color:var(--muted);line-height:1.68}
.faq-list summary{font-size:16px;font-weight:500;padding-block:2px}
.faq-list summary:after{color:var(--strong);font-weight:400}
.faq-list details p{font-size:14.5px;line-height:1.72}
.faq-list details[open]{background:color-mix(in srgb,var(--surface-sunken) 55%,transparent)}
.faq-list details[open] summary{color:var(--strong)}
.callout{border-left:2px solid var(--strong)}
.callout strong{font-weight:560;font-size:14.5px}
.sources{border-top:1px solid var(--line);padding-top:20px}
.sources strong{font-family:'Geist Mono',monospace;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:500}
.author{border-top:1px solid var(--line);padding-top:22px;margin-top:34px}
.author strong{font-weight:560}
.region-card header span,.city-facts span,.local-request span,.zone-card span{font-family:'Geist Mono',monospace;font-size:10px;letter-spacing:.1em;color:var(--muted);font-weight:500}
.city-facts>div,.region-card,.zone-card{border-radius:var(--r-sm)}
.coverage-number{font-family:'Geist Mono',monospace;letter-spacing:-.03em}
.city-links a{border-radius:var(--r-xs);transition:background .2s,border-color .2s}
.city-links a:hover{border-color:var(--strong)}
.resource-row{transition:background .2s}
.resource-row:hover{background:var(--surface-sunken)}
.glossary .definition{border-radius:var(--r-sm)}
.definition h2{font-size:19px}
.breadcrumb{font-size:12.5px;color:var(--muted)}
.breadcrumb a:hover{color:var(--strong)}
.article-meta{font-family:'Geist Mono',monospace;font-size:11px;letter-spacing:.02em;color:var(--muted)}
.terrain-mark{font-family:'Geist Mono',monospace;letter-spacing:-.03em}
.terrain-signature,.field-signature{font-family:'Geist Mono',monospace;font-size:10px!important;letter-spacing:.1em}
.cta-band h2{font-size:clamp(26px,2.8vw,38px)}
.cta-band .field-signature,.terrain-promise .terrain-signature{color:var(--invert-fg)!important;opacity:.82}
.arrow{color:inherit;opacity:.85}
.feature-card .card-arrow,.feature-card .card-arrow .arrow{color:var(--invert-fg);border-top-color:var(--invert-line)}

/* 22. Finition des éléments, direction artistique inchangée ---------------- */
/* Hiérarchie : titres un cran plus calmes, texte plus lisible. */
.section{padding-block:var(--space-section)}
.section-heading{align-items:end;gap:48px;margin-bottom:38px}
.section-heading h2{max-width:20ch}

/* Héros : la photo respire, le bloc de repères s'aligne sur la grille. */
.hero-photo img{border-radius:var(--r-sm)}
.visual-note{border:1px solid var(--line);border-radius:var(--r-sm);box-shadow:var(--shadow-md);background:var(--surface)}
.visual-note strong{font-weight:560;letter-spacing:-.02em}
.visual-note span{color:var(--muted);font-size:13px}
.hero-proof span{display:inline-flex;align-items:center;gap:8px}

/* Cartes : une seule profondeur, un seul rayon, une flèche qui guide. */
.card>a:hover .card-arrow{gap:14px}
.card .card-arrow .arrow{transition:transform .2s}
.card>a:hover .card-arrow .arrow{transform:translate(2px,-2px)}
.feature-card{border-color:var(--invert-bg)}
.feature-card h3{font-weight:560}

/* Listes de formations : lignes plus lisibles, colonnes alignées. */
.catalogue-row>span[data-label]{color:var(--muted);font-variant-numeric:tabular-nums}
.catalogue-row:focus-visible{outline-offset:-3px}

/* Repères : chiffres en tabulaire, colonne stable. */
.proof-key,.coverage-number,.terrain-mark,.key-facts dd,.hero-chips li{font-variant-numeric:tabular-nums}

/* Parcours et étapes : cadence régulière. */
.route-strip{margin-top:32px}
.route-stop{padding:24px}
.route-stop strong{font-size:15.5px;font-weight:560}
.route-stop p{font-size:13px;margin-top:10px}
.process-strip>div{padding:26px}

/* Tableaux : lecture en lignes, sans surcharge de filets. */
.data-table tbody th{background:color-mix(in srgb,var(--surface-sunken) 45%,transparent)}
.table-scroll{scrollbar-width:thin}
caption{font-family:'Geist Mono',ui-monospace,monospace}

/* Guides et dossiers : colonne de lecture confortable, sommaire discret. */
.article-layout{gap:72px;padding-block:44px 76px}
.toc{top:104px}
.toc strong{font-family:'Geist Mono',ui-monospace,monospace;font-weight:500;color:var(--muted)}
.toc li{padding-left:14px;padding-block:1px}
.article-body h2{letter-spacing:-.028em}
.article-body h3{margin-top:30px}
.checklist li{line-height:1.6}

/* Questions : ouverture plus lisible, cible tactile plus grande. */
.faq-list details{padding-block:18px}
.faq-list summary{gap:20px;min-height:32px;align-items:center}

/* Formulaire : sections respirantes, aide visible, envoi rassurant. */
.request-form fieldset{padding-top:32px}
.request-form .field small{color:var(--muted)}
.form-actions .button{min-height:52px}
.response-promise{align-self:start}
.request-result{border-left:2px solid var(--strong)}

/* Zones : cartes de ville homogènes. */
.city-links a{padding:13px 14px;font-size:13.5px}
.city-facts>div{padding:22px;border:1px solid var(--line);background:var(--surface)}
.local-request{border:1px solid var(--line);background:var(--surface);padding:26px;border-radius:var(--r-sm)}

/* Pied de page et bandeau final : même famille de rayons et d'espacements. */
.cta-band{border-radius:0}
.cta-band .container{padding-block:clamp(44px,5vw,68px)}
.footer{padding-top:clamp(44px,5vw,64px)}
.footer-grid{gap:44px}
.footer ul{display:grid;gap:11px}
.footer li{font-size:13.5px}
.footer-bottom{border-top:1px solid var(--line);margin-top:40px;padding-top:24px;font-size:12.5px;color:var(--muted)}

/* Impression : garder les repères essentiels. */
@media print{.proof-band,.catalogue-go,.dossier-meta{display:none}}
.hero h1 em{font-style:italic;line-height:1.14;padding-bottom:2px}

/* 23. Arrondis plus marqués, typographie affinée, verre dépoli ------------- */
/* 23.1 Un seul système de rayons, un cran plus doux qu'avant. */
:root{--r-xs:8px;--r-sm:14px;--r-md:18px;--r-lg:24px;
 --glass-bg:color-mix(in srgb,var(--paper) 72%,transparent);
 --glass-border:color-mix(in srgb,var(--ink) 10%,transparent);
 --glass-blur:saturate(150%) blur(18px);
 --glass-sheen:inset 0 1px 0 #ffffffb0}
.card,.definition,.zone-card,.region-card,.objective-list li,.program-list article,.detail-grid>div,.request-form,.table-scroll,.callout,.quality-note,.terrain-method,.response-promise,.nearby-links a,.specialist-node,.elearning,.why-grid>div,.catalogue-list,.dossier-grid,.key-facts,.path-steps,.hero-chips,.training-facts,.quality-panel,.coverage-hero,.city-signal,.local-request,.route-strip,.planner,.process-strip,.request-result,.city-facts>div,.visual-note,.glossary .definition{border-radius:var(--r-sm)}
.button,.pill,.menu-toggle,.search-box input,.city-search input,.field select,.field input,.field textarea,.request-form input,.request-form select,.request-form textarea,.request-result pre,.city-links a{border-radius:var(--r-xs)}
.hero-photo img,.wide-photo img,.card-image{border-radius:var(--r-sm)}
.card{overflow:hidden}
.card-image{border-radius:0}
.feature-card,.cta-band>.container{border-radius:var(--r-md)}
.proof-item,.path-stop,.route-stop,.catalogue-row{border-radius:0}

/* 23.2 Texte : mesure, graisses et chiffres plus nets. */
body{font-size:17px;line-height:1.68;letter-spacing:-.005em}
h1{letter-spacing:-.038em;font-weight:570}
h2{letter-spacing:-.03em;font-weight:565}
h3{font-weight:565;letter-spacing:-.022em}
.hero-lead,.page-hero .lead{max-width:60ch;color:color-mix(in srgb,var(--ink) 78%,var(--muted))}
.article-body p,.article-body.rich p{max-width:66ch;line-height:1.78}
.article-body li{line-height:1.7}
.card p,.why-grid p,.skill p,.risk-item p,.dossier-meta,.proof-item p{letter-spacing:-.002em}
.section-kicker{font-size:11px;letter-spacing:.16em;color:var(--strong)}
strong,b{font-weight:600}
.catalogue-main strong,.dossier strong,.path-stop strong,.route-stop strong,.key-facts dd,.hero-chips li{font-weight:565}
table,.hero-chips li,.key-facts dd,.proof-key,.training-facts dd{font-variant-numeric:tabular-nums lining-nums}
.article-body.rich h2{font-size:clamp(25px,2.4vw,33px)}
.article-body.rich h3{font-size:19.5px;color:color-mix(in srgb,var(--ink) 92%,var(--strong))}

/* 23.3 Verre dépoli : uniquement là où un contenu passe derrière. */
.site-header{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-bottom:1px solid var(--glass-border)}
.visual-note{background:color-mix(in srgb,var(--paper) 62%,transparent);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-sheen),0 18px 40px -22px color-mix(in srgb,var(--ink) 55%,transparent)}
.training-facts,.quality-panel,.toc{background:color-mix(in srgb,var(--wash) 70%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.quality-panel{background:color-mix(in srgb,var(--invert-bg) 88%,transparent)}
.main-nav{border-radius:0 0 var(--r-md) var(--r-md)}
@media(max-width:940px){.main-nav{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:var(--glass-sheen),0 20px 40px -24px color-mix(in srgb,var(--ink) 50%,transparent)}}
/* Repli opaque si la transparence est refusée ou non gérée. */
@media (prefers-reduced-transparency:reduce){
 .site-header,.visual-note,.main-nav{background:var(--paper);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:var(--shadow-md)}
 .training-facts,.quality-panel,.toc{background:var(--wash);-webkit-backdrop-filter:none;backdrop-filter:none}
 .quality-panel{background:var(--invert-bg)}
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
 .site-header,.main-nav{background:var(--paper)}
 .visual-note{background:var(--surface)}
 .training-facts,.toc{background:var(--wash)}
 .quality-panel{background:var(--invert-bg)}
}

/* 23.4 Détails d'interaction, sans excès. */
.button{transition:transform .14s cubic-bezier(.16,1,.3,1),background .2s,box-shadow .2s}
.button:hover{box-shadow:0 8px 20px -12px color-mix(in srgb,var(--ink) 60%,transparent)}
.catalogue-row:first-child:hover{border-top-left-radius:var(--r-sm);border-top-right-radius:var(--r-sm)}
.catalogue-row:last-child:hover{border-bottom-left-radius:var(--r-sm);border-bottom-right-radius:var(--r-sm)}
.dossier:first-child{border-top-left-radius:var(--r-sm)}
.faq-list details{border-radius:var(--r-xs);padding-inline:14px;margin-inline:-14px}
.toc{border-radius:var(--r-sm);padding:18px 16px}
.toc li{border-left-color:var(--line)}
.button .arrow,.text-link .arrow,.card-arrow .arrow,a .arrow,button .arrow{color:currentColor;opacity:.9}

/* 24. Bandeau « la différence terrain » : panneau arrondi, hiérarchie claire */
.terrain-promise{background:transparent;color:var(--ink);padding-block:0;margin-block:var(--space-section)}
.terrain-panel{position:relative;display:grid;grid-template-columns:minmax(200px,268px) minmax(0,1fr);gap:clamp(32px,4vw,64px);align-items:center;
 background:linear-gradient(135deg,var(--invert-bg),color-mix(in srgb,var(--invert-bg) 88%,var(--strong)));
 color:var(--invert-fg);border-radius:var(--r-lg);padding:clamp(34px,4vw,56px) clamp(26px,3.4vw,58px);
 box-shadow:0 24px 60px -34px color-mix(in srgb,var(--ink) 70%,transparent);overflow:hidden}
.terrain-panel:after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;box-shadow:inset 0 1px 0 #ffffff1f}
.terrain-stat{display:flex;align-items:baseline;gap:16px;position:relative}
.terrain-stat:after{content:"";position:absolute;right:calc(clamp(32px,4vw,64px) / -2);top:6%;bottom:6%;width:1px;background:var(--invert-line)}
.terrain-mark{font-family:'Geist',system-ui,sans-serif;font-weight:520;font-size:clamp(68px,7.4vw,104px);line-height:.88;letter-spacing:-.05em;color:var(--accent);font-variant-numeric:tabular-nums}
.terrain-unit{font-size:14px;line-height:1.45;color:var(--invert-fg);font-weight:560;letter-spacing:-.01em;text-transform:none}
.terrain-body h2{font-size:clamp(25px,2.7vw,37px);line-height:1.14;letter-spacing:-.032em;font-weight:565;margin-bottom:18px;text-wrap:balance}
.terrain-body p{color:var(--invert-muted);font-size:15.5px;line-height:1.72;max-width:62ch;margin-bottom:22px}
.terrain-points{list-style:none;display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:0}
.terrain-points li{font-size:12.5px;font-weight:560;letter-spacing:-.005em;color:var(--invert-fg);background:#ffffff14;border:1px solid var(--invert-line);border-radius:999px;padding:8px 15px}
@media(max-width:940px){
 .terrain-panel{grid-template-columns:1fr;gap:26px;align-items:start}
 .terrain-stat:after{display:none}
 .terrain-stat{padding-bottom:22px;border-bottom:1px solid var(--invert-line)}
}
@media(max-width:680px){.terrain-mark{font-size:62px}.terrain-points li{font-size:12px;padding:7px 13px}}

/* 25. Chiffres de repères : même écriture que le bandeau terrain. */
.proof-key{font-family:'Geist',system-ui,sans-serif;font-weight:520;font-size:clamp(28px,2.6vw,34px);letter-spacing:-.045em;line-height:1;color:var(--strong)}
.proof-item{padding-block:34px}
.proof-item strong{font-size:15px;letter-spacing:-.012em}
.coverage-number{font-family:'Geist',system-ui,sans-serif;font-weight:520;letter-spacing:-.045em}

/* 26. Lisibilité mobile et confort tactile -------------------------------- */
/* Le panneau garde une couleur de fond même si le dégradé ne peint pas. */
.terrain-panel{background-color:var(--invert-bg)}

/* Taille plancher des petits libellés : rien sous 11 px, et 12 px sur mobile. */
.eyebrow,.brand-sub{font-size:10.5px;letter-spacing:.12em}
@media(max-width:680px){
 .section-kicker,.dossier-index,.node-index,.card-number,.catalogue-main small,.hero-chips small,
 .key-facts dt,.training-facts dt,.same-family strong,.path-stop small,.route-stop small,
 .proof-item p,.article-meta,.sources strong,.elearning small,.dossier-meta{font-size:12px}
 .eyebrow,.brand-sub,.topbar,.footer-bottom,.privacy-note,.form-actions span,.request-form .field small{font-size:11.5px}
 .card p,.why-grid p,.skill p,.risk-item p,.faq-list details p,.section-heading p{font-size:15px;line-height:1.7}
 .catalogue-main em,.same-family li,.elearning li{font-size:14px}
 .sources li,.sources p{font-size:13px}
}

/* Cibles tactiles : au moins 40 px de haut pour les liens de navigation. */
@media(pointer:coarse),(max-width:940px){
 .topbar .container{min-height:42px;gap:12px}
 .topbar a{display:inline-flex;align-items:center;min-height:40px}
 .footer li a,.footer-bottom a,.toc a,.breadcrumb a{display:inline-flex;align-items:center;min-height:40px}
 .footer ul{gap:2px}
 .nearby-links a,.city-links a{min-height:46px;align-items:center}
 .faq-list summary{min-height:44px}
 .main-nav a:not(.button){min-height:44px;display:flex;align-items:center}
}

/* 27. Derniers ajustements de lisibilité et de contraste ------------------ */
/* Pastilles du bandeau : fond plein, pour un contraste garanti. */
.terrain-points li{background:color-mix(in srgb,#fff 10%,var(--invert-bg))}
/* Libellé de section sur fond foncé : teinte claire de la palette. */
.cta-band .section-kicker,.terrain-panel .section-kicker,.coverage-hero .section-kicker,.city-signal .section-kicker{color:var(--accent)}
/* Plancher de lisibilité sur mobile. */
@media(max-width:680px){
 .topbar span,.topbar a{font-size:11.5px}
 .topic-rail strong,.skill>span,.data-table thead th,caption{font-size:12px}
 .pill,figcaption,.privacy-note,.field-signature,.footer-bottom,.footer-bottom a{font-size:11.5px}
 .wide-photo figcaption{line-height:1.5;padding-top:8px}
}
/* Sur grand écran, on remonte aussi les plus petits libellés. */
.topbar{font-size:11.5px}
.pill{font-size:10.5px}
figcaption{font-size:12px;color:var(--muted)}
.privacy-note,.field-signature{font-size:11px!important}
.data-table thead th{font-size:11px}
.skill>span{font-size:11.5px;color:var(--strong);font-family:'Geist Mono',ui-monospace,monospace}
.topic-rail strong{font-size:12.5px}
.eyebrow{font-size:11px}

/* 28. Confort de lecture : ligne de 70 caractères, libellés à 11 px mini --- */
.article-body p,.article-body.rich p,.article-body li{max-width:57ch}
.article-body .callout p,.article-body .table-scroll,.article-body .path-steps,.article-body .catalogue-list{max-width:none}
.page-hero .lead,.hero-lead{max-width:52ch}
.key-facts dt,.training-facts dt,.toc strong,.same-family strong,.sources strong,.path-stop small,
.hero-chips small,.catalogue-head,.proof-item .proof-label,.article-meta,.dossier-index{font-size:11px}
.elearning small,.same-family small{font-size:12px}

/* 29. Derniers libellés et largeur des encadrés --------------------------- */
.city-facts>div>span,.local-request>span,.zone-card>span,.region-card header span{font-size:11px}
.brand-sub{font-size:11px}
.arrow{font-size:16px}
.callout p{max-width:60ch}
.training-lead{max-width:62ch}

/* 30. Cibles de clic au bureau (24 px minimum) et pastille lisible -------- */
.card .pill,.feature-card .pill,.pill{font-size:11px;letter-spacing:.08em;padding:7px 11px}
.footer li a,.footer-bottom a,.toc a,.breadcrumb a,.same-family a,.sources li a{display:inline-flex;align-items:center;min-height:26px}
.footer ul{gap:4px}
.node-question small{font-size:11px;letter-spacing:.06em;color:var(--muted)}
.topbar a{display:inline-flex;align-items:center;min-height:26px}
.wide-photo figcaption,figure figcaption{font-size:12px;line-height:1.5;color:var(--muted);letter-spacing:0;text-transform:none}
