*{box-sizing:border-box}body{margin:0;background:var(--c-fond);color:var(--c-texte);font-family:var(--f-texte);font-size:17px;line-height:1.6}h1,h2,h3{font-family:var(--f-titre);line-height:1.08}a{color:var(--c-primaire-texte)}.site-header{position:sticky;top:0;z-index:100;background:var(--c-fond);border-bottom:2px solid var(--c-texte)}.month-strip{min-height:36px;width:100%;display:flex;align-items:center;justify-content:center;gap:20px;padding:5px 48px;background:var(--c-voile);color:var(--c-sur-voile);font-size:14px;text-align:center}.month-strip button{position:absolute;right:12px;min-width:44px;min-height:32px;background:transparent;border:0;color:inherit}.month-strip svg,.menu-button svg,.mini-card svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.header-inner{max-width:1100px;margin:auto;padding:14px 20px 12px;display:flex;flex-direction:column;align-items:center;gap:26px}.header-inner [data-usine=logo] img{display:block;height:48px;width:auto}.header-inner nav{display:flex;align-items:center;justify-content:center;gap:20px}.header-inner nav a{min-height:44px;display:flex;align-items:center;color:var(--c-texte);text-decoration:none;font-weight:700;white-space:nowrap}.header-inner nav a[aria-current=page]{color:var(--c-primaire);text-decoration:underline 3px var(--c-secondaire);text-underline-offset:7px}.menu-button{display:none}.project-home .bh-bbc0-bloc{padding-block:70px}.project-hero{position:relative;isolation:isolate;height:calc(100svh - 151px);min-height:560px!important;padding:0!important;display:grid!important;place-items:center;overflow:hidden;color:white!important}.project-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.project-hero:after{content:"";position:absolute;inset:0;background:color-mix(in srgb,var(--c-voile) 72%,transparent);z-index:-1}.hero-copy{width:min(850px,calc(100% - 32px));text-align:center}.hero-copy>span{font-weight:700;text-transform:uppercase;letter-spacing:.1em}.hero-copy h1{font-size:clamp(2.5rem,6vw,5.2rem);margin:18px 0;color:white}.hero-copy p{font-size:clamp(1.1rem,2vw,1.35rem);max-width:670px;margin:0 auto}.hero-actions{margin-top:30px;display:flex;justify-content:center;gap:18px;flex-wrap:wrap}.hero-actions .secondary{background:white!important}.need-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:24px}.photo-card{grid-row:span 2;position:relative;overflow:hidden;border:var(--carte-bord);box-shadow:var(--o-carte)}.photo-card img{width:100%;height:100%;max-height:430px;object-fit:cover}.photo-card h3{position:absolute;left:20px;bottom:15px;background:var(--c-secondaire);color:var(--c-sur-secondaire);padding:8px 12px;margin:0}.mini-card{padding:24px;gap:12px;text-decoration:none}.mini-card h3{margin:0;font-size:1.35rem}.mini-card p{color:var(--c-texte-2)}.mini-card svg{color:var(--c-primaire);width:30px;height:30px}.four-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.three-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.rubric-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:22px}.rubric-grid>*{grid-column:span 2}.rubric-grid>*:nth-last-child(2){grid-column:2/span 2}.step-number{font-family:var(--f-titre);font-size:2rem;color:var(--c-primaire)}.widget-card{padding:28px;border:2px solid var(--c-texte);box-shadow:var(--o-carte);background:var(--c-surface)}[data-onglets] [role=tablist]{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:22px}[data-onglet]{min-height:44px;padding:10px 18px;border:2px solid var(--c-texte);background:var(--c-doux);font:700 1rem var(--f-texte)}[data-panneau] h3{font-size:1.6rem}.steps-widget{display:grid;grid-template-columns:1.05fr 1fr;gap:36px;align-items:center}.steps-widget>img{width:100%;height:320px;object-fit:cover;border-radius:var(--r-image)}.steps-widget ol{list-style:none;padding:0;margin:0;display:grid;gap:12px}.steps-widget li{display:flex;gap:15px;padding:14px;border:2px solid var(--c-bord);background:var(--c-surface);cursor:pointer}.steps-widget li>span{display:grid;place-items:center;width:44px;height:44px;flex:none;border-radius:50%;background:var(--c-secondaire);font-weight:800}.steps-widget h3,.steps-widget p{margin:0}.split{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}.split>img{width:100%;height:320px;object-fit:cover;border-radius:var(--r-image);border:2px solid var(--c-texte)}.split .bh-bbc0-bouton{margin-top:24px}.checklist{display:grid;grid-template-columns:1fr 1fr;gap:12px}.checklist label{display:flex;align-items:center;gap:12px;padding:14px;border:2px solid var(--c-bord);min-height:56px}.checklist input{width:22px;height:22px;accent-color:var(--c-primaire)}.checklist output{font-weight:800;color:var(--c-primaire);padding:14px}.author-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:18px}.author-card{text-align:center;text-decoration:none;color:var(--c-texte)!important}.author-card img{width:150px;height:150px;margin:auto;border-radius:50%;object-fit:cover;border:3px solid var(--c-texte)}.author-card h3{margin:12px 0 0}.author-card p{margin:0}.faq-list{display:grid;gap:14px;max-width:880px;margin:auto}.faq-list details{border:2px solid var(--c-texte);background:var(--c-surface);padding:18px 22px}.faq-list summary{font-family:var(--f-titre);font-size:1.25rem;font-weight:700;cursor:pointer}.mag-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:22px}.article-card{border:2px solid var(--c-texte);background:var(--c-surface)}.article-card a{display:grid;grid-template-columns:170px 1fr;color:inherit;text-decoration:none}.article-card img{width:170px;height:100%;object-fit:cover}.article-card div{padding:16px}.article-card h3{margin:5px 0;font-size:1.2rem}.article-card p{font-size:.95rem}.article-card.featured{grid-row:span 3}.article-card.featured a{display:block}.article-card.featured img{width:100%;height:280px}.article-card.featured h3{font-size:1.65rem}.orientation{display:flex;align-items:center;justify-content:space-between;gap:30px}.orientation div{display:flex;gap:20px}.final-cta{background:var(--c-primaire)!important;color:var(--c-sur-primaire)!important;text-align:center}.final-cta h2{font-size:clamp(2rem,4vw,3.5rem);color:inherit}.site-footer{background:var(--c-voile);color:var(--c-sur-voile);padding:60px max(20px,calc((100vw - 1100px)/2)) 24px}.footer-band{display:grid;grid-template-columns:260px 1fr auto;gap:30px;align-items:center;padding-bottom:38px;border-bottom:1px solid color-mix(in srgb,var(--c-sur-voile) 25%,transparent)}.footer-band img{width:240px;filter:brightness(0) invert(1)}.theme-button{display:inline-flex;align-items:center;min-height:48px;padding:10px 20px;background:var(--c-secondaire);color:var(--c-sur-secondaire)!important;border:2px solid white;text-decoration:none;font-weight:800}.footer-links{display:grid;grid-template-columns:1fr 1fr;gap:80px;padding:38px 0}.footer-links h2{color:inherit}.footer-links ul{columns:2;list-style:none;padding:0}.footer-links a,.footer-bottom a{color:inherit}.footer-bottom{display:flex;gap:24px;justify-content:space-between;padding-top:20px;border-top:1px solid color-mix(in srgb,var(--c-sur-voile) 25%,transparent);font-size:14px}.internal-page{width:min(1100px,calc(100% - 32px));margin:auto;padding:64px 0}.internal-hero{width:100%;background:var(--c-primaire);color:var(--c-sur-primaire);padding:70px max(20px,calc((100vw - 1100px)/2))}.internal-hero h1{font-size:clamp(2.5rem,5vw,4.5rem);color:inherit;max-width:900px}.internal-hero p{max-width:65ch;font-size:1.2rem}.content-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.content-card{padding:26px;border:2px solid var(--c-texte);box-shadow:var(--o-carte);background:var(--c-surface)}.content-card img{width:100%;height:230px;object-fit:cover}.page-cta{margin-top:55px;padding:35px;background:var(--c-doux)}.article-shell{width:min(1180px,calc(100% - 32px));margin:auto;padding:48px 0}.article-head h1{font-size:clamp(2.4rem,5vw,4.5rem)}.article-head img{width:100%;max-height:560px;object-fit:cover}.article-head .tag{display:inline-block;padding:6px 12px;background:var(--c-doux);color:var(--c-sur-doux);font-weight:700}.ka-cadre{width:100%;max-width:none!important}.ka-tete{width:100%}.ka-corps p{max-width:none!important}.legal-copy{max-width:75ch}.legal-copy h2{margin-top:35px}
@media(max-width:900px){.header-inner{flex-direction:row;justify-content:space-between;gap:20px}.header-inner [data-usine=logo] img{height:40px}.menu-button{display:grid;place-items:center;min-width:44px;min-height:44px;border:2px solid var(--c-texte);background:var(--c-fond)}.header-inner nav{display:none;position:absolute;top:100%;left:0;right:0;padding:16px;background:var(--c-fond);flex-direction:column;align-items:stretch}.header-inner nav.open{display:flex}.project-hero{height:calc(100svh - 118px);min-height:500px!important}.need-grid,.four-grid{grid-template-columns:1fr 1fr}.photo-card{grid-column:span 2}.three-grid,.rubric-grid{grid-template-columns:1fr}.rubric-grid>*{grid-column:auto!important}.steps-widget,.split{grid-template-columns:1fr}.author-grid{grid-template-columns:repeat(3,1fr)}.footer-band{grid-template-columns:1fr}.footer-links ul{columns:1}.orientation{align-items:flex-start;flex-direction:column}}
@media(max-width:600px){.month-strip{font-size:12px}.project-home .bh-bbc0-bloc{padding-block:52px}.hero-copy h1{font-size:2.45rem}.need-grid,.four-grid,.content-grid,.checklist,.mag-grid{grid-template-columns:1fr}.photo-card{grid-column:auto}.three-grid{grid-template-columns:1fr}.author-grid{grid-template-columns:1fr 1fr}.article-card.featured{grid-row:auto}.article-card a{grid-template-columns:110px 1fr}.article-card img{width:110px}.article-card.featured img{height:220px}.footer-bottom{flex-direction:column}.orientation div{flex-direction:column}.steps-widget>img,.split>img{height:260px}.bh-bbc0-int{width:calc(100% - 32px)!important}.internal-page{width:calc(100% - 32px)}.footer-links{gap:30px}}
.project-home{width:100%!important;max-width:100%!important;margin-left:0!important;margin-right:0!important;overflow:hidden}.steps-widget{max-width:100%;overflow:hidden}.steps-widget ol{min-width:0}
.project-home .project-hero{height:calc(100svh - 186px)}
@media(max-width:900px){.project-home .project-hero{height:calc(100svh - 128px)}}

