/* ==========================================================================
   Himaj Paysage — feuille de style principale
   Parti pris : un site « jardin ». Beaucoup de vert, photos de nature en
   pleine largeur, formes organiques (coins en feuille, collines entre les
   sections), couleurs chaudes de terre et de soleil.
   Sommaire : 1 Polices · 2 Variables · 3 Base · 4 Utilitaires · 5 Boutons
   6 En-tête · 7 Hero · 8 Accueil · 9 Pages intérieures · 10 Galerie
   11 Contact · 12 Retour en haut · 13 Pied de page · 14 Animations · 15 Responsive
   ========================================================================== */

/* 1. Polices (auto-hébergées) ---------------------------------------------- */
@font-face{font-family:"Bitter";font-style:normal;font-weight:400 800;font-display:swap;src:url("../fonts/bitter.woff2") format("woff2")}
@font-face{font-family:"Mulish";font-style:normal;font-weight:400 800;font-display:swap;src:url("../fonts/mulish.woff2") format("woff2")}

/* 2. Variables ------------------------------------------------------------- */
:root{
  --ink:#17281d;
  --text:#465247;
  --muted:#5a665b;
  --paper:#fbf8f0;
  --white:#ffffff;
  --mint:#edf5e3;
  --cream:#edf5e3;
  --sand:#e2edd3;
  --green:#008048;
  --green-600:#006b3c;
  --leaf:#7bb83f;
  --lime:#b4e07c;
  --forest:#123f2a;
  --forest-2:#1a5438;
  --forest-950:#0c2a1c;
  --soil:#5a3d2b;
  --sun:#f2c14e;
  --line:rgba(23,40,29,.13);

  --sans:"Mulish",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --head:"Bitter",Georgia,"Times New Roman",serif;
  --r:10px;
  --r-lg:16px;
  --lf:3.2rem .7rem 3.2rem .7rem;
  --lf-sm:1.7rem .5rem 1.7rem .5rem;
  --shadow:0 26px 54px -26px rgba(12,42,28,.42);
  --shadow-sm:0 12px 28px -16px rgba(12,42,28,.34);
  --ease:cubic-bezier(.22,.8,.24,1);
  --gutter:clamp(1.25rem,4.2vw,3rem);
  --hdr:104px;
  --hill:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 90' preserveAspectRatio='none'%3E%3Cpath d='M0 62C180 12 380 4 620 34c240 30 420 46 620 18 90-12 150-26 200-40v78H0z'/%3E%3C/svg%3E");
  --leafshape:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11 20A7 7 0 0 1 9.8 6.1C15.5 5 17 4.5 19 2c1 2 2 4.2 2 8 0 5.5-4.8 10-10 10z'/%3E%3C/svg%3E");
}

/* 3. Base ------------------------------------------------------------------ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:110px}
body{margin:0;font-family:var(--sans);font-size:1.0625rem;line-height:1.7;color:var(--text);background:var(--paper);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
img,svg,video{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
ul,ol{margin:0;padding:0;list-style:none}
h1,h2,h3,h4,p,figure,blockquote{margin:0}
h1,h2,h3,h4{font-family:var(--head);color:var(--ink)}
:focus-visible{outline:3px solid var(--sun);outline-offset:3px;border-radius:6px}
::selection{background:var(--green);color:#fff}
.skip{position:fixed;left:1rem;top:-100px;z-index:300;background:var(--green);color:#fff;padding:.7rem 1.1rem;border-radius:var(--r);font-weight:700;transition:top .2s}
.skip:focus{top:1rem}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.icon{width:1.25em;height:1.25em;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* 4. Utilitaires ----------------------------------------------------------- */
.container{width:min(100% - var(--gutter)*2,1240px);margin-inline:auto}
.container--wide{width:min(100% - var(--gutter)*2,1440px);margin-inline:auto}
.container--narrow{width:min(100% - var(--gutter)*2,840px);margin-inline:auto}
.section{position:relative;padding-block:clamp(4.4rem,8.5vw,8rem)}
.section>.container,.section>.container--wide,.section>.container--narrow{position:relative;z-index:1}
.section--dark{background:var(--forest);color:rgba(255,255,255,.84)}
.section--dark h2,.section--dark h3{color:#fff}
.section--mint,.section--paper{background:var(--mint)}
.section--white{background:var(--white)}
.eyebrow{display:inline-flex;align-items:center;gap:.55rem;font-size:.82rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--green-600)}
.eyebrow::before{content:"";width:1.15rem;height:1.15rem;flex:none;background:var(--leaf);-webkit-mask:var(--leafshape) center/contain no-repeat;mask:var(--leafshape) center/contain no-repeat}
.section--dark .eyebrow,.hero .eyebrow,.page-hero .eyebrow,.cta .eyebrow{color:var(--lime)}
.section--dark .eyebrow::before,.hero .eyebrow::before,.page-hero .eyebrow::before,.cta .eyebrow::before{background:var(--lime)}
.h-xl,.h-lg,.h-md{font-family:var(--head);font-weight:700;line-height:1.1;letter-spacing:-.015em;text-wrap:balance}
.h-xl{font-size:clamp(2.4rem,5.2vw,4.5rem);line-height:1.06}
.h-lg{font-size:clamp(1.95rem,3.7vw,3.1rem)}
.h-md{font-size:clamp(1.3rem,2vw,1.65rem);line-height:1.2}
.h-xl em,.h-lg em,.h-md em{font-style:normal;color:var(--green)}
.section--dark em,.hero em,.page-hero em,.cta em,.nf em{color:var(--lime)}
.lead{font-size:clamp(1.06rem,1.4vw,1.2rem);line-height:1.7;color:var(--text);max-width:60ch}
.section--dark .lead,.hero .lead,.page-hero .lead,.cta .lead{color:rgba(255,255,255,.9)}
.prose p+p{margin-top:1.1em}
.prose p{color:var(--text)}
.prose strong{color:var(--ink)}
.section--dark .prose p{color:rgba(255,255,255,.8)}
.sec-head{display:grid;gap:.9rem;margin-bottom:clamp(2.2rem,4.5vw,3.6rem)}
.sec-head--center{text-align:center;justify-items:center}
.sec-head--center .lead{margin-inline:auto}
.sec-head--row{grid-template-columns:1fr auto;align-items:end}
.sec-head--row .sec-head{margin-bottom:0}
.pbox{position:relative;display:block;overflow:hidden;isolation:isolate}
.pbox>img,.pbox>picture>img{position:absolute;left:0;top:-13%;width:100%;height:126%;object-fit:cover;will-change:transform}
.round{border-radius:var(--lf)}
.deco{position:absolute;z-index:0;pointer-events:none;color:var(--leaf);opacity:.3;width:clamp(150px,19vw,280px);height:auto}
.deco--tr{right:1%;top:2rem}
.deco--bl{left:-3%;bottom:1rem;transform:scaleX(-1) rotate(8deg);opacity:.22}
.section--dark .deco{color:var(--lime);opacity:.16}
/* colline : transition organique vers la section suivante */
.hill{position:absolute;z-index:2;left:0;right:0;bottom:-1px;height:clamp(38px,6.5vw,90px);background:var(--c,var(--paper));-webkit-mask:var(--hill) center/100% 100% no-repeat;mask:var(--hill) center/100% 100% no-repeat;pointer-events:none}
.hill--top{bottom:auto;top:-1px;transform:scaleY(-1) scaleX(-1)}

