/* Feuille de style de La Maison du Bien-être (extraite de index.html pour une CSP sans 'unsafe-inline'). */
/* Polices auto-hébergées (licence SIL OFL) : aucune requête vers Google */
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:400 500;font-display:swap;src:url(fonts/cormorant-garamond-italique.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400 600;font-display:swap;src:url(fonts/cormorant-garamond.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Jost';font-style:normal;font-weight:300 500;font-display:swap;src:url(fonts/jost.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Pinyon Script';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/pinyon-script.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
:root{
  --cream:#FBF6F0;
  --sand:#EFE3D6;
  --sand-2:#E4D3C2;
  --terra:#B27B5E;
  --terra-deep:#9A6149;
  --cocoa:#4A3528;
  --cocoa-soft:#6E5848;
  --sage:#909C81;
  --white:#ffffff;
  --maxw:1180px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;background:var(--cream)}
body{
  font-family:'Jost',sans-serif;
  color:var(--cocoa);
  background:transparent;
  font-weight:300;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}

/* ---------- Animated background (sits behind content only, never over text) ---------- */
.bg-orbs{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.bg-orbs span{position:absolute;border-radius:50%;filter:blur(50px);opacity:.75;will-change:transform;mix-blend-mode:multiply}
.bg-orbs span:nth-child(1){width:62vmax;height:62vmax;left:-18vmax;top:-22vmax;background:radial-gradient(circle,var(--terra),transparent 70%);opacity:.85;animation:orb1 14s ease-in-out infinite}
.bg-orbs span:nth-child(2){width:54vmax;height:54vmax;right:-16vmax;top:4vh;background:radial-gradient(circle,var(--terra-deep),transparent 70%);opacity:.6;animation:orb2 17s ease-in-out infinite}
.bg-orbs span:nth-child(3){width:58vmax;height:58vmax;left:14vw;bottom:-26vmax;background:radial-gradient(circle,var(--terra-deep),transparent 70%);opacity:.8;animation:orb3 15s ease-in-out infinite}
.bg-orbs span:nth-child(4){width:44vmax;height:44vmax;left:38vw;top:30vh;background:radial-gradient(circle,var(--terra),transparent 70%);opacity:.7;animation:orb4 19s ease-in-out infinite}
@keyframes orb1{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(16vw,18vh) scale(1.3)}}
@keyframes orb2{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-18vw,14vh) scale(.8)}}
@keyframes orb3{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(14vw,-16vh) scale(1.25)}}
@keyframes orb4{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-12vw,-14vh) scale(1.2)}}

@media(prefers-reduced-motion:reduce){.bg-orbs span{animation:none!important}}
h1,h2,h3{font-family:'Cormorant Garamond',serif;font-weight:500;line-height:1.1;color:var(--cocoa)}
.script{font-family:'Pinyon Script',cursive;font-weight:400}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
.eyebrow{
  font-size:.72rem;letter-spacing:.34em;text-transform:uppercase;
  color:var(--terra-deep);font-weight:400;display:inline-block;
}

/* ---------- Botanical sprig (signature) ---------- */
.sprig{display:block;margin:0 auto;color:var(--terra)}
.divider{display:flex;align-items:center;justify-content:center;gap:18px;margin:0 auto;max-width:340px;color:var(--terra)}
.divider .line{flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--sand-2),transparent)}

/* ---------- Header / Nav ---------- */
header{
  position:sticky;top:0;z-index:50;
  border-bottom:1px solid rgba(178,123,94,.16);
}
header::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:rgba(251,246,240,.86);
  backdrop-filter:blur(10px);
}
.nav{display:flex;align-items:center;justify-content:space-between;padding:16px 28px;max-width:var(--maxw);margin:0 auto}
.brand{display:flex;flex-direction:column;line-height:1;cursor:pointer}
.brand .b1{font-family:'Cormorant Garamond',serif;font-size:1.18rem;letter-spacing:.22em;text-transform:uppercase;color:var(--cocoa)}
.brand .b2{font-family:'Pinyon Script',cursive;font-size:1.4rem;color:var(--terra-deep);margin-top:-2px;align-self:center;transform:translateX(-.11em)}
.menu{display:flex;gap:34px;align-items:center}
.menu a{
  font-size:.82rem;letter-spacing:.13em;text-transform:uppercase;color:var(--cocoa-soft);
  position:relative;padding:4px 0;transition:color .25s;cursor:pointer;
}
.menu a:not(.btn)::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:var(--terra);
  transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.22,.61,.36,1)}
