/* ============================================================
   SYSTEME — Maison Madame Sophie
   Didone + sans large, noir chaud & or, rythme éditorial
   ============================================================ */
:root{
  --noir:#15120D;       /* noir chaud profond */
  --noir-2:#1B1711;     /* alterné */
  --obsidian:#0B0906;   /* le plus profond */
  --gold:#D1A237;       /* or — unique accent */
  --gold-lite:#EBCD82;  /* or clair pour reflets */
  --ivory:#ECE3D1;      /* texte clair chaud */
  --stone:#948C7A;      /* texte secondaire */
  --parchment:#EAE0C9;  /* chapitre clair (héritage) */
  --ink:#221C13;        /* texte sur parchemin */

  --didone:"Bodoni Moda", Georgia, serif;
  --ui:"Jost", system-ui, sans-serif;
  --script:"Great Vibes", cursive;

  --ease:cubic-bezier(0.19,1,0.22,1);
  --maxw:1440px;

  /* Échelle typographique (claire & cohérente — rendu luxe) */
  --fs-display:clamp(2.8rem,6vw,6rem);   /* héros & appel final */
  --fs-h2:clamp(2rem,4vw,3.4rem);        /* TOUS les titres de section */
  --fs-h3:clamp(1.6rem,2.3vw,2.2rem);    /* sous-titres : pôles, journal, ville */
  --fs-script:clamp(1.7rem,2.3vw,2.2rem);/* libellés Great Vibes */
  --tracking-label:.32em;                /* libellés en capitales */
}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
body{
  font-family:var(--ui);
  background:var(--noir);
  color:var(--ivory);
  font-weight:300;line-height:1.7;
  overflow-x:hidden;
}
img{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
::selection{background:var(--gold);color:var(--noir);}

/* ---- Veil de grain (matière) ---- */
.grain{position:fixed;inset:0;z-index:300;pointer-events:none;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");}

/* ---- Typographie d'appui ---- */
.label{font-family:var(--ui);font-weight:400;font-size:.66rem;letter-spacing:.42em;text-transform:uppercase;color:var(--gold);}
.script{font-family:var(--script);color:var(--gold);line-height:1;}
.didone{font-family:var(--didone);font-weight:400;line-height:1.0;letter-spacing:-0.005em;}
.lead{color:#c8c0ad;font-weight:300;}
.hair{height:1px;background:linear-gradient(90deg,var(--gold),transparent);border:0;width:90px;}

.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:clamp(22px,5.2vw,80px);}
.chapter{padding-block:clamp(110px,16vw,230px);position:relative;}

/* ---- Sceau / monogramme ---- */
.seal{width:74px;height:74px;border-radius:50%;border:1px solid rgba(209,162,55,.5);
  display:grid;place-items:center;position:relative;flex:none;}
.seal::before{content:"";position:absolute;inset:6px;border-radius:50%;border:1px solid rgba(209,162,55,.22);}
.seal span{font-family:var(--didone);font-weight:500;font-size:1.5rem;color:var(--gold);letter-spacing:.02em;}
.seal img{width:58%;height:auto;}
/* Logo officiel (monogramme Madame Sophie) */
.brand-logo{height:38px;width:auto;display:block;}

/* ---- Liens à soulignement animé ---- */
.uline{position:relative;display:inline-flex;align-items:center;gap:.7em;color:var(--gold);
  font-size:.74rem;letter-spacing:.26em;text-transform:uppercase;font-weight:400;padding-bottom:.5em;}
.uline::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:var(--gold);
  transform:scaleX(0);transform-origin:right;transition:transform .6s var(--ease);}
.uline:hover::after{transform:scaleX(1);transform-origin:left;}
.uline .ar{transition:transform .5s var(--ease);}
.uline:hover .ar{transform:translateX(5px);}

/* ---- Bouton magnétique ---- */
.cta{position:relative;display:inline-flex;align-items:center;gap:1em;
  font-family:var(--ui);font-weight:400;font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;
  color:var(--noir);background:var(--gold);padding:1.25em 2.4em;overflow:hidden;will-change:transform;}
.cta span{position:relative;z-index:2;transition:color .5s var(--ease);}
.cta::before{content:"";position:absolute;inset:0;background:var(--ivory);transform:translateY(101%);transition:transform .55s var(--ease);z-index:1;}
.cta:hover::before{transform:translateY(0);}
.cta.is-ghost{background:transparent;color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold);}
.cta.is-ghost span{color:var(--gold);}
.cta.is-ghost::before{background:var(--gold);}
.cta.is-ghost:hover span{color:var(--noir);}

/* ============================================================
   NAVIGATION
   ============================================================ */
.nav{position:fixed;inset:0 0 auto 0;z-index:90;display:flex;align-items:center;justify-content:space-between;
  padding:22px clamp(22px,5.2vw,80px);transition:background .6s var(--ease),padding .6s var(--ease),border-color .6s var(--ease);
  border-bottom:1px solid transparent;}
