/* =====================================================================
   MENDES SOLAR · Pages de contenu (guides, offres, articles, zones, réalisations)
   S'ajoute à site.css, pages.css et ville.css.
   ===================================================================== */

/* ---------- Barre de lecture ---------- */
.readbar{position:fixed;left:0;top:0;right:0;z-index:310;height:3px;background:var(--orange);transform-origin:0 50%;transform:scaleX(0);pointer-events:none}

/* ---------- En-tête ---------- */
.doc-hero h1{font-size:clamp(2.3rem,4.8vw,4.6rem);max-width:20ch}
.doc-hero h1 br{display:none}
.doc-hero .lead{max-width:62ch}
.doc-hero .ctas{margin-top:2rem}
.doc-meta{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;margin-top:1.6rem;font-size:.84rem;font-weight:600;color:var(--fg2)}
.doc-meta span{display:inline-flex;align-items:center;gap:.45rem}
.doc-meta .ico{color:var(--orange)}

/* ---------- Chiffres clés ---------- */
.kfacts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));border-top:1px solid var(--line)}
.kfact{padding:2rem 1.5rem 0 0}
.kfact+.kfact{padding-left:1.5rem;border-left:1px solid var(--line)}
.kfact b{display:block;font-family:var(--ff-d);font-weight:600;font-size:clamp(2.4rem,4.6vw,4.4rem);letter-spacing:-.02em;line-height:.95}
.kfact b.long{font-size:clamp(1.9rem,3vw,3rem);line-height:1.02}
.kfact b small,.kfact b span[style]{font-style:italic;font-size:.4em!important;color:var(--acc-big);margin-left:.1em}
.kfact > span{display:block;margin-top:.9rem;color:var(--fg2);font-size:.92rem;max-width:26ch}
.kfact > span br{display:none}
@media (max-width:900px){.kfacts{grid-template-columns:1fr 1fr;row-gap:2.2rem}.kfact:nth-child(odd){padding-left:0;border-left:0}}

