/* ============================================================
   CLIMAG — Le magazine du confort thermique
   Direction : presse éditoriale contemporaine.
   Concept : dualité froid (clim / air) ↔ chaud (énergie / PAC).
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;0,9..144,700;1,9..144,400&family=Hanken+Grotesk:wght@400;500;600;700;800&display=swap');

:root{
  /* Encre & papier */
  --ink:        #16191c;
  --ink-soft:   #3c4248;
  --paper:      #f7f4ee;
  --paper-2:    #efeae0;
  --line:       #d9d2c4;

  /* Froid (air / clim) */
  --cold:       #0e6e72;
  --cold-deep:  #0a4f52;
  --cold-mist:  #d7e8e7;

  /* Chaud (énergie / PAC) — accent + conversion */
  --ember:      #c4571f;
  --ember-deep: #9c4015;
  --ember-mist: #f3ddcd;

  --white:      #ffffff;

  --display: "Fraunces", Georgia, serif;
  --body:    "Hanken Grotesk", system-ui, sans-serif;

  --wrap: 1180px;
  --gap: clamp(1.2rem, 3vw, 2.4rem);
  --shadow: 0 1px 2px rgba(22,25,28,.04), 0 8px 30px -12px rgba(22,25,28,.18);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--body);
  color:var(--ink);
  background:var(--paper);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  /* grain papier subtil */
  background-image:radial-gradient(rgba(22,25,28,.018) 1px, transparent 1px);
  background-size:3px 3px;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}

.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:clamp(1rem,4vw,2rem)}

/* ---------- Eyebrow / kicker ---------- */
.kicker{
  font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;
  color:var(--cold);display:inline-flex;align-items:center;gap:.5em;
}
.kicker.warm{color:var(--ember)}
.kicker::before{content:"";width:1.6em;height:2px;background:currentColor;display:inline-block}

/* ============================================================
   MASTHEAD
   ============================================================ */
.masthead{border-bottom:2px solid var(--ink);background:var(--paper)}
.masthead__bar{
  display:flex;align-items:center;justify-content:space-between;
  font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink-soft);padding-block:.55rem;border-bottom:1px solid var(--line)
}
.masthead__bar b{color:var(--ink);font-weight:700}
.masthead__main{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;padding-block:1.5rem .9rem}
.logo{
  font-family:var(--display);font-weight:600;font-size:clamp(2.4rem,7vw,4.4rem);
  line-height:.9;letter-spacing:-.02em;font-optical-sizing:auto;
}
.logo span{color:var(--cold)}
.logo b{color:var(--ember);font-weight:600}
.tagline{font-style:italic;font-family:var(--display);color:var(--ink-soft);font-size:1rem;max-width:22ch;text-align:right}

/* Nav */
.nav{border-bottom:1px solid var(--line);position:sticky;top:0;z-index:40;background:rgba(247,244,238,.92);backdrop-filter:blur(8px)}
.nav ul{display:flex;gap:0;list-style:none;flex-wrap:wrap}
.nav a{
  display:block;padding:.85rem 1.1rem;font-weight:700;font-size:.82rem;
  letter-spacing:.04em;text-transform:uppercase;border-right:1px solid var(--line);
  transition:background .2s,color .2s
}
.nav a:hover{background:var(--ink);color:var(--paper)}
.nav li:first-child a{border-left:1px solid var(--line)}

/* ============================================================
   HERO / LA UNE
   ============================================================ */
.une{display:grid;grid-template-columns:1.7fr 1fr;gap:var(--gap);padding-block:2.5rem;border-bottom:1px solid var(--line)}
.une__lead{position:relative}
.une__lead .ph{aspect-ratio:16/10;border-radius:4px;overflow:hidden;background:
  linear-gradient(135deg,var(--cold-deep),var(--cold) 55%,var(--ember) 130%)}
.une__lead h1{
  font-family:var(--display);font-optical-sizing:auto;font-weight:600;
  font-size:clamp(2rem,4.5vw,3.4rem);line-height:1.02;letter-spacing:-.02em;margin:1rem 0 .6rem
}
.une__lead h1 a:hover{color:var(--cold-deep)}
.une__lead .dek{font-size:1.12rem;color:var(--ink-soft);max-width:60ch}
.byline{font-size:.78rem;letter-spacing:.04em;color:var(--ink-soft);margin-top:.8rem;text-transform:uppercase}
.byline b{color:var(--ink)}