.nav.solid{background:rgba(11,9,6,.72);backdrop-filter:blur(18px);padding-block:14px;border-bottom-color:rgba(209,162,55,.14);}
.nav__brand{display:flex;align-items:center;gap:14px;}
.nav__brand .m{font-family:var(--didone);font-weight:600;color:var(--gold);font-size:1.3rem;letter-spacing:.04em;border:1px solid rgba(209,162,55,.45);width:38px;height:38px;display:grid;place-items:center;border-radius:50%;}
.nav__brand .n{font-family:var(--script);color:var(--ivory);font-size:1.5rem;line-height:1;}
.nav__links{display:flex;gap:clamp(20px,2vw,32px);}
.nav__links a{font-size:.66rem;letter-spacing:.28em;text-transform:uppercase;color:var(--ivory);position:relative;padding:6px 0;transition:color .4s var(--ease);}
.nav__links a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--gold);transition:width .45s var(--ease);}
.nav__links a:hover{color:var(--gold);}
.nav__links a:hover::after{width:100%;}
.nav__act{font-size:.64rem;letter-spacing:.26em;text-transform:uppercase;color:var(--noir);background:var(--gold);padding:.85em 1.6em;transition:background .4s var(--ease),color .4s var(--ease);}
.nav__act:hover{background:var(--ivory);}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:6px;}
.burger span{width:26px;height:1.5px;background:var(--gold);transition:.3s;}
.drawer{position:fixed;inset:0;z-index:89;background:var(--obsidian);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;transform:translateY(-100%);visibility:hidden;transition:transform .6s var(--ease),visibility 0s linear .6s;}
.drawer.open{transform:translateY(0);visibility:visible;transition:transform .6s var(--ease),visibility 0s;}
.drawer a{font-family:var(--didone);font-style:italic;font-size:2.1rem;color:var(--ivory);padding:.3em;}
.drawer a:hover{color:var(--gold);}

/* ============================================================
   HERO — image plein écran (full-bleed)
   ============================================================ */
/* Marge intérieure du cadre : tout le contenu reste DANS le filet doré */
.hero{--hi-top:clamp(78px,10vh,100px);--hi:clamp(18px,2.2vw,30px);
  position:relative;min-height:100dvh;overflow:hidden;display:flex;align-items:flex-start;background:var(--obsidian);}
.hero__bg{position:absolute;top:var(--hi-top);left:var(--hi);right:var(--hi);bottom:var(--hi);z-index:0;overflow:hidden;clip-path:inset(0 0 0 0);}
.hero__bg img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center 14%;transform:scale(1.06);will-change:transform,clip-path;}
.hero__bg::after{content:"";position:absolute;inset:0;background:
  linear-gradient(90deg, rgba(8,7,4,.92) 0%, rgba(8,7,4,.6) 32%, rgba(8,7,4,.12) 60%, rgba(8,7,4,.42) 100%),
  linear-gradient(180deg, rgba(8,7,4,.55) 0%, transparent 20%, transparent 56%, rgba(8,7,4,.86) 100%);}
.hero__frame{position:absolute;top:var(--hi-top);left:var(--hi);right:var(--hi);bottom:var(--hi);z-index:2;pointer-events:none;border:1px solid rgba(209,162,55,.45);}
.hero__content{position:relative;z-index:3;width:100%;max-width:var(--maxw);margin-inline:auto;padding:clamp(132px,20vh,210px) clamp(44px,6vw,104px) clamp(56px,9vh,104px);}
.hero__meta{display:flex;align-items:center;gap:18px;margin-bottom:clamp(26px,5vh,52px);}
.hero__meta .line{height:1px;width:54px;background:rgba(209,162,55,.5);}
.hero h1{font-family:var(--didone);font-weight:400;font-size:clamp(2.8rem,6.6vw,6.4rem);line-height:.96;letter-spacing:-0.01em;text-shadow:0 6px 44px rgba(0,0,0,.45);}
.hero h1 .it{font-style:italic;font-weight:400;color:var(--gold);}
.hero__sub{margin:clamp(26px,4vh,42px) 0 clamp(32px,5vh,50px);max-width:40ch;color:#dbd4c2;font-size:1.04rem;line-height:1.85;opacity:0;text-shadow:0 2px 22px rgba(0,0,0,.55);}
.hero__cta{opacity:0;}
.hero__stamp{position:absolute;right:clamp(36px,5vw,76px);bottom:clamp(46px,8vh,76px);width:clamp(50px,6.5vw,86px);height:auto;z-index:3;opacity:0;filter:drop-shadow(0 6px 20px rgba(0,0,0,.55));}

/* ============================================================
   FILET DE VALEURS (statique, couture)
   ============================================================ */
.creed{border-block:1px solid rgba(148,140,122,.2);background:var(--noir-2);overflow:hidden;
  padding-block:clamp(22px,3.6vw,42px);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);}