/* 5. Boutons --------------------------------------------------------------- */
.btn{--bg:var(--green);--fg:#fff;--bd:var(--green);--hover:var(--forest);position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.65rem;padding:1rem 1.7rem;border-radius:999px;font-weight:800;font-size:.96rem;line-height:1.1;background:var(--bg);color:var(--fg);border:2px solid var(--bd);overflow:hidden;isolation:isolate;transition:color .35s var(--ease),border-color .35s var(--ease),transform .35s var(--ease),box-shadow .35s}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--hover);transform:translateY(101%);border-radius:inherit;transition:transform .42s var(--ease)}
.btn:hover::before,.btn:focus-visible::before{transform:none}
.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);border-color:var(--hover);color:#fff}
.btn .icon{width:1.1em;height:1.1em;transition:transform .35s var(--ease)}
.btn:hover .icon{transform:translateX(4px)}
.btn--lime,.btn--sun{--bg:var(--sun);--fg:var(--ink);--bd:var(--sun);--hover:#fff}
.btn--lime:hover,.btn--sun:hover{color:var(--ink)}
.btn--light{--bg:#fff;--fg:var(--forest);--bd:#fff;--hover:var(--sun)}
.btn--light:hover{color:var(--ink)}
.btn--ghost{--bg:transparent;--fg:#fff;--bd:rgba(255,255,255,.75);--hover:#fff}
.btn--ghost:hover{color:var(--forest);border-color:#fff}
.btn--ghost-dark{--bg:transparent;--fg:var(--forest);--bd:var(--forest);--hover:var(--forest)}
.btn--sm{padding:.8rem 1.25rem;font-size:.88rem}
.link-arrow{display:inline-flex;align-items:center;gap:.55rem;font-weight:800;color:var(--green-600);font-size:.98rem}
.link-arrow .icon{width:2.1rem;height:2.1rem;padding:.5rem;border-radius:50%;background:var(--mint);color:var(--green);transition:transform .35s var(--ease),background .3s,color .3s}
.section--mint .link-arrow .icon{background:#fff}
.link-arrow:hover .icon{transform:translateX(5px);background:var(--green);color:#fff}
.section--dark .link-arrow{color:#fff}
.section--dark .link-arrow .icon{background:rgba(255,255,255,.14);color:var(--lime)}

/* 6. En-tête : barre blanche flottante ------------------------------------- */
.site-header{position:fixed;inset:0 0 auto 0;z-index:100;padding:14px var(--gutter) 0;color:var(--ink);transition:padding .4s var(--ease)}
.site-header.is-solid{padding-top:8px}
.topbar{display:none}
.site-header .nav-wrap{width:min(100%,1440px);margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:1.6rem;height:76px;padding:0 1rem 0 1.4rem;background:#fff;border-radius:999px;box-shadow:0 14px 36px -18px rgba(12,42,28,.5);transition:height .4s var(--ease)}
.site-header.is-solid .nav-wrap{height:66px}
.brand{display:block;flex:none;line-height:0}
.brand img{height:42px;width:auto;transition:height .4s var(--ease)}
.site-header.is-solid .brand img{height:38px}
.nav{display:flex;align-items:center;gap:1.2rem}
.nav__list{display:flex;align-items:center}
.nav__item{position:relative}
.nav__link{display:inline-flex;align-items:center;gap:.35rem;padding:.6rem .8rem;font-weight:700;font-size:.95rem;color:var(--ink);border-radius:999px;transition:color .25s,background .25s}
.nav__link:hover{color:var(--green);background:var(--mint)}
.nav__link[aria-current="page"]{color:var(--green)}
.nav__link .icon{width:.9em;height:.9em;transition:transform .35s var(--ease)}
.has-dd:hover>.nav__link .icon,.has-dd:focus-within>.nav__link .icon{transform:rotate(180deg)}
.dd{position:absolute;left:50%;top:100%;width:min(540px,90vw);padding:.6rem;margin-top:.9rem;background:#fff;color:var(--ink);border-radius:var(--lf-sm);box-shadow:var(--shadow);display:grid;grid-template-columns:1fr 1fr;gap:.2rem;opacity:0;visibility:hidden;transform:translate(-50%,10px);transition:opacity .3s,transform .4s var(--ease),visibility .3s}
.has-dd:hover .dd,.has-dd:focus-within .dd{opacity:1;visibility:visible;transform:translate(-50%,0)}
.dd::before{content:"";position:absolute;left:0;right:0;top:-1.2rem;height:1.2rem}
.dd a{display:flex;align-items:center;gap:.8rem;padding:.5rem .6rem;border-radius:var(--r);font-weight:700;font-size:.92rem;line-height:1.25;transition:background .25s,color .25s}
.dd a:hover{background:var(--mint);color:var(--green-600)}
.dd img{width:48px;height:48px;border-radius:1rem .3rem 1rem .3rem;object-fit:cover;flex:none}
.nav__tel{display:inline-flex;align-items:center;gap:.5rem;font-weight:800;font-size:.98rem;color:var(--ink);white-space:nowrap}
.nav__tel .icon{width:2.2rem;height:2.2rem;padding:.55rem;border-radius:50%;background:var(--mint);color:var(--green)}
.nav__tel:hover{color:var(--green)}
.burger{display:none;width:46px;height:46px;border-radius:50%;background:var(--mint);align-items:center;justify-content:center;position:relative;z-index:130;color:var(--forest)}
.burger span{position:absolute;left:13px;right:13px;height:2px;background:currentColor;border-radius:2px;transition:transform .45s var(--ease),opacity .25s,top .45s var(--ease)}
.burger span:nth-child(1){top:16px}.burger span:nth-child(2){top:22px}.burger span:nth-child(3){top:28px}
.menu-open .burger span:nth-child(1){top:22px;transform:rotate(45deg)}
.menu-open .burger span:nth-child(2){opacity:0}
.menu-open .burger span:nth-child(3){top:22px;transform:rotate(-45deg)}
.progress{position:fixed;left:0;top:0;height:3px;width:100%;z-index:200;transform-origin:left;transform:scaleX(0);background:linear-gradient(90deg,var(--leaf),var(--sun))}

/* Menu mobile : carte blanche qui descend sous l'en-tête */
.mnav{position:fixed;inset:0;z-index:95;padding:calc(var(--hdr) - 4px) var(--gutter) 14px;display:flex;flex-direction:column;background:rgba(9,48,30,.55);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;visibility:hidden;transition:opacity .35s,visibility 0s .35s}
.menu-open .mnav{opacity:1;visibility:visible;transition:opacity .35s}
.mnav__card{width:min(100%,560px);margin-inline:auto;max-height:100%;overflow-y:auto;overscroll-behavior:contain;background:#fff;color:var(--ink);border-radius:1.8rem;padding:.7rem;box-shadow:0 30px 70px -24px rgba(6,30,19,.7);transform:translateY(-18px) scale(.97);transform-origin:50% 0;transition:transform .5s var(--ease)}
.menu-open .mnav__card{transform:none}
.mnav__list{display:grid;gap:.15rem}
.mnav__list>li{opacity:0;transform:translateY(12px);transition:opacity .4s,transform .5s var(--ease)}
.menu-open .mnav__list>li{opacity:1;transform:none;transition-delay:calc(.08s + var(--i)*.04s)}
.mnav__row{display:flex;align-items:center;gap:.9rem;width:100%;padding:.55rem .7rem .55rem .55rem;border-radius:1.2rem;font-family:var(--head);font-size:1.12rem;font-weight:700;line-height:1.2;color:var(--ink);cursor:pointer;transition:background .25s,color .25s}
.mnav__row:hover{background:var(--mint)}
.mnav__ico{display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:50%;background:var(--mint);color:var(--green);transition:background .25s,color .25s}
.mnav__ico .icon{width:1.25rem;height:1.25rem}
.mnav__label{flex:1}
.mnav__go,.mnav__chev{width:1.1rem;height:1.1rem;color:var(--muted);transition:transform .35s var(--ease),color .25s}
.mnav__row:hover .mnav__go{transform:translateX(4px);color:var(--green)}
.mnav__row[aria-current="page"],.mnav__group[open]>.mnav__row{background:var(--mint);color:var(--green-600)}
.mnav__row[aria-current="page"] .mnav__ico,.mnav__group[open]>.mnav__row .mnav__ico{background:var(--green);color:#fff}
.mnav__group>summary{list-style:none}
.mnav__group>summary::-webkit-details-marker{display:none}
.mnav__group[open] .mnav__chev{transform:rotate(180deg);color:var(--green)}
.mnav__sub{display:grid;grid-template-columns:1fr 1fr;gap:.4rem;margin:0;padding:.55rem .2rem .5rem}
.mnav__sub a{display:flex;align-items:center;gap:.6rem;padding:.4rem;border-radius:1rem;border:1px solid var(--line);font-size:.86rem;font-weight:800;line-height:1.2;color:var(--ink);transition:border-color .25s,background .25s,color .25s}
.mnav__sub a:hover{border-color:var(--green);background:var(--mint);color:var(--green-600)}
.mnav__sub img{width:44px;height:44px;border-radius:.9rem .3rem .9rem .3rem;object-fit:cover;flex:none}
.mnav__sub a.mnav__all{grid-column:1/-1;justify-content:center;border-style:dashed;color:var(--green-600);padding:.7rem}
.mnav__all .icon{width:1rem;height:1rem}
.mnav__actions{display:grid;grid-template-columns:1fr 1.25fr;gap:.5rem;margin-top:.7rem;padding-top:.7rem;border-top:1px solid var(--line)}
.mnav__actions .btn{padding:.95rem .8rem;font-size:.92rem}
.mnav__info{display:grid;gap:.5rem;margin-top:.6rem;padding:.9rem 1rem;border-radius:1.2rem;background:var(--paper);font-size:.9rem;font-weight:600;color:var(--text)}
.mnav__info li{display:flex;align-items:flex-start;gap:.65rem;line-height:1.4}
.mnav__info .icon{width:1.1rem;height:1.1rem;margin-top:.1rem;color:var(--green)}
.mnav__info a:hover{color:var(--green)}
.menu-open{overflow:hidden}

/* 7. Hero ------------------------------------------------------------------ */
.hero{position:relative;min-height:min(100vh,900px);min-height:min(100svh,900px);display:grid;align-items:center;color:#fff;background:var(--forest);isolation:isolate;overflow:hidden}
.hero__bg{position:absolute;inset:0;z-index:-2}
.hero__bg img{position:absolute;left:0;top:-6%;width:100%;height:112%;object-fit:cover;object-position:50% 60%;will-change:transform;transform-origin:50% 70%}
.hero__shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,rgba(9,48,30,.92) 0%,rgba(9,48,30,.7) 40%,rgba(9,48,30,.12) 78%),linear-gradient(180deg,rgba(9,48,30,.35),transparent 30%)}
.hero__inner{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:3rem;align-items:center;padding-top:calc(var(--hdr) + 3rem);padding-bottom:clamp(7rem,13vw,11rem)}
.hero__copy{display:grid;gap:1.4rem;justify-items:start}
.hero .h-xl{color:#fff}
.hero__cta{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:.5rem}

.page-hero{position:relative;min-height:54vh;min-height:54svh;display:grid;align-items:end;color:#fff;background:var(--forest);isolation:isolate;overflow:hidden}
.page-hero--sm{min-height:40vh;min-height:40svh}
.page-hero .pbox{position:absolute;inset:0;z-index:-2}
.page-hero__shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,rgba(9,48,30,.92),rgba(9,48,30,.66) 55%,rgba(9,48,30,.3))}
.page-hero::after{content:"";position:absolute;z-index:2;left:0;right:0;bottom:-1px;height:clamp(34px,5.5vw,76px);background:var(--paper);-webkit-mask:var(--hill) center/100% 100% no-repeat;mask:var(--hill) center/100% 100% no-repeat}
.page-hero__in{display:grid;gap:1rem;padding-top:calc(var(--hdr) + 3rem);padding-bottom:clamp(5rem,9vw,8rem);justify-items:start}
.page-hero .h-xl{color:#fff;font-size:clamp(2.3rem,4.8vw,4rem)}
.crumbs{display:inline-flex;flex-wrap:wrap;gap:.35rem .6rem;align-items:center;font-size:.85rem;font-weight:700;color:rgba(255,255,255,.85);background:rgba(255,255,255,.12);padding:.4rem .95rem;border-radius:999px}
.crumbs a:hover{color:var(--lime)}
.crumbs li+li::before{content:"›";margin-right:.6rem;opacity:.6}

/* 8. Accueil --------------------------------------------------------------- */
.about{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.02fr);gap:clamp(2.5rem,7vw,6.5rem);align-items:center}
.about__media{position:relative;padding:0 0 4rem 0}
.about__media .m1{width:80%;aspect-ratio:4/5;margin-left:auto;border-radius:var(--lf);box-shadow:var(--shadow)}
.about__media .m2{position:absolute;left:0;bottom:0;width:50%;aspect-ratio:1;border-radius:var(--lf-sm);border:8px solid var(--paper);box-shadow:var(--shadow)}
.about__badge{position:absolute;z-index:3;right:4%;top:-1.5rem;width:96px;height:96px;border-radius:50%;background:var(--sun);color:var(--ink);display:grid;place-items:center;border:7px solid var(--paper)}
.about__badge .icon{width:2.2rem;height:2.2rem}
.about__body{display:grid;gap:1.4rem;justify-items:start}
.checklist{display:grid;gap:.85rem;margin:.3rem 0}
.checklist li{display:flex;gap:.85rem;align-items:flex-start;font-weight:700;color:var(--ink)}
.checklist .icon{margin-top:.15rem;padding:.3rem;width:1.7rem;height:1.7rem;border-radius:50%;background:var(--leaf);color:#fff;stroke-width:2.8}
.about__actions{display:flex;flex-wrap:wrap;gap:1.2rem 2rem;align-items:center;margin-top:.5rem}
.callbox{display:flex;align-items:center;gap:.9rem}
.callbox i{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:var(--mint);color:var(--green)}
.callbox small{display:block;font-size:.74rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);line-height:1.2}
.callbox b{display:block;font-family:var(--head);font-size:1.35rem;font-weight:700;line-height:1.25;color:var(--ink)}

.services{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.6rem,3vw,2.6rem) clamp(1.2rem,2.2vw,2rem)}
.svc{display:block;position:relative}
.svc__img{aspect-ratio:4/3.1;border-radius:var(--lf);box-shadow:var(--shadow-sm);transition:border-radius .6s var(--ease),box-shadow .5s}
.svc:hover .svc__img{border-radius:.7rem 3.2rem .7rem 3.2rem;box-shadow:var(--shadow)}
.svc__tag{position:absolute;z-index:2;left:1rem;top:1rem;background:#fff;color:var(--green-600);font-weight:800;font-size:.8rem;letter-spacing:.06em;padding:.35rem .8rem;border-radius:999px}
.svc__body{display:grid;gap:.45rem;padding:1.2rem .3rem 0}
.svc__top{display:flex;justify-content:space-between;align-items:center;gap:1rem}
.svc__title{font-size:clamp(1.3rem,1.9vw,1.55rem);font-weight:700;line-height:1.2;transition:color .3s}
.svc:hover .svc__title{color:var(--green)}
.svc__go{display:grid;place-items:center;flex:none;width:2.7rem;height:2.7rem;border-radius:50%;background:#fff;color:var(--green);box-shadow:var(--shadow-sm);transition:background .3s,color .3s,transform .45s var(--ease)}
.svc:hover .svc__go{background:var(--green);color:#fff;transform:rotate(-45deg)}
.svc__txt{font-size:.97rem;line-height:1.6;color:var(--muted)}

.path{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1.2rem,2.6vw,2.4rem)}
.path::before{content:"";position:absolute;left:6%;right:6%;top:36px;border-top:2px dashed rgba(255,255,255,.34)}
.path__step{position:relative;display:grid;gap:.75rem;align-content:start}
.path__step b{position:relative;display:grid;place-items:center;width:72px;height:72px;border-radius:50%;background:var(--lime);color:var(--forest);font-family:var(--head);font-size:1.7rem;font-weight:800;box-shadow:0 0 0 8px var(--forest)}
.path__step:nth-child(even) b{background:var(--sun)}
.path__step h3{font-size:1.35rem;font-weight:700;line-height:1.2;margin-top:.5rem}
.path__step p{font-size:.97rem;line-height:1.65;color:rgba(255,255,255,.8)}

.mosaic{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:clamp(150px,17vw,235px);gap:1rem}
.mosaic a{position:relative;display:block;overflow:hidden;border-radius:var(--lf-sm);background:var(--sand)}
.mosaic a:nth-child(even){border-radius:.5rem 1.7rem .5rem 1.7rem}
.mosaic a img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.mosaic a:hover img{transform:scale(1.07)}
.mosaic a::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(9,48,30,.75));opacity:.85;transition:opacity .4s}
.mosaic .w2{grid-column:span 2}
.mosaic .h2{grid-row:span 2}
.mosaic .cap{position:absolute;z-index:2;left:1rem;bottom:.9rem;right:1rem;color:#fff;font-weight:800;font-size:.98rem;display:flex;align-items:center;gap:.5rem}
.mosaic .cap::before{content:"";width:1rem;height:1rem;flex:none;background:var(--lime);-webkit-mask:var(--leafshape) center/contain no-repeat;mask:var(--leafshape) center/contain no-repeat}

.etude{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(2.5rem,7vw,6rem);align-items:center}
.etude__body{display:grid;gap:1.4rem;justify-items:start}
.plans{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;align-items:start}
.plans figure{background:#fff;padding:.7rem .7rem 0;border-radius:var(--r-lg);box-shadow:var(--shadow)}
.plans figure:nth-child(2){margin-top:3.5rem}
.plans img{width:100%;height:auto;border-radius:var(--r)}
.plans figcaption{font-size:.82rem;font-weight:700;color:var(--muted);padding:.65rem .2rem .75rem}

.cta{position:relative;color:#fff;isolation:isolate;overflow:hidden;background:var(--forest);padding-block:clamp(6rem,11vw,10rem) clamp(4.5rem,8vw,7rem)}
.cta .pbox{position:absolute;inset:0;z-index:-2}
.cta__shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,rgba(9,48,30,.93),rgba(9,48,30,.72) 55%,rgba(9,48,30,.45))}
.cta::before{content:"";position:absolute;z-index:1;left:0;right:0;top:-1px;height:clamp(34px,5.5vw,76px);background:var(--paper);-webkit-mask:var(--hill) center/100% 100% no-repeat;mask:var(--hill) center/100% 100% no-repeat;transform:scaleY(-1)}
.cta__in{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:3rem;align-items:center}
.cta__copy{display:grid;gap:1.3rem;justify-items:start}
.cta .h-lg{color:#fff}
.cta__actions{display:grid;gap:1rem;justify-items:start;background:rgba(255,255,255,.1);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:1.6rem 1.8rem;border-radius:var(--lf-sm);border:1px solid rgba(255,255,255,.2)}
.cta__tel{display:flex;align-items:center;gap:1rem;font-family:var(--head);font-size:clamp(1.5rem,2.6vw,2rem);font-weight:700;line-height:1.1;color:#fff}
.cta__tel i{display:grid;place-items:center;width:60px;height:60px;border-radius:50%;background:var(--sun);color:var(--ink);flex:none}
.cta__tel small{display:block;font-family:var(--sans);font-size:.74rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.8);margin-bottom:.3rem}
.chips{display:flex;gap:.6rem 2rem;flex-wrap:wrap;font-weight:700;font-size:.95rem}
.chips a,.chips span{display:inline-flex;align-items:center;gap:.6rem}
.chips .icon{color:var(--lime)}

/* 9. Pages intérieures ----------------------------------------------------- */
.split{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);gap:clamp(2.5rem,6vw,5.5rem);align-items:start}
.split__body{display:grid;gap:1.5rem}
.split__body .prose{font-size:1.06rem}
.split__body .h-md{margin-top:.8rem}
.infocard{position:sticky;top:7.5rem;background:var(--forest);color:#fff;border-radius:var(--r-lg);border-top:4px solid var(--green);padding:clamp(1.6rem,3vw,2.2rem);display:grid;gap:1.3rem;box-shadow:var(--shadow)}
.infocard h3{color:#fff;font-size:1.4rem;font-weight:700;line-height:1.2}
.infocard .checklist{margin:0;gap:.7rem}
.infocard .checklist li{font-weight:500;font-size:.96rem;color:rgba(255,255,255,.9)}
.infocard .checklist .icon{background:var(--green);color:#fff;width:1.45rem;height:1.45rem;padding:.2rem}
.infocard hr{border:0;border-top:1px solid rgba(255,255,255,.18);width:100%;margin:0}
.infocard .callbox i{background:rgba(255,255,255,.1);color:var(--lime)}
.infocard .callbox small{color:rgba(255,255,255,.7)}
.infocard .callbox b{color:#fff}
.features{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem}
.feature{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:1.8rem 1.6rem;display:grid;gap:.85rem;align-content:start;box-shadow:0 12px 30px -20px rgba(11,29,25,.3);transition:transform .45s var(--ease),box-shadow .45s,border-color .35s}
.feature:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:var(--green)}
.feature .ico{display:grid;place-items:center;width:58px;height:58px;border-radius:var(--r);background:var(--cream);color:var(--green);transition:background .35s,color .35s}
.feature:hover .ico{background:var(--green);color:#fff}
.feature .ico .icon{width:1.6rem;height:1.6rem}
.feature h3{font-size:1.2rem;font-weight:700;line-height:1.25}
.feature p{font-size:.95rem;line-height:1.6;color:var(--muted)}
.features--3{grid-template-columns:repeat(3,1fr)}
.svc-nav{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.svc-nav a{position:relative;display:grid;gap:.35rem;padding:clamp(1.3rem,3vw,2rem);border-radius:var(--r-lg);background:#fff;border:1px solid var(--line);overflow:hidden;transition:background .35s,color .35s,transform .45s var(--ease)}
.svc-nav a:hover{background:var(--forest);color:#fff;transform:translateY(-3px)}
.svc-nav small{font-size:.75rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--green-600)}
.svc-nav a:hover small{color:var(--lime)}
.svc-nav b{font-size:clamp(1.15rem,2.2vw,1.55rem);font-weight:700;line-height:1.2;color:var(--ink)}
.svc-nav a:hover b{color:#fff}
.svc-nav a.next{text-align:right}
.svc-nav .icon{position:absolute;top:50%;width:1.7rem;height:1.7rem;margin-top:-.85rem;opacity:.4;transition:opacity .3s}
.svc-nav a.prev .icon{right:1.4rem}
.svc-nav a.next .icon{left:1.4rem}
.svc-nav a:hover .icon{opacity:1}
.svc-nav a.prev{padding-right:4rem}.svc-nav a.next{padding-left:4rem}
.zig{display:grid;gap:clamp(3rem,7vw,6rem)}
.zig__row{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(2rem,6vw,5.5rem);align-items:center}
.zig__row:nth-child(even) .zig__media{order:2}
.zig__media{position:relative;aspect-ratio:5/4;border-radius:var(--r-lg);box-shadow:var(--shadow)}
.zig__num{position:absolute;z-index:3;left:1rem;top:1rem;width:50px;height:50px;border-radius:var(--r);background:var(--green);color:#fff;display:grid;place-items:center;font-size:1.1rem;font-weight:700}
.zig__body{display:grid;gap:1.1rem;justify-items:start}
.pills{display:flex;flex-wrap:wrap;gap:.5rem}
.pills li{padding:.4rem .9rem;border-radius:var(--r);background:var(--cream);color:var(--green-600);font-size:.85rem;font-weight:700}
.values{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1.2rem,2.6vw,2.2rem)}
.value{border-top:3px solid var(--green);padding-top:1.3rem;display:grid;gap:.65rem;align-content:start}
.value b{font-size:2.4rem;font-weight:700;line-height:1;color:var(--lime);letter-spacing:-.03em}
.value h3{font-size:1.35rem;font-weight:700;line-height:1.2}
.value p{font-size:.96rem;line-height:1.6;color:rgba(255,255,255,.76)}
.legal{display:grid;gap:2.4rem}
.legal section{display:grid;gap:.9rem;padding-top:2rem;border-top:1px solid var(--line)}
.legal h2{font-size:clamp(1.4rem,2.4vw,1.8rem);font-weight:700;line-height:1.2}
.legal p,.legal li{color:var(--text)}
.legal ul{display:grid;gap:.4rem;list-style:disc;padding-left:1.2rem}
.legal a{color:var(--green-600);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.legal dl{display:grid;grid-template-columns:minmax(120px,210px) 1fr;gap:.6rem 1.5rem;margin:0}
.legal dt{font-weight:700;color:var(--ink)}
.legal dd{margin:0;color:var(--text)}
.todo{background:#fff3c4;color:#6b4e00;padding:.05rem .45rem;border-radius:6px;font-weight:700;font-size:.92em}
.nf{min-height:100vh;display:grid;place-items:center;text-align:center;color:#fff;background:var(--forest);position:relative;isolation:isolate;overflow:hidden;padding:9rem 0 4rem}
.nf .pbox{position:absolute;inset:0;z-index:-2}
.nf .page-hero__shade{background:rgba(9,40,31,.78)}
.nf .h-lg{color:#fff}
.nf .lead{color:rgba(255,255,255,.88)}
.nf__big{font-weight:800;font-size:clamp(7rem,24vw,17rem);line-height:.9;letter-spacing:-.05em;color:transparent;-webkit-text-stroke:2px rgba(255,255,255,.7)}
.nf__in{display:grid;gap:1.3rem;justify-items:center}

/* 10. Galerie -------------------------------------------------------------- */
.filters{display:flex;flex-wrap:wrap;gap:.55rem;justify-content:center;margin-bottom:clamp(1.8rem,4vw,3rem)}
.filters button{padding:.65rem 1.1rem;border-radius:var(--r);border:1.5px solid var(--line);font-weight:700;font-size:.9rem;background:#fff;display:inline-flex;gap:.55rem;align-items:center;transition:background .3s,color .3s,border-color .3s,transform .3s var(--ease)}
.filters button:hover{border-color:var(--green);color:var(--green)}
.filters button[aria-pressed="true"]{background:var(--green);color:#fff;border-color:var(--green)}
.filters button small{font-size:.75rem;font-weight:800;color:var(--muted)}
.filters button[aria-pressed="true"] small{color:#fff}
.gal{columns:3 300px;column-gap:1rem}
.gal__item{position:relative;display:block;break-inside:avoid;margin:0 0 1rem;border-radius:var(--r-lg);overflow:hidden;background:var(--sand);cursor:zoom-in}
.gal__item img{width:100%;height:auto;transition:transform 1.1s var(--ease)}
.gal__item::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(9,40,31,.8));opacity:0;transition:opacity .45s}
.gal__item:hover img{transform:scale(1.06)}
.gal__item:hover::after,.gal__item:focus-visible::after{opacity:1}
.gal__cap{position:absolute;z-index:2;left:1rem;right:1rem;bottom:.9rem;color:#fff;font-size:.85rem;font-weight:600;line-height:1.35;opacity:0;transform:translateY(10px);transition:opacity .4s,transform .5s var(--ease)}
.gal__item:hover .gal__cap,.gal__item:focus-visible .gal__cap{opacity:1;transform:none}
.gal__zoom{position:absolute;z-index:2;top:.9rem;right:.9rem;width:42px;height:42px;border-radius:var(--r);background:var(--green);color:#fff;display:grid;place-items:center;opacity:0;transform:scale(.7);transition:opacity .35s,transform .5s var(--ease)}
.gal__item:hover .gal__zoom,.gal__item:focus-visible .gal__zoom{opacity:1;transform:none}
.gal__item.is-hidden{display:none}
.gal__item.is-pop{animation:pop .6s var(--ease) both}
@keyframes pop{from{opacity:0;transform:scale(.94) translateY(20px)}to{opacity:1;transform:none}}
.gal--plans{columns:4 200px}
.lb{position:fixed;inset:0;z-index:400;background:rgba(7,22,18,.95);display:grid;grid-template-rows:auto 1fr auto;opacity:0;visibility:hidden;transition:opacity .35s,visibility .35s}
.lb.is-open{opacity:1;visibility:visible}
.lb__top{display:flex;justify-content:space-between;align-items:center;padding:1rem var(--gutter);color:#fff;font-size:.85rem;font-weight:700;letter-spacing:.1em}
.lb__stage{position:relative;display:grid;place-items:center;padding:0 clamp(3rem,8vw,6rem);min-height:0;overflow:hidden}
.lb__img{max-width:100%;max-height:calc(100vh - 10rem);max-height:calc(100svh - 10rem);width:auto;height:auto;border-radius:var(--r);box-shadow:0 30px 80px rgba(0,0,0,.5);transition:opacity .35s,transform .5s var(--ease);object-fit:contain}
.lb__img.is-out{opacity:0;transform:scale(.96)}
.lb__btn{position:absolute;top:50%;width:52px;height:52px;margin-top:-26px;border-radius:var(--r);background:rgba(255,255,255,.12);color:#fff;display:grid;place-items:center;transition:background .3s}
.lb__btn:hover{background:var(--green)}
.lb__prev{left:clamp(.5rem,2vw,1.5rem)}.lb__next{right:clamp(.5rem,2vw,1.5rem)}
.lb__prev .icon{transform:rotate(180deg)}
.lb__close{width:46px;height:46px;border-radius:var(--r);background:rgba(255,255,255,.12);display:grid;place-items:center;color:#fff}
.lb__close:hover{background:var(--green)}
.lb__cap{padding:1rem var(--gutter) 1.4rem;text-align:center;color:rgba(255,255,255,.85);font-size:.95rem;min-height:3.6rem}
body.lb-open{overflow:hidden}

/* 11. Contact -------------------------------------------------------------- */
.contact{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(2rem,5vw,4.2rem);align-items:start}
.form-card{background:#fff;border-radius:var(--r-lg);padding:clamp(1.6rem,4vw,2.8rem);box-shadow:var(--shadow);border:1px solid var(--line);border-top:4px solid var(--green)}
.form-card h2{margin-bottom:.6rem}
.form{display:grid;gap:1.1rem;margin-top:1.7rem}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
.field{display:grid;gap:.45rem}
.field label,.field legend{font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink)}
.field label i{color:var(--green);font-style:normal}
.field input,.field select,.field textarea{width:100%;padding:.95rem 1.05rem;background:#fff;border:1.5px solid rgba(21,49,43,.18);border-radius:var(--r);font-size:1rem;transition:border-color .25s,box-shadow .25s;appearance:none;-webkit-appearance:none}
.field textarea{min-height:170px;resize:vertical;line-height:1.6}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--green);box-shadow:0 0 0 4px rgba(0,128,72,.16)}
.field.has-error input,.field.has-error select,.field.has-error textarea{border-color:#c0392b;box-shadow:0 0 0 4px rgba(192,57,43,.1)}
.field__err{display:none;font-size:.84rem;font-weight:700;color:#b03023}
.field.has-error .field__err{display:block}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.check{display:grid;grid-template-columns:auto 1fr;gap:.8rem;align-items:start;font-size:.9rem;line-height:1.55;color:var(--muted);cursor:pointer}
.field .check{text-transform:none;letter-spacing:0;font-weight:500;font-size:.9rem;color:var(--muted)}
.check input{appearance:none;-webkit-appearance:none;width:1.45rem;height:1.45rem;margin:.1rem 0 0;border:1.5px solid rgba(21,49,43,.3);border-radius:6px;background:#fff;display:grid;place-items:center;transition:background .25s,border-color .25s;cursor:pointer;padding:0}
.check input::after{content:"";width:.7rem;height:.38rem;border-left:2.5px solid #fff;border-bottom:2.5px solid #fff;transform:rotate(-45deg) scale(0) translate(1px,-1px);transition:transform .25s var(--ease)}
.check input:checked{background:var(--green);border-color:var(--green)}
.check input:checked::after{transform:rotate(-45deg) scale(1) translate(1px,-1px)}
.check a{color:var(--green-600);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.ts{min-height:65px}
.form__foot{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;align-items:center;justify-content:space-between}
.form__foot small{color:var(--muted);font-size:.82rem}
.btn[disabled]{opacity:.65;cursor:progress;pointer-events:none}
.btn .spin{display:none;width:1.1em;height:1.1em;border:2.5px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.is-sending .btn .spin{display:inline-block}
.is-sending .btn .icon{display:none}
.status{display:none;padding:1.05rem 1.25rem;border-radius:var(--r);font-weight:600;font-size:.97rem;line-height:1.5;align-items:flex-start;gap:.8rem}
.status.is-on{display:flex}
.status--err{background:#fdecea;color:#8f2a1f;border:1px solid #f1b9b2}
.status--ok{background:#e6f5ec;color:#0b5c35;border:1px solid #a9d9bd}
.success{display:none;text-align:center;padding:2.5rem 1rem;gap:1.1rem;justify-items:center}
.is-done .success{display:grid}
.is-done .form-fields{display:none}
.success .tick{width:84px;height:84px;border-radius:var(--r-lg);background:var(--green);color:#fff;display:grid;place-items:center;animation:pop .8s var(--ease) both}
.success .tick .icon{width:2.4rem;height:2.4rem;stroke-width:2.6;stroke-dasharray:30;stroke-dashoffset:30;animation:draw .7s .35s var(--ease) forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.info-list{display:grid;gap:1rem}
.info{display:flex;gap:1.1rem;align-items:flex-start;padding:1.25rem 1.35rem;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);transition:transform .45s var(--ease),box-shadow .45s,border-color .3s}
.info:hover{transform:translateY(-3px);box-shadow:var(--shadow-sm);border-color:var(--green)}
.info i{display:grid;place-items:center;width:52px;height:52px;border-radius:var(--r);background:var(--green);color:#fff;flex:none}
.info small{display:block;font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);line-height:1.3;margin-bottom:.15rem}
.info b,.info a{font-weight:700;font-size:1.15rem;line-height:1.35;font-style:normal;color:var(--ink)}
.info a:hover{color:var(--green)}
.map{position:relative;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:16/10;background:var(--forest);isolation:isolate;box-shadow:var(--shadow-sm)}
.map__cover{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:1.5rem;gap:1rem;align-content:center;color:#fff;background:linear-gradient(rgba(9,40,31,.78),rgba(9,40,31,.9))}
.map__cover p{max-width:34ch;font-size:.92rem;color:rgba(255,255,255,.85);line-height:1.55}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* Liste déroulante personnalisée */
.sel{position:relative}
.sel__native{position:absolute!important;left:0;bottom:0;width:100%;height:1px;opacity:0;pointer-events:none}
.sel__btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.95rem 1.05rem;background:#fff;border:1.5px solid rgba(21,49,43,.18);border-radius:var(--r);text-align:left;font-size:1rem;line-height:1.4;transition:border-color .25s,box-shadow .25s}
.sel__btn:hover{border-color:rgba(21,49,43,.4)}
.sel__btn:focus-visible,.sel.is-open .sel__btn{outline:0;border-color:var(--green);box-shadow:0 0 0 4px rgba(0,128,72,.16)}
.sel__val.is-placeholder{color:#5b6a64}
.sel__btn>.icon{width:1.1rem;height:1.1rem;color:var(--forest);transition:transform .35s var(--ease)}
.sel.is-open .sel__btn>.icon{transform:rotate(180deg)}
.sel__panel{position:absolute;left:0;right:0;top:calc(100% + .5rem);z-index:40;margin:0;padding:.45rem;list-style:none;background:#fff;border:1px solid var(--line);border-top:3px solid var(--green);border-radius:var(--r-lg);box-shadow:0 28px 60px -20px rgba(11,29,25,.4),0 4px 14px -6px rgba(11,29,25,.15);max-height:min(540px,62vh);overflow-y:auto;overscroll-behavior:contain;opacity:0;visibility:hidden;transform:translateY(-10px) scale(.98);transform-origin:50% 0;transition:opacity .22s,transform .35s var(--ease),visibility .22s}
.sel.is-open .sel__panel{opacity:1;visibility:visible;transform:none}
.sel.is-up .sel__panel{top:auto;bottom:calc(100% + .5rem);transform-origin:50% 100%;transform:translateY(10px) scale(.98);border-top-width:1px;border-bottom:3px solid var(--green)}
.sel.is-up.is-open .sel__panel{transform:none}
.sel__opt{display:flex;align-items:center;gap:.8rem;padding:.5rem .6rem;border-radius:var(--r);cursor:pointer;font-weight:600;font-size:.96rem;line-height:1.3;color:var(--ink);transition:background .2s,color .2s}
.sel__ico{display:grid;place-items:center;flex:none;width:36px;height:36px;border-radius:var(--r);background:var(--cream);color:var(--green);transition:background .2s,color .2s}
.sel__ico .icon{width:1.05rem;height:1.05rem}
.sel__ico--none{background:transparent;border:1.5px dashed rgba(21,49,43,.25);color:var(--muted)}
.sel__txt{flex:1}
.sel__opt>.icon{width:1.1rem;height:1.1rem;flex:none;opacity:0;transform:scale(.6);transition:opacity .2s,transform .3s var(--ease)}
.sel__opt.is-empty .sel__txt{color:var(--muted);font-weight:500}
.sel__opt.is-active{background:var(--cream)}
.sel__opt.is-active .sel__ico{background:var(--green);color:#fff}
.sel__opt[aria-selected="true"]{background:var(--forest);color:#fff}
.sel__opt[aria-selected="true"] .sel__ico{background:var(--green);color:#fff}
.sel__opt[aria-selected="true"] .sel__txt{color:#fff}
.sel__opt[aria-selected="true"]>.icon{opacity:1;transform:none;color:var(--lime)}
.sel__opt.is-empty[aria-selected="true"]{background:var(--cream)}
.sel__opt.is-empty[aria-selected="true"] .sel__ico{background:transparent;color:var(--muted)}
.sel__opt.is-empty[aria-selected="true"] .sel__txt{color:var(--muted)}
.sel__opt.is-empty[aria-selected="true"]>.icon{color:var(--green)}
.sel__panel::-webkit-scrollbar{width:8px}
.sel__panel::-webkit-scrollbar-thumb{background:rgba(21,49,43,.2);border-radius:8px;border:2px solid #fff}

/* 12. Retour en haut ------------------------------------------------------- */
.to-top{position:fixed;right:clamp(1rem,2.5vw,2rem);bottom:clamp(1rem,2.5vw,2rem);z-index:90;width:54px;height:54px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;box-shadow:0 14px 30px -10px rgba(0,80,45,.6);opacity:0;visibility:hidden;transform:translateY(18px) scale(.85);transition:opacity .35s,transform .5s var(--ease),visibility .35s,background .3s}
.to-top.is-on{opacity:1;visibility:visible;transform:none}
.to-top:hover{background:var(--forest)}
.to-top .icon{width:1.3rem;height:1.3rem;transform:rotate(-90deg);transition:transform .4s var(--ease)}
.to-top:hover .icon{transform:rotate(-90deg) translateX(4px)}
.to-top__ring{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);pointer-events:none}
.to-top__bg,.to-top__fg{fill:none;stroke-width:2.5}
.to-top__bg{stroke:rgba(255,255,255,.25)}
.to-top__fg{stroke:#fff;stroke-linecap:round}
.menu-open .to-top,body.lb-open .to-top{opacity:0;visibility:hidden}

/* 13. Pied de page --------------------------------------------------------- */
.footer{position:relative;background:var(--forest-950);color:rgba(255,255,255,.74);padding-top:clamp(3.6rem,7vw,5.5rem);overflow:hidden;isolation:isolate}
.footer__grid{display:grid;grid-template-columns:1.4fr .8fr 1fr 1.1fr;gap:clamp(2rem,4vw,3.6rem);padding-bottom:clamp(2.6rem,5vw,4rem)}
.footer img.logo-f{height:124px;width:auto;margin-bottom:1.5rem}
.footer p{font-size:.95rem;line-height:1.7;max-width:36ch}
.footer h3{font-size:1.05rem;font-weight:700;color:#fff;margin-bottom:1.3rem;padding-bottom:.8rem;position:relative}
.footer h3::after{content:"";position:absolute;left:0;bottom:0;width:36px;height:3px;border-radius:2px;background:var(--green)}
.footer li+li{margin-top:.6rem}
.footer a{transition:color .25s}
.footer a:hover{color:var(--lime)}
.footer__list a{display:inline-block;font-size:.96rem}
.footer__contact li{display:flex;gap:.8rem;align-items:flex-start;font-size:.96rem}
.footer__contact .icon{color:var(--lime);margin-top:.28rem}
.footer__bar{position:relative;z-index:2;border-top:1px solid rgba(255,255,255,.12);padding-block:1.3rem;font-size:.86rem;background:#08171a}
.footer__bar-in{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.8rem 2rem}
.footer__bar nav{display:flex;gap:1.5rem}

/* 14. Animations ----------------------------------------------------------- */
.js [data-reveal]{opacity:0;transform:translate3d(0,40px,0);transition:opacity .9s var(--ease),transform 1s var(--ease);transition-delay:var(--d,0s)}
.js [data-reveal="left"]{transform:translate3d(-56px,0,0)}
.js [data-reveal="right"]{transform:translate3d(56px,0,0)}
.js [data-reveal="zoom"]{transform:scale(.94)}
.js [data-reveal="clip"]{opacity:1;transform:none}
.js [data-reveal="clip"] img{scale:1.25;transition:scale 1.8s var(--ease);transition-delay:var(--d,0s)}
.js [data-reveal].is-in{opacity:1;transform:none}
.js [data-reveal="clip"].is-in img{scale:1}
.js [data-split]{visibility:hidden}
.js [data-split].is-split{visibility:visible}
.word{display:inline-block;overflow:hidden;vertical-align:top;padding:.04em .06em .14em 0;margin:-.04em -.06em -.14em 0}
.word>span{display:inline-block;transform:translateY(112%);transition:transform .9s var(--ease);transition-delay:calc(var(--i,0) * 45ms + var(--d,0s))}
.is-in .word>span{transform:none}
.js-fail [data-reveal]{opacity:1!important;transform:none!important}
.js-fail [data-reveal="clip"] img{scale:1!important}
.js-fail [data-split]{visibility:visible!important}
.js-fail .word>span{transform:none!important}
body{animation:pg-in .3s ease both}
body.is-leaving{opacity:0;transition:opacity .28s ease}
@keyframes pg-in{from{opacity:0}to{opacity:1}}

/* 15. Responsive ----------------------------------------------------------- */
@media (max-width:1180px){
  :root{--hdr:72px}
  .topbar{display:none}
  .nav{display:none}
  .burger{display:inline-flex}
  .dd{display:none}
  .features{grid-template-columns:repeat(2,1fr)}
  .footer__grid{grid-template-columns:1fr 1fr}
  .hf{grid-template-columns:repeat(2,1fr)}
  .nav-wrap{height:72px}
  .brand img{height:34px}
}
@media (max-width:980px){
  .hero__inner{padding-bottom:9rem}
  .about,.process,.etude,.split,.contact,.cta__in,.zig__row{grid-template-columns:1fr}
  .zig__row:nth-child(even) .zig__media{order:0}
  .about__media{max-width:560px;margin-inline:auto;width:100%}
  .process__head{position:static}
  .infocard{position:static}
  .services{grid-template-columns:repeat(2,1fr)}
  .gt{grid-template-columns:repeat(2,1fr)}
  .gal{columns:2 220px}
  .values{grid-template-columns:repeat(2,1fr)}
  .sec-head--row{grid-template-columns:1fr}
  .etude__imgs{height:clamp(360px,80vw,540px)}
  .counters{grid-template-columns:1fr;gap:1.6rem}
  .counter{justify-content:flex-start}
  .counter+.counter{border-left:0;border-top:1px solid rgba(255,255,255,.16);padding-top:1.6rem}
}
@media (max-width:640px){
  body{font-size:1rem}
  .services,.features,.features--3,.svc-nav,.values,.hf{grid-template-columns:1fr}
  .hf-wrap{margin-top:-4rem}
  .form__row{grid-template-columns:1fr}
  .footer__grid{grid-template-columns:1fr}
  .footer__bar-in{flex-direction:column}
  .gal{columns:2 150px;column-gap:.6rem}
  .gal__item{margin-bottom:.6rem}
  .gal--plans{columns:2 140px}
  .gt{gap:.6rem}
  .svc-nav a.prev,.svc-nav a.next{padding:1.4rem 1.4rem 1.4rem 3.6rem;text-align:left}
  .svc-nav a.next{padding:1.4rem 3.6rem 1.4rem 1.4rem;text-align:right}
  .svc-nav a.prev .icon{right:auto;left:1.2rem;transform:rotate(180deg)}
  .svc-nav a.next .icon{left:auto;right:1.2rem}
  .legal dl{grid-template-columns:1fr;gap:.2rem}
  .legal dd{margin-bottom:.8rem}
  .lb__stage{padding:0 .5rem}
  .lb__img{max-height:calc(100svh - 13rem)}
  .lb__btn{top:auto;bottom:-3.2rem;margin:0}
  .lb__prev{left:calc(50% - 64px)}.lb__next{right:calc(50% - 64px)}
  .to-top{width:48px;height:48px}
  .about__badge{width:72px;height:72px;right:4%}
}
@media (hover:none){
  .gal__cap,.gal__zoom{opacity:1;transform:none}
  .gal__item::after{opacity:1}
}

/* Mouvement réduit ---------------------------------------------------------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0s!important}
  .js [data-reveal]{opacity:1!important;transform:none!important}
  .js [data-reveal="clip"] img{scale:1!important}
  .js [data-split]{visibility:visible}
  .word>span{transform:none!important}
}
@media print{
  .site-header,.mnav,.progress,.cta,.to-top{display:none!important}
  body{background:#fff}
}


/* 16. Ajustements « jardin » des composants intérieurs ---------------------- */
.infocard{border-radius:var(--lf-sm);border-top:0}
.infocard h3{font-family:var(--head)}
.infocard .checklist .icon{background:var(--lime);color:var(--forest)}
.infocard .callbox i{background:rgba(255,255,255,.12);color:var(--lime)}
.feature{border-radius:var(--lf-sm);border-color:transparent;box-shadow:var(--shadow-sm)}
.feature:nth-child(even){border-radius:.5rem 1.7rem .5rem 1.7rem}
.feature .ico{border-radius:50%;background:var(--mint)}
.feature:hover{border-color:var(--leaf)}
.feature:hover .ico{background:var(--green);color:#fff}
.svc-nav a{border-radius:var(--lf-sm)}
.zig__media{border-radius:var(--lf)}
.zig__row:nth-child(even) .zig__media{border-radius:.7rem 3.2rem .7rem 3.2rem}
.zig__num{border-radius:50%;background:var(--sun);color:var(--ink);font-family:var(--head)}
.pills li{border-radius:999px;background:var(--mint);color:var(--green-600)}
.value{border-top-color:var(--lime)}
.value b{font-family:var(--head);color:var(--lime)}
.filters button{border-radius:999px}
.gal__item{border-radius:var(--lf-sm)}
.gal__item:nth-child(even){border-radius:.5rem 1.7rem .5rem 1.7rem}
.gal__zoom{border-radius:50%}
.form-card{border-radius:var(--lf);border-top:0}
.info{border-radius:var(--lf-sm)}
.info i{border-radius:50%}
.info b,.info a{font-family:var(--head)}
.map{border-radius:var(--lf-sm)}
.success .tick{border-radius:50%}
.sel__panel{border-radius:var(--r-lg);border-top:1px solid var(--line)}
.sel.is-up .sel__panel{border-bottom:1px solid var(--line)}
.sel__ico{border-radius:50%;background:var(--mint)}
.lb__btn,.lb__close{border-radius:50%}
.to-top{background:var(--green)}
.footer{overflow:visible;background:var(--forest-950)}
.footer::before{content:"";position:absolute;z-index:3;left:0;right:0;top:calc(-1 * clamp(34px,5.5vw,76px) + 1px);height:clamp(34px,5.5vw,76px);background:var(--forest-950);-webkit-mask:var(--hill) center/100% 100% no-repeat;mask:var(--hill) center/100% 100% no-repeat}
.footer h3{font-family:var(--head)}
.footer h3::after{background:var(--leaf)}
.footer a:hover,.footer__contact .icon{color:var(--lime)}
.footer__bar{background:transparent}
.split__body .h-md{margin-top:.8rem}
.nf .page-hero__shade{background:rgba(9,48,30,.8)}

/* 17. Responsive (mise en page « jardin ») --------------------------------- */
@media (max-width:1180px){
  :root{--hdr:90px}
  .site-header .nav-wrap{height:64px;padding-right:.6rem}
  .brand img{height:34px}
  .nav{display:none}
  .burger{display:inline-flex}
}
@media (max-width:980px){
  .hero__inner{grid-template-columns:minmax(0,1fr);gap:2rem}
  .path{grid-template-columns:1fr 1fr;row-gap:2.4rem}
  .path::before{display:none}
  .mosaic{grid-template-columns:repeat(2,1fr);grid-auto-rows:clamp(140px,34vw,240px)}
  .plans figure:nth-child(2){margin-top:2rem}
}
@media (max-width:640px){
  .path{grid-template-columns:1fr}
  .path__step{grid-template-columns:auto 1fr;column-gap:1.1rem}
  .path__step b{grid-row:1/3;width:60px;height:60px;font-size:1.4rem}
  .path__step h3{margin-top:.2rem}
  .about__badge{width:78px;height:78px}
  .cta__actions{width:100%}
}

/* Pied de page : signature */
.footer__bar-in{align-items:center}
.made{color:rgba(255,255,255,.74)}
.made a{color:#fff;font-weight:800;border-bottom:1px solid var(--leaf)}
.made a:hover{color:var(--lime)}
.heart{color:#ff6b6b;display:inline-block;animation:beat 1.6s ease-in-out infinite}
@keyframes beat{0%,100%{transform:scale(1)}15%{transform:scale(1.25)}30%{transform:scale(1)}45%{transform:scale(1.18)}60%{transform:scale(1)}}
.footer__bar nav{flex-wrap:wrap;gap:.5rem 1.5rem}
@media (max-width:640px){.footer__bar{padding-bottom:5rem}.footer__bar-in{align-items:flex-start}}

/* Pages de service : introduction mieux remplie */
.section--intro{padding-block:clamp(2.6rem,5vw,4.5rem) clamp(3.4rem,6vw,5.5rem)}
.split{align-items:start}
.split__media{display:grid;grid-template-columns:1.25fr 1fr;gap:1rem;margin-top:.6rem}
.split__media{grid-auto-rows:clamp(190px,23vw,300px)}
.split__media .gal__item{margin:0;box-shadow:var(--shadow-sm)}
.split__media .gal__item:first-child{border-radius:var(--lf)}
.split__media .gal__item:last-child{border-radius:.7rem 3.2rem .7rem 3.2rem}
.split__media .gal__item img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media (max-width:640px){.split__media{grid-template-columns:1fr 1fr;gap:.6rem;grid-auto-rows:42vw}}

/* Textes d'introduction : une seule ligne quand la place le permet, sinon lignes équilibrées (pas de mot orphelin) */
.lead,.prose p,.svc__txt,.path__step p,.feature p{text-wrap:pretty}
.page-hero .lead,.hero .lead{max-width:none;text-wrap:balance}
.hero .lead{max-width:62ch}

/* Raccord colline : la vague au-dessus du bandeau de contact reprend la couleur de la section précédente */
.section--mint + .cta::before,.section--paper + .cta::before{background:var(--mint)}
.section--white + .cta::before{background:var(--white)}
.section--dark + .cta::before{background:var(--forest)}

/* WhatsApp */
.wa{position:fixed;right:clamp(1rem,2.5vw,2rem);bottom:clamp(1rem,2.5vw,2rem);z-index:90;display:inline-flex;align-items:center;height:58px;min-width:58px;padding:0 17px;border-radius:999px;background:#128c4b;color:#fff;font-weight:800;font-size:.95rem;box-shadow:0 14px 30px -10px rgba(7,70,37,.65);transition:background .3s,transform .35s var(--ease),opacity .3s,visibility .3s}
.wa .icon{width:1.5rem;height:1.5rem;flex:none}
.wa span{max-width:0;overflow:hidden;white-space:nowrap;opacity:0;transition:max-width .45s var(--ease),opacity .3s,margin .45s var(--ease)}
.wa:hover,.wa:focus-visible{background:#0b6e3a;transform:translateY(-2px)}
.wa:hover span,.wa:focus-visible span{max-width:8rem;opacity:1;margin-left:.6rem}
.wa::after{content:"";position:absolute;inset:0;border-radius:inherit;border:2px solid #25d366;opacity:0;animation:wa-ring 2.8s ease-out infinite;pointer-events:none}
@keyframes wa-ring{0%{opacity:.7;transform:scale(1)}70%,100%{opacity:0;transform:scale(1.35)}}
.to-top{bottom:calc(clamp(1rem,2.5vw,2rem) + 70px)}
.menu-open .wa,body.lb-open .wa{opacity:0;visibility:hidden}
.btn--wa{--bg:#128c4b;--fg:#fff;--bd:#128c4b;--hover:#0b6e3a}
.btn--wa .icon{width:1.2em;height:1.2em}
.btn--wa:hover .icon{transform:none}
.mnav__actions .btn--wa{grid-column:1/-1}
.info--wa i{background:#128c4b}
@media (max-width:640px){.wa{height:52px;min-width:52px;padding:0 14px}.to-top{bottom:calc(1rem + 62px)}}
@media print{.wa{display:none!important}}

/* Hero : l'arbre du logo (sans fond) et de vraies feuilles qui tombent */
.hero__emblem{position:relative;justify-self:end;width:min(100%,340px);display:grid;place-items:center;--k:1}
.hero__tree{width:100%;height:auto;overflow:visible;filter:drop-shadow(0 10px 22px rgba(4,26,16,.6))}
.hero__tree,.leaves{transform-origin:50% 100%;animation:tree-sway 8s ease-in-out infinite alternate}
.hero__tree .tr{fill:#fbf8f0}
.hero__tree .lv path{fill:var(--lime)}
@keyframes tree-sway{from{rotate:-1deg}to{rotate:1deg}}
/* Une feuille se détache : elle disparaît du feuillage, tombe lentement, puis une nouvelle feuille repousse à sa place */
.hero__tree .lv .cy{transform-box:fill-box;transform-origin:center;animation:leaf-grow var(--t) ease-out var(--d) infinite}
@keyframes leaf-grow{0%,17%{opacity:0;transform:scale(.1)}27%,100%{opacity:1;transform:scale(1)}}
.leaves{position:absolute;inset:0;pointer-events:none;perspective:700px}
.leaves i{position:absolute;opacity:0;animation:leaf-drop var(--t) linear var(--d) infinite}
.leaves svg{display:block;width:100%;height:100%;overflow:visible;animation:leaf-tumble var(--t) linear var(--d) infinite}
.leaves path{fill:var(--lime)}
@keyframes leaf-drop{
  0%{transform:translate(0,0);opacity:1;animation-timing-function:ease-in}
  4%{transform:translate(calc(var(--dx) * .08),calc(var(--dy) * var(--k) * .03));opacity:1;animation-timing-function:ease-in-out}
  16%{transform:translate(calc(var(--dx) * .8),calc(var(--dy) * var(--k) * .24));animation-timing-function:ease-in-out}
  29%{transform:translate(calc(var(--dx) * -.25),calc(var(--dy) * var(--k) * .5));animation-timing-function:ease-in-out}
  42%{transform:translate(calc(var(--dx) * .7),calc(var(--dy) * var(--k) * .77));opacity:1;animation-timing-function:ease-in-out}
  55%{transform:translate(calc(var(--dx) * .1),calc(var(--dy) * var(--k)));opacity:0}
  100%{transform:translate(calc(var(--dx) * .1),calc(var(--dy) * var(--k)));opacity:0}
}
@keyframes leaf-tumble{
  0%,3%{transform:rotateZ(0deg) rotateX(0deg) rotateY(0deg)}
  55%{transform:rotateZ(var(--rz)) rotateX(var(--rx)) rotateY(40deg)}
  55.01%,100%{transform:rotateZ(0deg) rotateX(0deg) rotateY(0deg)}
}
@media (max-width:980px){.hero__emblem{justify-self:center;width:min(56vw,210px);--k:.55}}
@media (prefers-reduced-motion:reduce){.leaves{display:none}.hero__tree,.hero__tree .lv .cy{animation:none}}

/* En-tête avec le logo large (logo.png) : tout tient sur une ligne */
.brand img{height:40px}
.site-header.is-solid .brand img{height:36px}
.nav{gap:1rem}
.nav__link,.nav__tel,.nav__cta{white-space:nowrap}
.nav__link{padding:.55rem .65rem;font-size:.93rem}
@media (max-width:1400px){.nav__tel{font-size:0;gap:0}}
@media (max-width:1280px){
  :root{--hdr:90px}
  .site-header .nav-wrap{height:64px;padding-right:.6rem}
  .brand img,.site-header.is-solid .brand img{height:34px}
  .nav{display:none}
  .burger{display:inline-flex}
}

/* Écran d'ouverture : le logo se construit (tronc, feuilles une à une, puis le nom) — environ 2,5 s */
.intro-screen{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:var(--paper);cursor:pointer;animation:intro-out .5s cubic-bezier(.7,0,.2,1) 2.05s forwards}
.intro-screen::after{content:"";position:absolute;left:0;right:0;top:calc(100% - 1px);height:clamp(38px,6.5vw,90px);background:var(--paper);-webkit-mask:var(--hill) center/100% 100% no-repeat;mask:var(--hill) center/100% 100% no-repeat;transform:scaleY(-1)}
@keyframes intro-out{to{transform:translateY(calc(-100% - 100px));visibility:hidden}}
.intro-logo{--z:2.3;position:relative;width:min(84vw,720px);aspect-ratio:1500/292;transform-origin:48.19% 50%;animation:intro-zoom .55s var(--ease) 1.6s both}
@keyframes intro-zoom{from{transform:translateX(1.81%) scale(var(--z))}to{transform:none}}
.intro-words{position:absolute;inset:0;width:100%;height:100%;opacity:0;animation:intro-fade .4s ease 1.7s forwards}
@keyframes intro-fade{to{opacity:1}}
.intro-tree{position:absolute;left:39.484%;top:.537%;width:17.419%;height:98.9%;overflow:visible}
.intro-tree .tr{fill:#48372f;transform-box:fill-box;transform-origin:50% 100%;animation:intro-trunk .45s var(--ease) .05s both}
@keyframes intro-trunk{from{transform:scaleY(0);opacity:0}to{transform:none;opacity:1}}
.intro-tree .lv path{fill:#00844a;transform-box:fill-box;transform-origin:center;animation:intro-leaf .3s var(--ease) both;animation-delay:calc(.35s + var(--n) * .042s)}
@keyframes intro-leaf{0%{opacity:0;transform:scale(0) rotate(-50deg)}65%{opacity:1;transform:scale(1.2) rotate(8deg)}100%{opacity:1;transform:none}}
html.intro{overflow:hidden}
.no-intro .intro-screen{display:none}
.intro-skip .intro-screen{animation:none;opacity:0;pointer-events:none;transition:opacity .3s}
@media (max-width:640px){.intro-logo{--z:3.3}}
@media (prefers-reduced-motion:reduce){.intro-screen{display:none}}
@media print{.intro-screen{display:none!important}}