.une__side{display:flex;flex-direction:column;gap:1.1rem;border-left:1px solid var(--line);padding-left:var(--gap)}
.sidecard{padding-bottom:1.1rem;border-bottom:1px solid var(--line)}
.sidecard:last-child{border-bottom:0}
.sidecard h3{font-family:var(--display);font-weight:600;font-size:1.18rem;line-height:1.1;margin-top:.35rem}
.sidecard h3 a:hover{color:var(--cold)}

/* ============================================================
   GRILLE D'ARTICLES
   ============================================================ */
.section-head{display:flex;align-items:baseline;justify-content:space-between;margin:2.4rem 0 1.2rem;border-bottom:2px solid var(--ink);padding-bottom:.5rem}
.section-head h2{font-family:var(--display);font-weight:600;font-size:1.6rem;letter-spacing:-.01em}
.section-head a{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--cold)}

.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap)}
@media(max-width:880px){.grid{grid-template-columns:repeat(2,1fr)}}

.card{display:flex;flex-direction:column;gap:.55rem;padding-bottom:1.2rem}
.card .ph{aspect-ratio:3/2;border-radius:3px;overflow:hidden;background:linear-gradient(135deg,var(--cold-mist),var(--ember-mist))}
.card h3{font-family:var(--display);font-weight:600;font-size:1.22rem;line-height:1.12;letter-spacing:-.01em}
.card h3 a:hover{color:var(--cold)}
.card p{font-size:.92rem;color:var(--ink-soft)}
.card .meta{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin-top:auto}

/* badge catégorie */
.cat-badge{font-size:.68rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--white);background:var(--cold);padding:.2em .6em;border-radius:2px;align-self:flex-start}
.cat-badge.pac{background:var(--ember)}
.cat-badge.aides{background:var(--ink)}

/* ============================================================
   ARTICLE
   ============================================================ */
.article{max-width:760px;margin-inline:auto;padding-block:2.5rem}
.article__head .kicker{margin-bottom:.8rem}
.article h1{font-family:var(--display);font-weight:600;font-size:clamp(2rem,5vw,3.2rem);line-height:1.04;letter-spacing:-.02em}
.article__dek{font-size:1.25rem;color:var(--ink-soft);font-family:var(--display);font-style:italic;margin:1rem 0}
.article__meta{display:flex;gap:1.2rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);border-block:1px solid var(--line);padding-block:.8rem;margin:1.4rem 0}
.article__hero{aspect-ratio:16/9;border-radius:4px;margin-bottom:2rem;background:linear-gradient(135deg,var(--cold-deep),var(--cold) 50%,var(--ember) 120%)}
.article__body{font-size:1.12rem;line-height:1.75}
.article__body>p:first-of-type::first-letter{font-family:var(--display);font-weight:600;float:left;font-size:3.6rem;line-height:.72;padding:.1em .12em 0 0;color:var(--cold)}
.article__body h2{font-family:var(--display);font-weight:600;font-size:1.6rem;margin:2rem 0 .6rem;letter-spacing:-.01em}
.article__body h3{font-weight:800;font-size:1.15rem;margin:1.4rem 0 .4rem}
.article__body p{margin-bottom:1.1rem}
.article__body a{color:var(--cold-deep);text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:2px}
.article__body ul{margin:0 0 1.1rem 1.2rem}
.article__body li{margin-bottom:.4rem}
.article__body blockquote{border-left:3px solid var(--ember);padding-left:1.2rem;font-family:var(--display);font-style:italic;font-size:1.25rem;color:var(--ink);margin:1.5rem 0}

/* source attribution (veille / republiable) */
.source-note{font-size:.82rem;color:var(--ink-soft);border-top:1px solid var(--line);margin-top:2rem;padding-top:1rem}
.source-note a{color:var(--cold)}

/* ============================================================
   BLOC LEAD GEN (Leadrs)
   ============================================================ */
.leadcta{
  background:var(--ink);color:var(--paper);border-radius:6px;padding:clamp(1.4rem,3vw,2.2rem);
  margin:2.4rem 0;position:relative;overflow:hidden
}
.leadcta::after{content:"";position:absolute;inset:auto -20% -60% auto;width:60%;height:160%;
  background:radial-gradient(circle,var(--ember) 0%,transparent 65%);opacity:.4}
