:root{
  --bg:#FBF5EC; --surface:#FFFFFF;
  --tint:#F0E4D2; --tint-2:#F6EDDF;
  --primary:#C18A4E; --primary-deep:#9E6A35; --rose:#D8B07A;
  --plum:#4A3826; --ink:#5E4A38; --muted:#97836C;
  --line:#EADDC9;
  --font-head:'Cormorant Garamond', Georgia, serif;
  --font-body:'Mulish', -apple-system, system-ui, sans-serif;
  --round:22px;
  --blob:3px;
  --wrap:1200px;
  --shadow:0 24px 60px -28px rgba(74,57,82,.32);
  --shadow-sm:0 10px 30px -18px rgba(74,57,82,.34);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--font-body); font-size:17px; line-height:1.65;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
.wrap{max-width:var(--wrap); margin:0 auto; padding:0 clamp(20px,5vw,48px);}
h1,h2,h3{font-family:var(--font-head); color:var(--plum); font-weight:500; line-height:1.08; margin:0;}
p{margin:0;}
em{font-style:italic;}
a{color:inherit; text-decoration:none;}
img{max-width:100%;}

.eyebrow{
  display:inline-block; font-family:var(--font-body); font-weight:700;
  font-size:12.5px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--primary-deep); margin-bottom:18px;
}
.eyebrow--light{color:rgba(255,255,255,.85);}
.h2{font-size:clamp(32px,4.4vw,52px); letter-spacing:-.01em;}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5em;
  font-family:var(--font-body); font-weight:700; font-size:15px;
  padding:13px 24px; border-radius:999px; border:1.5px solid transparent;
  cursor:pointer; transition:transform .18s ease, box-shadow .25s ease, background .2s ease, color .2s ease;
  white-space:nowrap; line-height:1;
}
.btn:active{transform:translateY(1px);}
.btn--primary{background:var(--primary-deep); color:#fff; box-shadow:var(--shadow-sm);}
.btn--primary:hover{background:var(--plum); transform:translateY(-2px);}
.btn--ghost{background:transparent; color:var(--plum); border-color:var(--line);}
.btn--ghost:hover{border-color:var(--primary); color:var(--primary-deep); transform:translateY(-2px);}
.btn--light{background:#fff; color:var(--primary-deep);}
.btn--light:hover{transform:translateY(-2px); box-shadow:0 16px 40px -20px rgba(0,0,0,.35);}
.btn--lg{padding:16px 30px; font-size:16px;}
.btn--block{width:100%;}

/* ---------- nav ---------- */
.nav{position:sticky; top:0; z-index:40; background:rgba(250,246,249,.82); backdrop-filter:blur(14px); border-bottom:1px solid rgba(233,222,231,.7);}
.nav__inner{display:flex; align-items:center; justify-content:space-between; height:74px;}
.brand{display:inline-flex; align-items:center; gap:11px;}
.brand__logo{width:48px; height:48px; object-fit:contain; display:block;}
.brand__mark{width:30px; height:30px; border-radius:50%; background:radial-gradient(circle at 32% 30%, var(--rose), var(--primary) 60%, var(--primary-deep)); box-shadow:inset 0 0 0 4px rgba(255,255,255,.5);}
.brand__word{font-family:var(--font-head); font-size:23px; font-weight:600; color:var(--plum); letter-spacing:.01em;}
.brand__word em{font-style:italic; color:var(--primary); margin:0 1px;}
.nav__links{display:flex; align-items:center; gap:30px;}
.nav__links a{font-weight:600; font-size:15px; color:var(--ink); transition:color .2s;}
.nav__links a:hover{color:var(--primary-deep);}
.nav__links a.is-current{color:var(--primary-deep);}
.nav__cta{margin-left:6px;}
.burger{display:none; flex-direction:column; gap:5px; background:none; border:0; padding:8px; cursor:pointer;}
.burger span{width:24px; height:2px; background:var(--plum); border-radius:2px; transition:.25s;}
.burger.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.burger.is-open span:nth-child(2){opacity:0;}
.burger.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ---------- photo plein cadre (image-slot) ---------- */
.shot{
  position:relative; width:100%; overflow:hidden;
  border-radius:3px; background:var(--tint-2);
  box-shadow:0 34px 64px -36px rgba(74,57,82,.48);
}
.shot::after{ /* fin lisere interieur, le "detail" */
  content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none; z-index:2;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.22);
}
.shot image-slot{display:block; width:100%; height:100%;}
.shot__img{display:block; width:100%; height:100%; object-fit:cover; object-position:center;
  transition:transform .9s cubic-bezier(.22,.61,.36,1);}
.shot:hover .shot__img{transform:scale(1.04);}
.shot__img--stock{filter:saturate(.94) contrast(1.02);}
/* Site publié : une zone photo encore vide devient un panneau tonal épuré
   (ni texte ni icône d'instruction). En édition, le glisser-déposer reste normal. */
image-slot:not([data-editable])::part(empty){display:none !important;}
image-slot:not([data-editable])::part(ring){display:none !important;}
image-slot:not([data-editable])::part(frame){background:transparent !important;}

/* ---------- marks (formes simples) ---------- */
.mk{display:inline-block; width:1em; height:1em; vertical-align:middle;}
.mk--online{border-radius:50%; border:2px solid currentColor;}
.mk--chat{border-radius:50% 50% 50% 4px; background:currentColor;}
.mk--heart{width:.85em; height:.85em; background:currentColor; transform:rotate(45deg); border-radius:0 .3em .3em .3em;}
.mk--pulse{height:.18em; background:currentColor; border-radius:2px; align-self:center;}
.mk--leaf{border-radius:0 60% 0 60%; background:currentColor;}

/* ---------- hero ---------- */
.hero{position:relative; padding:clamp(48px,8vw,96px) 0 clamp(56px,8vw,104px);}
.hero__glow{position:absolute; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(60% 50% at 78% 18%, color-mix(in srgb, var(--rose) 36%, transparent), transparent 70%),
    radial-gradient(50% 45% at 12% 90%, color-mix(in srgb, var(--primary) 26%, transparent), transparent 70%);}
.hero__grid{position:relative; z-index:1; display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(30px,5vw,72px); align-items:center;}
.hero__title{font-size:clamp(42px,6.4vw,80px); letter-spacing:-.015em; margin-bottom:22px;}
.hero__title em{color:var(--primary); font-style:italic;}
.hero__lead{font-size:clamp(17px,1.7vw,20px); color:var(--ink); max-width:46ch; margin-bottom:32px;}
.hero__actions{display:flex; flex-wrap:wrap; gap:14px; margin-bottom:30px;}
.hero__chips{list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:10px 22px; color:var(--primary-deep); font-weight:600; font-size:14.5px;}
.hero__chips li{display:inline-flex; align-items:center; gap:9px;}
.hero__chips .mk{color:var(--primary);}
.hero__media{position:relative;}
.hero__media .shot{border-radius:3px;}
.floatcard{position:absolute; left:-14px; bottom:26px; background:#fff; border-radius:18px; padding:13px 18px; display:flex; align-items:center; gap:12px; box-shadow:var(--shadow-sm); border:1px solid var(--line);}
.floatcard__dot{width:10px; height:10px; border-radius:50%; background:#7bbf8e; box-shadow:0 0 0 4px rgba(123,191,142,.2);}
.floatcard strong{display:block; font-family:var(--font-head); font-size:18px; color:var(--plum); font-weight:600; line-height:1;}
.floatcard span{font-size:12.5px; color:var(--muted);}

/* ---------- promise ---------- */
.promise{padding:8px 0 10px;}
.promise__grid{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(18px,3vw,40px); background:var(--surface); border:1px solid var(--line); border-radius:var(--round); padding:clamp(26px,3.5vw,42px); box-shadow:var(--shadow-sm);}
.promise__item h3{font-size:23px; margin-bottom:8px;}
.promise__item p{font-size:15.5px; color:var(--muted);}

/* ---------- about ---------- */
.about{padding:clamp(64px,9vw,120px) 0;}
.about__grid{display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(34px,6vw,84px); align-items:center;}
.about__media{position:relative;}
.about__media .shot{border-radius:3px;}
.about__badge{position:absolute; right:-8px; top:24px; background:var(--primary-deep); color:#fff; font-size:12.5px; font-weight:700; letter-spacing:.04em; padding:9px 16px; border-radius:999px; box-shadow:var(--shadow-sm);}
.about__copy p{margin-bottom:18px; max-width:52ch;}
.about__copy .h2{margin-bottom:24px;}
.about__sign{font-family:var(--font-head); font-style:italic; font-size:32px; color:var(--primary); margin-top:6px !important;}

/* ---------- about : bandeau photo paysage + texte par-dessus ---------- */
.about-band{padding:clamp(48px,8vw,104px) 0;}
.about-band__frame{position:relative; overflow:hidden;}
.about-band__img{
  display:block; width:100%; height:clamp(480px,62vw,720px);
  object-fit:cover; object-position:60% 32%;
}
.about-band__frame::before{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(100deg,
    rgba(36,21,15,.88) 0%, rgba(36,21,15,.68) 30%,
    rgba(36,21,15,.20) 56%, rgba(36,21,15,0) 75%);
}
.about-band__panel{
  position:absolute; inset:0; z-index:2; display:flex; align-items:center;
}
.about-band__inner{
  width:100%; max-width:var(--wrap); margin:0 auto;
  padding:0 clamp(20px,5vw,48px);
  display:flex; flex-direction:column; align-items:flex-start; gap:15px;
}
.about-band__inner > *{max-width:min(560px,92%);}
.about-band__title{
  font-family:var(--font-head); color:#fff; line-height:1.06;
  font-size:clamp(28px,3.7vw,45px); letter-spacing:-.01em;
}
.about-band__title em{color:var(--rose); font-style:italic;}
.about-band__lead{
  color:rgba(255,255,255,.92); max-width:42ch;
  font-size:clamp(15px,1.55vw,18.5px); line-height:1.62;
}
.about-band__badge{
  display:inline-block; align-self:flex-start; background:rgba(255,255,255,.14); color:#fff;
  border:1px solid rgba(255,255,255,.34); backdrop-filter:blur(4px);
  font-size:12.5px; font-weight:700; letter-spacing:.04em; padding:8px 16px; border-radius:999px;
}
.txtlink--light{color:#fff;}
.txtlink--light:hover{color:var(--rose);}
@media (max-width:720px){
  .about-band__img{height:560px; object-position:66% 24%;}
  .about-band__frame::before{
    background:linear-gradient(180deg, rgba(36,21,15,.42) 0%, rgba(36,21,15,.58) 40%, rgba(36,21,15,.9) 100%);
  }
  .about-band__panel{align-items:flex-end;}
  .about-band__inner{padding-bottom:18px;}
}

/* ---------- section head ---------- */
.sec-head{max-width:680px; margin-bottom:clamp(36px,5vw,60px);}
.sec-head--center{margin-left:auto; margin-right:auto; text-align:center;}
.sec-head .h2{margin-bottom:16px;}
.sec-head__lead{color:var(--ink); font-size:18px;}

/* ---------- journey ---------- */
.journey{padding:clamp(56px,8vw,104px) 0; background:linear-gradient(180deg,var(--tint-2),var(--bg));}
.timeline{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:24px; position:relative;}
.timeline::before{content:""; position:absolute; top:24px; left:6%; right:6%; height:2px; background:linear-gradient(90deg,var(--primary),var(--rose)); opacity:.5;}
.timeline__step{position:relative; background:var(--surface); border:1px solid var(--line); border-radius:var(--round); padding:26px 22px 24px;}
.timeline__node{display:flex; align-items:center; justify-content:center; width:48px; height:48px; border-radius:50%; background:var(--primary-deep); color:#fff; font-family:var(--font-head); font-size:22px; font-weight:600; position:relative; z-index:1; margin-bottom:18px; box-shadow:0 0 0 6px var(--bg);}
.timeline__step h3{font-size:24px; margin-bottom:8px;}
.timeline__step p{font-size:15px; color:var(--muted);}

/* ---------- services ---------- */
.services{padding:clamp(64px,9vw,120px) 0;}
.cards{display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}
.card{background:var(--surface); border:1px solid var(--line); border-radius:var(--round); padding:30px 26px; transition:transform .22s ease, box-shadow .25s ease;}
.card:hover{transform:translateY(-6px); box-shadow:var(--shadow);}
.card__icon{display:flex; align-items:center; justify-content:center; width:52px; height:52px; border-radius:16px; background:var(--tint); color:var(--primary-deep); font-size:22px; margin-bottom:20px;}
.card__icon--heart{color:var(--rose);}
.card h3{font-size:25px; margin-bottom:10px;}
.card p{font-size:15px; color:var(--muted);}
.services__foot{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:18px; margin-top:38px; padding:24px 30px; background:var(--tint-2); border-radius:var(--round);}
.services__foot p{font-family:var(--font-head); font-size:21px; color:var(--plum);}

/* ---------- how ---------- */
.how{padding:clamp(56px,8vw,104px) 0; background:var(--tint);}
.how__grid{display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(30px,5vw,70px);}
.how__list{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px;}
.how__list li{display:flex; gap:22px; padding:24px 0; border-top:1px solid rgba(74,57,82,.12);}
.how__list li:first-child{border-top:0; padding-top:0;}
.how__num{font-family:var(--font-head); font-size:34px; color:var(--primary); font-weight:600; line-height:1; min-width:48px;}
.how__list h3{font-size:23px; margin-bottom:6px;}
.how__list p{font-size:15.5px; color:var(--ink);}

/* ---------- final ---------- */
.final{padding:clamp(56px,8vw,100px) 0;}
.final__inner{background:linear-gradient(135deg,var(--primary-deep),var(--plum)); color:#fff; border-radius:clamp(24px,3vw,38px); padding:clamp(44px,7vw,92px) clamp(28px,6vw,80px); text-align:center; position:relative; overflow:hidden;}
.final__inner::after{content:""; position:absolute; right:-80px; top:-80px; width:280px; height:280px; border-radius:50%; background:rgba(255,255,255,.07);}
.final__title{font-size:clamp(30px,4.4vw,52px); color:#fff; max-width:18ch; margin:0 auto 16px;}
.final__lead{color:rgba(255,255,255,.82); font-size:18px; max-width:46ch; margin:0 auto 30px;}
.final__actions{display:flex; flex-wrap:wrap; gap:20px; align-items:center; justify-content:center;}
.final__wa{display:inline-flex; align-items:center; gap:9px; color:#fff; font-weight:700; font-size:15px; border-bottom:1.5px solid rgba(255,255,255,.4); padding-bottom:3px;}
.final__wa:hover{border-color:#fff;}

/* ---------- footer ---------- */
.foot{padding:clamp(44px,6vw,72px) 0 40px; border-top:1px solid var(--line);}
.foot__grid{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:30px; align-items:start;}
.brand--foot .brand__mark{width:26px; height:26px;}
.brand--foot .brand__logo{width:40px; height:40px;}
.brand--foot{display:inline-flex; align-items:center; gap:10px; margin-bottom:12px;}
.foot__tag{color:var(--muted); font-size:14.5px;}
.foot__links{display:flex; flex-direction:column; gap:10px; font-weight:600; font-size:15px;}
.foot__links a:hover{color:var(--primary-deep);}
.foot__legal{color:var(--muted); font-size:13.5px; line-height:1.6;}

/* ---------- liens fléchés réutilisables ---------- */
.txtlink{display:inline-flex; align-items:center; gap:8px; font-family:var(--font-body); font-weight:700; font-size:15px; color:var(--primary-deep); background:none; border:0; cursor:pointer; transition:color .2s;}
.txtlink:hover{color:var(--plum);}
.txtlink .arr{transition:transform .22s ease;}
.txtlink:hover .arr{transform:translateX(4px);}

/* ---------- "La suite" : maillage inter-pages ---------- */
.pagelinks{padding:clamp(52px,7vw,92px) 0;}
.pagelinks__grid{display:grid; grid-template-columns:repeat(2,1fr); gap:22px;}
.plink{display:flex; flex-direction:column; justify-content:space-between; background:var(--surface); border:1px solid var(--line); border-radius:var(--round); padding:clamp(28px,3.4vw,38px); text-decoration:none; transition:transform .22s ease, box-shadow .25s ease, border-color .25s ease;}
.plink:hover{transform:translateY(-6px); box-shadow:var(--shadow); border-color:var(--primary);}
.plink__tag{display:inline-block; font-weight:700; font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--primary-deep); margin-bottom:14px;}
.plink h3{font-size:clamp(26px,3vw,34px); margin-bottom:10px;}
.plink p{color:var(--muted); font-size:15px; max-width:38ch;}
.plink__go{margin-top:26px; display:inline-flex; align-items:center; gap:9px; font-weight:700; font-size:15px; color:var(--primary-deep);}
.plink__go .arr{transition:transform .22s ease;}
.plink:hover .plink__go .arr{transform:translateX(5px);}

/* services foot — actions groupées */
.services__foot-actions{display:flex; align-items:center; gap:22px; flex-wrap:wrap;}

/* ---------- modal ---------- */
.modal{position:fixed; inset:0; z-index:90; display:flex; align-items:center; justify-content:center; padding:20px;}
.modal__scrim{position:absolute; inset:0; background:rgba(70,59,80,.42); backdrop-filter:blur(3px); animation:fade .25s ease;}
.modal__card{position:relative; width:min(480px,100%); max-height:92vh; overflow:auto; background:var(--surface); border-radius:26px; padding:clamp(28px,4vw,40px); box-shadow:0 40px 90px -30px rgba(0,0,0,.5); animation:pop .3s cubic-bezier(.2,.9,.3,1.2);}
.modal__close{position:absolute; top:16px; right:18px; width:34px; height:34px; border:0; border-radius:50%; background:var(--tint); color:var(--plum); font-size:22px; line-height:1; cursor:pointer;}
.modal__close:hover{background:var(--tint-2);}
.modal__title{font-size:32px; margin-bottom:6px;}
.modal__sub{color:var(--muted); font-size:15px; margin-bottom:22px;}
.form{display:flex; flex-direction:column; gap:16px;}
.field{display:flex; flex-direction:column; gap:7px;}
.field>span{font-weight:700; font-size:13.5px; color:var(--plum);}
.field input, .field textarea{font-family:var(--font-body); font-size:15px; color:var(--ink); padding:12px 15px; border:1.5px solid var(--line); border-radius:13px; background:var(--bg); resize:vertical; transition:border .2s;}
.field input:focus, .field textarea:focus{outline:none; border-color:var(--primary);}
.seg{display:flex; gap:8px; flex-wrap:wrap;}
.seg__btn{flex:1; min-width:90px; padding:11px 10px; border:1.5px solid var(--line); border-radius:11px; background:var(--bg); font-family:var(--font-body); font-weight:600; font-size:14px; color:var(--ink); cursor:pointer; transition:.18s;}
.seg__btn.is-on{background:var(--primary-deep); color:#fff; border-color:var(--primary-deep);}
.form__note{font-size:12.5px; color:var(--muted); text-align:center;}
.modal__done{text-align:center; padding:14px 0;}
.modal__check{display:inline-block; width:62px; height:62px; border-radius:50%; background:var(--tint); position:relative; margin-bottom:18px;}
.modal__check::after{content:""; position:absolute; left:23px; top:18px; width:13px; height:24px; border:solid var(--primary-deep); border-width:0 3px 3px 0; transform:rotate(45deg);}
.modal__done h3{font-size:30px; margin-bottom:10px;}
.modal__done p{color:var(--muted); margin-bottom:22px;}
@keyframes fade{from{opacity:0;}to{opacity:1;}}
@keyframes pop{from{opacity:0; transform:translateY(16px) scale(.97);}to{opacity:1; transform:none;}}

/* ============================================================
   PAGE ACCOMPAGNEMENTS
   ============================================================ */
.subhero{position:relative; padding:clamp(48px,7vw,84px) 0 clamp(40px,5vw,64px); text-align:center; overflow:hidden;}
.subhero__glow{position:absolute; inset:0; z-index:0; pointer-events:none;
  background:radial-gradient(60% 60% at 50% 0%, color-mix(in srgb, var(--rose) 34%, transparent), transparent 70%);}
.subhero__inner{position:relative; z-index:1; max-width:1040px; margin:0 auto;}
.subhero h1{font-size:clamp(36px,4.6vw,56px); letter-spacing:-.018em; margin-bottom:20px;}
.subhero h1 em{color:var(--primary); font-style:italic;}
.subhero__lead{font-size:clamp(17px,1.7vw,20px); color:var(--ink); max-width:54ch; margin:0 auto 28px;}
.subhero__actions{display:flex; flex-wrap:wrap; gap:14px; justify-content:center;}
.subhero__alt{margin-top:18px; font-size:14.5px; color:var(--muted);}
.subhero__alt a{color:var(--primary-deep); font-weight:700; border-bottom:1.5px solid var(--line); padding-bottom:1px; transition:border-color .2s;}
.subhero__alt a:hover{border-color:var(--primary);}
.crumbs{display:flex; gap:8px; justify-content:center; align-items:center; font-size:13px; font-weight:600; letter-spacing:.04em; color:var(--muted); margin-bottom:22px; text-transform:uppercase;}
.crumbs a:hover{color:var(--primary-deep);}
.crumbs span{opacity:.5;}

/* piliers (rangées alternées) */
.pillars{padding:clamp(40px,6vw,80px) 0 clamp(20px,3vw,40px);}
.pillar{display:grid; grid-template-columns:1fr 1fr; gap:clamp(34px,6vw,80px); align-items:center; padding:clamp(34px,5vw,64px) 0; border-top:1px solid var(--line);}
.pillar:first-child{border-top:0;}
.pillar--flip .pillar__media{order:2;}
.pillar__media{position:relative;}
.pillar__media .shot{border-radius:3px;}
.pillar__num{font-family:var(--font-head); font-size:20px; font-weight:600; color:var(--primary); letter-spacing:.04em; display:inline-flex; align-items:center; gap:12px; margin-bottom:14px;}
.pillar__num::before{content:""; width:34px; height:1.5px; background:var(--primary); opacity:.6;}
.pillar h2{font-size:clamp(30px,3.6vw,42px); margin-bottom:16px;}
.pillar__lead{color:var(--ink); margin-bottom:22px; max-width:46ch;}
.plist{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px;}
.plist li{display:flex; gap:12px; align-items:flex-start; font-size:15.5px; color:var(--ink);}
.plist li::before{content:""; flex:none; width:18px; height:18px; margin-top:3px; border-radius:50%; background:var(--tint); position:relative;}
.plist li{position:relative;}
.tick{flex:none; width:20px; height:20px; margin-top:2px; border-radius:50%; background:var(--tint-2); display:inline-flex; align-items:center; justify-content:center;}
.tick::after{content:""; width:5px; height:9px; border:solid var(--primary-deep); border-width:0 2px 2px 0; transform:rotate(45deg); margin-top:-2px;}
.plist li::before{display:none;}

/* formules */
.formules{padding:clamp(56px,8vw,104px) 0; background:linear-gradient(180deg,var(--tint-2),var(--bg));}
.formules__grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; align-items:stretch;}
.formule{display:flex; flex-direction:column; background:var(--surface); border:1px solid var(--line); border-radius:var(--round); padding:32px 28px; transition:transform .22s ease, box-shadow .25s ease;}
.formule:hover{transform:translateY(-6px); box-shadow:var(--shadow);}
.formule--featured{border:1.5px solid var(--primary); box-shadow:var(--shadow); position:relative;}
.formule__flag{position:absolute; top:-13px; left:28px; background:var(--primary-deep); color:#fff; font-size:11.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:6px 14px; border-radius:999px;}
.formule__name{font-size:28px; margin-bottom:6px;}
.formule__for{font-size:14px; color:var(--primary-deep); font-weight:600; margin-bottom:18px;}
.formule__price{font-family:var(--font-head); font-size:30px; color:var(--plum); font-weight:600; padding-bottom:18px; margin-bottom:18px; border-bottom:1px solid var(--line);}
.formule__price small{display:block; font-family:var(--font-body); font-size:12.5px; color:var(--muted); font-weight:600; letter-spacing:.02em; margin-top:4px;}
.formule__feats{list-style:none; margin:0 0 24px; padding:0; display:flex; flex-direction:column; gap:12px; flex:1;}
.formule__feats li{display:flex; gap:11px; font-size:14.5px; color:var(--ink); align-items:flex-start;}
.formules__note{text-align:center; margin-top:26px; color:var(--muted); font-size:14.5px;}

/* whatsapp band */
.waband{padding:clamp(40px,6vw,72px) 0;}
.waband__inner{display:flex; flex-wrap:wrap; gap:24px; align-items:center; justify-content:space-between; background:var(--surface); border:1px solid var(--line); border-radius:var(--round); padding:clamp(28px,4vw,44px) clamp(28px,5vw,56px); box-shadow:var(--shadow-sm);}
.waband__txt{max-width:60ch;}
.waband__txt h2{font-size:clamp(26px,3.2vw,38px); margin-bottom:8px;}
.waband__txt p{color:var(--ink); font-size:16px;}
.waband__badge{display:inline-flex; align-items:center; gap:10px; font-weight:700; color:var(--primary-deep); font-size:13px; letter-spacing:.1em; text-transform:uppercase; margin-bottom:14px;}
.waband__badge .mk{color:#5bbd7e; font-size:18px;}

/* faq */
.faq{padding:clamp(56px,8vw,104px) 0;}
.faq__grid{max-width:820px; margin:0 auto;}
.faq__item{border-bottom:1px solid var(--line);}
.faq__q{width:100%; text-align:left; background:none; border:0; cursor:pointer; padding:24px 44px 24px 0; position:relative; font-family:var(--font-head); font-size:clamp(20px,2.4vw,26px); color:var(--plum); font-weight:600;}
.faq__q::after{content:"+"; position:absolute; right:6px; top:50%; transform:translateY(-50%); font-family:var(--font-body); font-size:26px; font-weight:400; color:var(--primary); transition:transform .25s;}
.faq__item.is-open .faq__q::after{content:"–";}
.faq__a{max-height:0; overflow:hidden; transition:max-height .3s ease, padding .3s ease; color:var(--ink);}
.faq__item.is-open .faq__a{max-height:280px; padding:0 0 24px;}
.faq__a p{font-size:16px; max-width:64ch;}

/* ============================================================
   PAGE CONTACT / RÉSERVATION
   ============================================================ */
.contact-hero{position:relative; padding:clamp(44px,6vw,76px) 0 clamp(8px,2vw,20px); text-align:center; overflow:hidden;}
.contact-hero__glow{position:absolute; inset:0; z-index:0; pointer-events:none; background:radial-gradient(55% 60% at 50% 0%, color-mix(in srgb, var(--rose) 32%, transparent), transparent 70%);}
.contact-hero__inner{position:relative; z-index:1; max-width:880px; margin:0 auto;}
.contact-hero h1{font-size:clamp(34px,4.4vw,54px); letter-spacing:-.018em; margin-bottom:18px;}
.contact-hero h1 em{color:var(--primary); font-style:italic;}
.contact-hero p{font-size:clamp(16px,1.6vw,19px); color:var(--ink); max-width:50ch; margin:0 auto;}

.booking{padding:clamp(34px,5vw,64px) 0 clamp(56px,8vw,104px);}
.booking__grid{display:grid; grid-template-columns:1.55fr .95fr; gap:clamp(24px,3vw,36px); align-items:start;}

.bk-card{background:var(--surface); border:1px solid var(--line); border-radius:clamp(20px,2.4vw,28px); box-shadow:var(--shadow); overflow:hidden;}
.steps{display:flex; gap:6px; padding:20px clamp(22px,3vw,34px); border-bottom:1px solid var(--line); background:var(--tint-2);}
.step{display:flex; align-items:center; gap:10px; flex:1; font-weight:700; font-size:13.5px; color:var(--muted); letter-spacing:.01em;}
.step__n{flex:none; width:28px; height:28px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:#fff; border:1.5px solid var(--line); font-size:13px; color:var(--muted); transition:.2s;}
.step.is-active{color:var(--primary-deep);}
.step.is-active .step__n{background:var(--primary-deep); border-color:var(--primary-deep); color:#fff;}
.step.is-done .step__n{background:var(--primary); border-color:var(--primary); color:#fff;}
.step__line{flex:1; height:1.5px; background:var(--line); margin:0 2px;}
.bk-body{padding:clamp(24px,3.4vw,38px);}
.bk-body__head{margin-bottom:22px;}
.bk-body__head h2{font-size:clamp(24px,2.6vw,30px); margin-bottom:4px;}
.bk-body__head p{color:var(--muted); font-size:14.5px;}

/* calendar */
.bk-split{display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(20px,3vw,32px); align-items:start;}
.cal__bar{display:flex; align-items:center; justify-content:space-between; margin-bottom:14px;}
.cal__title{font-family:var(--font-head); font-size:22px; font-weight:600; color:var(--plum); text-transform:capitalize;}
.cal__nav{display:flex; gap:8px;}
.cal__nav button{width:34px; height:34px; border-radius:50%; border:1.5px solid var(--line); background:#fff; cursor:pointer; color:var(--plum); font-size:16px; line-height:1; transition:.18s;}
.cal__nav button:hover:not(:disabled){border-color:var(--primary); color:var(--primary-deep);}
.cal__nav button:disabled{opacity:.35; cursor:not-allowed;}
.cal__grid{display:grid; grid-template-columns:repeat(7,1fr); gap:5px;}
.cal__dow{text-align:center; font-size:11.5px; font-weight:700; letter-spacing:.04em; color:var(--muted); text-transform:uppercase; padding-bottom:6px;}
.cal__day{aspect-ratio:1; border:1.5px solid transparent; border-radius:12px; background:var(--tint-2); font-family:var(--font-body); font-weight:600; font-size:15px; color:var(--plum); cursor:pointer; transition:.16s; display:flex; align-items:center; justify-content:center;}
.cal__day:hover:not(:disabled){border-color:var(--primary); transform:translateY(-1px);}
.cal__day:disabled{background:transparent; color:var(--line); cursor:not-allowed;}
.cal__day.is-empty{background:transparent; border:0; cursor:default;}
.cal__day.is-sel{background:var(--primary-deep); color:#fff; border-color:var(--primary-deep);}
.cal__day.is-today{box-shadow:inset 0 0 0 1.5px var(--primary);}

/* slots */
.slots__h{font-weight:700; font-size:13.5px; color:var(--plum); margin-bottom:12px;}
.slots__h span{color:var(--primary-deep); text-transform:capitalize;}
.slots{display:grid; grid-template-columns:repeat(2,1fr); gap:9px;}
.slot{padding:12px 8px; border:1.5px solid var(--line); border-radius:11px; background:#fff; font-family:var(--font-body); font-weight:600; font-size:14.5px; color:var(--plum); cursor:pointer; transition:.16s;}
.slot:hover:not(:disabled){border-color:var(--primary); color:var(--primary-deep);}
.slot:disabled{opacity:.4; cursor:not-allowed; text-decoration:line-through;}
.slot.is-sel{background:var(--primary-deep); color:#fff; border-color:var(--primary-deep);}
.slots__empty{color:var(--muted); font-size:14px; padding:18px 0;}

.bk-foot{display:flex; align-items:center; justify-content:space-between; gap:14px; margin-top:26px; padding-top:22px; border-top:1px solid var(--line);}
.bk-foot__recap{font-size:14px; color:var(--ink);}
.bk-foot__recap strong{color:var(--plum); font-weight:700; text-transform:capitalize;}
.bk-back{background:none; border:0; color:var(--muted); font-family:var(--font-body); font-weight:700; font-size:14px; cursor:pointer; padding:8px 4px;}
.bk-back:hover{color:var(--primary-deep);}

.bk-form{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.bk-form .field--full{grid-column:1 / -1;}

/* confirmation */
.bk-done{text-align:center; padding:clamp(20px,4vw,40px) 10px;}
.bk-done__check{width:72px; height:72px; border-radius:50%; background:var(--tint); margin:0 auto 22px; position:relative;}
.bk-done__check::after{content:""; position:absolute; left:27px; top:21px; width:15px; height:28px; border:solid var(--primary-deep); border-width:0 3px 3px 0; transform:rotate(45deg);}
.bk-done h2{font-size:clamp(28px,3.4vw,40px); margin-bottom:12px;}
.bk-done p{color:var(--ink); max-width:42ch; margin:0 auto 8px;}
.bk-done__slot{display:inline-flex; align-items:center; gap:10px; margin:20px 0 26px; padding:14px 22px; background:var(--tint-2); border-radius:14px; font-weight:700; color:var(--plum); text-transform:capitalize;}

/* aside */
.aside{display:flex; flex-direction:column; gap:14px;}
.aside__card{background:var(--surface); border:1px solid var(--line); border-radius:var(--round); padding:24px 24px;}
.aside__card--wa{background:linear-gradient(135deg,var(--primary-deep),var(--plum)); border:0; color:#fff;}
.aside__card--wa h3{color:#fff;}
.aside__card--wa p{color:rgba(255,255,255,.82);}
.aside__lab{display:inline-flex; align-items:center; gap:9px; font-weight:700; font-size:12px; letter-spacing:.1em; text-transform:uppercase; margin-bottom:12px; color:var(--primary-deep);}
.aside__card--wa .aside__lab{color:rgba(255,255,255,.9);}
.aside__lab .mk{font-size:16px;}
.aside__card h3{font-size:23px; margin-bottom:8px;}
.aside__card p{font-size:14.5px; color:var(--muted); line-height:1.6;}
.aside__rows{display:flex; flex-direction:column; gap:16px;}
.aside__row{display:flex; gap:13px; align-items:flex-start;}
.aside__ico{flex:none; width:40px; height:40px; border-radius:12px; background:var(--tint); display:flex; align-items:center; justify-content:center; color:var(--primary-deep); font-size:17px;}
.aside__row b{display:block; font-family:var(--font-body); font-size:14.5px; color:var(--plum); font-weight:700;}
.aside__row span{font-size:13.5px; color:var(--muted);}
.aside__wa-btn{display:inline-flex; width:100%; justify-content:center; margin-top:16px;}

/* ============================================================
   PAGE À PROPOS
   ============================================================ */
.ab-hero{padding:clamp(40px,6vw,76px) 0 clamp(24px,4vw,48px);}
.ab-hero__grid{display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(34px,6vw,80px); align-items:center;}
.ab-hero__media{position:relative;}
.ab-hero__media .shot{border-radius:3px;}
.ab-hero__badge{position:absolute; left:-10px; bottom:30px; background:#fff; border:1px solid var(--line); border-radius:18px; padding:14px 20px; box-shadow:var(--shadow-sm);}
.ab-hero__badge strong{display:block; font-family:var(--font-head); font-size:30px; color:var(--primary-deep); line-height:1; font-weight:600;}
.ab-hero__badge span{font-size:12.5px; color:var(--muted); font-weight:600;}
.ab-hero h1{font-size:clamp(34px,4.4vw,52px); line-height:1.12; letter-spacing:-.018em; margin-bottom:26px; text-wrap:balance;}
.ab-hero h1 em{color:var(--primary); font-style:italic;}
.ab-hero__lead{font-size:clamp(17px,1.7vw,20px); color:var(--ink); max-width:48ch; margin-bottom:16px;}
.ab-hero__sign{font-family:var(--font-head); font-style:italic; font-size:30px; color:var(--primary); margin-top:10px;}

/* story */
.story{padding:clamp(56px,8vw,104px) 0; background:linear-gradient(180deg,var(--tint-2),var(--bg));}
.story__grid{display:grid; grid-template-columns:.42fr .58fr; gap:clamp(30px,5vw,72px); align-items:start;}
.story__copy p{margin-bottom:18px; max-width:58ch; color:var(--ink);}
.story__copy p:first-of-type::first-letter{font-family:var(--font-head); font-size:64px; float:left; line-height:.8; padding:6px 12px 0 0; color:var(--primary);}
.story__pull{font-family:var(--font-head); font-size:clamp(24px,2.8vw,32px); color:var(--plum); line-height:1.3; font-style:italic; border-left:3px solid var(--primary); padding-left:22px; margin:6px 0;}

/* valeurs */
.values{padding:clamp(56px,8vw,104px) 0;}
.values__grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.value{background:var(--surface); border:1px solid var(--line); border-radius:var(--round); padding:30px 26px;}
.value__ico{display:flex; align-items:center; justify-content:center; width:52px; height:52px; border-radius:50%; background:var(--tint); color:var(--primary-deep); font-size:20px; margin-bottom:20px;}
.value h3{font-size:25px; margin-bottom:10px;}
.value p{font-size:15px; color:var(--muted);}

/* credentials */
.creds{padding:clamp(48px,7vw,92px) 0; background:var(--tint);}
.creds__inner{display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(30px,5vw,70px); align-items:center;}
.creds__list{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:14px;}
.creds__list li{display:flex; gap:12px; align-items:flex-start; background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:16px 18px; font-size:14.5px; color:var(--ink); font-weight:600;}

@media (max-width:980px){
  .hero__grid{grid-template-columns:1fr; gap:40px;}
  .hero__media{max-width:440px;}
  .about__grid{grid-template-columns:1fr; gap:36px;}
  .about__media{max-width:380px;}
  .how__grid{grid-template-columns:1fr; gap:24px;}
  .cards{grid-template-columns:repeat(2,1fr);}
  .timeline{grid-template-columns:repeat(2,1fr);}
  .timeline::before{display:none;}
  .pillar{grid-template-columns:1fr; gap:30px;}
  .pillar__media{order:-1 !important; max-width:460px;}
  .formules__grid{grid-template-columns:1fr; max-width:440px; margin:0 auto;}
  .booking__grid{grid-template-columns:1fr; gap:22px;}
  .aside{flex-direction:row; flex-wrap:wrap;}
  .aside__card{flex:1; min-width:240px;}
  .ab-hero__grid{grid-template-columns:1fr; gap:36px;}
  .ab-hero__media{order:-1; max-width:420px;}
  .story__grid{grid-template-columns:1fr; gap:26px;}
  .values__grid{grid-template-columns:1fr;}
  .creds__inner{grid-template-columns:1fr; gap:26px;}
}
@media (max-width:1000px){
  .nav__links{position:fixed; inset:74px 0 auto 0; flex-direction:column; align-items:stretch; gap:0; background:var(--surface); border-bottom:1px solid var(--line); padding:8px 20px 20px; box-shadow:var(--shadow-sm); transform:translateY(-130%); opacity:0; pointer-events:none; transition:.28s ease;}
  .nav__links.is-open{transform:none; opacity:1; pointer-events:auto;}
  .nav__links a{padding:14px 4px; border-bottom:1px solid var(--line);}
  .nav__links a::after{display:none;}
  .nav__cta{margin:14px 0 0;}
  .burger{display:flex;}
}
@media (max-width:720px){
  body{font-size:16px;}
  .nav__links{position:fixed; inset:74px 0 auto 0; flex-direction:column; align-items:stretch; gap:0; background:var(--surface); border-bottom:1px solid var(--line); padding:8px 20px 20px; box-shadow:var(--shadow-sm); transform:translateY(-130%); opacity:0; pointer-events:none; transition:.28s ease;}
  .nav__links.is-open{transform:none; opacity:1; pointer-events:auto;}
  .nav__links a{padding:14px 4px; border-bottom:1px solid var(--line);}
  .nav__cta{margin:14px 0 0;}
  .burger{display:flex;}
  .promise__grid{grid-template-columns:1fr; gap:22px;}
  .cards{grid-template-columns:1fr;}
  .timeline{grid-template-columns:1fr;}
  .services__foot{flex-direction:column; align-items:flex-start;}
  .services__foot-actions{width:100%; flex-direction:column; align-items:stretch; gap:14px;}
  .pagelinks__grid{grid-template-columns:1fr; gap:16px;}
  .waband__inner{flex-direction:column; align-items:flex-start;}
  .bk-split{grid-template-columns:1fr; gap:24px;}
  .bk-form{grid-template-columns:1fr;}
  .steps{flex-direction:row;}
  .step__txt{display:none;}
  .step{flex:none;}
  .step__line{flex:1;}
  .aside{flex-direction:column;}
  .creds__list{grid-template-columns:1fr;}
  .story__copy p:first-of-type::first-letter{font-size:52px;}
}

/* ============================================================
   RAFFINEMENTS PREMIUM — typographie, survols, animations
   ============================================================ */

/* — Typographie plus serrée, plus éditoriale — */
.h2{letter-spacing:-.02em; text-wrap:balance;}
.hero__copy, .ab-hero__copy{min-width:0;}
.eyebrow{font-size:11.5px; letter-spacing:.26em;}
.hero__lead, .subhero__lead, .sec-head__lead, .ab-hero__lead{text-wrap:pretty;}

/* — Nav : ombre qui apparaît au scroll + soulignement animé — */
.nav{transition:box-shadow .35s ease, background .35s ease, border-color .35s ease;}
.nav.is-scrolled{box-shadow:0 12px 34px -24px rgba(74,57,82,.55); border-color:transparent;
  background:color-mix(in srgb, var(--bg) 86%, transparent);}
.nav__links a{position:relative;}
.nav__links a::after{content:""; position:absolute; left:0; right:100%; bottom:-5px; height:1.5px;
  background:var(--primary-deep); transition:right .3s cubic-bezier(.4,0,.2,1);}
.nav__links a:hover::after, .nav__links a.is-current::after{right:0;}
.nav__cta::after{display:none;}

/* — Boutons : micro-rebond plus soigné — */
.btn{transition:transform .3s cubic-bezier(.34,1.28,.64,1), box-shadow .3s ease, background .25s ease, color .25s ease, border-color .25s ease;}
.btn--primary{box-shadow:0 12px 26px -16px rgba(74,57,82,.5);}
.btn--primary:hover{box-shadow:0 20px 38px -16px rgba(74,57,82,.55);}

/* — Cartes : ombre discrète, élévation fluide, détail au survol — */
.card, .formule, .plink, .value, .timeline__step{
  box-shadow:0 1px 2px rgba(74,57,82,.045);
  transition:transform .4s cubic-bezier(.22,.61,.36,1), box-shadow .4s ease, border-color .4s ease;
}
.card:hover, .formule:hover, .plink:hover{transform:translateY(-6px); box-shadow:0 30px 56px -32px rgba(74,57,82,.42);}
.card{position:relative; overflow:hidden;}
.card::before{content:""; position:absolute; left:0; top:0; height:3px; width:0;
  background:var(--primary); transition:width .45s cubic-bezier(.22,.61,.36,1);}
.card:hover::before{width:100%;}

/* — Photo : très léger zoom au survol (contenu clippé par .shot) — */
.shot image-slot{transition:transform .9s cubic-bezier(.22,.61,.36,1);}
.shot:hover image-slot{transform:scale(1.035);}

/* — Liens fléchés : flèche qui glisse — */
.plink__go .arr, .txtlink .arr{transition:transform .3s cubic-bezier(.34,1.28,.64,1);}

/* — Apparition au scroll — */
@media (prefers-reduced-motion: no-preference){
  .rv{opacity:0; transform:translateY(18px);
    transition:opacity .7s cubic-bezier(.22,.61,.36,1), transform .7s cubic-bezier(.22,.61,.36,1);}
  .rv.rv-in{opacity:1; transform:none;}
  .rv-title{opacity:0; clip-path:inset(0 0 108% 0); transform:translateY(6px);
    transition:opacity .8s ease, clip-path .9s cubic-bezier(.22,.61,.36,1), transform .9s cubic-bezier(.22,.61,.36,1);}
  .rv-title.rv-in{opacity:1; clip-path:inset(-14% 0 -14% 0); transform:none;}
  /* verrou de sécurité : l'état final est garanti même si l'animation ne joue pas */
  .rv-shown{opacity:1 !important; transform:none !important; clip-path:none !important; transition:none !important;}
}