.menu a:hover{color:var(--terra-deep)}
.menu a:not(.btn):hover::after{transform:scaleX(1)}
.menu a.active{color:var(--terra-deep)}
.menu a.active::after{transform:scaleX(1)}
.btn{
  display:inline-block;font-family:'Jost',sans-serif;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;
  background:var(--terra-deep);color:var(--white);padding:13px 26px;border-radius:2px;border:1px solid var(--terra-deep);
  transition:transform .35s cubic-bezier(.22,.61,.36,1),background .28s,border-color .28s,box-shadow .35s;
  cursor:pointer;font-weight:400;will-change:transform;
}
.btn:hover{background:#7F4D38;border-color:#7F4D38;transform:translateY(-3px);box-shadow:0 14px 26px -14px rgba(74,53,40,.45)}
.btn:active{transform:translateY(-1px) scale(.98)}
/* Zone de survol élargie de 8 px : le bouton se soulève de 3 px au survol ; sans cette marge, un curseur posé près d'un bord le fait clignoter */
.btn{position:relative}
.btn::after{content:"";position:absolute;inset:-8px}
/* Les boutons du hero sortent du contexte 3D du titre : la détection du survol y est instable */
.hero .actions{transform-style:flat}
.btn.ghost{background:transparent;color:var(--terra-deep)}
.btn.ghost:hover{background:var(--terra-deep);color:#fff}
.burger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:8px}
.burger span{width:24px;height:1.5px;background:var(--cocoa);transition:transform .3s,opacity .3s}
.burger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

/* ---------- Pages ---------- */
.page{display:none;animation:fade .7s cubic-bezier(.22,.61,.36,1)}
.page.show{display:block}
@keyframes fade{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* ---------- Hero ---------- */
.hero{position:relative;padding:90px 0 80px;text-align:center;overflow:hidden;perspective:1000px}
.hero .inner{transform-style:preserve-3d}
.hero .sprig{--z:46px}
.home-title{will-change:transform;backface-visibility:hidden;-webkit-font-smoothing:subpixel-antialiased;cursor:default;user-select:none}
.hero .b1,.hero .b2{--z:22px}
.hero p.lede{--z:10px}
.hero::before{content:"";position:absolute;inset:0;background:
  radial-gradient(ellipse at 50% -10%,rgba(178,123,94,.12),transparent 60%);
  animation:glow 6s ease-in-out infinite;}
@keyframes glow{0%,100%{opacity:.7}50%{opacity:1}}
.hero .inner{position:relative;max-width:760px;margin:0 auto;padding:0 28px}
/* voile crème derrière le texte, hors de la scène 3D du titre : garantit le contraste quand une tache animée passe dessous */
.hero::after{content:"";position:absolute;z-index:-1;left:50%;top:3%;bottom:0;width:min(1000px,100%);transform:translateX(-50%);pointer-events:none;background:radial-gradient(ellipse closest-side at center,rgba(251,246,240,.82) 0%,rgba(251,246,240,.74) 45%,rgba(251,246,240,.35) 74%,rgba(251,246,240,0) 100%)}
.hero .b1{font-family:'Cormorant Garamond',serif;font-size:clamp(2.7rem,8vw,5rem);letter-spacing:.14em;text-transform:uppercase;font-weight:500;
  text-shadow:0 0 1px #fff,0 0 14px rgba(255,255,255,.85),0 0 28px rgba(255,255,255,.5)}
.hero .b2{font-family:'Pinyon Script',cursive;font-size:clamp(2.4rem,7vw,4rem);color:var(--terra-deep);margin-top:-6px;
  text-shadow:0 0 1px #fff,0 0 14px rgba(255,255,255,.9),0 0 28px rgba(255,255,255,.55)}
.hero p.lede{font-size:1.08rem;color:var(--cocoa);text-shadow:0 0 10px rgba(251,246,240,.95),0 0 22px rgba(251,246,240,.9),0 0 40px rgba(251,246,240,.7);max-width:520px;margin:22px auto 0;font-weight:300}
.hero .actions{margin-top:38px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.hero .eyebrow{color:#5E3A2B}
.hero .loc{margin-top:30px;font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:var(--cocoa);text-shadow:0 0 10px rgba(251,246,240,.95),0 0 22px rgba(251,246,240,.9),0 0 40px rgba(251,246,240,.7)}
.hero .hero-h1{margin:0;padding:0;font-weight:inherit;line-height:1}
.hero .hero-h1 .b1,.hero .hero-h1 .b2{display:block}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* hero entrance choreography */
.hero .sprig{stroke-dasharray:120;stroke-dashoffset:120;animation:draw 1.4s ease forwards .1s}
.hero .sprig circle{opacity:1;animation:dot .5s ease forwards 1.3s}
.hero .inner>*{opacity:1;transform:translateY(16px);animation:rise .8s cubic-bezier(.22,.61,.36,1) forwards}
@keyframes rise{from{transform:translateY(16px) translateZ(0)}to{transform:translateY(0) translateZ(var(--z,0px))}}
.hero .inner>.b1{animation-delay:.35s}
.hero .inner>.b2{animation-delay:.48s}
.hero .inner>.lede{animation-delay:.6s}
.hero .inner>.actions{animation-delay:.74s}
.hero .inner>.loc{animation-delay:.88s}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes dot{to{opacity:1}}

/* ---------- Sections ---------- */
section{padding:78px 0}
.section-head{text-align:center;max-width:600px;margin:0 auto 52px}
.section-head h2{font-size:clamp(2rem,5vw,3rem);margin:14px 0 0}
.section-head p{margin-top:16px;color:var(--cocoa-soft)}
.bg-sand{background:var(--sand)}
.bg-white{background:var(--white)}

/* image placeholder */
.ph{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--sand-2),var(--terra) 130%);border-radius:3px}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.22,.61,.36,1),filter .6s}
.ph:hover img{transform:scale(1.07)}
.ph .lbl{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.85);text-align:center;padding:20px}

.ph.portrait .lbl{align-items:flex-end;padding-bottom:16px;background:linear-gradient(180deg,transparent 55%,rgba(74,53,40,.55))}

/* feature cards */
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;perspective:1200px}
.card{background:var(--white);border:1px solid rgba(178,123,94,.16);border-radius:3px;overflow:hidden;
  transition:transform .35s cubic-bezier(.22,.61,.36,1),box-shadow .4s;will-change:transform}