.creed__track{display:flex;width:max-content;animation:creed 30s linear infinite;will-change:transform;}
.creed:hover .creed__track{animation-play-state:paused;}
.creed__set{display:flex;align-items:center;gap:clamp(30px,4.2vw,66px);padding-right:clamp(30px,4.2vw,66px);flex:none;}
.creed__set span{font-family:var(--didone);font-style:italic;font-size:clamp(1.3rem,2.7vw,2.1rem);color:var(--ivory);white-space:nowrap;transition:color .4s var(--ease);}
.creed__set span:hover{color:var(--gold);}
.creed__set i{width:6px;height:6px;background:var(--gold);transform:rotate(45deg);flex:none;}
@keyframes creed{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ============================================================
   LA MAISON — manifeste
   ============================================================ */
.maison{background:var(--noir);}
.maison__grid{display:grid;grid-template-columns:0.4fr 1fr;gap:clamp(30px,5vw,80px);align-items:start;}
.maison__aside{position:sticky;top:120px;}
.maison__aside .script{font-size:var(--fs-script);display:block;margin-bottom:18px;}
.maison__aside .label{display:block;}
.maison h2{font-family:var(--didone);font-weight:400;font-size:var(--fs-h2);line-height:1.18;letter-spacing:-0.01em;}
.maison h2 .it{font-style:italic;color:var(--gold);}
.maison h2 .drop{font-size:1.3em;color:var(--gold);font-style:italic;}
.maison__more{margin-top:48px;}

/* ============================================================
   LA COLLECTION — pôles en chapitres
   ============================================================ */
.coll{background:var(--noir-2);}
.coll__head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:clamp(50px,7vw,90px);flex-wrap:wrap;}
.coll__head h2{font-family:var(--didone);font-weight:400;font-size:var(--fs-h2);line-height:1.04;}
.coll__head h2 .it{font-style:italic;color:var(--gold);}
.coll__head p{max-width:30ch;color:var(--stone);font-size:.95rem;}