/* ---------- Article : sommaire collant + texte ---------- */
.doc{display:grid;grid-template-columns:270px minmax(0,1fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.doc.no-toc{grid-template-columns:minmax(0,1fr)}
.doc.no-toc .prose{margin:0 auto}
.toc-side{position:sticky;top:104px;max-height:calc(100vh - 130px);overflow:auto;padding-right:.5rem;scrollbar-width:none}
.toc-side::-webkit-scrollbar{display:none}
.toc-tg{display:flex;justify-content:space-between;align-items:baseline;width:100%;font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--acc);margin-bottom:1rem;cursor:default;text-align:left}
.toc-tg em{font-style:normal;letter-spacing:.08em;color:var(--fg2);display:none}
@media (max-width:1000px){.toc-tg{cursor:pointer;margin-bottom:0}.toc-tg em{display:inline}.toc-tg::after{content:'+';font-size:1.3rem;letter-spacing:0;color:var(--fg)}.toc-side.open .toc-tg::after{content:'−'}.toc-side ol{margin-top:1rem}.toc-side:not(.open) ol{display:none}}
.toc-side ol{list-style:none;display:grid;gap:.15rem;counter-reset:t}
.toc-side li{counter-increment:t}
.toc-side ol a{position:relative;display:grid;grid-template-columns:2rem 1fr;gap:.2rem;padding:.55rem .6rem .55rem 0;border-radius:10px;font-size:.9rem;font-weight:600;line-height:1.35;color:var(--fg2);transition:color .3s,background .3s,padding .4s var(--ease)}
.toc-side ol a::before{content:counter(t,decimal-leading-zero);font-family:var(--ff-d);font-weight:600;font-size:.82rem;color:color-mix(in srgb,var(--fg2) 70%,transparent)}
.toc-side ol a:hover{color:var(--fg)}
.toc-side ol a.on{color:var(--fg);background:color-mix(in srgb,var(--orange) 12%,transparent);padding-left:.6rem}
.toc-side ol a.on::before{color:var(--acc)}
.toc-cta{margin-top:1.6rem;padding:1.2rem;border-radius:18px;background:var(--blue);color:#eef1f7}
.toc-cta b{display:block;font-family:var(--ff-d);font-weight:600;font-size:1.15rem;line-height:1.2;margin-bottom:.4rem}
.toc-cta p{font-size:.84rem;color:rgba(238,241,247,.72);margin-bottom:1rem}
.toc-cta .btn{height:46px;width:100%;justify-content:center;font-size:.86rem}
@media (max-width:1000px){.doc{grid-template-columns:minmax(0,1fr)}.toc-side{position:relative;top:auto;max-height:none;padding:1.4rem;border:1px solid var(--line);border-radius:20px}.toc-cta{display:none}}

/* ---------- Texte long ---------- */
.prose{max-width:760px}
.prose > *+*{margin-top:1.1rem}
.prose h2{font-family:var(--ff-d);font-weight:600;font-size:clamp(1.9rem,3vw,2.7rem);letter-spacing:-.02em;line-height:1.08;margin-top:clamp(3.2rem,6vw,4.6rem);padding-top:2.2rem;border-top:1px solid var(--line);scroll-margin-top:100px;text-wrap:balance}
.prose h2:first-child{margin-top:0;padding-top:0;border-top:0}
.prose h2 em,.prose h3 em{font-style:italic;color:var(--acc-big)}
.prose h3{font-family:var(--ff-d);font-weight:600;font-size:clamp(1.3rem,1.8vw,1.6rem);letter-spacing:-.015em;line-height:1.2;margin-top:2rem;color:var(--fg)}
.prose h4{font-size:1.05rem;font-weight:800;margin-top:1.6rem}
.prose p,.prose li{font-size:1.04rem;line-height:1.78;color:var(--fg2)}
.prose strong{color:var(--fg);font-weight:700}
.prose em{font-style:italic}
.prose a{color:var(--fg);font-weight:700;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--acc) 60%,transparent);text-underline-offset:3px;transition:color .3s}
.prose a:hover{color:var(--acc)}
.prose a.btn{text-decoration:none;font-weight:700;color:var(--night)}
.prose a.btn:hover{color:var(--night)}
.prose .cta-row b{color:var(--fg)}
.prose ul,.prose ol{padding-left:1.3rem;display:grid;gap:.5rem}
.prose ul li::marker{color:var(--acc)}
.prose ol li::marker{color:var(--acc);font-weight:800}
.prose .note-small{font-size:.88rem;color:var(--fg2)}
.prose .note-small em{color:var(--fg2)}
/* liste à coches */
.prose ul.checks{list-style:none;padding:0;gap:.8rem}
.prose ul.checks li{position:relative;padding-left:2.2rem}
.prose ul.checks li::before{content:'';position:absolute;left:0;top:.35em;width:1.35rem;height:1.35rem;border-radius:50%;background:var(--orange) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath fill='%23020a1f' d='M232.49 80.49l-128 128a12 12 0 0 1-17 0l-56-56a12 12 0 1 1 17-17L96 183 215.51 63.51a12 12 0 0 1 17 17Z'/%3E%3C/svg%3E") center/62% no-repeat}
/* encadrés */
.callout{position:relative;padding:1.5rem 1.6rem 1.5rem 1.8rem;border-radius:20px;background:#fff;border:1px solid var(--line);box-shadow:0 30px 60px -45px rgba(10,22,51,.4);overflow:hidden}
.callout::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--orange)}
.callout > :first-child{margin-top:0!important}
.callout > *+*{margin-top:.8rem}
.callout h3{margin-top:0;font-size:1.3rem}
.callout p,.callout li{font-size:.99rem}
.callout.dark{background:var(--blue);border-color:transparent;--fg:#eef1f7;--fg2:rgba(238,241,247,.78);--acc:#fa941b;--acc-big:#fa941b;color:#eef1f7}
.callout.dark::before{background:var(--orange)}
.callout.warn{background:#fff8ef;border-color:rgba(250,148,27,.4)}
.callout .tag{display:inline-flex;align-items:center;gap:.45rem;font-size:.7rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--acc)}
/* tableaux */
.tbl-wrap{overflow-x:auto;border-radius:18px;border:1px solid var(--line);background:#fff;-webkit-overflow-scrolling:touch}
.tbl-wrap table{width:100%;border-collapse:collapse;font-size:.94rem;min-width:560px}
.tbl-wrap th{text-align:left;padding:1rem 1.1rem;background:var(--blue);color:#eef1f7;font-weight:700;font-size:.82rem;letter-spacing:.04em}
.tbl-wrap td{padding:.9rem 1.1rem;border-top:1px solid var(--line);color:var(--fg2);vertical-align:top}
.tbl-wrap td strong{color:var(--fg)}
.tbl-wrap tbody tr:hover td{background:color-mix(in srgb,var(--orange) 6%,transparent)}
/* cartes */
.pcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;counter-reset:pc}
.pcard{position:relative;padding:1.5rem 1.4rem;border-radius:20px;background:#fff;border:1px solid var(--line);counter-increment:pc;transition:transform .6s var(--ease),border-color .4s,box-shadow .6s var(--ease)}
.pcard:hover{transform:translateY(-4px);border-color:var(--orange);box-shadow:0 30px 50px -35px rgba(10,22,51,.45)}
.pcard::before{content:counter(pc,decimal-leading-zero);display:block;font-family:var(--ff-d);font-weight:600;font-size:.9rem;color:var(--acc);margin-bottom:.9rem}
.pcard h3{margin-top:0;font-size:1.2rem}
.pcard p{font-size:.95rem;margin-top:.5rem}
/* citation */
.prose blockquote,.prose .pull{font-family:var(--ff-d);font-weight:600;font-size:clamp(1.4rem,2.2vw,1.9rem);line-height:1.25;letter-spacing:-.015em;color:var(--fg);padding:.4rem 0 .4rem 1.4rem;border-left:3px solid var(--orange)}
.prose .pull em{color:var(--acc-big)}

/* ---------- Appel au milieu du texte ---------- */
.prose .cta-row{margin-top:2.6rem}

/* ---------- FAQ ---------- */
.faq-list details{border-top:1px solid var(--line)}
.faq-list details:last-of-type{border-bottom:1px solid var(--line)}
.faq-list summary{list-style:none;display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1.3rem 0;cursor:pointer;font-weight:700;font-size:1.04rem;color:var(--fg)}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary .pm{flex:0 0 auto;width:36px;height:36px;border-radius:50%;border:1px solid var(--line2);display:grid;place-items:center;transition:transform .5s var(--ease),background .3s}
.faq-list details[open] summary .pm{transform:rotate(45deg);background:var(--orange);color:var(--night);border-color:var(--orange)}
.faq-list .ans{padding:0 0 1.4rem;color:var(--fg2)}
.faq-list .ans p{font-size:1rem;line-height:1.75}

/* ---------- Pour aller plus loin ---------- */
.rel{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:clamp(12px,1.4vw,18px)}
.relc{position:relative;display:flex;flex-direction:column;gap:.5rem;padding:1.6rem 1.6rem 1.5rem;border-radius:22px;border:1px solid var(--line2);background:color-mix(in srgb,var(--fg) 3%,transparent);transition:border-color .4s,transform .6s var(--ease),background .4s}
.relc:hover{border-color:var(--orange);transform:translateY(-4px);background:color-mix(in srgb,var(--orange) 8%,transparent)}
.relc small{font-size:.7rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--acc)}
.relc b{font-family:var(--ff-d);font-weight:600;font-size:1.4rem;letter-spacing:-.02em;line-height:1.15}
.relc p{font-size:.93rem;color:var(--fg2)}
.relc .go{margin-top:auto;padding-top:.6rem;display:inline-flex;align-items:center;gap:.4rem;font-weight:700;font-size:.9rem}
.relc .go .ico{transition:transform .5s var(--ease)}
.relc:hover .go .ico{transform:translateX(5px)}

/* ---------- Réalisations ---------- */
.proj-hero{position:relative;min-height:88svh;display:flex;align-items:flex-end;overflow:hidden;padding:9rem 0 clamp(2.5rem,6vh,4rem);color:#eef1f7}
.proj-hero .bgm{position:absolute;inset:0;z-index:0;background:#020a1f}
.proj-hero .bgm img,.proj-hero .bgm video{width:100%;height:100%;object-fit:cover}
.proj-hero::after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(2,10,31,.82) 0%,rgba(2,10,31,.45) 45%,rgba(2,10,31,0) 75%),linear-gradient(180deg,rgba(2,10,31,.6) 0%,rgba(2,10,31,.1) 35%,rgba(2,10,31,.55) 65%,rgba(2,10,31,.95) 100%)}
.proj-hero .wrap{position:relative;z-index:2}
.proj-hero h1{font-size:clamp(2.6rem,6vw,6rem);max-width:16ch;margin:1rem 0 1rem}
.proj-hero h1 br{display:none}
.proj-loc{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;color:rgba(238,241,247,.85)}
.proj-loc .ico{color:var(--orange)}
.proj-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.4rem;list-style:none}
.proj-tags li{padding:.42rem .85rem;border-radius:999px;background:rgba(2,10,31,.45);border:1px solid rgba(238,241,247,.25);font-size:.8rem;font-weight:700;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.proj-toggle{position:absolute;right:var(--pad);top:104px;z-index:3;width:44px;height:44px;border-radius:50%;border:1px solid rgba(238,241,247,.3);background:rgba(2,10,31,.35);display:grid;place-items:center;color:#eef1f7}
.pmeta{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));border-top:1px solid var(--line)}
.pmeta > div{padding:1.6rem 1.2rem 0 0}
.pmeta > div+div{padding-left:1.2rem;border-left:1px solid var(--line)}
.pmeta small{display:block;font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--fg2);margin-bottom:.6rem}
.pmeta b{font-family:var(--ff-d);font-weight:600;font-size:clamp(1.6rem,2.6vw,2.4rem);letter-spacing:-.02em;line-height:1}
.pmeta b em{font-style:italic;color:var(--acc-big)}
@media (max-width:760px){.pmeta{grid-template-columns:1fr 1fr;row-gap:1.6rem}.pmeta > div:nth-child(odd){padding-left:0;border-left:0}}
.story{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(2rem,6vw,6rem);align-items:start}
.side-card{position:sticky;top:104px;padding:1.8rem;border-radius:24px;background:var(--blue);color:#eef1f7;--fg2:rgba(238,241,247,.75)}
.side-card h3{font-family:var(--ff-d);font-weight:600;font-size:1.4rem;margin-bottom:1rem}
.side-card ul{list-style:none;display:grid;gap:.7rem;margin-bottom:1.6rem}
.side-card li{display:flex;gap:.7rem;align-items:flex-start;font-size:.95rem;color:rgba(238,241,247,.85)}
.side-card li .ico{flex:0 0 auto;width:22px;height:22px;border-radius:50%;background:var(--orange);color:var(--night);font-size:.7rem;margin-top:.1rem}
.side-card .btn{width:100%;justify-content:center}
@media (max-width:900px){.story{grid-template-columns:1fr}.side-card{position:relative;top:auto}}
.gal{display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(10px,1.2vw,16px)}
.gal figure{position:relative;grid-column:span 3;aspect-ratio:4/3;border-radius:20px;overflow:hidden;background:#0a1633}
.gal figure.wide{grid-column:span 6;aspect-ratio:16/8}
.gal figure.third{grid-column:span 2}
.gal img,.gal video{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.gal figure:hover img{transform:scale(1.05)}
.gal figcaption{position:absolute;left:1rem;bottom:1rem;padding:.4rem .8rem;border-radius:999px;background:rgba(2,10,31,.6);color:#eef1f7;font-size:.78rem;font-weight:700;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
@media (max-width:700px){.gal figure,.gal figure.third{grid-column:span 6}}
.prc{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:clamp(12px,1.4vw,18px)}
.prc a{display:grid;gap:.8rem}
.prc .m{position:relative;aspect-ratio:4/5;border-radius:20px;overflow:hidden;background:#0a1633}
.prc img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.prc a:hover img{transform:scale(1.05)}
.prc small{font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--fg2)}
.prc b{display:block;font-family:var(--ff-d);font-weight:600;font-size:1.35rem;letter-spacing:-.02em;margin-top:.2rem}

/* ---------- Liste d'articles ---------- */
.posts{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:clamp(12px,1.4vw,18px)}
.post{display:flex;flex-direction:column;gap:.7rem;padding:1.8rem;border-radius:24px;background:#fff;border:1px solid var(--line);transition:transform .6s var(--ease),border-color .4s,box-shadow .6s var(--ease)}
.post:hover{transform:translateY(-5px);border-color:var(--orange);box-shadow:0 40px 60px -45px rgba(10,22,51,.5)}
.post small{font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--acc)}
.post b{font-family:var(--ff-d);font-weight:600;font-size:1.5rem;letter-spacing:-.02em;line-height:1.15}
.post p{font-size:.95rem;color:var(--fg2)}
.post .go{margin-top:auto;padding-top:.6rem;display:inline-flex;align-items:center;gap:.4rem;font-weight:700;font-size:.9rem}

/* Fiche projet : les mots longs (« Autoconsommation ») se coupent au lieu de déborder sur la colonne voisine */
.pmeta b{font-size:clamp(1.45rem,2.1vw,2.2rem);-webkit-hyphens:auto;hyphens:auto;overflow-wrap:anywhere}
/* Film de chantier : la légende passe en haut à droite, le bas de l'image porte déjà les titres incrustés */
.gal figure.film figcaption{top:1rem;bottom:auto;left:auto;right:1rem}