/* Corrections ciblées du portier : contraste, largeur de lecture et liant. */
.month-strip button{min-height:44px;margin-block:-6px}
.project-hero:after{background:#0c0c18e8}
.project-hero .hero-copy,.project-hero .hero-copy :is(h1,p,span){color:#fff!important}
.four-grid,.rubric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.rubric-grid>*{grid-column:auto!important}
.mag-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.article-card a{display:block}
.article-card img{width:100%;height:190px}
.article-shell{width:min(1240px,calc(100% - 16px))}
.orientation{display:grid;grid-template-columns:auto minmax(260px,1fr) minmax(300px,1.2fr) auto;gap:24px}
.orientation>svg,.icon-section>svg,.final-cta svg{width:44px;height:44px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.icon-section{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:24px;align-items:start}
.icon-section>a{grid-column:2}
.final-cta svg{margin-inline:auto}
.author-single img{width:420px;height:420px;object-fit:cover}
.contact-layout{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:48px;align-items:start}
.contact-form{display:grid;gap:10px;padding:28px;border:2px solid var(--c-texte);box-shadow:var(--o-carte);background:var(--c-surface)}
.contact-form :is(input,textarea){width:100%;padding:12px;border:2px solid var(--c-bord);background:var(--c-fond);color:var(--c-texte);font:inherit}
.contact-form label{font-weight:700}.contact-honeypot{position:absolute;left:-10000px}.contact-status{min-height:1.6em}
@media(max-width:900px){.orientation{grid-template-columns:auto 1fr}.orientation>p,.orientation>div{grid-column:2}.contact-layout{grid-template-columns:1fr}}
@media(max-width:600px){.mini-card{padding-inline:18px}.icon-section{grid-template-columns:1fr}.icon-section>a{grid-column:1}.contact-form{padding:18px}.author-single{grid-template-columns:1fr}.author-single img{width:100%;height:auto;aspect-ratio:1}.article-card a{display:block}.article-card img{width:100%;height:190px}}
.need-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-card{grid-row:span 3}
@media(max-width:600px){.need-grid,.four-grid,.rubric-grid,.mag-grid{grid-template-columns:1fr}.photo-card{grid-row:auto}.widget-card{padding-inline:12px}.steps-widget li{padding-inline:10px;flex-direction:column}.checklist label{display:grid;grid-template-columns:1fr;padding-inline:10px}.checklist input{margin-bottom:4px}.orientation{grid-template-columns:1fr}.orientation>p,.orientation>div{grid-column:1}}

/* Pré-contrôle : le site reste volontairement clair, y compris si le navigateur demande un thème sombre. */
:is(html.dark,html[data-theme="dark"],html[data-mode="dark"],html.theme-dark) .project-home{
  --c-fond:#fefefe;--c-fond-2:#f4f5f2;--c-surface:#fff;--c-texte:#23242f;--c-texte-2:#57596b;
  --c-primaire:#1623cf;--c-primaire-texte:#1521c1;--c-secondaire:#91c837;--c-doux:#e8f0db;--c-sur-doux:#141529;
  --carte-fond:#fff;--carte-encre:#23242f;--carte-encre-2:#57596b;--carte-lien:#1521c1;--c-bord:#d3d3d9;
  --btn-fond:#91c837;--btn-texte:#212914;--lien-couleur:#1521c1
}
.project-hero .hero-actions .bh-bbc0-bouton,.final-cta .bh-bbc0-bouton{color:#212914!important}
@media(max-width:600px){.internal-page{width:calc(100% - 16px)}.page-cta{padding-inline:24px}.site-header [data-usine="logo"]{display:flex;align-items:center;min-height:44px}}
/* Colonnes étroites (portier, 390 px) : texte de 60 caractères et plus dans 300 px au moins. */
@media(max-width:600px){:is([data-usine-bloc="checklist-financement"],[data-usine-bloc="orientation"]) .bh-bbc0-int{width:100%!important;max-width:100%!important;padding-inline:14px!important;box-sizing:border-box}[data-usine-bloc="checklist-financement"] .checklist label{padding-inline:8px}[data-usine-bloc="checklist-financement"] .checklist label>span{min-width:0}}

/* Pré-contrôle AA : la home reste claire en sombre, son fond doit donc suivre ses tokens clairs (sinon texte foncé sur le fond sombre du body). */
:is(html.dark,html[data-theme="dark"],html[data-mode="dark"],html.theme-dark) .project-home{background:var(--c-fond);color:var(--c-texte)}
/* Boutons : fond plein et texte foncé sur la photo du hero ; bouton contour clair sur le bleu de l'appel final. */
[data-usine-bloc="hero-projet"] .hero-actions .bh-bbc0-bouton:not(.secondary){background:#91c837!important;color:#212914!important;border:2px solid #91c837!important}
[data-usine-bloc="appel-final"] .bh-bbc0-bouton{background:transparent!important;color:#fff!important;border:2px solid #fff!important}