.piece{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,100px);align-items:center;padding-block:clamp(48px,7vw,90px);border-top:1px solid rgba(148,140,122,.16);}
.piece:first-of-type{border-top:0;}
.piece--rev .piece__media{order:2;}
.piece__media{position:relative;aspect-ratio:5/6;overflow:hidden;cursor:pointer;}
.piece__media .ri{position:absolute;inset:0;overflow:hidden;clip-path:inset(0 0 100% 0);}
.piece__media .ri img{width:100%;height:100%;object-fit:cover;transform:scale(1.18);will-change:transform;transition:transform 1.2s var(--ease);}
.piece:hover .ri img,.piece__media:hover .ri img{transform:scale(1.05);}
/* Lignage doré autour de chaque image (comme le héros) */
.piece__media::after{content:"";position:absolute;inset:14px;border:1px solid rgba(209,162,55,.42);z-index:4;pointer-events:none;transition:border-color .5s var(--ease),inset .5s var(--ease);}
.piece__media:hover::after{border-color:var(--gold);}
/* Visuel temporaire (pôle Porteuse de projets) */
.piece__ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;overflow:hidden;
  background:radial-gradient(120% 120% at 50% 28%,#251d11 0%,#17130c 60%,#0e0b07 100%);}
.piece__ph::before{content:"";position:absolute;inset:0;opacity:.06;background-image:repeating-linear-gradient(45deg,var(--gold) 0 1px,transparent 1px 14px);}
.piece__ph svg{position:relative;width:clamp(64px,9vw,90px);height:auto;opacity:.92;transition:transform 1.1s var(--ease);}
.piece:hover .piece__ph svg{transform:translateY(-6px) scale(1.04);}
.piece__ph span{position:relative;font-size:.6rem;letter-spacing:.28em;text-transform:uppercase;color:var(--stone);}
/* Survol des images encadrées (journal, héritage) */
.journal__media,.heritage__media{cursor:pointer;}
.journal__media .ri img,.heritage__media .ri img{transition:transform 1.2s var(--ease);}
.journal__media:hover .ri img,.heritage__media:hover .ri img{transform:scale(1.05);}
.journal__media:hover .frame,.heritage__media:hover .frame{border-color:var(--gold);}
.journal__media .frame,.heritage__media .frame{transition:border-color .5s var(--ease);}

/* Transition de chapitre : filet d'or qui se trace entre les sections */
.chapter::before{content:"";position:absolute;top:0;left:8%;right:8%;height:1px;z-index:2;
  background:linear-gradient(90deg,transparent,rgba(209,162,55,.7),transparent);
  transform:scaleX(var(--seam,0));transform-origin:center;}
.piece__media .rn{position:absolute;right:20px;top:12px;z-index:3;font-family:var(--didone);font-style:italic;font-size:clamp(2.6rem,5vw,4.2rem);color:var(--gold-lite);opacity:.92;text-shadow:0 2px 18px rgba(0,0,0,.55);}
.piece__body .rn-l{font-family:var(--didone);font-style:italic;font-size:1.2rem;color:var(--gold);letter-spacing:.05em;}
.piece__body .label{display:block;margin:18px 0 14px;}
.piece__body h3{font-family:var(--didone);font-weight:400;font-size:var(--fs-h3);line-height:1.05;margin-bottom:1.3rem;}
.piece__body h3 .it{font-style:italic;color:var(--gold);}
.piece__body p{color:#bbb29e;max-width:40ch;line-height:1.9;margin-bottom:2.2rem;}

/* ============================================================
   CITATION — bande pleine largeur
   ============================================================ */
.quote{position:relative;min-height:92vh;display:flex;align-items:center;justify-content:center;overflow:hidden;text-align:center;}
.quote__bg{position:absolute;inset:-12% 0;z-index:0;}
.quote__bg img{width:100%;height:100%;object-fit:cover;}
.quote::after{content:"";position:absolute;inset:0;background:rgba(11,9,6,.6);z-index:1;}
.quote::before{content:"";position:absolute;inset:clamp(16px,2vw,30px);border:1px solid rgba(209,162,55,.45);z-index:2;pointer-events:none;}
.quote__in{position:relative;z-index:3;width:min(640px,84vw);margin:0 auto;padding:0 22px;text-align:center;}
.quote__in .mark{font-family:var(--didone);font-size:5rem;color:var(--gold);line-height:.4;display:block;margin-bottom:.2em;}
.quote__in p{font-family:var(--didone);font-style:italic;font-weight:400;font-size:clamp(1.7rem,3.6vw,3.1rem);line-height:1.32;}
.quote__in .by{display:block;margin-top:1.8rem;}

/* ============================================================
   HERITAGE — chapitre clair (parchemin), Sophie BA
   ============================================================ */
.heritage{background:var(--parchment);color:var(--ink);}
.heritage__grid{display:grid;grid-template-columns:0.8fr 1fr;gap:clamp(40px,6vw,110px);align-items:center;}
.heritage__media{position:relative;aspect-ratio:4/5;overflow:hidden;}
.heritage__media .ri{position:absolute;inset:0;overflow:hidden;clip-path:inset(0 0 100% 0);}
.heritage__media .ri img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.02);transform:scale(1.12);will-change:transform;}
.heritage__media .frame{position:absolute;inset:16px;border:1px solid rgba(34,28,19,.4);z-index:2;pointer-events:none;}
.heritage__media .sig{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);z-index:3;font-family:var(--script);color:var(--parchment);font-size:clamp(2.4rem,4vw,3.4rem);text-shadow:0 4px 30px rgba(0,0,0,.6);}
.heritage .label{color:#9a6a1e;}
.heritage__body .script{color:#9a6a1e;font-size:var(--fs-script);display:block;margin-bottom:16px;}
.heritage h2{font-family:var(--didone);font-weight:400;font-size:var(--fs-h2);line-height:1.1;margin-bottom:1.6rem;}
.heritage h2 .it{font-style:italic;color:#9a6a1e;}
.heritage__body > p{color:#5b513f;max-width:46ch;line-height:1.95;margin-bottom:1.4rem;}
.heritage__q{font-family:var(--didone);font-style:italic;font-size:clamp(1.3rem,2.2vw,1.9rem);line-height:1.4;color:var(--ink);border-left:1px solid #9a6a1e;padding-left:1.5rem;margin:2.2rem 0 1rem;max-width:38ch;}
.heritage__attr{font-size:.66rem;letter-spacing:.3em;text-transform:uppercase;color:#8a7a5c;}

/* ============================================================
   VALEURS
   ============================================================ */
.values{background:var(--noir);}
.values__head{text-align:center;margin-bottom:clamp(50px,7vw,86px);}
.values__head .script{font-size:var(--fs-script);display:block;margin-bottom:10px;}
.values__head h2{font-family:var(--didone);font-weight:400;font-size:var(--fs-h2);}
.values__head h2 .it{font-style:italic;color:var(--gold);}
.values__row{display:grid;grid-template-columns:repeat(4,1fr);}
.val{padding:0 clamp(18px,2.4vw,38px);position:relative;}
.val + .val{border-left:1px solid rgba(148,140,122,.18);}
.val .rn{font-family:var(--didone);font-style:italic;font-size:1.5rem;color:var(--gold);}
.val h3{font-family:var(--didone);font-weight:400;font-size:clamp(1.6rem,2.2vw,2rem);margin:1.3rem 0 1rem;}
.val p{font-size:.9rem;color:var(--stone);line-height:1.7;}

/* ============================================================
   PRESENCE
   ============================================================ */
.presence{background:var(--noir-2);}
.presence__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,100px);align-items:center;}
.presence__intro .script{font-size:var(--fs-script);display:block;margin-bottom:14px;}
.presence__intro h2{font-family:var(--didone);font-weight:400;font-size:var(--fs-h2);line-height:1.1;margin-bottom:1.4rem;}
.presence__intro h2 .it{font-style:italic;color:var(--gold);}
.presence__intro p{color:var(--stone);max-width:40ch;line-height:1.9;}
.cities{display:flex;flex-direction:column;}
.city{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:clamp(24px,3vw,38px) 0;border-top:1px solid rgba(148,140,122,.2);}
.city:last-child{border-bottom:1px solid rgba(148,140,122,.2);}
.city h3{font-family:var(--didone);font-weight:400;font-size:clamp(1.9rem,3vw,2.6rem);}
.city span{font-size:.62rem;letter-spacing:.26em;text-transform:uppercase;color:var(--stone);text-align:right;}

/* ============================================================
   APPEL FINAL
   ============================================================ */
.final{background:var(--obsidian);text-align:center;position:relative;overflow:hidden;}
.final__seal{margin:0 auto clamp(34px,5vw,54px);opacity:0;}
.final h2{font-family:var(--didone);font-weight:400;font-size:clamp(2.8rem,7vw,6rem);line-height:1.0;margin-bottom:1.6rem;}
.final h2 .it{font-style:italic;color:var(--gold);}
.final p{color:var(--stone);max-width:44ch;margin:0 auto 3rem;font-size:1.05rem;}
.final__glow{position:absolute;left:50%;top:50%;width:60vw;height:60vw;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(209,162,55,.1),transparent 60%);pointer-events:none;}

/* ============================================================
   PIED DE PAGE
   ============================================================ */
.foot{background:var(--obsidian);padding:clamp(64px,8vw,110px) clamp(22px,5.2vw,80px) 36px;border-top:1px solid rgba(209,162,55,.16);}
.foot__grid{max-width:var(--maxw);margin-inline:auto;display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:44px;}
.foot__brand .n{font-family:var(--script);color:var(--gold);font-size:2.2rem;display:block;margin:14px 0 16px;}
.foot__brand p{color:var(--stone);font-family:var(--didone);font-style:italic;font-size:1.05rem;max-width:24ch;line-height:1.5;}
.foot h4{font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:1.5rem;}
.foot ul{list-style:none;display:flex;flex-direction:column;gap:.85rem;}
.foot li,.foot a{color:var(--stone);font-size:.88rem;transition:color .35s var(--ease);}
.foot a:hover{color:var(--gold);}
.foot__bottom{max-width:var(--maxw);margin:60px auto 0;padding-top:26px;border-top:1px solid rgba(148,140,122,.18);display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;}
.foot__bottom p{color:var(--stone);font-size:.72rem;letter-spacing:.06em;}

/* ============================================================
   LE JOURNAL (blog)
   ============================================================ */
.journal{background:var(--noir);}
.journal__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(36px,6vw,90px);align-items:center;}
.journal__media{position:relative;aspect-ratio:4/3;overflow:hidden;}
.journal__media .ri{position:absolute;inset:0;overflow:hidden;clip-path:inset(0 0 100% 0);}
.journal__media .ri img{width:100%;height:100%;object-fit:cover;transform:scale(1.06);transition:transform 1.3s var(--ease);}
.journal__media:hover .ri img{transform:scale(1);}
.journal__media .frame{position:absolute;inset:14px;border:1px solid rgba(209,162,55,.35);z-index:2;pointer-events:none;}
.journal__media .tag{position:absolute;left:0;bottom:0;z-index:3;background:var(--gold);color:var(--noir);font-size:.56rem;letter-spacing:.24em;text-transform:uppercase;font-weight:600;padding:.75em 1.3em;}
.journal__body .script{font-size:var(--fs-script);display:block;margin-bottom:6px;}
.journal__meta{display:block;font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:var(--stone);margin-bottom:18px;}
.journal__body h2{font-family:var(--didone);font-weight:400;font-size:var(--fs-h2);line-height:1.06;margin-bottom:1.4rem;}
.journal__body h2 .it{font-style:italic;color:var(--gold);}
.journal__body p{color:#bbb29e;line-height:1.9;margin-bottom:1.1rem;max-width:48ch;}
.journal__byline{display:block;margin-top:1.5rem;font-size:.64rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);}

/* ============================================================
   CARTES DE VISITE — Contact & Suivre
   ============================================================ */
.cards{background:linear-gradient(rgba(8,7,4,.5),rgba(8,7,4,.66)),url("assets/contact-bg.webp") center/cover no-repeat var(--obsidian);}
.cards__head{text-align:center;margin-bottom:clamp(46px,6vw,82px);}
.cards__head .script{font-size:var(--fs-script);display:block;margin-bottom:10px;}
.cards__head h2{font-family:var(--didone);font-weight:400;font-size:var(--fs-h2);}
.cards__head h2 .it{font-style:italic;color:var(--gold);}
.cards__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(26px,3.4vw,50px);max-width:1120px;margin-inline:auto;}

.card{position:relative;aspect-ratio:1050/600;border-radius:16px;overflow:hidden;
  background:radial-gradient(125% 150% at 82% 8%, #271f12 0%, #17130c 46%, #0b0906 100%);
  box-shadow:0 32px 70px rgba(0,0,0,.5),inset 0 0 0 1px rgba(209,162,55,.3);
  transition:transform .6s var(--ease),box-shadow .6s var(--ease);}
.card:hover{transform:translateY(-9px);box-shadow:0 48px 92px rgba(0,0,0,.6),inset 0 0 0 1px rgba(209,162,55,.55);}
.card__glow{position:absolute;inset:0;pointer-events:none;opacity:.55;
  background:radial-gradient(circle at 28% 16%,rgba(255,247,225,.05),transparent 42%);}
.card__brand{display:flex;align-items:center;gap:11px;}
.card__mono{display:grid;place-items:center;flex:none;}
.card__mono img{height:34px;width:auto;display:block;}
.card__wm{font-family:var(--ui);letter-spacing:.22em;text-transform:uppercase;font-size:.6rem;color:var(--ivory);font-weight:500;}

/* recto : contact */
.card--contact{display:grid;grid-template-columns:1fr auto 1.05fr;align-items:center;gap:clamp(12px,2.2vw,30px);padding:clamp(20px,3.2vw,42px);}
.card__name{font-family:var(--didone);font-weight:500;font-size:clamp(1.35rem,2.6vw,2.1rem);color:var(--ivory);line-height:1;margin-top:clamp(14px,3vw,26px);}
.card__role{font-family:var(--ui);letter-spacing:.34em;text-transform:uppercase;font-size:.58rem;color:var(--gold);margin-top:.7rem;}
.card__div{align-self:stretch;width:1px;margin-block:14%;background:linear-gradient(transparent,rgba(209,162,55,.65),transparent);position:relative;}
.card__div::before{content:"";position:absolute;left:50%;top:50%;width:11px;height:11px;background:var(--gold);transform:translate(-50%,-50%) rotate(45deg);box-shadow:0 0 14px rgba(209,162,55,.5);}
.card__contacts{display:flex;flex-direction:column;gap:clamp(9px,1.5vw,17px);}
.card__row{display:flex;align-items:center;justify-content:flex-end;gap:11px;color:var(--ivory);font-size:clamp(.68rem,1.15vw,.9rem);letter-spacing:.01em;white-space:nowrap;transition:color .35s var(--ease);}
.card__row:hover{color:var(--gold);}
.card__row .ic{width:29px;height:29px;border-radius:50%;background:var(--gold);display:grid;place-items:center;flex:none;}
.card__row .ic img{width:14px;height:14px;}
.card__row .ic svg{width:14px;height:14px;fill:var(--noir);}

/* verso : suivre (QR) */
.card--social{display:flex;flex-direction:column;justify-content:space-between;padding:clamp(20px,3vw,38px);}
.card--social .card__brand{justify-content:center;}
.card__socials{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(8px,1.4vw,16px);}
.qr{display:flex;flex-direction:column;align-items:center;gap:9px;}
.qr .ic{height:24px;display:grid;place-items:center;}
.qr .ic img{height:21px;width:21px;}
.qr__code{width:100%;aspect-ratio:1;background:#fff;border-radius:7px;padding:7%;image-rendering:pixelated;transition:transform .4s var(--ease);}
.qr:hover .qr__code{transform:scale(1.05);}
.qr small{font-size:.52rem;letter-spacing:.16em;text-transform:uppercase;color:var(--stone);}

/* ============================================================
   ANIMATION — états initiaux
   ============================================================ */
.rise{opacity:0;transform:translateY(46px);}
/* Perspective pour le logo 3D */
.nav__brand{perspective:700px;}
.hero__stamp{perspective:700px;}
.ttx .w{display:inline-block;transition:transform .55s var(--ease),color .55s var(--ease);transform-origin:center 80%;}
@media (hover:hover){ .ttx .w:hover{transform:scale(1.16);color:var(--gold);} }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:1024px){
  .hero{--hi-top:clamp(68px,9vh,88px);--hi:14px;}
  .hero__content{padding:clamp(104px,15vh,150px) clamp(30px,5vw,60px) clamp(44px,7vh,70px);}
  .hero h1{font-size:clamp(2.5rem,9vw,4.6rem);}
  .maison__grid,.presence__grid,.heritage__grid,.journal__grid{grid-template-columns:1fr;}
  .maison__aside{position:static;}
  .piece,.piece--rev .piece__media{grid-template-columns:1fr;}
  .piece--rev .piece__media{order:0;}
  .piece{grid-template-columns:1fr;gap:30px;}
  .piece__media{max-width:520px;}
  .values__row{grid-template-columns:1fr 1fr;gap:44px 0;}
  .val:nth-child(odd){border-left:0;}
  .foot__grid{grid-template-columns:1fr 1fr;}
  .cards__grid{grid-template-columns:1fr;max-width:560px;}
}
@media(max-width:920px){
  .nav__links,.nav__act{display:none;}
  .burger{display:flex;}
}
@media(max-width:680px){
  .values__row{grid-template-columns:1fr;}
  .val+.val{border-left:0;border-top:1px solid rgba(148,140,122,.2);padding:30px 0 0;}
  .val{padding-inline:0;}
  .hero__foot{flex-wrap:wrap;gap:26px;}
  .foot__grid{grid-template-columns:1fr;}
  .city{flex-direction:column;align-items:flex-start;gap:6px;}
  .city span{text-align:left;}
  .card{aspect-ratio:auto;}
  .card--contact{grid-template-columns:1fr;text-align:left;gap:22px;padding:30px 26px;}
  .card__div{width:100%;height:1px;margin:0;background:linear-gradient(90deg,transparent,rgba(209,162,55,.65),transparent);}
  .card__contacts{gap:14px;}
  .card__row{justify-content:flex-start;flex-direction:row-reverse;}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;}
  .rise,.hero__sub,.hero__cta,.hero__stamp,.final__seal{opacity:1!important;transform:none!important;}
  .ttx .w{opacity:1!important;transform:none!important;}
  .ttx .w:hover{transform:none!important;}
  .hero__bg,.piece__media .ri,.heritage__media .ri{clip-path:none!important;}
  .hero__bg img{transform:none!important;}
  .creed__track{width:100%;justify-content:center;}
  .creed__set:nth-child(2){display:none;}
  .creed__set{flex-wrap:wrap;justify-content:center;}
}

/* ===================== FORMULAIRE DE CONTACT ===================== */
.cform__wrap{
  max-width:760px;margin:96px auto 0;padding-top:64px;
  border-top:1px solid rgba(209,162,55,.22);
}
.cform__head{text-align:center;margin-bottom:40px;}
.cform__head .script{display:block;margin-bottom:8px;}
.cform__head p{color:var(--stone);max-width:48ch;margin:14px auto 0;}
.cform{display:flex;flex-direction:column;gap:22px;}
.cform__row{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.cform__field{display:flex;flex-direction:column;gap:8px;}
.cform__field > span{
  font-family:'Jost',sans-serif;font-size:.74rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold);
}
.cform__field > span em{color:var(--stone);font-style:normal;text-transform:none;letter-spacing:.04em;}
.cform input,.cform textarea{
  width:100%;background:rgba(236,227,209,.03);
  border:1px solid rgba(209,162,55,.28);border-radius:2px;
  padding:14px 16px;color:var(--ivory);
  font-family:'Jost',sans-serif;font-size:1rem;
  transition:border-color .3s ease,background .3s ease;
}
.cform textarea{resize:vertical;min-height:130px;}
.cform input::placeholder,.cform textarea::placeholder{color:rgba(148,140,122,.6);}
.cform input:focus,.cform textarea:focus{
  outline:none;border-color:var(--gold);background:rgba(236,227,209,.06);
}
.cform__hp{position:absolute;left:-9999px;opacity:0;pointer-events:none;}
.cform__foot{display:flex;flex-direction:column;align-items:center;gap:18px;margin-top:6px;}
.cform__note{min-height:1.2em;text-align:center;font-family:'Jost',sans-serif;font-size:.95rem;color:var(--stone);}
.cform__note.is-ok{color:var(--gold-lite);}
.cform__note.is-err{color:#d98a6a;}
.cform button[disabled]{opacity:.55;pointer-events:none;}
@media(max-width:640px){
  .cform__row{grid-template-columns:1fr;}
  .cform__wrap{margin-top:64px;padding-top:48px;}
}

/* ===================== PRÉCHARGEUR ===================== */
html.is-loading{overflow:hidden;}
.preloader{position:fixed;inset:0;z-index:99999;background:var(--obsidian);display:grid;place-items:center;transition:opacity .6s ease,visibility .6s ease;}
.preloader.is-done{opacity:0;visibility:hidden;pointer-events:none;}
.preloader__inner{display:flex;flex-direction:column;align-items:center;gap:24px;text-align:center;padding:24px;}
.preloader__logo{width:76px;height:auto;opacity:.9;animation:pl-pulse 2.2s ease-in-out infinite;}
.preloader__bar{position:relative;width:170px;max-width:60vw;height:1px;background:rgba(209,162,55,.18);overflow:hidden;}
.preloader__bar i{position:absolute;left:-40%;top:0;height:100%;width:40%;background:linear-gradient(90deg,transparent,var(--gold),transparent);animation:pl-sweep 1.3s ease-in-out infinite;}
.preloader__msg{font-family:'Jost',sans-serif;font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--stone);max-width:36ch;line-height:1.8;transition:color .4s ease;}
.preloader.is-slow .preloader__msg{color:var(--gold-lite);}
@keyframes pl-pulse{0%,100%{opacity:.55;transform:scale(.98);}50%{opacity:1;transform:scale(1.02);}}
@keyframes pl-sweep{0%{left:-40%;}100%{left:100%;}}
@media(prefers-reduced-motion:reduce){.preloader__logo,.preloader__bar i{animation:none;}}

/* ===== Consentement RGPD formulaire ===== */
.cform__consent{display:flex;align-items:flex-start;gap:12px;cursor:pointer;margin-top:2px;}
.cform__consent input{flex:none;width:18px;height:18px;margin-top:2px;accent-color:var(--gold);cursor:pointer;}
.cform__consent span{font-family:'Jost',sans-serif;font-size:.88rem;line-height:1.6;color:var(--stone);}
.cform__consent a{color:var(--gold-lite);border-bottom:1px solid rgba(209,162,55,.4);}
.cform__consent a:hover{border-color:var(--gold);}

/* ===================== BANNIÈRE COOKIES ===================== */
.cookie{position:fixed;left:50%;bottom:20px;transform:translate(-50%,140%);z-index:9998;
  width:min(680px,calc(100% - 32px));background:rgba(20,17,11,.97);
  border:1px solid rgba(209,162,55,.4);border-radius:4px;
  box-shadow:0 20px 50px rgba(0,0,0,.55);
  padding:20px 24px;display:flex;align-items:center;gap:20px;flex-wrap:wrap;
  transition:transform .45s var(--ease),opacity .45s var(--ease);opacity:0;backdrop-filter:blur(6px);}
.cookie.is-in{transform:translate(-50%,0);opacity:1;}
.cookie.is-hidden{transform:translate(-50%,140%);opacity:0;}
.cookie__txt{flex:1 1 280px;font-family:'Jost',sans-serif;font-size:.9rem;line-height:1.6;color:var(--ivory);margin:0;}
.cookie__txt a{color:var(--gold-lite);border-bottom:1px solid rgba(209,162,55,.4);}
.cookie__txt a:hover{border-color:var(--gold);}
.cookie__btns{display:flex;gap:12px;flex:none;}
.cookie__btn{font-family:'Jost',sans-serif;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;
  padding:11px 22px;border-radius:2px;cursor:pointer;border:1px solid var(--gold);
  background:var(--gold);color:#15120D;transition:background .3s var(--ease),color .3s var(--ease);}
.cookie__btn:hover{background:var(--gold-lite);border-color:var(--gold-lite);}
.cookie__btn--ghost{background:transparent;color:var(--ivory);border-color:rgba(148,140,122,.5);}
.cookie__btn--ghost:hover{background:rgba(236,227,209,.06);color:var(--ivory);border-color:var(--stone);}
@media(max-width:540px){.cookie{padding:18px;gap:14px;}.cookie__btns{width:100%;}.cookie__btn{flex:1;text-align:center;}}

/* ===================== ACCESSIBILITÉ : SKIP-LINK ===================== */
.skip{position:fixed;top:-100px;left:16px;z-index:100000;background:var(--gold);color:#15120D;
  font-family:'Jost',sans-serif;font-size:.85rem;letter-spacing:.08em;padding:12px 20px;border-radius:2px;
  transition:top .25s ease;}
.skip:focus{top:16px;outline:2px solid #15120D;outline-offset:2px;}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}

/* ===================== BOUTON WHATSAPP FLOTTANT ===================== */
.wa-float{position:fixed;right:18px;bottom:18px;z-index:9990;width:56px;height:56px;border-radius:50%;
  display:grid;place-items:center;background:#25D366;box-shadow:0 8px 24px rgba(0,0,0,.35);
  transition:transform .3s var(--ease),box-shadow .3s var(--ease);}
.wa-float svg{width:30px;height:30px;fill:#fff;}
.wa-float:hover{transform:scale(1.08);box-shadow:0 12px 30px rgba(37,211,102,.45);}
.wa-float::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid #25D366;
  animation:wa-pulse 2.4s ease-out infinite;}
@keyframes wa-pulse{0%{transform:scale(1);opacity:.6;}100%{transform:scale(1.6);opacity:0;}}
@media(prefers-reduced-motion:reduce){.wa-float::after{animation:none;}}
@media(max-width:560px){.wa-float{width:52px;height:52px;right:14px;bottom:14px;}.wa-float svg{width:27px;height:27px;}}