.leadcta .kicker{color:var(--ember-mist)}
.leadcta h3{font-family:var(--display);font-weight:600;font-size:clamp(1.4rem,3vw,2rem);line-height:1.05;margin:.5rem 0 .4rem;position:relative}
.leadcta p{color:#cfc9bd;max-width:48ch;position:relative;margin-bottom:1.2rem}
.leadform{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem;position:relative}
.leadform .full{grid-column:1/-1}
.leadform input,.leadform select{
  width:100%;padding:.85rem .9rem;border:1px solid #3a3f44;background:#1f2327;color:var(--paper);
  border-radius:4px;font-family:var(--body);font-size:.95rem
}
.leadform input::placeholder{color:#8b9096}
.leadform input:focus,.leadform select:focus{outline:2px solid var(--ember);border-color:transparent}
.btn-lead{
  grid-column:1/-1;background:var(--ember);color:var(--white);border:0;padding:.95rem;border-radius:4px;
  font-family:var(--body);font-weight:800;font-size:1rem;letter-spacing:.02em;cursor:pointer;
  text-transform:uppercase;transition:background .2s,transform .1s
}
.btn-lead:hover{background:var(--ember-deep)}
.btn-lead:active{transform:translateY(1px)}
.leadform__legal{grid-column:1/-1;font-size:.72rem;color:#8b9096;margin-top:.2rem}
.leadform__msg{grid-column:1/-1;font-size:.92rem;padding:.6rem;border-radius:4px;display:none}
.leadform__msg.ok{display:block;background:var(--cold);color:#fff}
.leadform__msg.err{display:block;background:var(--ember-deep);color:#fff}

/* ============================================================
   PAGE VILLE (programmatique / conversion locale)
   ============================================================ */
.city-hero{background:linear-gradient(135deg,var(--cold-deep),var(--cold));color:var(--paper);padding:clamp(2.5rem,6vw,4.5rem) 0;position:relative;overflow:hidden}
.city-hero::after{content:"";position:absolute;inset:auto -10% -40% auto;width:50%;height:140%;background:radial-gradient(circle,var(--ember) 0%,transparent 60%);opacity:.35}
.city-hero h1{font-family:var(--display);font-weight:600;font-size:clamp(2rem,5vw,3.4rem);line-height:1.04;position:relative;max-width:18ch}
.city-hero .dek{font-size:1.15rem;color:#dfe9e8;max-width:52ch;margin-top:.8rem;position:relative}
.trust{display:flex;gap:2rem;flex-wrap:wrap;margin-top:1.6rem;position:relative}
.trust div{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:#cfe2e1}
.trust b{display:block;font-family:var(--display);font-size:1.8rem;color:#fff}
.city-body{display:grid;grid-template-columns:1.5fr 1fr;gap:var(--gap);padding-block:2.5rem}
@media(max-width:880px){.city-body{grid-template-columns:1fr}}
.city-body h2{font-family:var(--display);font-weight:600;font-size:1.5rem;margin:1.6rem 0 .5rem}
.city-body p{margin-bottom:1rem;color:var(--ink-soft)}
.city-aside{position:sticky;top:80px;align-self:start}

/* ============================================================
   FOOTER
   ============================================================ */
.foot{border-top:2px solid var(--ink);margin-top:3rem;background:var(--paper-2)}
.foot__grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:var(--gap);padding-block:2.5rem}
.foot h4{font-size:.74rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft);margin-bottom:.8rem}
.foot a{display:block;padding:.2rem 0;font-size:.92rem;color:var(--ink-soft)}
.foot a:hover{color:var(--cold)}
.foot__logo{font-family:var(--display);font-weight:600;font-size:1.8rem}
.foot__logo span{color:var(--cold)}.foot__logo b{color:var(--ember);font-weight:600}
.foot__legal{border-top:1px solid var(--line);padding-block:1rem;font-size:.78rem;color:var(--ink-soft);display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem}

@media(max-width:760px){
  .une,.foot__grid{grid-template-columns:1fr}
  .une__side{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:1.2rem}
  .tagline{display:none}
  .leadform{grid-template-columns:1fr}
}