.card:hover{box-shadow:0 22px 44px -20px rgba(74,53,40,.45)}
.card .ph{height:200px;border-radius:0}
.card .body{transform:translateZ(18px)}
.card .body{padding:24px 22px 28px}
.card h3{font-size:1.5rem;margin-bottom:8px}
.card p{font-size:.92rem;color:var(--cocoa-soft)}

/* split */
.split{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.split .ph{height:440px}
.split h2{font-size:clamp(2rem,4.5vw,2.9rem);margin:14px 0 18px}
.split p{color:var(--cocoa-soft);margin-bottom:16px}
.feat-list{list-style:none;margin:18px 0 26px}
.feat-list li{padding-left:26px;position:relative;margin-bottom:10px;color:var(--cocoa-soft)}
.feat-list li::before{content:"";position:absolute;left:0;top:11px;width:8px;height:8px;border:1px solid var(--terra);border-radius:50%}

/* quotes */
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;perspective:1200px}
.quote{background:var(--white);border:1px solid rgba(178,123,94,.16);padding:30px 28px;border-radius:3px;
  transition:transform .35s cubic-bezier(.22,.61,.36,1),box-shadow .4s;will-change:transform}
.quote:hover{box-shadow:0 22px 44px -20px rgba(74,53,40,.35)}
.stars{color:var(--terra);letter-spacing:3px;font-size:.85rem;margin-bottom:14px}
.quote p{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1.22rem;color:var(--cocoa);line-height:1.5}
.quote .who{margin-top:16px;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--terra-deep)}

