/* ═══════════════════════════════════════════════════════
   ST Élagage — Grenoble et agglomération
   Palette : vert forêt + bois/marron naturel + blanc
   Typo : Libre Franklin (titres) / Source Sans 3 (texte)
   ═══════════════════════════════════════════════════════ */

:root{
  --forest:#2C5641;
  --forest-deep:#1D3B2C;
  --forest-dark:#152B20;
  --forest-wash:#EAF0EC;
  --wood:#7A5B3F;
  --wood-deep:#5C4430;
  --wood-wash:#F3EDE5;
  --sand:#F7F4EF;
  --white:#FFFFFF;
  --ink:#1F2723;
  --ink-soft:#4C5750;
  --muted:#7C867F;
  --rule:#DFE3DE;
  --rule-dark:#31463A;
  --danger:#A33726;
  --wa:#25A366;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;background:var(--white);color:var(--ink);
  font-family:"Source Sans 3","Helvetica Neue",Arial,sans-serif;
  font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block;}
a{color:var(--forest);}

.wrap{max-width:1160px;margin:0 auto;padding:0 22px;}
.wrap-narrow{max-width:800px;}

.skip{position:absolute;left:-9999px;}
.skip:focus{left:12px;top:12px;background:var(--forest);color:#fff;padding:10px 16px;z-index:999;}
:focus-visible{outline:3px solid var(--forest);outline-offset:2px;}

h1,h2,h3{
  font-family:"Libre Franklin","Helvetica Neue",Arial,sans-serif;
  font-weight:700;line-height:1.14;letter-spacing:-.015em;margin:0;text-wrap:balance;
}
h1{font-size:clamp(2rem,4.6vw,3.2rem);letter-spacing:-.022em;}
h2{font-size:clamp(1.6rem,3.2vw,2.35rem);margin-bottom:12px;}
h3{font-size:1.16rem;line-height:1.28;margin-bottom:7px;}

.eyebrow{
  font-size:.76rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--wood);margin:0 0 10px;
}
.section-lede{max-width:68ch;color:var(--ink-soft);font-size:1.05rem;margin:0 0 32px;}
.section-more{margin:30px 0 0;font-weight:600;}
.section-more a{text-decoration:none;border-bottom:2px solid var(--forest-wash);padding-bottom:2px;}
.section-more a:hover{border-color:var(--forest);}

