/* =====================================================================
   MENDES SOLAR · Pages locales (communes et secteurs)
   S'ajoute à site.css et pages.css.
   ===================================================================== */

/* ---------- En-tête avec carte animée ---------- */
.city-hero{padding-bottom:clamp(3rem,6vw,5rem)}
.city-hero .wrap{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:center}
.city-hero h1{max-width:14ch;font-size:clamp(2.6rem,5.2vw,5.4rem)}
.city-hero h1 small{display:block;margin-top:1rem;font-family:var(--ff-b);font-size:clamp(1rem,1.3vw,1.2rem);font-weight:700;letter-spacing:0;line-height:1.4;color:var(--fg2)}
.city-hero .ctas{margin-top:2rem}
.map-card{position:relative;aspect-ratio:1;width:100%;max-width:560px;justify-self:end;border-radius:28px;border:1px solid rgba(238,241,247,.14);background:radial-gradient(circle at 50% 50%,rgba(250,148,27,.10),transparent 62%),linear-gradient(160deg,rgba(13,32,74,.65),rgba(2,10,31,.4));overflow:hidden;color:#eef1f7}
.map-card svg{position:absolute;inset:0;width:100%;height:100%}
.map-card svg a{cursor:pointer}
.map-card svg a:hover text{fill:#fa941b;fill-opacity:1}
.map-card svg a:focus-visible{outline:none}
.map-card svg a:focus-visible circle{stroke:#fa941b;stroke-width:2;vector-effect:non-scaling-stroke}
.map-tag{position:absolute;left:1.1rem;bottom:1rem;z-index:2;display:inline-flex;align-items:center;gap:.5rem;font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:rgba(238,241,247,.75)}
.map-tag::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--orange);box-shadow:0 0 12px var(--orange)}
.map-km{position:absolute;right:1.1rem;top:1rem;z-index:2;text-align:right}
.map-km b{display:block;font-family:var(--ff-d);font-weight:600;font-size:clamp(2rem,3.4vw,3rem);letter-spacing:-.02em;line-height:1}
.map-km > span{font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:rgba(238,241,247,.6)}

/* ---------- Chiffres locaux ---------- */
.lfigs{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}
.lfig{padding:2rem 1.5rem 0 0}
.lfig+.lfig{padding-left:1.5rem;border-left:1px solid var(--line)}
.lfig b{display:block;font-family:var(--ff-d);font-weight:600;font-size:clamp(2.6rem,5.4vw,5.4rem);letter-spacing:-.02em;line-height:.95;white-space:nowrap}
.lfig b small{font-style:italic;font-size:.36em;margin-left:.12em;color:var(--acc-big)}
.lfig > span{display:block;margin-top:.9rem;color:var(--fg2);font-size:.93rem;max-width:26ch}
.lfig > span em{font-style:normal;font-weight:700;color:var(--fg)}
.src{margin-top:1.4rem;font-size:.8rem;color:var(--fg2)}
.src a{text-decoration:underline;text-underline-offset:3px}
@media (max-width:900px){.lfigs{grid-template-columns:1fr 1fr;row-gap:2.2rem}.lfig:nth-child(3){padding-left:0;border-left:0}}

/* ---------- Texte local + référence ---------- */
.local-txt{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(2rem,6vw,6rem);align-items:start}
.local-txt h2{margin:1rem 0 1.4rem}
.local-txt p{color:var(--fg2);max-width:60ch}
.local-txt p+p{margin-top:1rem}
.local-txt p strong{color:var(--fg)}
.zones{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.6rem;list-style:none}
.zones li{display:inline-flex;align-items:center;gap:.45rem;padding:.5rem .9rem;border-radius:999px;border:1px solid var(--line2);font-size:.86rem;font-weight:700}
.zones .ico{color:var(--acc)}
.ref-card{position:sticky;top:110px;display:block;border-radius:24px;overflow:hidden;background:var(--blue);color:#eef1f7;box-shadow:0 40px 80px -50px rgba(10,22,51,.6)}
.ref-card .rm{position:relative;aspect-ratio:16/10;overflow:hidden}
.ref-card img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.ref-card:hover img{transform:scale(1.05)}
.ref-card .rt{padding:1.4rem 1.5rem 1.6rem}
.ref-card small{font-size:.7rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--orange)}
.ref-card h3{font-family:var(--ff-d);font-weight:600;font-size:1.6rem;letter-spacing:-.02em;margin:.4rem 0 .5rem}
.ref-card p{color:rgba(238,241,247,.72);font-size:.95rem}
.ref-card .ulink{margin-top:1rem;color:#eef1f7}
@media (max-width:900px){.local-txt{grid-template-columns:1fr}.ref-card{position:relative;top:auto}}

/* ---------- Découvrir le site (retour vers l'accueil) ---------- */
.disc-head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap;margin-bottom:clamp(2rem,4vw,3.2rem)}
.disc-head h2{max-width:16ch;margin-top:1rem}
.disc{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(12px,1.4vw,20px)}
.dcard{position:relative;grid-column:span 4;min-height:420px;border-radius:24px;overflow:hidden;isolation:isolate;display:flex;flex-direction:column;justify-content:flex-end;padding:1.6rem;color:#eef1f7;background:#0a1633}
.dcard.wide{grid-column:span 8}
.dcard picture,.dcard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 1.2s var(--ease)}
.dcard::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(2,10,31,.92) 0%,rgba(2,10,31,.35) 55%,rgba(2,10,31,.1) 100%)}
.dcard:hover img{transform:scale(1.06)}
.dcard small{font-size:.7rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--orange)}
.dcard h3{font-family:var(--ff-d);font-weight:600;font-size:clamp(1.6rem,2.4vw,2.3rem);letter-spacing:-.02em;line-height:1.05;margin:.5rem 0 .6rem;max-width:16ch}
.dcard p{font-size:.95rem;color:rgba(238,241,247,.75);max-width:38ch}
.dcard .go{position:absolute;right:1.4rem;top:1.4rem;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:rgba(2,10,31,.45);border:1px solid rgba(238,241,247,.3);font-size:1.2rem;transition:background .4s,color .4s,transform .6s var(--ease),border-color .4s;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.dcard:hover .go{background:var(--orange);border-color:var(--orange);color:var(--night);transform:rotate(-45deg)}
.dcard.seal{background:radial-gradient(circle at 80% 15%,rgba(250,148,27,.45),transparent 55%),linear-gradient(160deg,#0d204a,#041e4d)}
.dcard.seal::after{display:none}
.dcard .big-pay{font-family:var(--ff-d);font-weight:600;font-size:clamp(3.4rem,6vw,5.6rem);letter-spacing:-.03em;line-height:1;color:var(--orange);margin-bottom:auto}
.dcard .big-pay small{font-size:.32em;color:#eef1f7;margin-left:.2em}
@media (max-width:1000px){.dcard,.dcard.wide{grid-column:span 6}}
@media (max-width:640px){.dcard,.dcard.wide{grid-column:span 12;min-height:340px}}

/* ---------- Communes voisines ---------- */
.near{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:0 2rem;list-style:none;border-top:1px solid var(--line)}
.near a{display:grid;grid-template-columns:1fr auto;gap:.15rem 1rem;align-items:center;padding:1.2rem 0;border-bottom:1px solid var(--line);transition:padding .5s var(--ease),color .3s}
.near a:hover{padding-left:.6rem;color:var(--acc)}
.near b{font-family:var(--ff-d);font-weight:600;font-size:1.25rem;letter-spacing:-.01em}
.near small{grid-column:1;font-size:.84rem;color:var(--fg2)}
.near .ico{grid-row:1/3;grid-column:2;font-size:1.1rem;transition:transform .5s var(--ease)}
.near a:hover .ico{transform:translateX(5px)}
.hub-links{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.8rem}

/* ---------- Grille des communes (pages secteur) ---------- */
.ccards{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:clamp(12px,1.4vw,18px)}
.ccard{position:relative;display:flex;flex-direction:column;gap:.3rem;padding:1.5rem 1.5rem 1.4rem;border-radius:20px;border:1px solid var(--line2);background:color-mix(in srgb,var(--fg) 3%,transparent);transition:border-color .4s,transform .6s var(--ease),background .4s}
.ccard:hover{border-color:var(--orange);transform:translateY(-4px);background:color-mix(in srgb,var(--orange) 8%,transparent)}
.ccard small{font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--fg2)}
.ccard b{font-family:var(--ff-d);font-weight:600;font-size:1.5rem;letter-spacing:-.02em;line-height:1.1}
.ccard .meta{display:flex;gap:1rem;margin-top:.8rem;font-size:.86rem;color:var(--fg2)}
.ccard .meta strong{color:var(--fg)}
.ccard .ico{position:absolute;right:1.2rem;top:1.3rem;font-size:1.1rem;color:var(--acc);transition:transform .5s var(--ease)}
.ccard:hover .ico{transform:rotate(-45deg)}

/* ---------- Appel final ---------- */
.city-final{position:relative;overflow:hidden;text-align:center;padding:clamp(6rem,14vw,11rem) 0}
.city-final::before{content:'';position:absolute;left:50%;top:50%;width:min(1000px,120vw);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(250,148,27,.2),transparent 60%);pointer-events:none}
.city-final .wrap{position:relative}
.city-final h2{font-size:clamp(2.6rem,7vw,7rem);max-width:14ch;margin:1.2rem auto 0}
.city-final p{margin:1.6rem auto 2.4rem;max-width:50ch;color:var(--fg2)}
.city-final .ctas{justify-content:center}

@media (max-width:960px){.city-hero .wrap{grid-template-columns:1fr}.map-card{justify-self:stretch;max-width:none}}
.local-txt p a,.prose-local 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}
.local-txt p a:hover{color:var(--acc)}
.local-txt .src a{font-weight:600}

/* Deux références côte à côte (page Marne-la-Vallée) : la seconde en format compact, sans effet collant */
.ref-stack{display:grid;gap:1.2rem;align-self:start}
.ref-stack .ref-card{position:relative;top:auto}
.ref-card.mini .rm{aspect-ratio:16/7}
.ref-card.mini h3{font-size:1.35rem}
