/* ============================================================
   GRÉGOIRE DELANNOY — Mystic Romance / French Premium
   Signature : « le fil qui se rejoint » (distance → rapprochement)
   ============================================================ */

:root{
  --encre:#FCF6F6;
  --encre-2:#F4E7E9;
  --encre-3:#FFFCFC;
  --bordeaux:#8E4A5E;
  --bordeaux-clair:#6E3548;
  --braise:#B06B7E;
  --ivoire:#2E1C24;
  --ivoire-2:#432B36;
  --brume:rgba(46,28,36,.72);
  --brume-2:rgba(46,28,36,.5);
  --or:#A9803C;
  --or-pale:#8A6526;
  --trait:rgba(46,28,36,.16);
  --trait-2:rgba(46,28,36,.09);

  --f-display:"Gloock",Georgia,"Times New Roman",serif;
  --f-accent:"Instrument Serif",Georgia,"Times New Roman",serif;
  --f-corps:"Hanken Grotesk","Helvetica Neue",Arial,sans-serif;
  --f-signe:"DM Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;
  --r-carte:22px;

  --max:1180px;
  --pad:clamp(20px,5vw,64px);
  --r:2px;

  /* visuels du site */
  --img-hero:url("images/couple.webp");
  --img-mains:url("images/mains.webp");
  --img-consultation:url("images/consultation.webp");
  --img-pensive:url("images/pensive.webp");
  --img-rituel:url("images/rituel.webp");
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

body{
  margin:0;
  background:var(--encre);
  color:var(--ivoire);
  font-family:var(--f-corps);
  font-size:17px;
  font-weight:300;
  line-height:1.68;
  letter-spacing:.005em;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%;display:block}
[hidden]{display:none!important}
main{overflow-x:clip}
a{color:inherit}
:focus-visible{outline:2px solid var(--or-pale);outline-offset:3px;border-radius:1px}

h1,h2,h3{font-family:var(--f-display);font-weight:400;line-height:1.12;margin:0;letter-spacing:-.01em}
h1{font-size:clamp(2.2rem,5.4vw,4.1rem)}
h2{font-size:clamp(1.85rem,3.9vw,3rem);text-wrap:balance}
h3{font-size:clamp(1.2rem,2vw,1.5rem);line-height:1.25}
p{margin:0 0 1.05em}
p:last-child{margin-bottom:0}

/* ---------- utilitaires ---------- */
.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--pad)}
.sec{position:relative;padding-block:clamp(64px,9vw,124px)}
section[id],main[id]{scroll-margin-top:96px}
.sec--tight{padding-block:clamp(48px,6vw,86px)}
.sec--encre2{background:var(--encre-2)}
.sec--bordeaux{background:linear-gradient(168deg,#BA7A8C 0%,var(--bordeaux) 62%,#6E3548 100%)}
.lede{font-size:clamp(1.02rem,1.4vw,1.16rem);color:var(--brume);max-width:66ch}
.mesure{max-width:70ch}
.centre{text-align:center;margin-inline:auto}

.eyebrow{
  font-family:var(--f-signe);
  font-size:.83rem;
  letter-spacing:.42em;
  text-transform:uppercase;
  color:var(--or);
  margin:0 0 18px;
  display:flex;align-items:center;gap:14px;
}
.eyebrow::after{content:"";flex:1;height:1px;background:var(--trait);max-width:130px}
.centre .eyebrow{justify-content:center}
.centre .eyebrow::after{display:none}

.sec__intro{margin-bottom:clamp(34px,4vw,54px)}
.sec__intro h2 + .lede{margin-top:18px}

/* ---------- boutons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--f-corps);font-size:.79rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;text-decoration:none;
  padding:16px 30px;border-radius:var(--r);border:1px solid transparent;
  cursor:pointer;transition:transform .35s cubic-bezier(.2,.7,.3,1),background .35s,color .35s,border-color .35s,box-shadow .35s;
}
.btn:hover{transform:translateY(-2px)}
.btn--or{background:linear-gradient(135deg,var(--or) 0%,var(--or-pale) 52%,var(--or) 100%);color:#2E1C24;box-shadow:0 10px 34px -16px rgba(169,128,60,.9)}
.btn--or:hover{box-shadow:0 16px 42px -14px rgba(169,128,60,1)}
.btn--braise{background:linear-gradient(135deg,var(--bordeaux-clair),var(--braise));color:var(--ivoire);box-shadow:0 10px 34px -16px rgba(176,107,126,.95)}
.btn--ligne{border-color:var(--trait);color:var(--ivoire);background:transparent}
.btn--ligne:hover{border-color:var(--or);color:var(--or-pale);background:rgba(169,128,60,.06)}
.btn--ivoire{background:#2E1C24;color:#FDF7F8}
.btn--ivoire:hover{background:#432B36;color:#fff}
.btn--large{padding:19px 38px}
.btn-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}
.centre .btn-row{justify-content:center}

/* logo WhatsApp */
/* logo WhatsApp toujours dans sa couleur officielle */
.ico-wa{width:1.2em;height:1.2em;flex:none;fill:#25D366;display:inline-block;vertical-align:-.22em}
.ico-wa--vert{fill:#25D366}
.btn .ico-wa{width:1.35em;height:1.35em;margin-left:-2px}
.canal__ico--wa .ico-wa{width:1.9rem;height:1.9rem;filter:drop-shadow(0 0 14px rgba(37,211,102,.35))}
.pied__wa{display:inline-flex;align-items:center;gap:8px}
.barre-mobile .ico-wa{width:1.25em;height:1.25em}
.menu-mobile .btn .ico-wa{width:1.3em;height:1.3em}

/* lien discret */
.lien-or{
  font-family:var(--f-corps);font-size:.78rem;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:var(--or-pale);text-decoration:none;
  border-bottom:1px solid var(--trait);padding-bottom:5px;display:inline-block;
  transition:border-color .3s,color .3s;
}
.lien-or:hover{border-color:var(--or);color:#2E1C24}

/* ============================================================
   SIGNATURE — le fil qui se rejoint (rail latéral)
   ============================================================ */
.fil{
  position:fixed;left:max(14px,2.2vw);top:0;bottom:0;width:56px;
  pointer-events:none;z-index:3;display:none;
}
.fil__ligne{
  position:absolute;top:0;bottom:0;left:50%;width:1px;
  background:linear-gradient(to bottom,transparent,var(--trait) 12%,var(--trait) 88%,transparent);
  transform:translateX(calc(-50% + var(--dx,-22px)));
  transition:transform .18s linear;
}
.fil__ligne--b{--dx:22px;background:linear-gradient(to bottom,transparent,rgba(176,107,126,.34) 12%,rgba(176,107,126,.34) 88%,transparent)}
.fil__point{
  position:absolute;left:50%;top:var(--y,10%);width:7px;height:7px;margin-left:-3.5px;margin-top:-3.5px;
  border-radius:50%;background:var(--or-pale);
  box-shadow:0 0 0 4px rgba(169,128,60,.14),0 0 22px 5px rgba(169,128,60,.5);
  opacity:var(--o,0);transition:opacity .4s;
}
@media (min-width:1180px){.fil{display:block}}

/* ============================================================
   HEADER
   ============================================================ */
.entete{
  position:fixed;inset:0 0 auto;z-index:60;
  transition:background .4s,border-color .4s,backdrop-filter .4s;
  border-bottom:1px solid transparent;
}
.entete.est-fixe{background:rgba(252,246,246,.9);backdrop-filter:blur(16px) saturate(1.2);border-bottom-color:var(--trait-2)}
.entete__in{display:flex;align-items:center;justify-content:space-between;gap:clamp(20px,3vw,44px);height:78px}
.marque{text-decoration:none;display:flex;flex-direction:column;gap:3px;line-height:1}
.marque__nom{font-family:var(--f-display);font-size:1.16rem;letter-spacing:.055em;color:var(--ivoire);white-space:nowrap}
.marque__sous{font-family:var(--f-signe);font-size:.58rem;letter-spacing:.3em;text-transform:uppercase;color:var(--or)}
.nav{display:none;align-items:center;gap:clamp(14px,1.9vw,28px)}
.nav a{
  text-decoration:none;white-space:nowrap;font-size:.73rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;
  color:var(--brume);padding:6px 0;position:relative;transition:color .3s;
}
.nav a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--or);transition:right .35s cubic-bezier(.2,.7,.3,1)}
.nav a:hover{color:var(--ivoire)}
.nav a:hover::after{right:0}
.entete .btn{padding:13px 22px;font-size:.7rem}
.entete__actions{display:none;align-items:center;gap:10px}
.entete__tel{display:none;white-space:nowrap;padding:12px 16px;font-size:.68rem;letter-spacing:.1em}
.burger{
  display:inline-flex;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;
  background:none;border:1px solid var(--trait);border-radius:var(--r);cursor:pointer;padding:0 11px;
}
.burger span{height:1px;background:var(--ivoire);transition:transform .3s,opacity .3s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
@media (min-width:1024px){
  .nav,.entete__actions{display:flex}
  .burger{display:none}
}
@media (min-width:1200px){.nav{gap:clamp(12px,1.4vw,20px)}}
@media (min-width:1150px){.entete__tel{display:inline-flex}}
.menu-mobile{
  position:fixed;inset:78px 0 0;z-index:55;background:rgba(252,246,246,.98);backdrop-filter:blur(20px);
  padding:34px var(--pad) 120px;overflow-y:auto;
  opacity:0;visibility:hidden;transform:translateY(-10px);transition:opacity .3s,transform .3s,visibility .3s;
}
.menu-mobile.est-ouvert{opacity:1;visibility:visible;transform:none}
.menu-mobile a{
  display:block;text-decoration:none;font-family:var(--f-display);font-size:1.5rem;color:var(--ivoire);
  padding:15px 0;border-bottom:1px solid var(--trait-2);
}
.menu-mobile .btn{width:100%;margin-top:26px}

/* ============================================================
   HERO
   ============================================================ */
.hero{position:relative;min-height:clamp(600px,94svh,900px);display:flex;align-items:flex-end;overflow:hidden;padding-top:120px}
.hero__fond{
  position:absolute;inset:0;z-index:0;
  background-image:var(--img-hero),linear-gradient(158deg,#F1E2E5 0%,#F9F0F2 46%,#FCF6F6 100%);
  background-size:cover;background-position:62% 42%;
  animation:heroRespire 34s ease-in-out infinite alternate;
}
.hero__voile{
  position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(100deg,rgba(252,246,246,.96) 0%,rgba(252,246,246,.88) 34%,rgba(252,246,246,.44) 58%,rgba(252,246,246,.14) 80%,rgba(252,246,246,.3) 100%),
    radial-gradient(85% 60% at 18% 72%,rgba(252,246,246,.55),transparent 70%),
    linear-gradient(to top,var(--encre) 2%,rgba(252,246,246,.84) 22%,rgba(252,246,246,.22) 60%,rgba(252,246,246,.36) 100%);
}
/* deux formes qui se rapprochent au scroll */
.hero__halo{
  position:absolute;z-index:1;width:min(46vw,430px);aspect-ratio:1;border-radius:50%;
  filter:blur(58px);opacity:.55;top:24%;
  transition:transform .2s linear;
}
.hero__halo--a{left:6%;background:radial-gradient(circle,rgba(210,175,110,.55),transparent 66%);transform:translateX(calc(var(--conv,0) * 1px))}
.hero__halo--b{right:6%;background:radial-gradient(circle,rgba(176,107,126,.6),transparent 66%);transform:translateX(calc(var(--conv,0) * -1px))}
.hero__in{position:relative;z-index:2;padding-bottom:clamp(52px,7vw,96px);width:100%}
.hero__texte{max-width:20ch}
.hero h1{text-wrap:balance}
.hero h1 em{font-style:normal;color:var(--or-pale);display:block}
.hero__sous{margin-top:22px;max-width:54ch;font-size:clamp(1rem,1.35vw,1.13rem);color:var(--brume)}
.hero__micro{
  margin-top:30px;font-family:var(--f-signe);font-size:.76rem;letter-spacing:.26em;text-transform:uppercase;color:var(--or);
}
.hero__texte{max-width:none}
@media (min-width:900px){.hero__texte h1{max-width:15ch}}

/* signature émotionnelle */
.signature-emo{
  font-family:var(--f-display);font-style:italic;font-size:clamp(1.05rem,1.7vw,1.3rem);
  color:var(--or-pale);letter-spacing:.01em;
}

/* ============================================================
   SECTIONS ÉDITORIALES
   ============================================================ */
.visuel{
  position:relative;border-radius:var(--r);overflow:hidden;border:1px solid var(--trait-2);
  aspect-ratio:4/5;isolation:isolate;
  background:linear-gradient(158deg,rgba(142,74,94,.5),rgba(252,246,246,.9));
}
.visuel__plan{
  position:absolute;left:0;right:0;top:-9%;bottom:-9%;z-index:0;
  background-size:cover;background-repeat:no-repeat;background-position:center;
  transform:translate3d(0,var(--py,0px),0) scale(1.01);
  will-change:transform;
}
.visuel--mains .visuel__plan{background-image:var(--img-mains);background-position:50% 48%}
.visuel--consultation .visuel__plan{background-image:var(--img-consultation);background-position:40% 44%}
.visuel--pensive .visuel__plan{
  background-image:var(--img-pensive);background-position:56% 42%;
  filter:saturate(.94) brightness(1.03);
}
.visuel--rituel{aspect-ratio:1}
.visuel--rituel .visuel__plan{background-image:var(--img-rituel);background-position:50% 52%}
.visuel::after{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(to top,rgba(252,246,246,.82),rgba(252,246,246,.14) 52%,transparent 78%),
             radial-gradient(120% 80% at 50% 100%,rgba(142,74,94,.34),transparent 62%);
}
.visuel__legende{
  position:absolute;left:20px;right:20px;bottom:18px;z-index:2;
  font-family:var(--f-signe);font-size:.68rem;letter-spacing:.26em;text-transform:uppercase;color:var(--or-pale);
}

/* ============================================================
   RÉCONCILIATION — deux halos qui se rejoignent
   ============================================================ */
.reconnexion{position:relative;overflow:hidden}
.reconnexion__scene{
  position:relative;height:clamp(240px,30vw,400px);margin:0 auto;max-width:640px;
}
.reconnexion__arc{
  position:absolute;top:50%;width:min(42vw,300px);aspect-ratio:1;border-radius:50%;
  transform:translate(var(--tx,0),-50%);transition:transform .25s linear,opacity .6s;
  filter:blur(1.5px);
}
.reconnexion__arc--a{left:0;border:1.5px solid rgba(169,128,60,.85);box-shadow:inset 0 0 70px rgba(169,128,60,.3),0 0 40px rgba(252,246,246,.8)}
.reconnexion__arc--b{right:0;border:1.5px solid rgba(142,74,94,.9);box-shadow:inset 0 0 70px rgba(142,74,94,.28),0 0 40px rgba(252,246,246,.8)}
.reconnexion__mot{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-family:var(--f-signe);font-size:clamp(1rem,2.4vw,1.6rem);letter-spacing:.52em;text-indent:.52em;
  color:#7A3A4C;opacity:var(--o,0);transition:opacity .5s;
  text-shadow:0 2px 24px rgba(252,246,246,.95);
}
.reconnexion__note{margin-top:18px;font-size:.9rem;color:var(--brume-2);text-align:center}

/* ============================================================
   AVIS GOOGLE
   ============================================================ */
.avis-bloc{
  background:#FFFFFF;color:#2E1C24;border:1px solid rgba(46,28,36,.1);border-radius:var(--r);
  padding:clamp(26px,4vw,44px);box-shadow:0 40px 90px -50px rgba(46,28,36,.18);
}
.avis-bloc__tete{
  display:flex;flex-wrap:wrap;align-items:center;gap:16px 22px;
  padding-bottom:24px;border-bottom:1px solid rgba(30,16,22,.12);
}
.g-logo{font-family:"Hanken Grotesk",Arial,sans-serif;font-size:1.7rem;font-weight:700;letter-spacing:-.02em;line-height:1}
.g-logo b{font-weight:700}
.g-logo .b{color:#4285F4}.g-logo .r{color:#EA4335}.g-logo .j{color:#FBBC05}.g-logo .v{color:#34A853}
.avis-bloc__note{display:flex;align-items:center;gap:10px;font-weight:600;font-size:1.05rem}
.etoiles{color:#E7A33E;letter-spacing:.12em;font-size:1rem}
.avis-bloc__meta{font-size:.82rem;color:#614A54;letter-spacing:.04em}
.avis-bloc__tete .btn{margin-left:auto}
.avis-piste{
  display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;
  padding:26px 0 8px;margin:0 -6px;scrollbar-width:thin;
}
.avis-piste::-webkit-scrollbar{height:4px}
.avis-piste::-webkit-scrollbar-thumb{background:rgba(30,16,22,.2);border-radius:4px}
.avis{
  flex:0 0 min(320px,82%);scroll-snap-align:start;background:#FDF8F9;border:1px solid rgba(30,16,22,.1);
  border-radius:var(--r);padding:24px;margin:0 6px;display:flex;flex-direction:column;gap:12px;
}
.avis p{font-size:.95rem;line-height:1.6;color:#2E1C24;margin:0;font-style:italic}
.avis__auteur{margin-top:auto;font-size:.8rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#6E4E59}
.avis--vide{align-items:flex-start;justify-content:center;color:#6E4E59;font-style:normal}
.avis-bloc__pied{margin-top:20px;font-size:.8rem;color:#6E4E59}
.avis-bloc__pied a{color:#6E3548}

/* ============================================================
   FAQ
   ============================================================ */
.faq{border-top:1px solid var(--trait-2);margin-top:10px}
.faq details{border-bottom:1px solid var(--trait-2)}
.faq summary{
  list-style:none;cursor:pointer;padding:22px 44px 22px 0;position:relative;
  font-family:var(--f-display);font-size:clamp(1.05rem,1.7vw,1.24rem);color:var(--ivoire);
  transition:color .3s;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--or-pale)}
.faq summary::after{
  content:"";position:absolute;right:6px;top:50%;width:11px;height:11px;margin-top:-7px;
  border-right:1px solid var(--or);border-bottom:1px solid var(--or);
  transform:rotate(45deg);transition:transform .35s;
}
.faq details[open] summary::after{transform:rotate(-135deg);margin-top:-2px}
.faq details p{padding:0 8% 26px 0;color:var(--brume);font-size:.98rem;margin:0}

/* ============================================================
   FORMULAIRE
   ============================================================ */
.form{display:grid;gap:18px}
.champ{display:flex;flex-direction:column;gap:8px}
.champ label{font-size:.72rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--or)}
.champ input,.champ select,.champ textarea{
  font-family:var(--f-corps);font-size:.98rem;color:var(--ivoire);
  background:rgba(46,28,36,.05);border:1px solid var(--trait-2);border-radius:var(--r);
  padding:14px 16px;transition:border-color .3s,background .3s;width:100%;
}
.champ textarea{min-height:130px;resize:vertical}
.champ input:focus,.champ select:focus,.champ textarea:focus{border-color:var(--or);background:rgba(46,28,36,.07);outline:none}
.champ select option{background:var(--encre-2);color:var(--ivoire)}
.form__duo{display:grid;gap:18px}
@media (min-width:640px){.form__duo{grid-template-columns:1fr 1fr}}
.form__legal{font-size:.8rem;color:var(--brume-2)}
.form__legal a{color:var(--or-pale)}
.hp{position:absolute;left:-9999px;opacity:0;height:0;width:0}
.form__erreur{
  margin:0;padding:14px 16px;border-radius:14px;font-size:.92rem;line-height:1.5;
  color:var(--ivoire);background:rgba(176,107,126,.16);border:1px solid rgba(176,107,126,.55);
}
.form button[disabled]{opacity:.7;cursor:progress}

/* ============================================================
   CTA FINAL
   ============================================================ */
.final{position:relative;overflow:hidden;padding-block:clamp(84px,11vw,150px)}
.final__fond{
  position:absolute;inset:0;z-index:0;
  background-image:var(--img-hero),linear-gradient(168deg,#EAD6DA,#FCF6F6 72%);
  background-size:cover;background-position:center 30%;
}
.final__voile{
  position:absolute;inset:0;z-index:1;
  background:radial-gradient(78% 66% at 50% 42%,rgba(252,246,246,.46),rgba(252,246,246,.86) 72%),
             linear-gradient(to top,var(--encre) 2%,rgba(252,246,246,.34) 42%,rgba(252,246,246,.66));
}
.final .wrap{position:relative;z-index:2}
.final__tel{
  margin-top:6px;font-family:var(--f-display);font-size:1.35rem;color:var(--or-pale);
  text-decoration:none;letter-spacing:.04em;display:block;text-align:center;
}

/* ============================================================
   WIDGET « PARLEZ À GRÉGOIRE »
   ============================================================ */
.invite{
  position:fixed;z-index:70;right:22px;bottom:24px;width:min(340px,calc(100vw - 44px));
  background:linear-gradient(168deg,#FFFCFC,#F5E8EA);border:1px solid var(--trait);
  border-radius:var(--r);padding:24px 22px 22px;box-shadow:0 40px 80px -40px rgba(46,28,36,.22);
  opacity:0;visibility:hidden;transform:translateY(18px);transition:opacity .5s,transform .5s,visibility .5s;
}
.invite.est-visible{opacity:1;visibility:visible;transform:none}
.invite__fermer{
  position:absolute;top:8px;right:8px;width:32px;height:32px;border:none;background:none;
  color:var(--brume);font-size:1.15rem;cursor:pointer;line-height:1;border-radius:var(--r);
}
.invite__fermer:hover{color:var(--ivoire)}
.invite__tete{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.invite__nom{font-family:var(--f-display);font-size:1.05rem}
.invite__role{font-family:var(--f-signe);font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;color:var(--or)}
.invite p{font-size:.9rem;color:var(--brume);margin:0 0 16px}
.invite .btn{width:100%}
.invite__note{margin-top:12px;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--brume-2);text-align:center}
@media (max-width:719px){
  .invite{
    right:10px;left:10px;bottom:76px;width:auto;
    display:flex;align-items:center;gap:14px;padding:16px 42px 16px 16px;
  }
  .invite__tete{margin:0;flex:none}
  .invite__tete > span:last-child{display:none}
  .invite__signe{width:44px;height:44px}
  .invite__corps{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:11px}
  .invite p{margin:0;font-size:.85rem;line-height:1.5}
  .invite .btn{width:auto;padding:11px 18px;font-size:.68rem}
  .invite__note{display:none}
}

/* ---------- barre mobile ---------- */
.barre-mobile{
  position:fixed;left:0;right:0;bottom:0;z-index:75;display:grid;grid-template-columns:1.05fr 1.25fr 56px;
  background:rgba(252,246,246,.96);backdrop-filter:blur(14px);border-top:1px solid var(--trait-2);
  padding-bottom:env(safe-area-inset-bottom);
}
.barre-mobile a{
  display:flex;align-items:center;justify-content:center;gap:7px;padding:17px 6px;text-decoration:none;
  font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;
}
.barre-mobile__appel{color:#FDF4F7;background:linear-gradient(135deg,#6E3548,#B06B7E)}
.barre-mobile__form{color:var(--ivoire);border-left:1px solid rgba(46,28,36,.12);font-size:1rem}
.barre-mobile__wa{color:#FFFFFF;background:linear-gradient(135deg,#1FA855,#25D366)}
.barre-mobile__wa .ico-wa{fill:#FFFFFF}
@media (min-width:720px){.barre-mobile{display:none}}
@media (max-width:719px){body{padding-bottom:60px}}

/* ============================================================
   FOOTER
   ============================================================ */
.pied{background:var(--encre-2);border-top:1px solid var(--trait-2);padding-block:clamp(32px,4vw,52px) 22px}
.pied__grid{display:grid;grid-template-columns:1fr 1fr;gap:20px 28px}
@media (min-width:860px){.pied__grid{grid-template-columns:auto auto;justify-content:start;gap:0 96px}}
.pied__signature{
  display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 26px;
  padding-bottom:clamp(18px,2.4vw,26px);margin-bottom:clamp(18px,2.4vw,26px);border-bottom:1px solid var(--trait-2);
}
.pied__signature .pied__nom{font-size:clamp(1.8rem,4.4vw,3rem);line-height:1;letter-spacing:.01em}
.pied__nom{font-family:var(--f-display);font-size:1.5rem;letter-spacing:.04em}
.pied__sous{font-family:var(--f-signe);font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;color:var(--or);margin-top:0}
.pied h4{font-family:var(--f-signe);font-size:.64rem;letter-spacing:.24em;text-transform:uppercase;color:var(--or);margin:0 0 10px;font-weight:400}
.pied ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.pied a{color:var(--brume);text-decoration:none;font-size:.88rem;transition:color .3s}
.pied a:hover{color:var(--ivoire)}
.pied__paiements{display:flex;flex-wrap:wrap;align-items:center;gap:7px}
.pied__paiements svg{
  height:21px;width:auto;color:var(--brume-2);
  opacity:.5;transition:opacity .2s;
}
.pied__paiements svg:hover{opacity:.85}
.pied__bas{
  margin-top:clamp(20px,2.6vw,28px);padding-top:16px;border-top:1px solid var(--trait-2);
  display:flex;flex-wrap:wrap;gap:12px 28px;align-items:center;justify-content:space-between;
  font-size:.73rem;color:var(--brume-2);
}
.pied__mentions{display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px}
.pied__mentions a{font-size:.73rem;color:var(--brume-2)}
@media (max-width:430px){
  .pied__sous{letter-spacing:.16em;font-size:.58rem}
  .pied__paiements{gap:6px}
  .pied__paiements svg{height:17px}
}

/* ============================================================
   PAGES LÉGALES
   ============================================================ */
.doc{padding-top:150px}
.doc h1{margin-bottom:14px}
.doc h2{font-size:clamp(1.25rem,2.2vw,1.6rem);margin:44px 0 14px}
.doc p,.doc li{color:var(--brume);font-size:.98rem}
.doc ul{padding-left:20px;display:grid;gap:8px}
.doc address{font-style:normal;color:var(--ivoire-2);line-height:1.8}
.doc a:not(.btn){color:var(--or-pale)}
.doc__maj{font-size:.82rem;color:var(--brume-2)}



/* ============================================================
   MISE EN PAGE — primitives
   ============================================================ */
.split{display:grid;gap:clamp(34px,5vw,84px)}
@media (min-width:960px){
  .split--4-8{grid-template-columns:4fr 8fr}
  .split--5-7{grid-template-columns:5fr 7fr}
  .split--7-5{grid-template-columns:7fr 5fr}
  .split--6-6{grid-template-columns:1fr 1fr}
  .split--centre{align-items:center}
  .collant{position:sticky;top:118px;align-self:start}
}
.titre-xl{font-size:clamp(2.2rem,5vw,3.9rem);line-height:1.04;text-wrap:balance}
.entete-sec{display:grid;gap:18px 60px;margin-bottom:clamp(38px,5vw,64px);align-items:end}
@media (min-width:960px){.entete-sec{grid-template-columns:1.1fr .9fr}}

/* ---------- HERO : filet + bande de confiance ---------- */
.hero{padding-bottom:0;flex-direction:column;justify-content:flex-end;align-items:stretch}
.hero__in{padding-bottom:clamp(40px,6vw,74px)}
.hero__filet{margin-top:26px;padding-left:22px;border-left:1px solid var(--or);max-width:56ch}
.hero__filet .hero__sous{margin-top:0}
.hero__confiance{
  position:relative;z-index:2;width:100%;
  border-top:1px solid var(--trait-2);
  background:linear-gradient(to top,rgba(252,246,246,.94),rgba(252,246,246,.55));
  backdrop-filter:blur(12px);
}
.hero__confiance-in{display:grid;grid-template-columns:repeat(2,1fr)}
.hero__confiance-in span{
  display:flex;align-items:center;justify-content:center;gap:10px;padding:18px 10px;text-align:center;
  font-size:.72rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--brume);
}
.hero__confiance-in span + span{border-left:1px solid var(--trait-2)}
.hero__confiance-in span:nth-child(3){border-left:none}
.hero__confiance-in i{font-style:normal;font-size:1rem}
@media (max-width:819px){.hero__confiance-in span:nth-child(n+3){border-top:1px solid var(--trait-2)}}
@media (min-width:820px){
  .hero__confiance-in{grid-template-columns:repeat(4,1fr)}
  .hero__confiance-in span:nth-child(3){border-left:1px solid var(--trait-2)}
}

/* ---------- DIAGNOSTIC : lignes ---------- */
.lignes{border-top:1px solid var(--trait-2)}
.ligne{
  position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:22px;
  padding:clamp(22px,3vw,32px) clamp(6px,1.4vw,20px);text-decoration:none;color:inherit;
  border-bottom:1px solid var(--trait-2);overflow:hidden;isolation:isolate;
}
.ligne::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(90deg,rgba(142,74,94,.55),rgba(142,74,94,0));
  transform:scaleX(0);transform-origin:left;transition:transform .55s cubic-bezier(.2,.7,.3,1);
}
.ligne:hover::before,.ligne:focus-visible::before{transform:scaleX(1)}
.ligne__ico{
  width:56px;height:56px;border-radius:50%;display:grid;place-items:center;font-size:1.35rem;
  border:1px solid var(--trait);background:rgba(255,255,255,.75);transition:border-color .4s,transform .4s;
}
.ligne:hover .ligne__ico{border-color:var(--or);transform:scale(1.06)}
.ligne__corps{display:flex;flex-direction:column;gap:6px}
.ligne__titre{font-family:var(--f-display);font-size:clamp(1.2rem,2.1vw,1.6rem);line-height:1.2}
.ligne__cta{font-size:.7rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--or)}
.ligne__fleche{font-size:1.4rem;color:var(--or-pale);transition:transform .4s cubic-bezier(.2,.7,.3,1)}
.ligne:hover .ligne__fleche{transform:translateX(8px)}

/* ---------- AMOUR : image à bord perdu ---------- */
.visuel--plein{aspect-ratio:auto;height:100%;min-height:100%}
.amour__image .visuel{aspect-ratio:4/5;border-left:none;border-radius:0}
.amour__texte{display:flex;flex-direction:column}
@media (min-width:960px){
  .amour{display:block;min-height:760px}
  .amour__image{position:absolute;left:0;top:0;bottom:0;width:44vw}
  .amour__image .visuel{aspect-ratio:auto;height:100%;border:none;border-right:1px solid var(--trait-2)}
  .amour__texte{margin-left:calc(44vw - max(var(--pad),(100vw - var(--max))/2 + var(--pad)) + clamp(40px,5vw,84px))}
}
@media (max-width:959px){.amour__image{margin:calc(-1 * clamp(64px,9vw,124px)) 0 clamp(40px,6vw,60px)}}
.mosaique{list-style:none;padding:0;margin:30px 0 0;display:grid;gap:12px}
@media (min-width:620px){.mosaique{grid-template-columns:1fr 1fr}}
.mosaique li{
  position:relative;padding:22px 22px 22px 24px;border:1px solid var(--trait-2);border-radius:var(--r);
  background:rgba(255,255,255,.7);font-family:var(--f-display);font-size:1.08rem;line-height:1.35;color:var(--ivoire-2);
}
.mosaique li::before{
  content:"";position:absolute;left:0;top:18px;bottom:18px;width:2px;
  background:linear-gradient(var(--or),var(--braise));
}

/* ---------- SERVICES : bento ---------- */
.tuile{
  position:relative;display:flex;flex-direction:column;gap:12px;padding:30px 28px;min-height:380px;
  border:1px solid var(--trait-2);border-radius:var(--r);background:var(--encre-2);overflow:hidden;
  transition:border-color .4s,transform .45s cubic-bezier(.2,.7,.3,1);
}
.tuile:hover{border-color:var(--trait);transform:translateY(-4px)}
.tuile h3{font-size:clamp(1.25rem,1.9vw,1.55rem)}
.tuile p{font-size:.95rem;color:var(--brume);margin:0}
.tuile .lien-or{margin-top:auto;align-self:flex-start;padding-top:6px}
.tuile--phare{
  justify-content:flex-end;padding:clamp(32px,4vw,52px);
  background:
    radial-gradient(90% 70% at 85% 10%,rgba(211,166,95,.2),transparent 60%),
    linear-gradient(160deg,#BA7A8C,var(--bordeaux) 45%,#7A3A4C);
  border-color:rgba(211,166,95,.3);
}
.tuile--phare h3{font-size:clamp(1.9rem,3.6vw,2.9rem);line-height:1.08}
.tuile--phare p{font-size:1.05rem;color:rgba(254,248,249,.85);max-width:36ch}
.tuile--phare .btn{align-self:flex-start;margin-top:14px}
.tuile__marque{
  position:static;margin-bottom:auto;padding-bottom:18px;
  font-family:var(--f-signe);font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--or-pale);
}

/* ---------- RETOUR AFFECTIF : chevauchement ---------- */
.chevauche{display:grid;gap:0}
.chevauche__image .visuel{aspect-ratio:4/3}
.chevauche__carte{
  position:relative;z-index:2;padding:clamp(28px,4vw,52px);
  background:rgba(255,252,252,.86);backdrop-filter:blur(16px);
  border:1px solid var(--trait);border-radius:var(--r);
  margin:-60px clamp(10px,3vw,30px) 0;box-shadow:0 40px 90px -50px rgba(46,28,36,.22);
}
@media (min-width:960px){
  .chevauche{grid-template-columns:repeat(12,1fr);align-items:center}
  .chevauche__image{grid-column:5 / 13;grid-row:1}
  .chevauche__image .visuel{aspect-ratio:auto;height:640px}
  .chevauche__carte{grid-column:1 / 7;grid-row:1;margin:0}
}

/* ---------- MAGIE ROUGE : liste typographique ---------- */
.liste-titre{
  font-family:var(--f-signe);font-size:.78rem;letter-spacing:.3em;text-transform:uppercase;color:var(--or-pale);margin:0 0 8px;
}
.liste-grande{list-style:none;margin:0;padding:0}
.liste-grande li{
  display:flex;align-items:center;gap:20px;padding:clamp(16px,2.2vw,24px) 0;
  border-bottom:1px solid rgba(254,248,249,.26);
  font-family:var(--f-display);font-size:clamp(1.4rem,2.9vw,2.2rem);line-height:1.15;
  transition:padding-left .45s cubic-bezier(.2,.7,.3,1),color .35s;
}
.liste-grande li::before{
  content:"";width:9px;height:9px;flex:none;border-radius:50%;background:var(--or-pale);
  box-shadow:0 0 16px 2px rgba(190,150,80,.45);
}
.liste-grande li:hover{padding-left:14px;color:var(--or-pale)}

/* ---------- SILENCE : plein cadre ---------- */
.silence{
  position:relative;overflow:hidden;min-height:clamp(620px,100svh,920px);
  display:flex;align-items:center;padding-block:clamp(90px,12vw,150px);text-align:center;
}
.silence__fond{position:absolute;inset:0;aspect-ratio:auto;border:none;border-radius:0}
.silence__fond::after{display:none}
.silence__voile{
  position:absolute;inset:0;z-index:1;
  background:radial-gradient(64% 58% at 50% 50%,rgba(252,246,246,.9),rgba(252,246,246,.74) 70%,rgba(252,246,246,.9) 100%),
             linear-gradient(to bottom,var(--encre-2),transparent 24%,transparent 76%,var(--encre-2));
}
.silence__in{position:relative;z-index:2;max-width:860px}
.silence h2{font-size:clamp(2rem,4.8vw,3.6rem);text-wrap:balance}
.silence__vers{margin:34px auto 30px;display:grid;gap:4px}
.silence__vers p{
  margin:0;font-family:var(--f-display);font-style:italic;
  font-size:clamp(1.15rem,2.2vw,1.55rem);color:var(--ivoire-2);
}
.silence .lede{margin-inline:auto}

/* ---------- PROCESSUS : frise verticale ---------- */
.frise__noeud{
  position:relative;z-index:1;width:56px;height:56px;border-radius:50%;display:grid;place-items:center;
  font-family:var(--f-display);font-size:1.1rem;color:var(--brume);
  background:var(--encre-2);border:1px solid var(--trait-2);
  transition:color .6s,border-color .6s,box-shadow .6s,background .6s;
}
.etape-h.est-vu .frise__noeud{
  color:#2E1C24;border-color:var(--or);
  background:linear-gradient(135deg,var(--or),var(--or-pale));
  box-shadow:0 0 0 6px rgba(211,166,95,.1),0 0 30px 4px rgba(211,166,95,.3);
}
/* ---------- À PROPOS : sceau centré ---------- */
.apropos__tete{text-align:center;max-width:760px;margin:0 auto clamp(40px,5vw,64px)}
.apropos__tete .sceau{max-width:260px;margin-bottom:26px}
.apropos__corps{display:grid;gap:clamp(28px,4vw,60px);align-items:start}
@media (min-width:960px){.apropos__corps{grid-template-columns:7fr 5fr}}
.encart{
  padding:clamp(28px,3.4vw,42px);border:1px solid var(--trait);border-radius:var(--r);
  background:linear-gradient(170deg,rgba(142,74,94,.32),rgba(255,252,252,.6));
}
.encart h3{font-size:clamp(1.3rem,2.1vw,1.65rem);margin-bottom:14px}
.encart p{color:var(--brume);margin:0 0 22px}

/* ---------- PURIFICATION : bannière ---------- */
.banniere{position:relative;border-radius:var(--r);overflow:hidden}
.banniere .visuel{aspect-ratio:16/9;border-radius:var(--r)}
@media (min-width:900px){.banniere .visuel{aspect-ratio:21/9}}
.banniere .visuel--rituel .visuel__plan{background-position:50% 56%}
.banniere__titre{position:absolute;left:0;right:0;bottom:0;z-index:3;padding:clamp(22px,4vw,48px)}
.banniere__titre h2{max-width:18ch}
.purif__bas{margin-top:clamp(30px,4vw,48px);align-items:start}
.pastilles{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.pastilles li{
  padding:10px 18px;border:1px solid var(--trait);border-radius:999px;
  font-size:.86rem;color:var(--ivoire-2);background:rgba(169,128,60,.07);
  transition:background .35s,border-color .35s,color .35s;
}
.pastilles li:hover{background:rgba(169,128,60,.16);border-color:var(--or);color:#2E1C24}

/* ---------- AUTRES : panneaux ---------- */
.panneaux{display:grid;gap:16px}
@media (min-width:900px){.panneaux{grid-template-columns:7fr 5fr}}
.panneau{
  display:flex;flex-direction:column;gap:14px;padding:clamp(28px,3.6vw,46px);
  border:1px solid var(--trait-2);border-radius:var(--r);background:var(--encre-2);
}
.panneau p{color:var(--brume);margin:0}
.panneau .btn{align-self:flex-start;margin-top:8px}
.panneau--grand{border-color:var(--trait)}
.panneau--grand h2{font-size:clamp(1.8rem,3.4vw,2.6rem)}

/* ---------- FAQ ---------- */
#faq .faq{margin-top:0}
#faq .collant .lien-or{display:inline-block}

/* ---------- CONTACT : canaux empilés + formulaire encadré ---------- */
.canaux{display:grid;gap:12px;margin-top:30px}
.canal{
  position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;
  padding:20px 22px;text-decoration:none;color:inherit;overflow:hidden;
  border:1px solid var(--trait-2);border-radius:var(--r);background:rgba(255,252,252,.7);
  transition:border-color .4s,transform .4s cubic-bezier(.2,.7,.3,1),background .4s;
}
.canal:hover{border-color:var(--trait);transform:translateX(6px);background:rgba(253,244,247,.9)}
.canal__ico{font-size:1.4rem;line-height:1}
.canal__corps{display:flex;flex-direction:column;gap:2px}
.canal__titre{font-family:var(--f-display);font-size:1.3rem;line-height:1.2}
.canal__num{font-family:var(--f-corps);font-size:.74rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--or)}
.canal__note{font-size:.88rem;color:var(--brume);margin-top:4px}
.canal__fleche{color:var(--or-pale);font-size:1.2rem;transition:transform .35s}
.canal:hover .canal__fleche{transform:translateX(5px)}
.canal--fort{border-color:var(--trait);background:linear-gradient(120deg,rgba(142,74,94,.55),rgba(255,252,252,.8))}
.canal--fort .canal__titre{color:var(--or-pale)}
.contact__mail{margin-top:22px;font-size:.92rem}
.contact__mail a{color:var(--brume);text-decoration:none;border-bottom:1px solid var(--trait-2)}
.contact__mail a:hover{color:var(--ivoire)}
.formulaire{
  padding:clamp(26px,4vw,50px);border:1px solid var(--trait);border-radius:var(--r);
  background:linear-gradient(170deg,rgba(253,244,247,.92),rgba(252,246,246,.9));
  box-shadow:0 50px 100px -60px rgba(46,28,36,.22);
}
.formulaire h3{font-size:clamp(1.5rem,2.6vw,2rem)}
.formulaire__intro{color:var(--brume);margin:12px 0 26px;font-size:.96rem}

/* ---------- CTA FINAL : actions empilées ---------- */
.final__actions{display:grid;gap:12px}
.final__actions .btn{width:100%}


/* ============================================================
   SLIDERS LATÉRAUX
   ============================================================ */
.slider{position:relative}
.slider__piste{
  --gouttiere:max(var(--pad),calc((100vw - var(--max)) / 2 + var(--pad)));
  display:flex;gap:clamp(14px,1.6vw,22px);margin:0;list-style:none;
  overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;
  scroll-snap-type:x mandatory;scroll-padding-inline:var(--gouttiere);
  padding:8px var(--gouttiere) 12px;
  scrollbar-width:none;cursor:grab;
}
.slider__piste::-webkit-scrollbar{display:none}
.slider__piste.est-glisse{scroll-snap-type:none;cursor:grabbing;user-select:none}
.slider__piste.est-glisse a{pointer-events:none}
.slider__piste:focus-visible{outline:1px solid var(--or);outline-offset:-1px}
.slide{flex:0 0 clamp(270px,30vw,390px);scroll-snap-align:start}

.slider__nav{display:flex;align-items:center;gap:18px;margin-top:clamp(20px,3vw,32px)}
.slider__btn{
  flex:none;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;
  border:1px solid var(--trait);background:transparent;color:var(--or-pale);
  font-size:1.15rem;line-height:1;cursor:pointer;
  transition:background .35s,color .35s,border-color .35s,opacity .35s,transform .35s;
}
.slider__btn:hover:not(:disabled){background:var(--or);border-color:var(--or);color:#2E1C24}
.slider__btn[data-prev]:hover:not(:disabled){transform:translateX(-3px)}
.slider__btn[data-next]:hover:not(:disabled){transform:translateX(3px)}
.slider__btn:disabled{opacity:.28;cursor:default}
.slider__barre{flex:1;height:1px;background:var(--trait-2);position:relative}
.slider__barre span{
  position:absolute;left:0;top:-1px;height:3px;width:30%;border-radius:3px;
  background:linear-gradient(90deg,var(--or),var(--braise));transition:transform .12s linear,width .3s;
}
.slider__nav--clair .slider__btn{border-color:rgba(30,16,22,.2);color:#6E3548}
.slider__nav--clair .slider__btn:hover:not(:disabled){background:#6E3548;border-color:#6E3548;color:var(--ivoire)}
.slider__nav--clair .slider__barre{background:rgba(30,16,22,.14)}
.slider__nav--clair .slider__barre span{background:linear-gradient(90deg,#6E3548,var(--or))}
.slider__piste--interne{gap:0;padding:26px 0 8px;scroll-padding-inline:0}

/* services */
.slider--services .slide{flex-basis:clamp(270px,27vw,360px)}
.slider--services .tuile--phare{flex-basis:clamp(300px,44vw,600px)}

/* récits après séparation */
.recit{
  flex-basis:clamp(290px,42vw,540px);padding:clamp(28px,3.4vw,44px);
  border:1px solid var(--trait-2);border-radius:var(--r);background:var(--encre-3);
}
.recit h3{font-size:clamp(1.35rem,2.2vw,1.8rem);margin-bottom:14px}
.recit h3::before{content:"";display:block;width:34px;height:1px;background:var(--or);margin-bottom:20px}
.recit p{color:var(--brume);margin:0;font-size:1.02rem}

/* étapes horizontales */
.etape-h{position:relative;flex-basis:clamp(260px,29vw,380px);padding:0 10px 6px 0}
.etape-h::before{
  content:"";position:absolute;top:28px;left:56px;right:calc(-1 * clamp(14px,1.6vw,22px));height:1px;
  background:linear-gradient(90deg,var(--or),rgba(176,107,126,.5));opacity:.5;
}
.etape-h:last-child::before{display:none}
.etape-h h3{font-size:clamp(1.2rem,2vw,1.5rem);margin:26px 0 10px}
.etape-h p{color:var(--brume);margin:0}

/* protection */
.registre-carte{
  flex-basis:clamp(290px,40vw,520px);display:flex;flex-direction:column;gap:14px;
  padding:clamp(28px,3.4vw,44px);border:1px solid var(--trait);border-radius:var(--r);
  background:linear-gradient(165deg,rgba(142,74,94,.3),rgba(255,252,252,.85));
}
.registre-carte h3{font-size:clamp(1.3rem,2.1vw,1.7rem)}
.registre-carte p{color:var(--brume);margin:0}
.registre-carte .lien-or{margin-top:auto;align-self:flex-start}

/* ============================================================
   APPARITIONS LATÉRALES
   ============================================================ */
.split > :last-child,
.amour__texte,
.chevauche__image,
.panneaux > :last-child,
.slider{--rx:60px}
.silence,.apropos__tete{--rx:0px;--ry:26px}

/* ============================================================
   SCEAU ANIMÉ — remplace le portrait, deux points qui se croisent
   ============================================================ */
.sceau{
  position:relative;aspect-ratio:1;width:100%;max-width:420px;margin-inline:auto;
  display:grid;place-items:center;border-radius:50%;
  background:radial-gradient(circle at 50% 46%,rgba(142,74,94,.4),rgba(252,246,246,.2) 58%,transparent 72%);
}
.sceau__anneau{
  position:absolute;border-radius:50%;border:1px solid rgba(169,128,60,.5);
  animation:sceauTourne 46s linear infinite;
}
.sceau__anneau::after{
  content:"";position:absolute;top:-4px;left:50%;width:7px;height:7px;margin-left:-3.5px;
  border-radius:50%;background:var(--or-pale);
  box-shadow:0 0 0 4px rgba(211,166,95,.12),0 0 20px 4px rgba(211,166,95,.6);
}
.sceau__anneau--a{inset:6%}
.sceau__anneau--b{
  inset:19%;border-color:rgba(142,74,94,.6);
  animation-duration:31s;animation-direction:reverse;
}
.sceau__anneau--b::after{background:var(--braise);box-shadow:0 0 0 4px rgba(176,107,126,.14),0 0 20px 4px rgba(176,107,126,.6)}
.sceau__halo{
  position:absolute;inset:34%;border-radius:50%;
  background:radial-gradient(circle,rgba(190,150,80,.5),transparent 68%);
  animation:sceauSouffle 7s ease-in-out infinite;
}
.sceau__mono{
  position:relative;z-index:2;font-family:var(--f-display);
  font-size:clamp(2.4rem,5vw,3.6rem);letter-spacing:.08em;color:#7A3A4C;
  text-shadow:0 2px 26px rgba(252,246,246,.9);
}
.sceau__legende{
  margin:22px 0 0;text-align:center;
  font-family:var(--f-signe);font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;color:var(--or);
}
@keyframes sceauTourne{to{transform:rotate(360deg)}}
@keyframes sceauSouffle{0%,100%{opacity:.5;transform:scale(.94)}50%{opacity:1;transform:scale(1.08)}}
@keyframes heroRespire{from{transform:scale(1.02)}to{transform:scale(1.09)}}

/* signe animé du widget (à la place de la photo) */
.invite__signe{position:relative;width:56px;height:56px;flex:none;display:grid;place-items:center}
.invite__signe i{
  position:absolute;inset:0;border-radius:50%;border:1px solid var(--trait);
  animation:signeOnde 3.4s ease-out infinite;
}
.invite__signe i:last-of-type{animation-delay:1.7s}
.invite__signe b{
  width:9px;height:9px;border-radius:50%;background:var(--or-pale);
  box-shadow:0 0 0 5px rgba(211,166,95,.12),0 0 22px 5px rgba(211,166,95,.55);
}
@keyframes signeOnde{
  0%{transform:scale(.42);opacity:0}
  25%{opacity:1}
  100%{transform:scale(1);opacity:0}
}

/* ============================================================
   RÉVÉLATIONS AU SCROLL
   ============================================================ */
.rev{opacity:0;transform:translate3d(var(--rx,-48px),var(--ry,0px),0);transition:opacity .9s cubic-bezier(.2,.7,.3,1),transform 1s cubic-bezier(.16,.8,.24,1)}
.rev.est-vu{opacity:1;transform:none}
/* cartes des sliders : fondu sans déplacement (un déplacement ferait ré-aimanter la piste) */
.rev-o{opacity:0;transition:opacity .9s cubic-bezier(.2,.7,.3,1)}
.rev-o.est-vu{opacity:1}
.rev-d1{transition-delay:.08s}.rev-d2{transition-delay:.16s}.rev-d3{transition-delay:.24s}

@media (prefers-reduced-motion:reduce){
  .rev{opacity:1;transform:none;transition:none}
  .rev-o{opacity:1;transition:none}
  .hero__halo,.reconnexion__arc{transition:none}
  .hero__halo--a{transform:translateX(90px)}
  .hero__halo--b{transform:translateX(-90px)}
  .reconnexion__mot{opacity:1}
  .sceau__anneau,.sceau__halo,.invite__signe i,.hero__fond{animation:none}
  .visuel__plan{transform:none}
  .btn:hover,.tuile:hover,.canal:hover,.slider__btn:hover:not(:disabled){transform:none}
  .slider__barre span{transition:none}
  .ligne::before,.liste-grande li{transition:none}
  .frise__noeud{transition:none}
}

/* ============================================================
   DIRECTION ARTISTIQUE « LETTRE & ARCHE »
   Gloock (titres) · Instrument Serif italique (accents) ·
   Hanken Grotesk (texte) · DM Mono (étiquettes, boutons, chiffres)
   Visuels en fenêtres d'arche · cartes à liseré lumineux · grain
   ============================================================ */

/* ---------- grain de papier ---------- */
body::after{
  content:"";position:fixed;inset:0;z-index:300;pointer-events:none;opacity:.05;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23g)'/%3E%3C/svg%3E");
}

/* ---------- typographie ---------- */
body{font-size:17px;font-weight:300;line-height:1.72;letter-spacing:0}
h1,h2,h3{font-family:var(--f-display);font-weight:400}
h1{font-size:clamp(2.5rem,5.8vw,4.6rem);line-height:1.02;letter-spacing:-.022em}
h2{font-size:clamp(2rem,4.1vw,3.25rem);line-height:1.06;letter-spacing:-.018em}
h3{letter-spacing:-.01em}
.titre-xl{font-size:clamp(2.4rem,5.4vw,4.3rem);line-height:1.02}
h1 em,h2 em,.pied__nom em{
  font-family:var(--f-accent);font-style:italic;font-weight:400;
  color:var(--or-pale);letter-spacing:-.01em;font-size:1.08em;line-height:.9;
}
.hero h1 em{display:inline}
.lede{font-weight:300;line-height:1.75}

.eyebrow{
  font-family:var(--f-signe);font-size:.7rem;font-weight:500;letter-spacing:.16em;
  color:var(--or);gap:12px;
}
.eyebrow::before{content:"";width:22px;height:1px;background:var(--or);flex:none}
.eyebrow::after{display:none}
.centre .eyebrow,.eyebrow.centre{justify-content:center}

.signature-emo,.silence__vers p,.mosaique li,.faq summary{font-family:var(--f-accent)}
.signature-emo{font-size:clamp(1.25rem,2vw,1.55rem)}
.silence__vers p{font-size:clamp(1.35rem,2.6vw,1.9rem);line-height:1.35}
.mosaique li{font-style:italic;font-size:1.28rem;line-height:1.3}
.faq summary{font-size:clamp(1.25rem,2vw,1.55rem);letter-spacing:-.005em}
.liste-grande li{font-family:var(--f-accent);font-size:clamp(1.7rem,3.3vw,2.6rem)}
.liste-grande li:nth-child(even){font-style:italic}

.reconnexion__mot{
  font-family:var(--f-accent);font-style:italic;text-transform:none;
  font-size:clamp(1.6rem,3.4vw,2.5rem);letter-spacing:.02em;text-indent:0;
}
.visuel__legende,.tuile__marque,.liste-titre,.sceau__legende,.hero__micro,.pied__sous,
.invite__role,.marque__sous,.canal__num,.ligne__cta,.hero__confiance-in span,.avis__auteur{
  font-family:var(--f-signe);letter-spacing:.12em;font-weight:500;
}
.hero__micro{font-size:.7rem}
.marque__nom{font-family:var(--f-display);letter-spacing:.01em;font-size:1.22rem}
.marque__sous{font-size:.56rem}
.nav a{font-family:var(--f-signe);font-size:.68rem;letter-spacing:.1em}
.frise__noeud{font-family:var(--f-signe);font-size:.9rem}
.champ label{font-family:var(--f-signe);font-weight:500;letter-spacing:.1em;font-size:.68rem}
.barre-mobile a{font-family:var(--f-signe);letter-spacing:.06em}
.lien-or{font-family:var(--f-signe);font-weight:500;letter-spacing:.1em;font-size:.72rem}
.pied__signature .pied__nom{font-size:clamp(2rem,4.8vw,3.3rem);letter-spacing:-.02em}
.sceau__mono{font-family:var(--f-accent);font-style:italic;letter-spacing:.02em}

/* ---------- boutons en pilule ---------- */
.btn{
  border-radius:999px;font-family:var(--f-signe);font-weight:500;
  font-size:.74rem;letter-spacing:.1em;padding:16px 28px;
}
.btn--large{padding:19px 34px}
.slider__btn{font-family:var(--f-signe)}

/* ---------- cartes à liseré lumineux ---------- */
.tuile,.recit,.registre-carte,.panneau,.encart,.formulaire,.canal,.chevauche__carte,.mosaique li,.avis-bloc,.avis{
  border-radius:var(--r-carte);
}
.recit,.registre-carte,.panneau,.encart,.formulaire{position:relative}
.tuile,.recit,.registre-carte,.panneau,.encart,.formulaire,.canal,.chevauche__carte{border-color:transparent}
.tuile::after,.recit::after,.registre-carte::after,.panneau::after,.encart::after,
.formulaire::after,.canal::after,.chevauche__carte::after{
  content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;z-index:0;
  background:linear-gradient(145deg,rgba(190,150,80,.6),rgba(190,150,80,.06) 34%,rgba(176,107,126,.04) 64%,rgba(176,107,126,.55));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;
  opacity:.65;transition:opacity .45s;
}
.tuile:hover::after,.recit:hover::after,.registre-carte:hover::after,.panneau:hover::after,
.canal:hover::after,.encart:hover::after{opacity:1}
.tuile > *,.recit > *,.registre-carte > *,.panneau > *,.encart > *,.formulaire > *{position:relative;z-index:1}
.tuile:not(.tuile--phare),.recit,.registre-carte,.panneau{
  background:
    radial-gradient(120% 70% at 0% 0%,rgba(190,150,80,.07),transparent 55%),
    linear-gradient(170deg,var(--encre-3),var(--encre-2));
}
.tuile--phare{border-radius:var(--r-carte) var(--r-carte) var(--r-carte) 120px}
.mosaique li{border-color:rgba(190,150,80,.14)}
.champ input,.champ select,.champ textarea{border-radius:14px}
.ligne__ico{box-shadow:inset 0 0 18px rgba(190,150,80,.08)}

/* ---------- fenêtres d'arche ---------- */
.chevauche__image .visuel{
  border-radius:50% 50% var(--r-carte) var(--r-carte) / 32% 32% var(--r-carte) var(--r-carte);
  border:none;
}
.banniere,.banniere .visuel{border-radius:50% 50% var(--r-carte) var(--r-carte) / 58% 58% var(--r-carte) var(--r-carte)}
.banniere .visuel{border:none}
.amour__image .visuel{border-radius:0 0 50% 50% / 0 0 18% 18%}
@media (min-width:960px){
  .amour__image .visuel{border-radius:0 46% 46% 0 / 0 34% 34% 0;border-right:none}
}
.apropos__tete .sceau{filter:drop-shadow(0 0 40px rgba(176,107,126,.18))}

/* grande arche dorée qui encadre le couple dans le hero */
@media (min-width:1100px){
  .hero::after{
    content:"";position:absolute;z-index:1;pointer-events:none;
    right:max(4vw,calc((100vw - var(--max)) / 2));top:110px;bottom:84px;width:min(33vw,460px);
    border:1px solid rgba(190,150,80,.3);border-bottom:none;
    border-radius:50% 50% 0 0 / 30% 30% 0 0;
    box-shadow:inset 0 0 80px rgba(190,150,80,.05);
  }
}

/* ---------- bandeau terre cuite : textes clairs ---------- */
.sec--bordeaux{color:#FEF8F9}
.sec--bordeaux h2,.sec--bordeaux h3{color:#FDF4F7}
.sec--bordeaux h2 em{color:#FBE4BC}
.sec--bordeaux .lede,.sec--bordeaux p{color:rgba(254,248,249,.84)}
.sec--bordeaux .eyebrow,.sec--bordeaux .liste-titre{color:#F4DDB2}
.sec--bordeaux .eyebrow::before{background:#F4DDB2}
.sec--bordeaux .liste-grande li{color:#FEF8F9}
.sec--bordeaux .liste-grande li::before{background:#F4DDB2;box-shadow:0 0 14px 2px rgba(244,221,178,.4)}
.sec--bordeaux .liste-grande li:hover{color:#FDF4F7}

/* ---------- tuile phare : texte clair sur terre cuite ---------- */
.tuile--phare{color:#FEF8F9}
.tuile--phare h3{color:#FDF4F7}
.tuile--phare p{color:rgba(254,248,249,.85)}
.tuile--phare .tuile__marque{color:#F4DDB2}

/* ---------- lisibilité des légendes sur photos claires ---------- */
.visuel__legende{
  color:#2E1C24;background:rgba(252,246,246,.84);
  padding:8px 15px;border-radius:999px;left:18px;right:auto;display:inline-block;
  backdrop-filter:blur(4px);
}
.hero__halo{opacity:.4}

/* ============================================================
   CONVERSIONS PRINCIPALES — WhatsApp & appel direct
   ============================================================ */
.btn--wa{
  background:linear-gradient(135deg,#1EA952,#25D366);color:#08331B;
  box-shadow:0 12px 32px -14px rgba(37,211,102,.85);
}
.btn--wa:hover{box-shadow:0 18px 40px -14px rgba(37,211,102,1)}
.btn--wa .ico-wa{fill:#08331B}
.btn--appel{
  background:linear-gradient(135deg,#6E3548,#B06B7E);color:#FDF4F7;
  box-shadow:0 12px 32px -16px rgba(110,53,72,.9);
}
.btn--appel:hover{box-shadow:0 18px 40px -16px rgba(110,53,72,1)}
.btn--xl{padding:21px 40px;font-size:.78rem}
.ico-tel{font-size:1.05em;line-height:1}
.btn-row--primaire{gap:16px}
.cta-secondaire{margin:16px 0 0;font-size:.95rem}
.cta-secondaire a{color:var(--brume);text-underline-offset:4px}
.cta-secondaire a:hover{color:var(--ivoire)}
.final__actions .cta-secondaire{text-align:center}
.entete .btn--appel,.entete .btn--wa{padding:13px 20px;font-size:.68rem}
.invite__appel{width:100%;margin-top:10px}

/* duo flottant sur ordinateur : toujours à portée de clic */
.duo-flottant{
  position:fixed;right:20px;top:50%;transform:translateY(-50%);z-index:70;
  display:none;flex-direction:column;gap:12px;
}
@media (min-width:1024px){.duo-flottant{display:flex}}
.duo-flottant__btn{
  display:flex;align-items:center;gap:0;overflow:hidden;
  height:58px;width:58px;padding:0 17px;border-radius:999px;text-decoration:none;
  box-shadow:0 14px 34px -16px rgba(46,28,36,.6);
  transition:width .45s cubic-bezier(.2,.7,.3,1),gap .45s,box-shadow .35s,transform .35s;
}
.duo-flottant__btn:hover{width:186px;gap:12px;transform:translateX(-4px)}
.duo-flottant__txt{
  white-space:nowrap;font-family:var(--f-signe);font-size:.72rem;font-weight:500;
  letter-spacing:.1em;text-transform:uppercase;
}
.duo-flottant__btn--wa{background:linear-gradient(135deg,#1EA952,#25D366);color:#08331B}
.duo-flottant__btn--wa .ico-wa{width:1.5em;height:1.5em;fill:#08331B}
.duo-flottant__btn--tel{background:linear-gradient(135deg,#6E3548,#B06B7E);color:#FDF4F7}
.duo-flottant__btn--tel .ico-tel{font-size:1.35em}
@media (prefers-reduced-motion:reduce){
  .duo-flottant__btn,.duo-flottant__btn:hover{transition:none}
  .duo-flottant__btn:hover{transform:none}
}

/* la carte WhatsApp de la section contact prend le dessus */
.canal--fort{
  background:linear-gradient(120deg,rgba(37,211,102,.14),rgba(255,252,252,.9));
  border-color:rgba(37,211,102,.45);
}
.canal--fort .canal__titre{color:#14532D}
.canal--fort .canal__num{color:#1E7A43}

