/*
Theme Name: Ferme du Poussinet
Theme URI: https://moccasin-turkey-222321.hostingersite.com/
Author: Atelier Web (freelance)
Description: Thème sur mesure pour la Ferme du Poussinet — location de gîtes en montagne. Ambiance nature apaisante, ruisseau, faune et flore alpines.
Version: 5.4
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: fermedupoussinet
*/

/* ============================================================
   1. Variables & base
   ============================================================ */
:root{
  --foret:#26392e;
  --sapin:#33503f;
  --mousse:#6f8e6a;
  --pierre:#e7e0d2;
  --creme:#f7f4ec;
  --ruisseau:#6f9aa3;
  --or:#c2a161;
  --nuit:#141d18;
  --texte:#2b332c;
  --ombre:0 18px 50px -20px rgba(20,29,24,.35);
  --rayon:18px;
  --maxw:1180px;
  --serif:"Fraunces",Georgia,serif;
  --sans:"Mulish",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--sans);
  color:var(--texte);
  background:var(--creme);
  line-height:1.7;
  font-size:17px;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}

h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.12;margin:0 0 .4em}
h1{font-size:clamp(2.6rem,6vw,4.6rem)}
h2{font-size:clamp(2rem,4vw,3.1rem)}
h3{font-size:1.5rem}
p{margin:0 0 1.1em}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
.section{padding:clamp(70px,9vw,130px) 0}
.eyebrow{
  font-family:var(--sans);font-weight:800;letter-spacing:.22em;
  text-transform:uppercase;font-size:.74rem;color:var(--or);
  display:inline-block;margin-bottom:1rem;
}
.lead{font-size:1.22rem;color:#46524a;max-width:46ch}
.center{text-align:center}
.center .lead{margin-inline:auto}

/* ============================================================
   2. Boutons
   ============================================================ */
.btn{
  display:inline-flex;align-items:center;gap:.6em;
  font-family:var(--sans);font-weight:700;font-size:.95rem;
  letter-spacing:.02em;padding:15px 30px;border-radius:50px;
  cursor:pointer;border:1.5px solid transparent;transition:.3s ease;
}
.btn-primary{background:var(--or);color:var(--nuit)}
.btn-primary:hover{background:var(--nuit);color:var(--creme);transform:translateY(-2px)}
.btn-ghost{border-color:rgba(255,255,255,.55);color:#fff}
.btn-ghost:hover{background:#fff;color:var(--nuit);transform:translateY(-2px)}
.btn-dark{background:var(--sapin);color:var(--creme)}
.btn-dark:hover{background:var(--foret);transform:translateY(-2px)}

/* ============================================================
   3. En-tête / navigation
   ============================================================ */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  padding:18px clamp(28px,5vw,60px);transition:.4s ease;
  background:rgba(247,244,236,.8);backdrop-filter:blur(12px);border-bottom:1px solid rgba(43,51,44,.07);
}
.site-header.scrolled{
  background:rgba(247,244,236,.92);backdrop-filter:blur(10px);
  padding-top:14px;padding-bottom:14px;box-shadow:0 6px 30px -18px rgba(0,0,0,.4);
}
.brand{display:flex;align-items:center;gap:12px;color:var(--foret);transition:.4s}
.scrolled .brand{color:var(--foret)}
.brand svg{width:38px;height:38px;flex:none}
.brand-text{display:flex;flex-direction:column;line-height:1.08}
.brand-text b{font-family:var(--serif);font-size:1.32rem;font-weight:600}
.brand-text span{font-family:var(--sans);font-size:.62rem;letter-spacing:.26em;text-transform:uppercase;opacity:.82;font-weight:700;margin-top:2px}
.nav{display:flex;align-items:center;gap:34px}
.nav a{color:var(--texte);font-weight:600;font-size:.96rem;transition:.3s;position:relative}
.scrolled .nav a{color:var(--texte)}
.nav a:not(.btn)::after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:2px;background:var(--or);transition:.3s}
.nav a:not(.btn):hover::after{width:100%}
.nav-item{position:relative;display:flex;align-items:center}
.nav-item>a{display:inline-flex;align-items:center;gap:6px;color:var(--texte);font-weight:600;font-size:.96rem}
.scrolled .nav-item>a{color:var(--texte)}
.nav-caret{transition:.3s;opacity:.8}
.nav-item:hover .nav-caret{transform:rotate(180deg)}
.nav-sub{position:absolute;top:calc(100% + 14px);left:50%;transform:translate(-50%,10px);min-width:250px;
  background:var(--creme);border-radius:14px;box-shadow:0 24px 60px -20px rgba(20,29,24,.45);
  padding:10px;opacity:0;pointer-events:none;transition:.3s ease}
.nav-sub::before{content:"";position:absolute;top:-16px;left:0;right:0;height:16px}
.nav-item:hover .nav-sub{opacity:1;pointer-events:auto;transform:translate(-50%,0)}
.nav-sub a{display:flex;flex-direction:column;padding:11px 16px;border-radius:9px;color:var(--texte);transition:.2s}
.nav-sub a:hover{background:var(--pierre)}
.nav-sub a b{font-family:var(--serif);font-size:1.08rem;color:var(--foret);font-weight:600}
.nav-sub a span{font-size:.78rem;color:#7a8478}
.nav-toggle{display:none;background:none;border:0;cursor:pointer;width:34px;height:28px;position:relative;z-index:60}
.nav-toggle span{position:absolute;left:0;width:100%;height:2.5px;background:var(--foret);transition:.3s}
.scrolled .nav-toggle span{background:var(--foret)}
.nav-toggle span:nth-child(1){top:4px}
.nav-toggle span:nth-child(2){top:13px}
.nav-toggle span:nth-child(3){top:22px}

/* ============================================================
   4. Hero
   ============================================================ */
.hero{
  position:relative;min-height:100vh;display:flex;align-items:center;
  color:#fff;overflow:hidden;
}
.hero-bg{position:absolute;inset:0;background:url(assets/img/hero.jpg) center/cover no-repeat;transform:scale(1.05)}
.hero::after{content:"";position:absolute;inset:0;
  background:
    linear-gradient(95deg,rgba(15,22,17,.78) 0%,rgba(15,22,17,.5) 38%,rgba(15,22,17,.12) 68%,rgba(15,22,17,0) 88%),
    linear-gradient(180deg,rgba(15,22,17,.45) 0%,rgba(15,22,17,.12) 38%,rgba(15,22,17,.55) 100%)}
.hero-inner{position:relative;z-index:2;max-width:760px}
.hero .eyebrow{text-shadow:0 2px 14px rgba(0,0,0,.55)}
.hero h1{margin-bottom:.3em;text-shadow:0 4px 34px rgba(0,0,0,.55),0 1px 2px rgba(0,0,0,.3)}
.hero .lead{color:#fff;font-size:1.35rem;max-width:38ch;margin-bottom:2.2rem;text-shadow:0 2px 16px rgba(0,0,0,.5)}
.hero-actions{display:flex;gap:16px;flex-wrap:wrap}
.hero-lead .lb{display:inline}
.gite-badges{display:none}
.gite-badge{display:inline-flex;align-items:center;gap:7px;padding:8px 15px;border-radius:999px;background:#eef2e9;color:#3a4a3a;font-size:.92rem;font-weight:600;border:1px solid #dbe4d3}
.gite-badge.no{background:#f4ece9;color:#8a5a52;border-color:#e6d6d0}
.specs-table{margin:16px 0 0;display:grid;grid-template-columns:1fr 1fr;column-gap:38px;row-gap:0}
.specs-table>div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:12px 2px;border-bottom:1px solid rgba(43,51,44,.12)}
.specs-table dt{color:#5b6557;font-weight:600}
.specs-table dd{margin:0;font-weight:800;text-align:right;color:#26392e}
@media(max-width:600px){.specs-table{grid-template-columns:1fr;column-gap:0}}
.avis{background:linear-gradient(#fbfaf5,#f3f0e7)}
.avis-score{display:inline-flex;align-items:center;gap:10px;margin-top:16px;flex-wrap:wrap;justify-content:center}
.avis-score strong{font-size:1.7rem;color:#26392e;line-height:1}
.avis-stars{color:#f5b301;display:inline-flex;gap:1px}
.avis-count{color:#5b6557;font-size:.95rem}
.avis-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin:36px 0 32px;text-align:left;align-items:start}
.avis-card{background:#fff;border:1px solid #ece7db;border-radius:18px;padding:24px 22px;box-shadow:0 10px 30px rgba(43,51,44,.07)}
.avis-top{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.avis-avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-weight:800;color:#fff;flex:none;font-size:1.05rem}
.avis-top b{display:block;line-height:1.2}
.avis-top small{color:#8a927f;font-size:.82rem}
.avis-card .avis-stars{margin-bottom:9px}
.avis-text{color:#4b554a;line-height:1.62;font-size:.96rem;margin:0}
.avis-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
@media(max-width:860px){.avis-grid{grid-template-columns:1fr;max-width:520px;margin-inline:auto}}
.cal-notice{margin:20px 0 0;padding:14px 18px;background:#fdf6e3;border:1px solid #efdca6;border-radius:12px;color:#7a5a1e;font-size:.95rem;line-height:1.55;max-width:640px}
.cal-notice a{color:#7a5a1e;text-decoration:underline;font-weight:700}
.acces-gite-sec{padding-top:0}
.acces-gite-box{background:#f4f1e8;border:1px solid #e6e0d2;border-left:4px solid var(--or);border-radius:16px;padding:24px 26px;max-width:720px;margin-top:18px}
.acces-gite-box p{margin:0 0 12px;color:#4b554a;line-height:1.62}
.acces-map-btn{margin-top:6px}
.scroll-cue{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);z-index:2;color:#fff;opacity:.8;animation:bob 2.4s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,10px)}}

/* ============================================================
   5. Intro
   ============================================================ */
.intro{position:relative}
.intro .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center}
.intro-art{display:flex;justify-content:center}
.intro-art svg{width:min(100%,380px);height:auto}
.divider-leaf{display:flex;align-items:center;justify-content:center;gap:18px;margin:0 auto 2.4rem;color:var(--mousse)}
.divider-leaf::before,.divider-leaf::after{content:"";height:1px;width:70px;background:currentColor;opacity:.5}

/* ============================================================
   6. Gîtes
   ============================================================ */
.gites{background:var(--pierre)}
.gite-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:32px;margin-top:60px}
.gite-card{
  background:var(--creme);border-radius:var(--rayon);overflow:hidden;
  box-shadow:var(--ombre);display:flex;flex-direction:column;
  transition:.4s ease;
}
.gite-card:hover{transform:translateY(-8px)}
.gite-photo{position:relative;aspect-ratio:16/11;overflow:hidden}
.gite-photo img{width:100%;height:100%;object-fit:cover;transition:.6s ease}
.gite-card:hover .gite-photo img{transform:scale(1.06)}
.gite-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(20,29,24,.5))}
.gite-badge{position:absolute;top:16px;left:16px;z-index:2;background:var(--or);color:var(--nuit);
  font-weight:800;font-size:.72rem;letter-spacing:.04em;padding:7px 14px;border-radius:50px;text-transform:uppercase}
.gite-name{position:absolute;bottom:14px;left:20px;z-index:3;color:#fff;font-family:var(--serif);font-size:1.7rem}
.gite-photo-link{position:absolute;inset:0;z-index:4}
.gite-card:hover .gite-name{text-shadow:0 2px 16px rgba(0,0,0,.4)}
.gite-body{padding:24px 26px 28px}
.gite-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.gite-meta span{font-size:.82rem;font-weight:700;color:var(--sapin);background:rgba(111,142,106,.16);
  padding:5px 12px;border-radius:50px}
.gite-desc{font-size:.96rem;color:#54604f;margin-bottom:18px}
.gite-foot{display:flex;align-items:center;justify-content:space-between;margin-top:auto;
  padding-top:16px;border-top:1px solid rgba(43,51,44,.1)}
.gite-price b{font-family:var(--serif);font-size:1.5rem;color:var(--foret)}
.gite-price small{display:block;font-size:.72rem;color:#7a8478;letter-spacing:.02em}

/* ============================================================
   7. Nature (faune & flore)
   ============================================================ */
.nature{background:var(--foret);color:var(--creme);position:relative;overflow:hidden}
.nature h2{color:#fff}
.nature .lead{color:rgba(247,244,236,.82)}
.nature .wrap{position:relative;z-index:2}
.nature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:56px}
.species{text-align:center;padding:30px 16px;border:1px solid rgba(255,255,255,.14);border-radius:var(--rayon);
  background:rgba(255,255,255,.04);transition:.4s}
.species:hover{background:rgba(255,255,255,.08);transform:translateY(-6px)}
.species svg{width:74px;height:74px;margin:0 auto 14px;color:var(--or)}
.species b{display:block;font-family:var(--serif);font-size:1.2rem;margin-bottom:4px}
.species small{color:rgba(247,244,236,.6);font-size:.82rem;font-style:italic}
.environs-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:52px;text-align:left}
.env-point{padding:26px 22px;border:1px solid rgba(255,255,255,.14);border-radius:var(--rayon);background:rgba(255,255,255,.05);transition:.4s}
.env-point:hover{background:rgba(255,255,255,.09);transform:translateY(-5px)}
.env-point svg{width:38px;height:38px;color:var(--or);margin-bottom:14px}
.env-point b{display:block;font-family:var(--serif);font-size:1.18rem;margin-bottom:6px;color:#fff}
.env-point p{font-size:.85rem;color:rgba(247,244,236,.74);margin:0;line-height:1.55}
.environs-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:46px}
.environs-gallery a{display:block;aspect-ratio:4/3;overflow:hidden;border-radius:14px;cursor:pointer}
.environs-gallery img{width:100%;height:100%;object-fit:cover;transition:.6s ease}
.environs-gallery a:hover img{transform:scale(1.07)}
@media(max-width:900px){.environs-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.environs-grid{grid-template-columns:1fr}.environs-gallery{grid-template-columns:1fr 1fr}}
.nature-ribbon{margin-top:60px;border-radius:var(--rayon);overflow:hidden;position:relative;aspect-ratio:21/7}
.nature-ribbon img{width:100%;height:100%;object-fit:cover}
.nature-ribbon figcaption{position:absolute;inset:auto 0 0 0;padding:26px 30px;color:#fff;
  background:linear-gradient(transparent,rgba(20,29,24,.7));font-family:var(--serif);font-size:1.3rem}

/* ============================================================
   8. Infos pratiques
   ============================================================ */
.infos .wrap{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.infos-img{border-radius:var(--rayon);overflow:hidden;box-shadow:var(--ombre);aspect-ratio:4/5}
.infos-img img{width:100%;height:100%;object-fit:cover}
.perks{list-style:none;padding:0;margin:30px 0 0}
.perks li{display:flex;gap:16px;padding:14px 0;border-bottom:1px solid rgba(43,51,44,.1);align-items:flex-start}
.perks svg{width:26px;height:26px;color:var(--mousse);flex:none;margin-top:3px}
.perks b{display:block;font-weight:800}
.perks span{font-size:.92rem;color:#5b6557}
.taxe-note{margin-top:28px;background:var(--sapin);color:var(--creme);border-radius:var(--rayon);
  padding:20px 24px;display:flex;gap:14px;align-items:center;font-size:.95rem}
.taxe-note svg{width:30px;height:30px;flex:none;color:var(--or)}

/* ============================================================
   9. Contact
   ============================================================ */
.contact{background:var(--nuit);color:var(--creme);text-align:center}
.contact h2{color:#fff}
.contact .lead{color:rgba(247,244,236,.78);margin-inline:auto;margin-bottom:2.4rem}
.contact-cards{display:flex;gap:22px;justify-content:center;flex-wrap:wrap;margin-bottom:2.6rem}
.contact-card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);
  border-radius:var(--rayon);padding:26px 38px;min-width:230px}
.contact-card svg{width:34px;height:34px;color:var(--or);margin-bottom:10px}
.contact-card small{display:block;text-transform:uppercase;letter-spacing:.16em;font-size:.68rem;opacity:.6;margin-bottom:4px}
.contact-card b{font-family:var(--serif);font-size:1.35rem}

/* ============================================================
   10. Footer
   ============================================================ */
.site-footer{background:#0f1813;color:rgba(247,244,236,.6);padding:48px 0;text-align:center;font-size:.88rem}
.site-footer .brand{justify-content:center;color:var(--creme);margin-bottom:14px}
.site-footer a{color:var(--or)}
.pjm-credit{display:inline-flex;flex-direction:column;align-items:center;gap:1px;margin-top:24px;
	padding:16px 32px;border:1px solid rgba(194,161,97,.35);border-radius:16px;
	background:rgba(255,255,255,.03);transition:.35s ease;text-align:center}
.pjm-credit:hover{border-color:var(--or);background:rgba(194,161,97,.1);transform:translateY(-3px);box-shadow:0 16px 40px -22px rgba(194,161,97,.6)}
.pjm-credit-label{font-size:.64rem;letter-spacing:.24em;text-transform:uppercase;color:rgba(247,244,236,.55);font-weight:800}
.pjm-credit-name{font-family:var(--serif);font-size:2rem;line-height:1.05;color:#fff;margin:4px 0 3px;letter-spacing:.01em}
.pjm-credit-name span{color:var(--or)}
.pjm-credit-tag{font-size:.78rem;color:var(--or);font-weight:600;transition:letter-spacing .3s ease}
.pjm-credit:hover .pjm-credit-tag{letter-spacing:.05em}

/* Logo en pastille */
.brand-logo{height:56px;width:auto;flex:none;transition:height .4s ease}
.scrolled .brand-logo{height:46px}
.site-footer .brand-logo{height:78px;background:#fff;border-radius:16px;padding:12px 18px;box-shadow:0 6px 22px rgba(0,0,0,.45)}

/* Accès & sur place */
.acces{position:relative;overflow:hidden;background:linear-gradient(180deg,#efe9db 0%,#e4ddcd 55%,#ded6c4 100%)}
.acces-bg{position:absolute;inset:0;z-index:0;pointer-events:none}
.acces-range{position:absolute;left:0;bottom:0;width:100%;height:clamp(120px,20vw,240px)}
.acces>.wrap{position:relative;z-index:1}
.acces-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-top:56px}
.acces-card{padding:26px 20px}
@media(max-width:1180px){.acces-grid{grid-template-columns:repeat(3,1fr)}}
.acces-card{background:var(--creme);border-radius:var(--rayon);padding:30px 26px;box-shadow:var(--ombre);display:flex;flex-direction:column}
.acces-card svg{width:40px;height:40px;color:var(--mousse);margin-bottom:14px}
.acces-card h3{font-size:1.22rem;color:var(--foret);margin-bottom:.4em}
.acces-card p{font-size:.94rem;color:#54604f;margin-bottom:14px}
.acces-link{margin-top:auto;color:var(--or);font-weight:700;font-size:.9rem}
.acces-link:hover{text-decoration:underline}
@media(max-width:900px){.acces-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.acces-grid{grid-template-columns:1fr}}

/* Où sommes-nous — carte de situation */
.situation{background:var(--creme)}
.situation-grid{display:grid;grid-template-columns:1fr 1.12fr;gap:50px;align-items:center}
.situation-map{border-radius:var(--rayon);overflow:hidden;box-shadow:var(--ombre);border:1px solid rgba(43,51,44,.08)}
.situation-map img{width:100%;display:block}
@media(max-width:900px){.situation-grid{grid-template-columns:1fr;gap:34px}}

/* ============================================================
   11. Animations au scroll
   ============================================================ */
.reveal{opacity:0;transform:translateY(34px);transition:.9s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}

/* ============================================================
   12. Responsive
   ============================================================ */
@media(max-width:900px){
  .intro .wrap,.infos .wrap{grid-template-columns:1fr;gap:40px}
  .intro-art{order:-1}
  .nature-grid{grid-template-columns:repeat(2,1fr)}
  .nav{position:absolute;top:100%;left:0;right:0;background:var(--creme);
    flex-direction:column;align-items:stretch;gap:0;
    padding:6px clamp(24px,6vw,40px) 74px;
    box-shadow:0 26px 44px -24px rgba(20,29,24,.5);border-bottom:1px solid rgba(43,51,44,.1);
    overflow:hidden;opacity:0;transform:translateY(-14px);pointer-events:none;
    transition:opacity .26s ease,transform .26s ease}
  .nav.open{opacity:1;transform:none;pointer-events:auto}
  .nav>a:not(.btn),.nav .nav-item>a,.scrolled .nav-item>a{color:var(--texte);font-size:1.12rem;font-weight:700;padding:14px 2px;border-bottom:1px solid rgba(43,51,44,.08)}
  .nav-item{flex-direction:column;align-items:stretch}
  .nav-caret{display:none}
  .nav-sub{position:static;transform:none;opacity:1;pointer-events:auto;box-shadow:none;background:transparent;min-width:0;padding:4px 0 10px 16px;margin:0}
  .nav-sub a{text-align:left;padding:9px 6px}
  .nav-sub a b{font-size:1rem}
  .nav .btn-primary{margin-top:16px;justify-content:center}
  .nav-toggle{display:block}
  .nav-open .nav-toggle span{background:var(--foret)}
  .nav-open .nav-toggle span:nth-child(1){top:13px;transform:rotate(45deg)}
  .nav-open .nav-toggle span:nth-child(2){opacity:0}
  .nav-open .nav-toggle span:nth-child(3){top:13px;transform:rotate(-45deg)}
  .nav .critter-marmotte.nav-m1,.nav .critter-marmotte.nav-m2{display:block;position:absolute;bottom:0;z-index:1;right:auto;filter:none;transform:translateY(120%);animation:fdp-peek 5s ease-in-out infinite}
  .nav .critter-marmotte.nav-m1{left:17%;width:60px}
  .nav .critter-marmotte.nav-m2{left:auto;right:17%;width:48px;animation-delay:-2.5s;animation-duration:6.5s}
}
@media(max-width:620px){
  .gite-grid{grid-template-columns:1fr}
  .nature-grid{grid-template-columns:1fr 1fr}
  .contact-cards{flex-direction:column;align-items:center}
  .nature-ribbon{aspect-ratio:3/2}
}

/* ============================================================
   13. Pages gîtes individuelles
   ============================================================ */
.gite-hero{position:relative;min-height:64vh;display:flex;align-items:flex-end;padding:130px 0 54px;background-size:cover;background-position:center;color:#fff;overflow:hidden}
.gite-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(16,24,18,.86) 0%,rgba(16,24,18,.4) 40%,rgba(16,24,18,.08) 72%,rgba(16,24,18,.2) 100%)}
.gite-hero>.wrap{position:relative;z-index:1}
.gite-back{display:inline-block;color:rgba(255,255,255,.85);font-weight:700;margin-bottom:18px;font-size:.9rem}
.gite-back:hover{color:#fff}
.gite-hero h1{font-size:clamp(2.4rem,5vw,3.9rem);margin-bottom:.25em}
.gite-hero-meta{display:flex;gap:10px;flex-wrap:wrap}
.gite-hero-meta span{background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.28);padding:8px 17px;border-radius:50px;font-weight:700;font-size:.85rem}
.gh-inner{position:relative;width:100%}
.gh-card{max-width:470px;background:rgba(18,26,20,.34);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.22);border-radius:22px;padding:30px 34px 32px;box-shadow:0 30px 70px -30px rgba(0,0,0,.7)}
.gh-card h1{font-size:clamp(2.3rem,5vw,3.5rem);margin:.15em 0 .3em}
.gh-desc{color:rgba(255,255,255,.9);font-size:1.02rem;line-height:1.5;margin-bottom:1.2em;max-width:38ch}
.gh-card .gite-hero-meta{margin-bottom:22px}
.gh-cta{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.gh-price{font-family:var(--serif);font-size:1.9rem;line-height:1;color:#fff}
.gh-price small{font-family:var(--sans);font-size:.78rem;font-weight:600;opacity:.82}
.gh-thumbs{position:absolute;right:0;bottom:6px;display:flex;gap:12px}
.gh-thumbs span{width:78px;height:78px;border-radius:14px;background-size:cover;background-position:center;border:2px solid rgba(255,255,255,.55);box-shadow:0 14px 30px -14px rgba(0,0,0,.7);transition:.4s ease}
.gh-thumbs span:hover{transform:translateY(-5px)}
@media(max-width:860px){.gh-thumbs{display:none}.gh-card{max-width:none}}

.gite-layout{display:grid;grid-template-columns:1fr 340px;gap:50px;align-items:start}
.gite-main{min-width:0}
.gite-cols{display:grid;grid-template-columns:1fr 1fr;gap:34px;margin-top:36px}
.gite-cols h3{font-size:1.15rem;color:var(--foret);margin-bottom:.5em}
.ticks{list-style:none;padding:0;margin:0}
.ticks li{position:relative;padding:8px 0 8px 28px;border-bottom:1px solid rgba(43,51,44,.08);font-size:.95rem}
.ticks li::before{content:"";position:absolute;left:2px;top:13px;width:13px;height:7px;border-left:2px solid var(--mousse);border-bottom:2px solid var(--mousse);transform:rotate(-45deg)}

.gite-carousel{margin-top:22px;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent);mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent)}
.gcar-track{display:flex;width:max-content;animation:gcar-scroll 55s linear infinite}
.gite-carousel:hover .gcar-track{animation-play-state:paused}
.gite-carousel.is-paused .gcar-track,.env-carousel.is-paused .gcar-track{animation-play-state:paused}
.gcar-item{cursor:zoom-in}
.gcar-item{flex:0 0 auto;width:clamp(240px,30vw,330px);aspect-ratio:4/3;margin-right:16px;overflow:hidden;border-radius:16px;cursor:pointer;box-shadow:0 14px 34px -20px rgba(20,29,24,.5)}
.gcar-item img{width:100%;height:100%;object-fit:cover;transition:.6s ease}
.gcar-item:hover img{transform:scale(1.06)}
@keyframes gcar-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.gcar-track{animation:none}.gite-carousel{overflow-x:auto}}

/* Jardin partagé (pages gîtes) */
.jardin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px}
.jardin-item{display:block;aspect-ratio:4/3;overflow:hidden;border-radius:14px;cursor:pointer;box-shadow:0 12px 30px -20px rgba(20,29,24,.5)}
.jardin-item img{width:100%;height:100%;object-fit:cover;transition:.6s ease}
.jardin-item:hover img{transform:scale(1.06)}
@media(max-width:620px){.jardin-grid{grid-template-columns:1fr;gap:12px}.jardin-item{aspect-ratio:16/10}}

/* Bandeau nature plein écran (parallaxe) */
.nature-band{position:relative;padding:clamp(90px,14vw,165px) 0;color:#fff;text-align:center;overflow:hidden}
.nature-band-bg{position:absolute;inset:0;background-size:cover;background-position:center;background-attachment:fixed}
.nature-band::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(16,24,18,.5),rgba(16,24,18,.66))}
.nature-band-inner{position:relative;z-index:1;max-width:640px}
.nature-band h2{color:#fff;font-size:clamp(2rem,4.5vw,3.2rem);margin-bottom:.35em}
.nature-band p{color:rgba(255,255,255,.9);max-width:50ch;margin:0 auto;font-size:1.08rem}
@media(max-width:820px){.nature-band-bg{background-attachment:scroll}}

/* Galerie « Les environs » sur 2 lignes qui défilent */
.env-carousel{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent);mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent)}
.env-carousel .gcar-track{display:flex;width:max-content;animation:gcar-scroll 62s linear infinite}
.env-carousel .env-row-rev{animation-direction:reverse}
.env-carousel .env-row+.env-row{margin-top:14px}
.env-carousel:hover .gcar-track{animation-play-state:paused}
.env-carousel .gcar-item{flex:0 0 auto;width:clamp(200px,24vw,272px);aspect-ratio:4/3;margin-right:14px;overflow:hidden;border-radius:14px;cursor:pointer;box-shadow:0 12px 30px -22px rgba(0,0,0,.6)}
.env-carousel .gcar-item img{width:100%;height:100%;object-fit:cover;transition:.6s ease}
.env-carousel .gcar-item:hover img{transform:scale(1.06)}
@media(prefers-reduced-motion:reduce){.env-carousel .gcar-track{animation:none}.env-carousel{overflow-x:auto}}

/* Au fil des saisons (pages gîtes) */
.saisons{background:var(--pierre)}
.saisons-carousel{margin-top:44px}

.gite-aside{position:sticky;top:96px}
.book-card{background:var(--creme);border:1px solid rgba(43,51,44,.1);border-radius:var(--rayon);padding:28px;box-shadow:var(--ombre)}
.book-price{display:flex;align-items:baseline;gap:8px;margin-bottom:4px}
.book-price b{font-family:var(--serif);font-size:2.2rem;color:var(--foret)}
.book-price span{color:#7a8478;font-size:.9rem}
.book-perk{font-size:.85rem;color:var(--or);font-weight:700;margin-bottom:18px}
.book-btn{width:100%;justify-content:center;margin-bottom:10px}
.book-note{font-size:.82rem;color:#7a8478;text-align:center;margin:8px 0 0}
.book-taxe{font-size:.76rem;color:#8a9384;border-top:1px solid rgba(43,51,44,.1);margin-top:16px;padding-top:14px}
.book-horaires{font-size:.82rem;color:#5b6557;text-align:center;line-height:1.55;margin:12px 0 0}
.ticks .tick-linge{color:#6f8e6a;font-weight:600}

.cal-legend{display:flex;gap:24px;margin:16px 0 22px;font-size:.85rem;font-weight:700;color:#5b6557}
.cal-legend .dot{display:inline-block;width:13px;height:13px;border-radius:4px;margin-right:7px;vertical-align:-2px}
.dot.free{background:#8bb28d}.dot.booked{background:#cf9384}
.cal-wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.cal-month{background:var(--creme);border:1px solid rgba(43,51,44,.07);border-radius:18px;padding:22px 20px;box-shadow:0 18px 44px -30px rgba(20,29,24,.45)}
.cal-head{font-family:var(--serif);font-size:1.22rem;color:var(--foret);text-align:center;margin-bottom:14px}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-dow{text-align:center;font-size:.6rem;font-weight:800;color:#aab0a0;padding-bottom:6px;text-transform:uppercase;letter-spacing:.03em}
.cal-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:.82rem;border-radius:10px;font-weight:600;transition:.18s ease}
.cal-cell.free{background:rgba(139,178,141,.16);color:#3c5a41}
.cal-cell.free:hover{background:rgba(139,178,141,.36);transform:scale(1.06)}
.cal-cell.booked{background:rgba(207,147,132,.22);color:#a1523f;text-decoration:line-through}
.cal-cell.past{color:#d3cec1}
.cal-cell.empty{background:transparent}

.lightbox{position:fixed;inset:0;z-index:200;background:rgba(15,24,19,.92);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:.3s;padding:30px}
.lightbox.open{opacity:1;pointer-events:auto}
.lightbox img{max-width:92vw;max-height:88vh;border-radius:10px;box-shadow:0 30px 80px rgba(0,0,0,.5)}
.lightbox-close{position:absolute;top:22px;right:30px;color:#fff;font-size:2.4rem;cursor:pointer;line-height:1;background:none;border:0}

@media(max-width:900px){
	.gite-layout{grid-template-columns:1fr}
	.gite-aside{position:static;order:-1}
	.cal-wrap{grid-template-columns:1fr}
}
@media(max-width:620px){
	.gite-cols{grid-template-columns:1fr}
	.gite-gallery{grid-template-columns:repeat(2,1fr)}
}

/* ============================================================
   14. Eau animée — vagues & rivière
   ============================================================ */
.hero-waves,.nature-waves{position:absolute;left:0;right:0;bottom:-1px;z-index:3;line-height:0;pointer-events:none}
.waves{width:100%;height:60px}
@media(min-width:700px){.waves{height:80px}}
.waves-parallax>use{animation:fdp-wave-move 13s cubic-bezier(.55,.5,.45,.5) infinite}
.waves-parallax>use:nth-child(1){animation-delay:-2s;animation-duration:9s}
.waves-parallax>use:nth-child(2){animation-delay:-3s;animation-duration:13s}
.waves-parallax>use:nth-child(3){animation-delay:-4s;animation-duration:17s}
.waves-parallax>use:nth-child(4){animation-delay:-5s;animation-duration:24s}
@keyframes fdp-wave-move{0%{transform:translate3d(-90px,0,0)}100%{transform:translate3d(85px,0,0)}}

/* rivière qui s'écoule dans l'illustration d'intro */
.river-shimmer{stroke-dasharray:5 11;animation:fdp-flow 2.6s linear infinite}
@keyframes fdp-flow{to{stroke-dashoffset:-32}}

/* Marmotte qui sort la tête */
.critter{position:absolute;right:6%;bottom:22px;width:clamp(56px,9vw,90px);z-index:2;
	transform:translateY(120%);animation:fdp-peek 11s ease-in-out infinite;
	filter:drop-shadow(0 8px 10px rgba(0,0,0,.25))}
.critter-head{transform-origin:60px 58px;animation:fdp-wiggle 1.6s ease-in-out infinite}
@keyframes fdp-peek{0%,7%{transform:translateY(120%)}15%,42%{transform:translateY(0)}50%,100%{transform:translateY(120%)}}
@keyframes fdp-wiggle{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}
/* plusieurs marmottes : positions + sens de sortie */
.critter-marmotte.m1{right:8%;left:auto;bottom:18px;animation-delay:-1s}
.critter-marmotte.m2{left:15%;right:auto;bottom:18px;width:clamp(48px,7.5vw,78px);animation-duration:13s;animation-delay:-6s}
.critter-marmotte.m-left{left:-2px;right:auto;bottom:13%;width:clamp(46px,7vw,74px);transform:translateX(-130%);animation-name:fdp-peek-left;animation-duration:12s;animation-delay:-3s}
.critter-marmotte.m-right{right:-2px;left:auto;bottom:32%;width:clamp(46px,7vw,76px);transform:translateX(130%);animation-name:fdp-peek-right;animation-duration:15s;animation-delay:-9s}
@keyframes fdp-peek-left{0%,8%{transform:translateX(-130%)}17%,44%{transform:translateX(0)}52%,100%{transform:translateX(-130%)}}
@keyframes fdp-peek-right{0%,9%{transform:translateX(130%)}18%,46%{transform:translateX(0)}54%,100%{transform:translateX(130%)}}
.critter-marmotte.nav-m1,.critter-marmotte.nav-m2{display:none}
@media(max-width:620px){.critter-marmotte.m2{left:6%}.critter-marmotte.m-right{bottom:24%}}

@media(prefers-reduced-motion:reduce){
	.waves-parallax>use{animation:none}
	.river-shimmer{animation:none}
	.scroll-cue{animation:none}
	.critter{animation:none;transform:translateY(0)}
	.critter-head{animation:none}
}

/* ============================================================
   15. Animaux de la forêt
   ============================================================ */
.intro,.gites,.infos{position:relative;overflow:hidden}
.gites>.wrap,.infos .wrap,.contact .wrap{position:relative;z-index:2}

/* Oiseaux qui planent */
.birds{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}
.birds-hero{color:rgba(255,255,255,.78)}
.birds-nature{color:rgba(247,244,236,.5)}
.bird{position:absolute;width:32px;animation:fdp-fly linear infinite}
.bird-a{top:17%;width:38px;animation-duration:44s;animation-delay:-3s}
.bird-b{top:25%;width:24px;animation-duration:58s;animation-delay:-22s}
.bird-c{top:12%;width:30px;animation-duration:50s;animation-delay:-38s}
.bird path{transform-origin:center;animation:fdp-flap 2.4s ease-in-out infinite}
@keyframes fdp-fly{0%{transform:translateX(-10vw) translateY(0)}50%{transform:translateX(50vw) translateY(-16px)}100%{transform:translateX(114vw) translateY(0)}}
@keyframes fdp-flap{0%,100%{transform:scaleY(1)}50%{transform:scaleY(.62)}}

/* Animaux qui traversent (biche, renard) */
.critter-walk{position:absolute;bottom:16px;left:0;z-index:1;pointer-events:none;opacity:.92}
.critter-walk svg{display:block;animation:fdp-trot .5s ease-in-out infinite}
.critter-biche{width:clamp(76px,12vw,118px);color:#3b4a3c;animation:fdp-walk 36s linear infinite}
.critter-renard{width:clamp(62px,10vw,92px);color:#b16b3a;animation:fdp-walk 30s linear infinite;animation-delay:-7s}
@keyframes fdp-walk{from{transform:translateX(-170px)}to{transform:translateX(100vw)}}
@keyframes fdp-trot{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}

/* Chamois sur son rocher */
.critter-chamois{position:absolute;left:2%;top:70px;width:clamp(72px,11vw,122px);z-index:1;color:#46583f;pointer-events:none;opacity:.9}
.chamois-anim{transform-origin:60px 70px;animation:fdp-graze 5s ease-in-out infinite}
@keyframes fdp-graze{0%,80%,100%{transform:rotate(0)}88%{transform:rotate(3deg)}}

/* Truite qui saute */
.critter-truite{position:absolute;left:16%;bottom:6%;width:clamp(48px,7vw,72px);z-index:2;color:#e3edee;pointer-events:none;transform-origin:center;animation:fdp-leap 6.5s ease-in-out infinite}
@keyframes fdp-leap{0%,52%{transform:translateY(72px) rotate(18deg);opacity:0}60%{opacity:1}72%{transform:translateY(-28px) rotate(-8deg);opacity:1}84%{transform:translateY(0) rotate(-30deg);opacity:1}94%{transform:translateY(66px) rotate(-46deg);opacity:0}100%{opacity:0}}

@media(max-width:620px){
	.critter-chamois{top:46px;left:1%}
}
@media(prefers-reduced-motion:reduce){
	.bird,.bird path,.critter-walk,.critter-walk svg,.chamois-anim,.critter-truite{animation:none}
	.critter-truite{opacity:1;transform:translateY(-10px) rotate(-12deg)}
	.bird{display:none}
}

/* ============================================================
   16. Plus d'animaux (cerf, écureuil, papillons, lièvre, bouquetin, loup, hibou)
   ============================================================ */
.contact{position:relative;overflow:hidden}
.intro .wrap{position:relative;z-index:2}

/* Cerf — silhouette d'ambiance dans l'intro */
.critter-cerf{position:absolute;left:1%;bottom:24px;width:clamp(78px,12vw,124px);z-index:1;color:#3b4a3c;opacity:.42;pointer-events:none}

/* Écureuil — coin bas de l'intro */
.critter-ecureuil{position:absolute;right:3%;bottom:18px;width:clamp(40px,7vw,58px);z-index:3;color:#7d5a34;pointer-events:none;
	transform-origin:bottom center;animation:fdp-hop 3.2s ease-in-out infinite}
@keyframes fdp-hop{0%,70%,100%{transform:translateY(0) rotate(0)}80%{transform:translateY(-8px) rotate(-4deg)}90%{transform:translateY(0)}}

/* Papillons */
.papillons{position:absolute;inset:0;pointer-events:none;z-index:3;overflow:hidden}
.papillon{position:absolute;width:24px;color:#c2a161}
.papillon-1{top:24%;left:8%;animation:fdp-float1 14s ease-in-out infinite}
.papillon-2{top:40%;left:auto;right:16%;width:18px;color:#b98e57;animation:fdp-float2 17s ease-in-out infinite}
.papillon-3{top:62%;left:22%;width:20px;color:#cdab6a;animation:fdp-float1 20s ease-in-out infinite reverse}
.pap-aile-g{transform-origin:15px 12px;animation:fdp-wing .22s ease-in-out infinite alternate}
.pap-aile-d{transform-origin:15px 12px;animation:fdp-wing .22s ease-in-out infinite alternate}
@keyframes fdp-wing{from{transform:scaleX(1)}to{transform:scaleX(.4)}}
@keyframes fdp-float1{0%{transform:translate(0,0)}25%{transform:translate(40px,-30px)}50%{transform:translate(90px,10px)}75%{transform:translate(40px,40px)}100%{transform:translate(0,0)}}
@keyframes fdp-float2{0%{transform:translate(0,0)}33%{transform:translate(-50px,30px)}66%{transform:translate(-90px,-20px)}100%{transform:translate(0,0)}}

/* Lièvre — bondit en traversant */
.critter-lievre{width:clamp(50px,8vw,74px);color:#6f6256;animation:fdp-walk 26s linear infinite;animation-delay:-14s}
.critter-lievre svg{animation:fdp-hopwalk .55s ease-in-out infinite}
@keyframes fdp-hopwalk{0%,100%{transform:translateY(0)}40%{transform:translateY(-12px)}}

/* Bouquetin — rocher de droite dans la nature */
.critter-bouquetin{position:absolute;right:2%;top:80px;width:clamp(72px,11vw,118px);z-index:1;color:#46583f;opacity:.9;pointer-events:none}

/* Loup — traverse la section contact */
.critter-loup{width:clamp(80px,12vw,122px);color:#828778;animation:fdp-walk 32s linear infinite;animation-delay:-10s}

/* Hibou — perché dans le contact */
.critter-hibou{position:absolute;right:5%;bottom:26px;width:clamp(42px,7vw,60px);z-index:1;color:#cdd2c6;pointer-events:none}
.owl-eye{transform-origin:center;transform-box:fill-box;animation:fdp-blink 4.5s ease-in-out infinite}
@keyframes fdp-blink{0%,93%,100%{transform:scaleY(1)}96%{transform:scaleY(.1)}}

@media(max-width:620px){
	.critter-bouquetin{top:50px;right:1%}
	.papillon{display:none}
}
@media(prefers-reduced-motion:reduce){
	.critter-ecureuil,.papillon,.pap-aile-g,.pap-aile-d,.critter-lievre,.critter-lievre svg,.critter-loup,.owl-eye{animation:none}
}