/* ── Bandeau urgence ──────────────────────────── */
.urgence{background:var(--danger);color:#fff;font-size:.84rem;line-height:1.4;}
@media(min-width:860px){ .urgence{font-size:.93rem;} }
.urgence-inner{display:flex;align-items:center;gap:10px 14px;flex-wrap:nowrap;padding:8px 22px;}
.urg-long{display:none;}
.urg-short{display:inline;}
@media(min-width:860px){
  .urg-long{display:inline;}
  .urg-short{display:none;}
}
.urgence-tag{
  font-weight:700;font-size:.7rem;letter-spacing:.13em;text-transform:uppercase;
  border:1.5px solid rgba(255,255,255,.7);padding:2px 9px;border-radius:2px;flex:none;
}
.urgence p{margin:0;flex:1 1 260px;}
.urgence-tel{color:#fff;font-weight:700;text-decoration:none;white-space:nowrap;border-bottom:1.5px solid rgba(255,255,255,.6);}
.urgence-tel:hover{border-color:#fff;}

/* ── Header ───────────────────────────────────── */
.site-header{
  position:sticky;top:0;z-index:60;background:var(--white);
  border-bottom:1px solid var(--rule);
}
.header-inner{display:flex;align-items:center;gap:18px;min-height:76px;}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--forest-deep);margin-right:auto;}
.brand-mark{color:var(--forest);flex:none;}
.brand-text{display:flex;flex-direction:column;line-height:1.15;}
.brand-text strong{font-family:"Libre Franklin",sans-serif;font-size:1.32rem;font-weight:800;letter-spacing:-.015em;}
.brand-text em{font-style:normal;font-size:.75rem;color:var(--muted);letter-spacing:.03em;}

.site-nav{display:none;gap:24px;}
.site-nav a{
  color:var(--ink-soft);text-decoration:none;font-size:.96rem;font-weight:600;
  padding:6px 0;border-bottom:2px solid transparent;
}
.site-nav a:hover{color:var(--forest);border-color:var(--forest);}
@media(min-width:1020px){ .site-nav{display:flex;} }

.header-actions{display:flex;gap:9px;align-items:center;}
.site-header .btn-wa{display:none;}
.site-header .btn-tel{display:none;}
@media(min-width:640px){ .site-header .btn-tel{display:inline-flex;} }
@media(min-width:860px){ .site-header .btn-wa{display:inline-flex;} }

/* ── Boutons ──────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:"Libre Franklin",sans-serif;font-weight:700;font-size:.95rem;
  padding:11px 20px;border:2px solid transparent;border-radius:4px;
  text-decoration:none;cursor:pointer;white-space:nowrap;
  transition:background .15s,color .15s,border-color .15s,transform .12s;
}
.btn:active{transform:translateY(1px);}
.btn-primary{background:var(--forest);color:#fff;border-color:var(--forest);}
.btn-primary:hover{background:var(--forest-deep);border-color:var(--forest-deep);}
.btn-outline{background:transparent;color:var(--forest-deep);border-color:var(--forest);}
.btn-outline:hover{background:var(--forest-wash);}
.btn-tel{background:var(--wood);color:#fff;border-color:var(--wood);}
.btn-tel:hover{background:var(--wood-deep);border-color:var(--wood-deep);}
.btn-wa{background:var(--wa);color:#fff;border-color:var(--wa);}
.btn-wa:hover{background:#1E8C55;border-color:#1E8C55;}
.btn-lg{font-size:1.05rem;padding:14px 26px;}
.btn-block{width:100%;}

/* ── Hero ─────────────────────────────────────── */
.hero{
  background:
    linear-gradient(180deg,rgba(21,43,32,.90) 0%,rgba(21,43,32,.82) 100%),
    radial-gradient(900px 420px at 80% 0%,#3A6650 0%,transparent 60%),
    var(--forest-dark);
  color:#fff;padding:60px 0 64px;
}
.kicker{
  display:inline-block;font-size:.75rem;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:#C6D8CC;
  border:1px solid rgba(198,216,204,.4);padding:5px 12px;border-radius:2px;margin:0 0 20px;
}
.hero h1{color:#fff;margin-bottom:18px;max-width:19ch;}
.hero-lede{max-width:62ch;font-size:1.08rem;color:#CBD8CF;margin:0 0 28px;}
.hero-cta{display:flex;flex-wrap:wrap;gap:11px;margin-bottom:30px;}
.hero .btn-outline{color:#fff;border-color:rgba(255,255,255,.5);}
.hero .btn-outline:hover{background:rgba(255,255,255,.1);border-color:#fff;}
.hero-trust{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:9px 26px;font-size:.95rem;color:#B9C9BF;}
.hero-trust li{position:relative;padding-left:22px;}
.hero-trust li::before{
  content:"";position:absolute;left:3px;top:.42em;width:6px;height:11px;
  border-right:2px solid #8FBFA1;border-bottom:2px solid #8FBFA1;transform:rotate(45deg);
}

/* ── Sections ─────────────────────────────────── */
.section{padding:64px 0;}
.section-forest{background:var(--forest-dark);color:#fff;}
.section-forest h2{color:#fff;}
.section-forest .eyebrow{color:#A9C6B5;}
.section-forest .section-lede{color:#BCCCC2;}
.section-sand{background:var(--sand);}

/* ── Services ─────────────────────────────────── */
.grid-services{display:grid;grid-template-columns:repeat(auto-fit,minmax(285px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule);}
.svc{background:var(--white);padding:26px 24px 28px;}
.svc-ico{
  display:grid;place-items:center;width:48px;height:48px;margin-bottom:14px;
  background:var(--forest-wash);color:var(--forest);border-radius:4px;
}
.svc h3{color:var(--forest-deep);}
.svc p{margin:0;color:var(--ink-soft);font-size:.96rem;}
.svc-urgent{background:var(--wood-wash);}
.svc-urgent .svc-ico{background:#F0DED6;color:var(--danger);}
.svc-urgent h3{color:var(--danger);}

/* ── Pourquoi ─────────────────────────────────── */
.grid-why{display:grid;grid-template-columns:repeat(auto-fit,minmax(285px,1fr));gap:28px 38px;}
.why{border-top:3px solid #4E7D63;padding-top:15px;}
.why h3{color:#fff;}
.why p{margin:0;color:#BCCCC2;font-size:.95rem;}

/* ── Zone ─────────────────────────────────────── */
.zone-grid{display:grid;grid-template-columns:1fr;gap:38px;align-items:center;}
@media(min-width:940px){ .zone-grid{grid-template-columns:1.15fr .85fr;gap:54px;} }
.villes{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px;}
.villes li{
  background:var(--forest-wash);color:var(--forest-deep);
  padding:7px 14px;font-size:.92rem;font-weight:600;border-radius:3px;
}
.zone-visual{max-width:420px;margin:0 auto;width:100%;}
.zone-map{display:block;width:100%;height:auto;}

/* ── Galerie ──────────────────────────────────── */
.galerie{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:20px;}
.shot{margin:0;}
.shot-ph{
  aspect-ratio:4/3;display:grid;place-items:center;
  background:var(--wood-wash);border:1.5px dashed #C9B7A2;border-radius:4px;
}
.shot-ph span{color:#9C8B76;font-size:.9rem;font-weight:600;letter-spacing:.02em;}
.shot figcaption{font-size:.9rem;color:var(--ink-soft);margin-top:9px;line-height:1.45;}
.shot figcaption strong{color:var(--forest-deep);}

/* ── Avis (placeholder honnête) ───────────────── */
.avis-placeholder{
  border:1.5px dashed var(--rule);background:var(--sand);
  padding:26px 24px;border-radius:4px;
}
.ph-title{font-family:"Libre Franklin",sans-serif;font-weight:700;color:var(--forest-deep);margin:0 0 8px;}
.avis-placeholder p{margin:0 0 10px;color:var(--ink-soft);font-size:.97rem;}
.ph-note{font-size:.88rem;color:var(--muted);border-left:3px solid var(--wood);padding-left:12px;margin:14px 0 0!important;}

/* ── Devis ────────────────────────────────────── */
.devis-grid{display:grid;grid-template-columns:1fr;gap:38px;}
@media(min-width:940px){ .devis-grid{grid-template-columns:1fr 1.05fr;gap:56px;align-items:start;} }
.devis-copy p{color:#BCCCC2;max-width:44ch;}
.devis-direct{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0 0;}
.devis-mail{font-size:.95rem;margin-top:16px;}
.devis-mail a{color:#fff;}

.devis-form{background:var(--white);border-radius:5px;padding:26px 24px 24px;}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:15px;}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media(max-width:520px){ .field-row{grid-template-columns:1fr;gap:0;} }
label{font-size:.87rem;font-weight:600;color:var(--ink-soft);}
.opt{font-weight:400;color:var(--muted);}
input,select,textarea{
  font-family:inherit;font-size:1rem;color:var(--ink);
  background:var(--sand);border:1.5px solid var(--rule);border-radius:4px;
  padding:11px 12px;width:100%;transition:border-color .15s;
}
input:focus,select:focus,textarea:focus{border-color:var(--forest);outline:none;background:#fff;}
textarea{resize:vertical;}
.hp{position:absolute;left:-9999px;opacity:0;}
.form-status{font-size:.92rem;margin:12px 0 0;min-height:1.2em;font-weight:600;}
.form-status.ok{color:var(--forest);}
.form-status.ko{color:var(--danger);}
.rgpd{font-size:.83rem;color:var(--muted);margin:10px 0 0;line-height:1.5;}

/* ── Footer ───────────────────────────────────── */
.site-footer{background:var(--forest-dark);color:#B4C4BA;padding:48px 0 96px;font-size:.95rem;}
@media(min-width:720px){ .site-footer{padding-bottom:44px;} }
.footer-inner{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:30px;}
.footer-inner p{margin:0 0 4px;}
.footer-brand{font-family:"Libre Franklin",sans-serif;font-size:1.3rem;font-weight:800;color:#fff;margin-bottom:8px;}
.footer-h{font-weight:700;color:#fff;margin-bottom:8px;}
.site-footer a{color:#DCE6DF;text-decoration:none;border-bottom:1px solid rgba(220,230,223,.3);}
.site-footer a:hover{color:#fff;border-color:#fff;}
.footer-legal{border-top:1px solid var(--rule-dark);margin-top:34px;padding-top:18px;font-size:.87rem;color:var(--muted);}
.footer-legal a{color:var(--muted);border:none;text-decoration:underline;}

/* ── WhatsApp flottant / barre mobile ─────────── */
.wa-float{
  position:fixed;right:20px;bottom:24px;z-index:70;
  display:none;place-items:center;width:56px;height:56px;border-radius:50%;
  background:var(--wa);color:#fff;box-shadow:0 4px 16px rgba(0,0,0,.22);
}
.wa-float:hover{background:#1E8C55;}
@media(min-width:720px){ .wa-float{display:grid;} }

.callbar{
  position:fixed;left:0;right:0;bottom:0;z-index:80;display:flex;
  box-shadow:0 -3px 16px rgba(0,0,0,.2);
}
@media(min-width:720px){ .callbar{display:none;} }
.callbar a{
  flex:1;display:flex;align-items:center;justify-content:center;gap:8px;
  font-family:"Libre Franklin",sans-serif;font-weight:700;font-size:1.04rem;
  padding:15px 10px;text-decoration:none;color:#fff;
}
.callbar-tel{background:var(--forest);}
.callbar-wa{background:var(--wa);flex:0 0 40%;}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *{transition:none!important;animation:none!important;}
}

/* ═══════════════════════════════════════════════════════
   AJOUTS — profondeur éditoriale & ancrage local
   ═══════════════════════════════════════════════════════ */

.section-tight{padding:56px 0;}
.lede-lg{font-size:1.13rem;color:var(--ink);max-width:60ch;}

/* ── Silhouette des massifs dans le hero ──────── */
.hero{position:relative;overflow:hidden;}
.massifs{
  position:absolute;left:0;right:0;bottom:0;width:100%;height:200px;
  display:block;pointer-events:none;
}
.massifs .m-far {fill:#22412F;}
.massifs .m-mid {fill:#1C3728;}
.massifs .m-near{fill:#182F22;}
.hero-inner{position:relative;z-index:2;}
@media(min-width:900px){ .massifs{height:250px;} }

/* ── Manifeste + citation ─────────────────────── */
.manifeste{display:grid;grid-template-columns:1fr;gap:32px;align-items:start;}
@media(min-width:940px){ .manifeste{grid-template-columns:1.5fr .95fr;gap:56px;} }
.manifeste p{color:var(--ink-soft);}
.pull{
  margin:0;padding:26px 24px;background:var(--wood-wash);
  border-left:4px solid var(--wood);border-radius:0 4px 4px 0;
}
.pull p{
  margin:0;font-family:"Libre Franklin",sans-serif;font-weight:600;
  font-size:1.12rem;line-height:1.45;color:var(--wood-deep);
}

/* ── Prestation mise en avant ─────────────────── */
.svc-hero{
  display:grid;grid-template-columns:1fr;gap:30px;align-items:center;
  background:var(--white);border:1px solid var(--rule);
  padding:30px 26px;margin:26px 0 22px;
}
@media(min-width:940px){ .svc-hero{grid-template-columns:1.35fr .65fr;gap:46px;padding:38px 34px;} }
.svc-num{
  display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:#fff;background:var(--wood);
  padding:4px 10px;border-radius:2px;margin-bottom:12px;
}
.svc-hero h3{font-size:1.5rem;color:var(--forest-deep);margin-bottom:12px;}
.svc-hero p{color:var(--ink-soft);max-width:62ch;}
.svc-list{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:7px;}
.svc-list li{position:relative;padding-left:20px;font-size:.95rem;color:var(--ink-soft);}
.svc-list li::before{
  content:"";position:absolute;left:0;top:.62em;width:9px;height:2px;background:var(--wood);
}
.svc-hero-fig{display:grid;place-items:center;}
.fig-demontage{width:100%;max-width:280px;height:auto;display:block;}
.fig-demontage .f-trunk{stroke:var(--wood-deep);stroke-width:8;stroke-linecap:round;}
.fig-demontage .f-branch{stroke:var(--wood);stroke-width:3;stroke-linecap:round;fill:none;}
.fig-demontage .f-piece{fill:var(--forest);opacity:.9;}
.fig-demontage .f-rope{stroke:var(--forest);stroke-width:1.6;fill:none;stroke-dasharray:4 3;}
.fig-demontage .f-pulley{fill:none;stroke:var(--forest);stroke-width:2;}
.fig-demontage .f-ground-obj{fill:var(--rule);}
.fig-demontage .f-ground{stroke:var(--ink-soft);stroke-width:1.5;}
.fig-demontage .f-label{font-family:"Source Sans 3",sans-serif;font-size:10px;fill:var(--muted);}

.svc-detail{
  margin-top:10px!important;padding-top:10px;border-top:1px solid var(--rule);
  font-size:.89rem;color:var(--muted);font-style:italic;
}

/* ── Étapes ───────────────────────────────────── */
.etapes{list-style:none;margin:26px 0 0;padding:0;display:flex;flex-direction:column;gap:2px;}
.etape{
  display:grid;grid-template-columns:52px 1fr;gap:18px;align-items:start;
  background:var(--white);border:1px solid var(--rule);padding:22px 22px;
}
.etape + .etape{border-top:none;}
.etape-n{
  display:grid;place-items:center;width:44px;height:44px;
  font-family:"Libre Franklin",sans-serif;font-weight:800;font-size:1.2rem;
  color:#fff;background:var(--forest);border-radius:50%;
}
.etape h3{color:var(--forest-deep);display:flex;flex-wrap:wrap;gap:10px;align-items:baseline;}
.etape-d{
  font-family:"Source Sans 3",sans-serif;font-size:.76rem;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;color:var(--wood);
  background:var(--wood-wash);padding:3px 9px;border-radius:2px;
}
.etape p{margin:0;color:var(--ink-soft);font-size:.96rem;max-width:70ch;}

/* ── Tarifs ───────────────────────────────────── */
.tablewrap{overflow-x:auto;border:1px solid rgba(255,255,255,.16);border-radius:4px;}
table.tarifs{border-collapse:collapse;width:100%;min-width:620px;background:rgba(255,255,255,.04);}
table.tarifs th,table.tarifs td{
  text-align:left;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.12);
  font-size:.95rem;vertical-align:top;
}
table.tarifs thead th{
  font-family:"Source Sans 3",sans-serif;font-size:.74rem;letter-spacing:.12em;
  text-transform:uppercase;color:#A9C6B5;font-weight:700;background:rgba(0,0,0,.18);
}
table.tarifs tbody th{font-family:"Libre Franklin",sans-serif;font-weight:700;color:#fff;}
table.tarifs td{color:#BCCCC2;}
table.tarifs .prix{
  font-weight:700;color:#EBD9A8;white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
table.tarifs tbody tr:last-child th,table.tarifs tbody tr:last-child td{border-bottom:none;}

.tarif-notes{display:grid;grid-template-columns:1fr;gap:26px;margin-top:30px;}
@media(min-width:820px){ .tarif-notes{grid-template-columns:1fr 1fr;gap:40px;} }
.tarif-notes h3{color:#fff;}
.tarif-notes p{margin:0;color:#BCCCC2;font-size:.95rem;}

/* ── Réglementation ───────────────────────────── */
.grid-loi{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px;margin-top:26px;}
.loi{background:var(--sand);border-top:3px solid var(--wood);padding:22px 22px 24px;}
.loi-ref{
  display:inline-block;font-family:"Source Sans 3",sans-serif;font-size:.72rem;
  font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--wood-deep);
  margin-bottom:8px;
}
.loi h3{color:var(--forest-deep);}
.loi p{margin:0;color:var(--ink-soft);font-size:.95rem;}

/* ── Saisons ──────────────────────────────────── */
.saisons{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:18px;margin-top:26px;}
.saison{background:var(--white);border:1px solid var(--rule);padding:20px 20px 22px;border-radius:4px;}
.saison-mois{
  display:inline-block;font-family:"Source Sans 3",sans-serif;font-size:.75rem;
  font-weight:700;letter-spacing:.07em;text-transform:uppercase;
  padding:4px 10px;border-radius:2px;margin-bottom:10px;
}
.saison h3{color:var(--forest-deep);}
.saison p{margin:0;font-size:.93rem;color:var(--ink-soft);}
.saison-on  {border-top:3px solid var(--forest);}
.saison-on   .saison-mois{background:var(--forest-wash);color:var(--forest-deep);}
.saison-off {border-top:3px solid var(--muted);}
.saison-off  .saison-mois{background:#EDEEEC;color:var(--ink-soft);}
.saison-urg {border-top:3px solid var(--danger);}
.saison-urg  .saison-mois{background:#F5E3DF;color:var(--danger);}
.saison-urg h3{color:var(--danger);}

/* ── Essences ─────────────────────────────────── */
.essences{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule);margin-top:26px;}
.ess{background:var(--white);padding:22px 20px 24px;}
.ess h3{color:var(--forest-deep);font-size:1.08rem;}
.ess p{margin:0;font-size:.93rem;color:var(--ink-soft);}

/* ── Galerie : badge au lieu du cadre vide ────── */
.shot-badge{
  display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--wood-deep);background:rgba(255,255,255,.7);
  padding:5px 12px;border-radius:2px;
}

/* ── Devis : astuce ───────────────────────────── */
.devis-astuce{
  background:rgba(255,255,255,.07);border-left:3px solid #8FBFA1;
  padding:14px 16px;font-size:.95rem;margin-top:18px!important;max-width:46ch;
}
.devis-astuce strong{color:#fff;}

/* ═══════════════════════════════════════════════════════
   PASSE DESIGN — matière, profondeur, rythme typographique
   ═══════════════════════════════════════════════════════ */

/* ── Grain : donne une matière imprimée, pas un aplat numérique ── */
body::after{
  content:"";position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:.05;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/></filter><rect width='140' height='140' filter='url(%23n)' opacity='.55'/></svg>");
}

/* ── Hero : plus ample, perspective atmosphérique ── */
.hero{padding:78px 0 200px;}
@media(min-width:900px){ .hero{padding:104px 0 250px;} }
.massifs{height:300px;}
@media(min-width:900px){ .massifs{height:400px;} }
.massifs .m-1{fill:#2E5843;opacity:.55;}
.massifs .m-2{fill:#244836;opacity:.75;}
.massifs .m-3{fill:#1A342787;fill:#1A3427;}
.massifs .m-haze {fill:#2E5843;opacity:.28;}
.massifs .m-haze2{fill:#244836;opacity:.3;}
.massifs .m-trees{stroke:#122419;stroke-width:2.4;fill:none;stroke-linecap:round;stroke-linejoin:round;}

.hero h1{
  font-weight:800;letter-spacing:-.032em;line-height:1.02;
  font-size:clamp(2.2rem,5.4vw,3.9rem);max-width:17ch;
  text-shadow:0 2px 24px rgba(0,0,0,.28);
}
.hero-lede{font-size:1.14rem;color:#D2DED6;max-width:56ch;}
.kicker{
  background:rgba(255,255,255,.06);backdrop-filter:blur(3px);
  border-color:rgba(198,216,204,.32);
}

/* ── Carte de réassurance qui chevauche la section suivante ── */
.hero-trust{
  position:relative;z-index:3;margin-top:38px;
  background:rgba(255,255,255,.055);
  border:1px solid rgba(255,255,255,.13);
  border-left:3px solid #8FBFA1;
  backdrop-filter:blur(6px);
  padding:18px 22px;border-radius:4px;
  gap:12px 30px;
}
@media(min-width:820px){ .hero-trust{display:inline-flex;} }

/* ── Titres : plus d'autorité ── */
h2{font-weight:800;letter-spacing:-.028em;line-height:1.06;}
.eyebrow{
  display:flex;align-items:center;gap:11px;
}
.eyebrow::after{content:"";flex:0 0 42px;height:2px;background:currentColor;opacity:.4;}

/* ── Icône téléphone alignée ── */
.ico-tel{flex:none;margin-top:-1px;}

/* ── Profondeur : la prestation phare se détache ── */
.svc-hero{
  box-shadow:0 18px 44px -26px rgba(21,43,32,.55);
  border-radius:5px;
  position:relative;
}
.svc-hero::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:4px;
  background:linear-gradient(180deg,var(--wood) 0%,var(--forest) 100%);
  border-radius:5px 0 0 5px;
}
.svc{transition:background .18s;}
.svc:hover{background:#FCFCFB;}

/* ── Services : bordure vivante au survol ── */
.grid-services{border-radius:5px;overflow:hidden;}
.svc-ico{transition:transform .2s,background .2s;}
.svc:hover .svc-ico{transform:translateY(-2px);background:#DFE9E2;}

/* ── Étapes : le fil qui relie les numéros ── */
.etapes{position:relative;border-radius:5px;overflow:hidden;}
.etape{position:relative;transition:background .18s;}
.etape:hover{background:#FCFCFB;}
.etape-n{
  box-shadow:0 0 0 4px var(--white),0 0 0 5px var(--rule);
  position:relative;z-index:2;
}
.etape::after{
  content:"";position:absolute;left:43px;top:66px;bottom:-1px;width:2px;
  background:var(--rule);
}
.etape:last-child::after{display:none;}
@media(max-width:560px){ .etape::after{display:none;} }

/* ── Tarifs : la table devient lisible d'un coup d'œil ── */
table.tarifs{background:transparent;}
table.tarifs tbody tr{transition:background .16s;}
table.tarifs tbody tr:hover{background:rgba(255,255,255,.05);}
table.tarifs th,table.tarifs td{padding:16px 18px;}
table.tarifs .prix{
  font-family:"Libre Franklin",sans-serif;font-size:1.06rem;
  letter-spacing:-.01em;color:#F0DFAF;
}
.tablewrap{
  background:rgba(0,0,0,.14);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
}

/* ── Réglementation : la référence devient une étiquette ── */
.loi{border-radius:4px;transition:transform .18s,box-shadow .18s;}
.loi:hover{transform:translateY(-3px);box-shadow:0 14px 30px -22px rgba(31,39,35,.6);}
.loi-ref{
  background:var(--wood);color:#fff;padding:3px 9px;border-radius:2px;
  letter-spacing:.06em;
}

/* ── Saisons & essences : relief léger ── */
.saison{transition:transform .18s,box-shadow .18s;}
.saison:hover{transform:translateY(-3px);box-shadow:0 14px 30px -22px rgba(31,39,35,.5);}
.ess{transition:background .18s;}
.ess:hover{background:#FCFCFB;}
.essences{border-radius:5px;overflow:hidden;}

/* ── Citation : matière bois ── */
.pull{
  position:relative;overflow:hidden;border-radius:0 5px 5px 0;
  background:
    repeating-linear-gradient(96deg,rgba(122,91,63,.055) 0 3px,transparent 3px 11px),
    var(--wood-wash);
}
.pull::before{
  content:"“";position:absolute;right:14px;top:-14px;
  font-family:"Libre Franklin",serif;font-size:6rem;line-height:1;
  color:var(--wood);opacity:.14;
}

/* ── Galerie : les emplacements photo deviennent élégants ── */
.shot-ph{
  position:relative;overflow:hidden;border-style:solid;border-color:var(--rule);
  background:
    repeating-linear-gradient(45deg,rgba(122,91,63,.05) 0 10px,transparent 10px 20px),
    var(--wood-wash);
  border-radius:4px;
}
.shot figcaption{font-size:.93rem;}

/* ── Formulaire : plus soigné ── */
.devis-form{box-shadow:0 22px 50px -30px rgba(0,0,0,.6);}
input,select,textarea{transition:border-color .15s,background .15s,box-shadow .15s;}
input:focus,select:focus,textarea:focus{box-shadow:0 0 0 3px rgba(44,86,65,.14);}

/* ── Boutons : appui plus franc ── */
.btn-primary{box-shadow:0 8px 18px -10px rgba(44,86,65,.75);}
.btn-wa{box-shadow:0 8px 18px -10px rgba(37,163,102,.75);}
.wa-float{box-shadow:0 8px 26px rgba(0,0,0,.3);transition:transform .18s;}
.wa-float:hover{transform:translateY(-3px);}

/* ── Apparitions au défilement ── */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .55s ease,transform .55s ease;}
.reveal.seen{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1!important;transform:none!important;transition:none!important;}
}

/* ═══════════════════════════════════════════════════════
   PHOTOS RÉELLES (Pexels, licence libre commerciale)
   ═══════════════════════════════════════════════════════ */

/* ── Hero : la photo passe sous le voile vert, les massifs restent au premier plan ── */
.hero-photo{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:52% 30%;
  z-index:0;
}
/* voile : opaque à gauche pour le texte, nettement plus clair à droite
   pour qu'on voie réellement l'élagueur dans l'arbre */
.hero::before{
  content:"";position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(100deg, rgba(18,36,26,.93) 0%, rgba(18,36,26,.82) 34%, rgba(18,36,26,.4) 62%, rgba(18,36,26,.18) 100%),
    linear-gradient(180deg, rgba(18,36,26,.45) 0%, transparent 24%, rgba(21,43,32,.68) 100%);
}
.hero{background:var(--forest-dark);}
.massifs{z-index:2;}
.hero-inner{z-index:3;}
@media(max-width:700px){
  /* sur mobile le texte occupe toute la largeur : voile plus dense */
  .hero::before{
    background:
      linear-gradient(180deg, rgba(18,36,26,.86) 0%, rgba(18,36,26,.9) 55%, rgba(21,43,32,.95) 100%);
  }
  .hero-photo{object-position:58% 32%;}
}

/* ── Photo dans la prestation phare ── */
.svc-hero-fig{display:flex;flex-direction:column;gap:18px;align-items:center;}
.svc-photo{
  width:100%;height:auto;border-radius:4px;display:block;
  box-shadow:0 16px 34px -22px rgba(21,43,32,.7);
}

/* ── Photo du manifeste ── */
.manifeste-aside{display:flex;flex-direction:column;gap:20px;}
.photo-ville{margin:0;}
.photo-ville img{
  width:100%;height:auto;display:block;border-radius:4px;
  box-shadow:0 16px 34px -24px rgba(21,43,32,.65);
}
.photo-ville figcaption{
  margin-top:9px;font-size:.86rem;color:var(--muted);line-height:1.45;
}
@media(min-width:940px){
  /* on cadre la photo verticale pour ne pas écraser la colonne */
  .photo-ville img{max-height:340px;object-fit:cover;object-position:50% 42%;}
}

/* ═══════════════════════════════════════════════════════
   PASSE « PRO + DYNAMIQUE »
   Tout mouvement est neutralisé sous prefers-reduced-motion
   (bloc final du fichier).
   ═══════════════════════════════════════════════════════ */

/* ── Barre de progression de lecture ── */
.progress{
  position:fixed;top:0;left:0;right:0;height:3px;z-index:200;
  background:transparent;pointer-events:none;
}
.progress span{
  display:block;height:100%;width:0;
  background:linear-gradient(90deg,var(--wood) 0%,var(--forest) 55%,#8FBFA1 100%);
  transition:width .12s linear;
}

/* ── Header qui se compacte au défilement ── */
.site-header{transition:box-shadow .25s ease,background .25s ease;}
.header-inner{transition:min-height .25s ease;}
.site-header.compact{box-shadow:0 6px 22px -14px rgba(21,43,32,.55);}
.site-header.compact .header-inner{min-height:62px;}
.brand-mark{transition:width .25s ease,height .25s ease;}
.site-header.compact .brand-mark{width:34px;height:34px;}
.brand-text em{transition:opacity .2s ease,max-height .25s ease;overflow:hidden;max-height:20px;}
.site-header.compact .brand-text em{opacity:0;max-height:0;}

/* ── Navigation : soulignement qui balaie ── */
.site-nav a{position:relative;border-bottom:none;}
.site-nav a::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:2px;
  background:var(--forest);transform:scaleX(0);transform-origin:left;
  transition:transform .26s cubic-bezier(.22,.61,.36,1);
}
.site-nav a:hover::after,.site-nav a:focus-visible::after{transform:scaleX(1);}

/* ── Hero : léger zoom lent + parallaxe ── */
/* Le zoom lent passe par la propriété `scale` et la parallaxe par `translate` :
   deux propriétés indépendantes, donc elles se composent au lieu de s'écraser
   (ce que ferait un `transform` utilisé des deux côtés). */
.hero-photo{
  will-change:scale,translate;
  animation:kenburns 34s ease-in-out infinite alternate;
}
@keyframes kenburns{
  from{scale:1.02;}
  to  {scale:1.10;}
}
.massifs{will-change:transform;}

/* ── Bandeau de communes défilant ── */
.bandeau-villes{
  display:flex;align-items:center;gap:20px;
  background:var(--forest-deep);color:#CFDCD4;
  padding:13px 0;overflow:hidden;position:relative;
  border-top:1px solid rgba(255,255,255,.08);
}
.bandeau-label{
  flex:none;padding-left:22px;font-size:.7rem;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;color:#8FBFA1;
  position:relative;z-index:2;
}
.bandeau-villes::after{
  content:"";position:absolute;right:0;top:0;bottom:0;width:90px;z-index:2;
  background:linear-gradient(90deg,transparent,var(--forest-deep));
  pointer-events:none;
}
.bandeau-piste{
  display:flex;gap:0;flex:1;min-width:0;
  animation:defile 46s linear infinite;
}
.bandeau-villes:hover .bandeau-piste{animation-play-state:paused;}
.bandeau-liste{
  display:flex;align-items:center;gap:0;list-style:none;margin:0;padding:0;flex:none;
}
.bandeau-liste li{
  white-space:nowrap;padding:0 22px;font-size:.94rem;font-weight:600;
  position:relative;
}
.bandeau-liste li::after{
  content:"";position:absolute;right:0;top:50%;transform:translateY(-50%);
  width:4px;height:4px;border-radius:50%;background:var(--wood);opacity:.75;
}
@keyframes defile{
  from{transform:translateX(0);}
  to  {transform:translateX(-50%);}
}

/* ── Apparitions en cascade ── */
.reveal{transition:opacity .6s cubic-bezier(.22,.61,.36,1),transform .6s cubic-bezier(.22,.61,.36,1);}
.reveal.seen{transition-delay:var(--d,0ms);}

/* ── Photos : zoom au survol ── */
.svc-hero-fig,.photo-ville{overflow:hidden;border-radius:4px;}
.photo-ville{border-radius:0;}
.svc-photo,.photo-ville img{transition:transform .5s cubic-bezier(.22,.61,.36,1);}
.svc-hero-fig:hover .svc-photo,.photo-ville:hover img{transform:scale(1.045);}

/* ── Boutons : reflet au survol ── */
.btn-primary,.btn-tel,.btn-wa{position:relative;overflow:hidden;}
.btn-primary::after,.btn-tel::after,.btn-wa::after{
  content:"";position:absolute;top:0;left:-70%;width:45%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.22),transparent);
  transform:skewX(-18deg);transition:left .55s ease;
}
.btn-primary:hover::after,.btn-tel:hover::after,.btn-wa:hover::after{left:130%;}

/* ── Étapes : le numéro s'anime à l'apparition ── */
.etape.seen .etape-n{animation:pose .5s cubic-bezier(.34,1.56,.64,1) both;}
@keyframes pose{
  from{transform:scale(.7);opacity:0;}
  to  {transform:scale(1);opacity:1;}
}

/* ── Cartes : élévation plus franche ── */
.loi:hover,.saison:hover{box-shadow:0 18px 38px -24px rgba(31,39,35,.55);}
.svc-hero:hover{box-shadow:0 22px 54px -28px rgba(21,43,32,.6);}

/* ── Neutralisation complète du mouvement ── */
@media(prefers-reduced-motion:reduce){
  .hero-photo{animation:none!important;}
  .bandeau-piste{animation:none!important;}
  .etape.seen .etape-n{animation:none!important;}
  .btn-primary::after,.btn-tel::after,.btn-wa::after{display:none;}
  .progress span{transition:none;}
}
