:root{
  --forest:#344039; --forest-soft:#46544c; --sage:#7E8069;
  --sand:#CEC5A8; --sand-soft:#e0d9c4; --cream:#F5F3E9; --cream-warm:#efebdd;
  --brass:#b2945c; --brass-soft:#ceb584;
  --font-display:"Against","Italiana","Cormorant Garamond",serif;
  --font-serif:"TT Ricordi Allegria","Cormorant Garamond",serif;
  --font-sans:"Inter Tight","Inter",ui-sans-serif,system-ui,sans-serif;
  --bar-h:0px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--cream);color:var(--forest);font-family:var(--font-sans);font-weight:300;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;line-height:1.6;padding-top:var(--bar-h);transition:padding-top .3s}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
::selection{background:var(--forest);color:var(--cream)}
.display{font-family:var(--font-display);font-weight:400;letter-spacing:-.01em;line-height:1.02}
.it{font-family:var(--font-serif);font-style:italic;font-weight:400}
.eyebrow{font-size:.72rem;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--sage)}
.rule{height:1px;background:linear-gradient(to right,transparent,var(--brass) 20%,var(--brass-soft) 50%,var(--brass) 80%,transparent)}
.wrap{max-width:1300px;margin:0 auto}
.wrap-lg{max-width:1400px;margin:0 auto}
section{padding:96px 24px}
@media(min-width:768px){section{padding:150px 48px}}
.center{text-align:center}
.reveal{opacity:0;transform:translateY(14px);transition:opacity .9s cubic-bezier(.22,.61,.36,1),transform .9s cubic-bezier(.22,.61,.36,1)}
.reveal.in{opacity:1;transform:none}
.bg-warm{background:var(--cream-warm)}
.bg-forest{background:var(--forest);color:var(--cream)}
.bg-forest .eyebrow{color:var(--sand)}
.muted{color:var(--sage)}
/* BANDEAU PROMO */
.promo-bar{position:fixed;top:0;left:0;right:0;z-index:45;height:var(--bar-h);overflow:hidden;background:var(--forest);color:var(--cream);display:flex;align-items:center;justify-content:center;gap:6px 14px;flex-wrap:wrap;padding:6px 48px;text-align:center;font-size:.72rem;letter-spacing:.03em;transition:height .3s,padding .3s}
.promo-bar strong{font-weight:500;letter-spacing:.03em}
.promo-bar a{text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.promo-bar .close{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:0;color:var(--cream);font-size:1.2rem;line-height:1;cursor:pointer;padding:10px}
@media(max-width:600px){.promo-bar span{display:none}}
body.promo-hidden .promo-bar{display:none}
/* NAV */
header{position:fixed;top:var(--bar-h);right:0;left:0;z-index:40;transition:background .5s,backdrop-filter .5s,top .3s}
header.scrolled{background:rgba(245,243,233,.92);backdrop-filter:blur(10px)}
.navbar{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;max-width:1400px;margin:0 auto}
@media(min-width:768px){.navbar{padding:26px 48px}}
.brand{display:flex;align-items:center;gap:14px}
.brand img{height:60px;width:60px;display:block;border-radius:50%;transition:transform .5s}
.brand:hover img{transform:scale(1.05)}
.brand .name{font-family:var(--font-display);font-size:1.5rem;line-height:1}
.brand .name small{display:block;margin-top:6px;font-size:.58rem;letter-spacing:.28em;text-transform:uppercase;color:var(--sage);font-family:var(--font-sans)}
nav.links{display:none;gap:36px}
@media(min-width:768px){nav.links{display:flex}}
nav.links a{font-size:.72rem;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:rgba(52,64,57,.7);transition:color .3s}
nav.links a:hover,nav.links a.active{color:var(--forest)}
header:not(.scrolled) .brand .name,header:not(.scrolled) nav.links a,header:not(.scrolled) #burger span{color:var(--cream)}
header:not(.scrolled) .brand .name small{color:rgba(245,243,233,.75)}
header:not(.scrolled) nav.links a{color:rgba(245,243,233,.8)}
header:not(.scrolled) nav.links a:hover,header:not(.scrolled) nav.links a.active{color:var(--cream)}
header:not(.scrolled) #burger span{background:var(--cream)}
header:not(.scrolled) .brand .name{text-shadow:0 1px 18px rgba(52,64,57,.45)}
/* pages sans hero sombre : header toujours lisible, même avant le scroll */
header.light:not(.scrolled){background:rgba(245,243,233,.92);backdrop-filter:blur(10px)}
header.light:not(.scrolled) .brand .name,header.light:not(.scrolled) nav.links a,header.light:not(.scrolled) #burger span{color:var(--forest);text-shadow:none}
header.light:not(.scrolled) .brand .name small{color:var(--sage)}
header.light:not(.scrolled) nav.links a:hover,header.light:not(.scrolled) nav.links a.active{color:var(--forest)}
#burger{display:block;background:none;border:0;cursor:pointer;padding:6px}
@media(min-width:768px){#burger{display:none}}
#burger span{display:block;width:32px;height:1px;background:var(--forest);margin-top:8px}
#burger span:first-child{margin-top:0}
#drawer{position:fixed;inset:0;z-index:60;background:var(--cream);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;transform:translateY(-100%);transition:transform .6s cubic-bezier(.22,.61,.36,1)}
#drawer.open{transform:none}
#drawer a{font-family:var(--font-display);font-size:2.4rem;color:var(--forest)}
#drawer .close{position:absolute;top:24px;right:24px;background:none;border:0;font-size:2rem;color:var(--forest);cursor:pointer;line-height:1}
/* HERO */
.hero{position:relative;height:100svh;overflow:hidden;padding:0}
.hero .slides{position:absolute;inset:0}
.hero .slides img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.hero .veil{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(52,64,57,.45),rgba(52,64,57,.15),rgba(52,64,57,.65))}
.hero .inner{position:relative;z-index:10;height:100%;max-width:1400px;margin:0 auto;display:flex;flex-direction:column;justify-content:space-between;padding:128px 24px 64px}
@media(min-width:768px){.hero .inner{padding:160px 48px 96px}}
.hero h1{font-size:clamp(3.4rem,13vw,8.5rem);color:var(--cream);margin-top:32px;line-height:.95}
.hero p.lead{max-width:28rem;color:var(--brass-soft);font-weight:500;text-shadow:0 1px 12px rgba(30,26,16,.5)}
.hero .eyebrow{color:rgba(245,243,233,.8)}
.hero-actions{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end;justify-content:space-between}
/* BUTTONS */
.btn{display:inline-flex;align-items:center;justify-content:center;padding:16px 32px;font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;transition:all .5s;border:1px solid transparent;cursor:pointer;font-family:var(--font-sans)}
.btn-cream{background:var(--cream);color:var(--forest)}
.btn-cream:hover{background:var(--brass-soft)}
.btn-outline-cream{border-color:rgba(245,243,233,.55);color:var(--cream)}
.btn-outline-cream:hover{background:var(--cream);color:var(--forest)}
.btn-outline{border-color:var(--forest);color:var(--forest)}
.btn-outline:hover{background:var(--forest);color:var(--cream)}
/* GRID HELPERS */
.grid{display:grid;gap:48px}
@media(min-width:768px){.g2{grid-template-columns:1fr 1fr;gap:64px}.g-5-7{grid-template-columns:5fr 7fr;gap:64px}.g-7-5{grid-template-columns:7fr 5fr;gap:64px}}
.sec{font-size:clamp(2.8rem,7vw,5.5rem);margin-top:24px}
h3{font-family:var(--font-display);font-weight:400}
.lead{font-size:.98rem;line-height:1.85}
/* SERVICES */
.cards{display:grid;gap:40px;margin-top:80px}
@media(min-width:640px){.cards{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.cards{grid-template-columns:repeat(3,1fr)}}
.card figure{position:relative;aspect-ratio:4/5;overflow:hidden}
.card img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s ease-out}
.card:hover img{transform:scale(1.05)}
.card figure::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,transparent 55%,rgba(52,64,57,.6))}
.card .num{position:absolute;left:20px;top:16px;z-index:2;font-family:var(--font-display);font-size:1.6rem;color:rgba(245,243,233,.9)}
.card h3{font-size:1.7rem;margin-top:20px}
.card p{margin-top:10px;font-size:.9rem;color:var(--sage)}
.more{display:inline-flex;gap:8px;margin-top:14px;font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;color:var(--brass)}
/* LIGNE DE VIE (fond animé prestations) */
.lifeline{position:relative}
.lifeline-svg{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;overflow:visible}
.lifeline-path{fill:none;stroke:var(--brass);stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;opacity:.8}
.lifeline-arrow{fill:none;stroke:var(--brass);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:0;transform-box:fill-box;transform-origin:center;transition:opacity .8s ease}
.lifeline-arrow.in{opacity:.85}
.lifeline > section > .wrap{position:relative;z-index:2}
@media(max-width:767px){.lifeline-svg{display:none}}
@media(prefers-reduced-motion:reduce){.lifeline-path{clip-path:none !important}.lifeline-arrow{opacity:.85}}
/* PRESTATIONS (sections alternées) */
section[id]{scroll-margin-top:120px}
.service{align-items:center}
.service-num{font-size:2.6rem;color:var(--brass)}
.service-img{width:100%;aspect-ratio:4/5;object-fit:cover}
@media(min-width:768px){.service-img-contain{width:70%;aspect-ratio:auto;height:auto;object-fit:contain;margin:0 auto}}
.bullets{list-style:none;margin-top:32px}
.bullets li{display:flex;gap:12px;font-size:.95rem;margin-top:10px;color:rgba(52,64,57,.85)}
.bullets li::before{content:"·";color:var(--brass)}
/* DETAILS accordion */
.detail{border-top:1px solid rgba(52,64,57,.15)}
.detail button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:16px;background:none;border:0;padding:26px 0;cursor:pointer;text-align:left;color:var(--forest);font-family:var(--font-display);font-size:1.6rem}
.detail .body{max-height:0;overflow:hidden;transition:max-height .6s ease}
.detail .body inner,.detail .body .pad{display:block;padding-bottom:28px}
.detail li{list-style:none;display:flex;gap:12px;font-size:.95rem;margin-top:8px}
.detail li::before{content:"·";color:var(--brass)}
.detail .plus{font-family:var(--font-sans);font-size:1.1rem;color:var(--brass);transition:transform .4s}
.detail.open .plus{transform:rotate(45deg)}
/* MARQUEE */
.marquee-band{border-top:1px solid rgba(245,243,233,.2);border-bottom:1px solid rgba(245,243,233,.2);padding:40px 0;margin-top:64px}
.marquee-mask{overflow:hidden;-webkit-mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent)}
.marquee{display:flex;width:max-content;gap:160px;animation:mq 110s linear infinite}
.marquee:hover,.marquee:focus-within,.marquee.paused{animation-play-state:paused}
@keyframes mq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.marquee .item{text-align:center}
.marquee .item img{width:72px;height:72px;object-fit:cover;border-radius:50%;margin:0 auto 16px}
/* FILIGRANE DECORATIF */
.watermark{position:absolute;opacity:.06;pointer-events:none;user-select:none;z-index:0}
@media(max-width:767px){.watermark{display:none}}
.marquee .item span{font-family:var(--font-display);font-size:2rem;color:rgba(245,243,233,.88)}
/* PARTENAIRES */
.partner-card{display:grid;grid-template-columns:120px 1fr;gap:20px;align-items:flex-start;text-decoration:none;color:inherit}
.partner-card img{width:120px;height:120px;object-fit:cover;border-radius:50%;transition:transform .5s}
.partner-card:hover img{transform:scale(1.05)}
.partner-card:hover h3{color:var(--brass-soft)}
.partner-card h3{transition:color .3s}
.partner-card .tag{display:inline-block;margin-top:6px;padding:3px 10px;border:1px solid rgba(245,243,233,.35);border-radius:999px;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(245,243,233,.8)}
/* AVIS GOOGLE */
.reviews{display:grid;gap:32px;margin-top:56px}
@media(min-width:768px){.reviews{grid-template-columns:repeat(3,1fr)}}
.review-card{border:1px solid rgba(52,64,57,.15);padding:32px 28px}
.review-card .stars{color:var(--brass);letter-spacing:.15em;font-size:.9rem}
.review-card p.quote{margin-top:16px;font-size:.95rem;line-height:1.75;color:rgba(52,64,57,.85)}
.review-card p.author{margin-top:16px;font-size:.78rem;letter-spacing:.08em;color:var(--sage)}
/* COMMUNES */
.communes{display:grid;grid-template-columns:1fr 1fr;gap:24px;border-top:1px solid rgba(52,64,57,.15);border-bottom:1px solid rgba(52,64,57,.15);padding:40px 0;list-style:none}
.communes li{display:flex;gap:14px;align-items:baseline}
.communes li span.dot{color:var(--brass);font-family:var(--font-display)}
.communes li span.n{font-family:var(--font-display);font-size:1.6rem}
/* JOURNAL */
.journal{display:grid;gap:24px;margin-top:64px}
@media(min-width:768px){.journal{grid-template-columns:repeat(4,1fr);grid-auto-rows:200px}.journal a:first-child{grid-column:span 2;grid-row:span 2}}
.journal a{position:relative;overflow:hidden;display:block;min-height:200px}
.journal img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s ease}
.journal a:hover img{transform:scale(1.06)}
.journal figcaption{position:absolute;inset:auto 0 0 0;padding:16px;font-size:.8rem;color:var(--cream);background:linear-gradient(transparent,rgba(52,64,57,.75));opacity:0;transition:opacity .5s}
.journal a:hover figcaption{opacity:1}
/* CONTACT */
.tel-big{display:inline-flex;padding:28px 48px;border:1px solid rgba(245,243,233,.4);font-family:var(--font-display);font-size:clamp(2rem,6vw,3.4rem);color:var(--cream);margin-top:40px;transition:all .5s}
.tel-big:hover{background:var(--cream);color:var(--forest)}
iframe{width:100%;aspect-ratio:4/3;border:0;filter:grayscale(20%)}
/* FOOTER */
footer{background:var(--forest);color:var(--cream);padding:80px 24px}
@media(min-width:768px){footer{padding:96px 48px}}
.fgrid{display:grid;gap:48px}
@media(min-width:768px){.fgrid{grid-template-columns:4fr 3fr 3fr 2fr;gap:64px}}
footer a:hover{color:var(--brass-soft)}
footer .eyebrow{color:rgba(245,243,233,.6)}
.fbottom{display:flex;flex-direction:column;gap:12px;margin-top:32px;font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:rgba(245,243,233,.5)}
@media(min-width:768px){.fbottom{flex-direction:row;justify-content:space-between}}
/* CALL FAB */
.fab{position:fixed;right:24px;bottom:24px;z-index:50;width:56px;height:56px;border-radius:999px;background:var(--forest);color:var(--cream);display:flex;align-items:center;justify-content:center;box-shadow:0 12px 30px rgba(52,64,57,.35);transition:transform .5s,background .5s}
.fab:hover{transform:scale(1.06);background:var(--forest-soft)}
@media(min-width:768px){.fab{right:32px;bottom:32px;width:64px;height:64px}}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}.marquee{animation:none}}
