/* ==========================================================================
   LabelMaison — Silo SEO Airbnb Essonne
   Design calqué fidèlement sur la page d'accueil (labelmaisoncg.fr)
   Figtree + Playfair Display italic · vert #556B2F · pills noires · cartes rounded-2xl
   ========================================================================== */

:root{
  --green:#556B2F;
  --green-d:#3d4d22;
  --green-l:#6B8E3A;
  --ink:#0a0a0a;
  --body:#404040;          /* neutral-700 */
  --muted:#6b7280;
  --line:rgba(10,10,10,.07);
  --zinc100:#f4f4f5;
  --zinc50:#fafafa;
  --white:#fff;
  --shadow:0 4px 24px rgba(0,0,0,.07);
  --shadow-h:0 8px 40px rgba(0,0,0,.12);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden}
body{
  margin:0;
  font-family:'Figtree',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  color:var(--ink);background:var(--white);
  line-height:1.6;font-size:16px;-webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-family:'Figtree',sans-serif;font-weight:700;line-height:1.1;color:var(--ink);letter-spacing:-.01em}
p{margin:0 0 1rem;color:var(--body);line-height:1.7}
a{color:var(--green-d);text-decoration:none}
strong{font-weight:700}
.font-serif-italic{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:700;color:var(--green)}

.wrap{max-width:1152px;margin:0 auto;padding:0 24px}
.muted{color:var(--muted)}
section{padding:8px 0}

/* éléments de titre façon accueil */
h2{font-size:30px;margin:0 0 1rem;max-width:46rem}
@media(min-width:768px){h2{font-size:40px}}
h3{font-size:19px;margin:1.4rem 0 .5rem}
.lead{font-size:18px;color:var(--body)}
.eyebrow,.catpill{display:inline-flex;align-items:center;gap:6px;background:rgba(85,107,47,.15);color:var(--green-d);font-size:13px;font-weight:700;padding:6px 16px;border-radius:999px;letter-spacing:.2px;margin-bottom:14px}