/* CTA band */
.cta-band{background:var(--terra-deep);color:#fff;text-align:center;padding:74px 28px}
.cta-band h2{color:#fff;font-size:clamp(2rem,5vw,3rem)}
.cta-band p{color:rgba(255,255,255,.9);max-width:480px;margin:14px auto 28px}
.cta-band .btn{background:#fff;color:var(--terra-deep);border-color:#fff}
.cta-band .btn:hover{background:var(--cream)}
.cta-band .sprig{color:rgba(255,255,255,.7);margin-bottom:18px}

/* ---------- Soins / tarifs ---------- */
.menu-block{max-width:760px;margin:0 auto 30px;background:var(--white);border:1px solid rgba(178,123,94,.16);border-radius:3px;overflow:hidden}
.menu-block .head{padding:22px 30px;background:var(--sand);display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.menu-block .head h2{font-size:1.7rem}
.menu-block .head span{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:#84503A}
.row{display:flex;justify-content:space-between;gap:20px;padding:16px 30px;border-top:1px dashed rgba(178,123,94,.25);align-items:baseline}
.row:first-of-type{border-top:none}
.row .name{font-size:1rem}
.row .name small{display:block;color:var(--cocoa-soft);font-size:.82rem;margin-top:2px}
.row .price{font-family:'Cormorant Garamond',serif;font-size:1.35rem;color:var(--terra-deep);white-space:nowrap}
.menu-block .sub{padding:13px 30px 5px;font-size:.68rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--terra-deep);border-top:1px dashed rgba(178,123,94,.25);margin-top:2px}
.menu-block .sub:first-child{border-top:none}
.note{max-width:760px;margin:8px auto 0;text-align:center;font-size:.8rem;color:var(--cocoa-soft);font-style:italic}

/* ---------- Carrousel vertical (Soins & Tarifs) ---------- */
.carousel-v{position:relative;max-width:760px;margin:0 auto 18px;display:flex;align-items:center;gap:14px;perspective:1400px}
.cv-track{flex:1;height:560px;overflow-y:auto;overflow-x:hidden;scroll-snap-type:y mandatory;
  scrollbar-width:none;border-radius:3px}
.cv-track::-webkit-scrollbar{display:none}
.cv-slide{height:560px;scroll-snap-align:start;scroll-snap-stop:always;display:flex;align-items:center;padding:4px 2px;overflow:hidden}
.cv-slide .menu-block{width:100%;margin:0;max-height:552px;overflow-y:auto;transform:scale(.94) rotateX(6deg);
  transform-origin:center top;transition:transform .5s cubic-bezier(.22,.61,.36,1);will-change:transform}
.cv-slide.active .menu-block{transform:scale(1) rotateX(0deg)}
.cv-nav{flex:0 0 auto;width:42px;height:42px;border-radius:50%;border:1px solid var(--terra);background:var(--white);
  color:var(--terra-deep);font-size:1.1rem;cursor:pointer;transition:.28s;display:flex;align-items:center;justify-content:center}
.cv-nav:hover{background:var(--terra-deep);color:#fff;transform:translateY(-2px)}
.cv-nav:disabled{opacity:.3;cursor:default;transform:none;background:var(--white);color:var(--terra-deep)}
.cv-dots{position:absolute;right:-28px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:0}
.cv-dots button{position:relative;width:24px;height:24px;padding:0;border:none;background:none;cursor:pointer}
.cv-dots button::before{content:"";position:absolute;inset:8px;border-radius:50%;border:1px solid var(--terra-deep);background:transparent;transition:.3s}
.cv-dots button:focus-visible{outline:2px solid var(--terra-deep);outline-offset:0}
.cv-dots button.active::before{background:var(--terra-deep);transform:scale(1.35)}
@media(max-width:720px){
  .carousel-v{flex-wrap:wrap;justify-content:center;row-gap:14px}
  .cv-track{flex:1 1 100%;order:1}
  .cv-prev{order:2}
  .cv-next{order:3}
  .cv-dots{position:static;flex-direction:row;order:4;margin-top:0;transform:none}
}

/* ---------- Galerie ---------- */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.gallery .ph{height:300px}
.gallery .ph.tall{grid-row:span 2;height:auto}
.gallery .ph.wide{grid-column:span 2}

/* ---------- Contact ---------- */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:start}
.info-line{display:flex;gap:16px;align-items:flex-start;margin-bottom:26px;padding-bottom:26px;border-bottom:1px solid rgba(178,123,94,.16)}
.info-line .ic{flex:0 0 38px;height:38px;border:1px solid var(--terra);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--terra-deep);font-size:.9rem}
.info-line h2{font-size:1.4rem;margin-bottom:2px}
.info-line p,.info-line a{color:var(--cocoa-soft);font-size:.95rem}
.info-line a:hover{color:var(--terra-deep)}
.hours{list-style:none}
.hours li{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px dashed rgba(178,123,94,.22);font-size:.9rem;color:var(--cocoa-soft)}
.map{width:100%;height:340px;border:0;border-radius:3px;filter:saturate(.85)}

/* ---------- Footer ---------- */
footer{background:var(--cocoa);color:#E9DDD2;padding:60px 28px 30px;text-align:center}
footer .b1{font-family:'Cormorant Garamond',serif;font-size:1.3rem;letter-spacing:.22em;text-transform:uppercase}
footer .b2{font-family:'Pinyon Script',cursive;font-size:1.6rem;color:var(--terra);margin-top:-4px}
footer .fnav{display:flex;gap:24px;justify-content:center;flex-wrap:wrap;margin:24px 0}
footer .fnav a{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:#D8C7B8;cursor:pointer}
footer .fnav a:hover{color:#fff}
footer .small{font-size:.75rem;color:#C9B8A9;margin-top:18px;line-height:1.8}
footer .small a{color:#D8C7B8;text-decoration:underline}
footer .socials{display:flex;gap:18px;justify-content:center;margin-top:8px}
footer .socials a{width:36px;height:36px;border:1px solid rgba(255,255,255,.25);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8rem;color:#E9DDD2}
footer .socials a:hover{background:var(--terra-deep);border-color:#fff;color:#fff}

/* reveal */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s cubic-bezier(.22,.61,.36,1),transform .7s cubic-bezier(.22,.61,.36,1)}
.reveal.in{opacity:1;transform:none}

/* stagger children of revealed groups */
.cards .card,.quotes .quote,.gallery .ph{opacity:0;transform:translateY(16px);
  transition:opacity .6s cubic-bezier(.22,.61,.36,1),transform .35s cubic-bezier(.22,.61,.36,1)}
.reveal.in .cards .card,.reveal.in .quotes .quote,.reveal.in .gallery .ph{opacity:1;transform:none}

/* ---------- Responsive ---------- */
@media(max-width:860px){
  .menu{position:fixed;inset:0 0 0 auto;width:80%;max-width:320px;background:var(--cream);
    flex-direction:column;justify-content:center;gap:28px;transform:translateX(100%);transition:.35s;box-shadow:-12px 0 40px -20px rgba(0,0,0,.4);z-index:60}
  .menu{visibility:hidden}
  .menu.open{transform:none;visibility:visible}
  .menu .btn{margin-top:10px}
  .burger{display:flex;z-index:61}
  .cards{grid-template-columns:repeat(2,1fr)}
  .split{grid-template-columns:1fr;gap:34px}
  .split .ph{height:320px}
  .quotes{grid-template-columns:1fr}
  .contact-grid{grid-template-columns:1fr}
  .gallery{grid-template-columns:repeat(2,1fr)}
  .gallery .ph.wide{grid-column:span 2}
  section{padding:58px 0}
}
@media(max-width:540px){
  .cards{grid-template-columns:1fr}
  .gallery{grid-template-columns:1fr}
  .gallery .ph.wide,.gallery .ph.tall{grid-column:auto;grid-row:auto;height:280px}
  .menu-block .head{flex-direction:column;gap:4px}
}

/* ---------- Accessibilité ---------- */
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--cocoa);color:#fff;padding:12px 18px;border-radius:2px;font-size:.9rem;transition:top .2s}
.skip:focus{top:12px}
a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--terra-deep);outline-offset:3px}
footer a:focus-visible{outline-color:#fff}
h1:focus{outline:none}
button.burger{background:none;border:0;font:inherit}
.menu .btn,.menu .btn:hover{color:var(--white)}
.cv-track:focus-visible,.menu-block:focus-visible{outline-offset:-3px}

/* ---------- Carte Google Maps : chargée seulement après un clic ---------- */
.map-consent{min-height:340px;background:var(--sand);border-radius:3px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:14px;padding:28px}
.map-consent p{max-width:380px;color:var(--cocoa);font-size:.92rem}
.map-consent .map-link{color:#84503A;text-decoration:underline;font-size:.88rem}
button.btn{font-family:'Jost',sans-serif}

/* ---------- Pages légales ---------- */
.legal{color:var(--cocoa-soft)}
.legal h2{font-size:1.5rem;color:var(--cocoa);margin:28px 0 10px}
.legal p,.legal li{margin-bottom:10px}
.legal ul{padding-left:22px;margin-bottom:10px}
.legal a{color:var(--terra-deep);text-decoration:underline}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.reveal,.cards .card,.quotes .quote,.gallery .ph{opacity:1;transform:none}}
/* Sans JavaScript et à l'impression, rien ne reste caché en attendant une animation */
@media(scripting:none),print{.reveal,.cards .card,.quotes .quote,.gallery .ph{opacity:1!important;transform:none!important}}

/* Anciennes déclarations style="…" (retirées pour une CSP sans 'unsafe-inline') ; !important reproduit la priorité d'un style en ligne */
.u-hero-legal{padding:70px 0 40px!important}
.u-titre-legal{font-size:clamp(2.2rem,7vw,3.6rem)!important;margin-top:10px!important;line-height:1.7!important}
.u-pt20{padding-top:20px!important}
.u-pt10{padding-top:10px!important}
.u-mw760{max-width:760px!important}
.u-mb12{margin-bottom:12px!important}
.u-terra{color:var(--terra-deep)!important}
.u-obj-haut{object-position:50% 15%!important}
.u-centre-mt40{text-align:center!important;margin-top:40px!important}
.u-m0{margin:0!important}
.u-mt6{margin-top:6px!important}
.u-mt18{margin-top:18px!important}
.u-h240-mt16{height:240px!important;margin-top:16px!important}
.u-flex1{flex:1!important}
.u-bb0{border-bottom:none!important}