/* ---------- Boutons (pills, façon accueil) ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--ink);color:#fff;
  padding:14px 26px;border-radius:999px;font-weight:700;font-size:15px;border:0;cursor:pointer;
  transition:.15s;text-align:center;line-height:1;white-space:nowrap}
.btn:hover{background:#404040}
.btn.gold{background:var(--ink);color:#fff}          /* primaire = pill noire partout */
.btn.gold:hover{background:#404040}
.btn.ghost{background:rgba(10,10,10,.06);color:var(--ink)}
.btn.ghost:hover{background:rgba(10,10,10,.12)}

/* ---------- Header (blanc, sticky) ---------- */
header.top{position:sticky;top:0;z-index:40;background:#fff;border-bottom:1px solid var(--line)}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 24px;max-width:1152px;margin:0 auto}
.brand{display:inline-flex;align-items:center}
.brand img{height:58px;width:auto;object-fit:contain;display:block}
.topnav{display:flex;align-items:center;gap:26px}
.topnav a.lnk{color:#404040;font-size:15px;font-weight:500}
.topnav a.lnk:hover{color:var(--green)}
.phone{display:inline-flex;align-items:center;gap:8px;background:var(--ink);color:#fff;font-weight:700;font-size:14px;padding:12px 22px;border-radius:999px;white-space:nowrap;transition:.15s}
.phone:hover{background:#404040}
@media(max-width:860px){.topnav a.lnk{display:none}.brand img{height:48px}}

/* ---------- Hero (clair, 2 colonnes, façon accueil) ---------- */
.hero{background:var(--zinc100);overflow:hidden}
.hero-grid{display:flex;flex-direction:column;gap:36px;padding:48px 24px;align-items:center}
@media(min-width:880px){.hero-grid{flex-direction:row;padding:72px 24px;gap:48px}.hero-copy{width:56%}.hero-media{width:44%}}
.hero-copy{display:flex;flex-direction:column;gap:22px}
.hero-badge{align-self:flex-start;display:inline-flex;align-items:center;gap:8px;background:rgba(10,10,10,.08);color:var(--ink);font-size:13px;font-weight:600;padding:7px 16px;border-radius:999px}
.hero h1{color:var(--ink);font-size:34px;line-height:1.05;letter-spacing:-.02em;max-width:18ch;margin:0}
@media(min-width:768px){.hero h1{font-size:48px}}
.hero p.sub{font-size:18px;color:#404040;max-width:60ch;margin:0;line-height:1.6}
.hero .cta{display:flex;gap:12px;flex-wrap:wrap}
.hero-media{width:100%}
.hero-media img{width:100%;height:340px;object-fit:cover;border-radius:18px;box-shadow:var(--shadow-h);display:block}
@media(min-width:880px){.hero-media img{height:440px}}
.badges{display:flex;gap:10px;flex-wrap:wrap}
.badge{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);padding:8px 14px;border-radius:999px;font-size:13px;color:var(--body);font-weight:500}
.badge b{color:var(--green);font-weight:800}

/* ---------- Grilles & cartes ---------- */
.grid{display:grid;gap:20px}
.g3{grid-template-columns:repeat(3,1fr)}
.g2{grid-template-columns:repeat(2,1fr)}
@media(max-width:860px){.g3{grid-template-columns:1fr}.g2{grid-template-columns:1fr}}
.card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:26px;box-shadow:var(--shadow);transition:box-shadow .3s}
.card:hover{box-shadow:var(--shadow-h)}
.card h3{margin-top:0;font-size:19px;font-weight:600;color:#111}
.ico{width:44px;height:44px;border-radius:12px;background:rgba(85,107,47,.10);color:var(--green);display:flex;align-items:center;justify-content:center;font-size:1.2rem;margin-bottom:14px}

/* ---------- Étapes / process ---------- */
.steps{display:grid;gap:20px;grid-template-columns:repeat(4,1fr);counter-reset:s}
@media(max-width:860px){.steps{grid-template-columns:1fr}}
.step{position:relative;background:#fff;border:1px solid var(--line);border-radius:20px;padding:26px 22px 22px;box-shadow:var(--shadow)}
.step::before{counter-increment:s;content:counter(s);position:absolute;top:-16px;left:22px;width:40px;height:40px;background:var(--green);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;box-shadow:0 6px 18px rgba(85,107,47,.35)}
.step h3{font-size:18px;margin:.6rem 0 .3rem;font-weight:700}

/* ---------- Calculateur ---------- */
.calc{background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px;box-shadow:var(--shadow)}
.calc .row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:680px){.calc .row{grid-template-columns:1fr}}
.field label{display:block;font-weight:600;font-size:13px;color:#374151;margin-bottom:6px}
.field select,.field input{width:100%;padding:12px 14px;background:var(--zinc100);border:0;border-bottom:1.5px solid #d4d4d8;border-radius:10px 10px 4px 4px;font-size:15px;font-family:inherit;transition:.15s}
.field select:focus,.field input:focus{outline:0;border-bottom-color:var(--green);background:#eef0f0}
.calcout{margin-top:20px;background:var(--green);color:#fff;border-radius:16px;padding:24px;display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:680px){.calcout{grid-template-columns:1fr}}
.calcout .big{font-size:30px;font-weight:800;color:#fff;letter-spacing:-.02em}
.calcout .gold{color:#dcebbf}
.disc{font-size:12px;color:var(--muted);margin-top:10px}

/* ---------- Zones / villes ---------- */
.zones{display:flex;flex-wrap:wrap;gap:10px}
.zones a,.zones span{display:inline-flex;align-items:center;padding:10px 18px;border-radius:999px;font-size:14px;border:1px solid var(--line);font-weight:500}
.zones a{background:#fff;color:var(--green-d);box-shadow:var(--shadow)}
.zones a:hover{background:var(--green);color:#fff;border-color:var(--green)}
.zones span{background:var(--zinc100);color:var(--muted)}

/* ---------- Citations / avis ---------- */
.quote{background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px;box-shadow:var(--shadow)}
.quote .stars{color:#e0b341;letter-spacing:2px}
.quote cite{display:block;margin-top:10px;font-style:normal;font-weight:700;font-size:14px;color:#111}

/* ---------- FAQ (cartes blanches, chevron vert) ---------- */
details{border:1px solid var(--line);border-radius:14px;margin-bottom:12px;background:#fff;overflow:hidden;transition:border-color .2s}
details[open]{border-color:rgba(85,107,47,.30)}
details summary{cursor:pointer;padding:20px 24px;font-weight:600;font-size:17px;color:#111;list-style:none;display:flex;justify-content:space-between;gap:16px;align-items:center}
details summary::-webkit-details-marker{display:none}
details summary::after{content:"";width:11px;height:11px;border-right:2px solid var(--green);border-bottom:2px solid var(--green);transform:rotate(45deg);transition:.2s;flex:0 0 auto;margin-top:-4px}
details[open] summary::after{transform:rotate(-135deg);margin-top:4px}
details .ans{padding:0 24px 22px;color:var(--body);line-height:1.7}

/* ---------- Bande CTA ---------- */
.band{background:linear-gradient(135deg,#3d4d22,#556B2F);color:#fff;border-radius:24px;padding:40px;margin:24px 0;box-shadow:var(--shadow-h)}
.band h2{color:#fff;margin-top:0}
.band p{color:#eef2e3}
.band a.btn.gold{margin-right:8px}

/* ---------- Formulaire (carte blanche, inputs zinc) ---------- */
.formcard{background:#fff;border:1px solid var(--line);border-radius:24px;padding:30px;box-shadow:var(--shadow)}
.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:680px){.formgrid{grid-template-columns:1fr}}
.formgrid .full{grid-column:1/-1}
.formcard label{font-weight:600;font-size:13px;color:#374151;display:block;margin-bottom:6px}
.formcard input,.formcard select,.formcard textarea{width:100%;padding:12px 14px;background:var(--zinc100);border:0;border-bottom:1.5px solid #d4d4d8;border-radius:10px 10px 4px 4px;font-size:15px;font-family:inherit;transition:.15s}
.formcard input:focus,.formcard select:focus,.formcard textarea:focus{outline:0;border-bottom-color:var(--green);background:#eef0f0}

/* ---------- Articles / blog ---------- */
.crumb{font-size:13px;color:var(--muted);padding:20px 0 0}
.crumb a{color:var(--muted)}
.article{max-width:768px;margin:0 auto;padding:8px 24px 10px}
.artmeta{color:var(--muted);font-size:14px;margin:0 0 18px;border-bottom:1px solid var(--line);padding-bottom:18px}
.article p,.article li{font-size:17px;color:var(--body);line-height:1.8}
.article ul{padding-left:1.2rem}
.article li{margin-bottom:.5rem}
.tip{background:rgba(85,107,47,.07);border-left:4px solid var(--green);border-radius:14px;padding:18px 22px;margin:22px 0}
.tip p{color:#3f4a2e;margin:0}
table.cmp{width:100%;border-collapse:separate;border-spacing:0;margin:20px 0;font-size:15px;border:1px solid var(--line);border-radius:14px;overflow:hidden}
table.cmp th,table.cmp td{border-bottom:1px solid var(--line);padding:12px 14px;text-align:left;vertical-align:top}
table.cmp th{background:var(--green);color:#fff;font-weight:700}
table.cmp tr:nth-child(even) td{background:var(--zinc50)}
.related{background:var(--zinc100);border:1px solid var(--line);border-radius:20px;padding:24px;margin:28px 0}
.related h3{margin:0 0 .6rem}
.related a{display:block;padding:8px 0;border-bottom:1px solid var(--line)}
.related a:last-child{border-bottom:0}
.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-top:22px}
@media(max-width:740px){.cards{grid-template-columns:1fr}}
.pcard{border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#fff;box-shadow:var(--shadow);display:flex;flex-direction:column;transition:box-shadow .3s}
.pcard:hover{box-shadow:var(--shadow-h)}
.pcard .body{padding:20px}
.pcard .cat{font-size:12px;color:var(--green);font-weight:800;text-transform:uppercase;letter-spacing:.5px}
.pcard h3{margin:.4rem 0 .4rem;font-size:19px}
.pcard h3 a{color:#111}
.pcard p{color:var(--muted);font-size:15px;margin:0 0 14px}
.pcard .more{margin-top:auto;font-weight:700;font-size:14px;color:var(--green)}

/* ---------- Footer (clair, façon accueil) ---------- */
footer{background:var(--zinc100);color:#404040;margin-top:80px;padding:64px 0 32px;font-size:15px}
footer a{color:#404040}
footer a:hover{color:var(--green)}
.fbrand img{height:88px;width:auto;object-fit:contain;margin-bottom:16px}
.ftag{font-size:24px;font-weight:700;line-height:1.2;max-width:22ch;color:var(--ink)}
.ftag .font-serif-italic{color:var(--green)}
.fcols{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:36px}
@media(max-width:760px){.fcols{grid-template-columns:1fr}}
.fcols h4{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin:0 0 16px}
.fcols ul{list-style:none;padding:0;margin:0}
.fcols li{margin-bottom:12px}
.fbot{border-top:1px solid var(--line);margin-top:36px;padding-top:20px;color:var(--muted);font-size:13px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}

/* ---------- CTA mobile collant ---------- */
.mobcta{position:fixed;bottom:0;left:0;right:0;z-index:50;display:none;gap:8px;padding:10px;background:#fff;border-top:1px solid var(--line);box-shadow:0 -4px 20px rgba(0,0,0,.08)}
.mobcta a{flex:1}
@media(max-width:760px){.mobcta{display:flex}body{padding-bottom:74px}}

@media(max-width:680px){.hero h1{font-size:30px}.band{padding:28px}}
