/* ==========================================================================
   Laurine Mahieux — Avocate au Barreau de Lyon
   Feuille de style principale
   Polices auto-hébergées (aucun appel à un serveur tiers, aucun cookie)
   ========================================================================== */

/* ---------- Polices ---------- */
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:300;font-display:swap;src:url('../assets/fonts/cormorant-garamond-latin-300-normal.woff2') format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400;font-display:swap;src:url('../assets/fonts/cormorant-garamond-latin-400-normal.woff2') format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:400;font-display:swap;src:url('../assets/fonts/cormorant-garamond-latin-400-italic.woff2') format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;src:url('../assets/fonts/cormorant-garamond-latin-500-normal.woff2') format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:600;font-display:swap;src:url('../assets/fonts/cormorant-garamond-latin-600-normal.woff2') format('woff2');}
@font-face{font-family:'Jost';font-style:normal;font-weight:300;font-display:swap;src:url('../assets/fonts/jost-latin-300-normal.woff2') format('woff2');}
@font-face{font-family:'Jost';font-style:normal;font-weight:400;font-display:swap;src:url('../assets/fonts/jost-latin-400-normal.woff2') format('woff2');}
@font-face{font-family:'Jost';font-style:normal;font-weight:500;font-display:swap;src:url('../assets/fonts/jost-latin-500-normal.woff2') format('woff2');}
@font-face{font-family:'Jost';font-style:normal;font-weight:600;font-display:swap;src:url('../assets/fonts/jost-latin-600-normal.woff2') format('woff2');}

/* ---------- Variables ---------- */
:root{
  --cream:#FCFAF5;
  --cream-2:#F7F2E9;
  --sand:#EFE6D8;
  --gold:#A1805D;
  --gold-deep:#836448;
  --gold-text:#836448;
  --gold-hover:#6E5239;
  --gold-soft:#C9B392;
  --brown:#3C2412;
  --brown-2:#2C1B0E;
  --ink:#33251B;
  --muted:#7C6A5B;
  --line:rgba(161,128,93,.28);
  --line-soft:rgba(161,128,93,.16);

  --serif:'Cormorant Garamond',"Iowan Old Style",Garamond,"Times New Roman",serif;
  --sans:'Jost',"Avenir Next","Helvetica Neue",Arial,sans-serif;

  --wrap:1200px;
  --pad:clamp(1.25rem,5vw,3.5rem);
  --radius:2px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

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

body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:var(--sans);
  font-weight:300;
  font-size:clamp(1rem,.96rem + .2vw,1.0625rem);
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

img,svg{max-width:100%;display:block;}
figure,blockquote{margin:0;}
a{color:inherit;}

h1,h2,h3,h4{font-family:var(--serif);font-weight:400;color:var(--brown);margin:0;line-height:1.14;letter-spacing:.005em;}
p{margin:0 0 1.15em;}
p:last-child{margin-bottom:0;}

::selection{background:var(--gold);color:#fff;}

:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:1px;}

/* ---------- Utilitaires ---------- */
.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--pad);}
.section{padding-block:clamp(4.5rem,10vw,8.5rem);}
section[id],[id]{scroll-margin-top:6rem;}
.section--tight{padding-block:clamp(3.5rem,7vw,6rem);}

.eyebrow{
  font-family:var(--sans);
  font-size:.72rem;
  font-weight:500;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--gold-text);
  margin:0 0 1.35rem;
  display:flex;align-items:center;gap:.85rem;
}
.eyebrow{flex-wrap:wrap;row-gap:.35rem;}
.eyebrow::before{content:"";width:2.25rem;height:1px;background:var(--gold);flex:none;opacity:.75;}
.eyebrow--center{justify-content:center;}
.eyebrow--center::after{content:"";width:2.25rem;height:1px;background:var(--gold);flex:none;opacity:.75;}

.h-display{font-size:clamp(2.1rem,1.35rem + 3.1vw,4rem);font-weight:300;}
.h-section{font-size:clamp(1.85rem,1.25rem + 2.4vw,3.1rem);font-weight:300;}
.h-sub{font-size:clamp(1.2rem,1.05rem + .6vw,1.5rem);font-weight:500;}
em,.italic{font-style:italic;}

.lead{font-size:clamp(1.05rem,1rem + .35vw,1.2rem);color:var(--muted);max-width:62ch;line-height:1.8;}
.center{text-align:center;}
.measure{max-width:64ch;}
.measure-center{max-width:66ch;margin-inline:auto;}

.rule{width:100%;height:1px;background:var(--line-soft);border:0;margin:0;}

/* ---------- Boutons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  font-family:var(--sans);font-size:.8rem;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;text-decoration:none;
  padding:1.05rem 2rem;border-radius:var(--radius);
  border:1px solid var(--gold);
  transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease),transform .35s var(--ease);
  white-space:nowrap;
}
.btn:hover{transform:translateY(-2px);}
.btn--primary{background:var(--gold-deep);color:#fff;border-color:var(--gold-deep);}
.btn--primary:hover{background:var(--gold-hover);border-color:var(--gold-hover);}
.btn--ghost{background:transparent;color:var(--brown);}
.btn--ghost:hover{background:var(--gold);border-color:var(--gold);color:#fff;}
.btn--light{background:transparent;color:var(--cream);border-color:rgba(252,250,245,.45);}
.btn--light:hover{background:var(--cream);color:var(--brown);border-color:var(--cream);}
.btn--solid-light{background:var(--cream);color:var(--brown);border-color:var(--cream);}
.btn--solid-light:hover{background:var(--gold);border-color:var(--gold);color:#fff;}
.btn-row{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2.25rem;}

.link-arrow{
  display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;
  font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;font-weight:500;color:var(--gold-text);
  border-bottom:1px solid var(--line);padding-bottom:.35rem;transition:color .3s,border-color .3s;
}
.link-arrow:hover{color:var(--gold-deep);border-color:var(--gold-deep);}

/* ---------- En-tête ---------- */
.header{
  position:fixed;inset:0 0 auto 0;z-index:100;
  background:rgba(252,250,245,0);
  transition:background .45s var(--ease),box-shadow .45s var(--ease),padding .45s var(--ease);
  padding-block:1.35rem;
  border-bottom:1px solid transparent;
}
.header.is-stuck,.header--solid{
  background:rgba(252,250,245,.97);
  backdrop-filter:saturate(160%) blur(12px);
  -webkit-backdrop-filter:saturate(160%) blur(12px);
  border-bottom-color:var(--line-soft);
  padding-block:.7rem;
}
.header__inner{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:clamp(1rem,2.5vw,2.5rem);}
.header__cta{justify-self:end;}
.brand{display:block;flex:none;text-decoration:none;}
.brand img{width:clamp(136px,15vw,196px);height:auto;transition:width .45s var(--ease);}
.header.is-stuck .brand img,.header--solid .brand img{width:clamp(128px,12vw,160px);}

.nav{display:flex;align-items:center;justify-content:center;gap:clamp(.9rem,1.9vw,1.9rem);}
.nav a{
  text-decoration:none;font-size:.745rem;font-weight:400;letter-spacing:.13em;
  text-transform:uppercase;color:var(--ink);position:relative;padding-block:.35rem;
  transition:color .3s;white-space:nowrap;
}
.nav a[aria-current="page"]{color:var(--gold-text);}
.nav a[aria-current="page"]::after{width:100%;}
.nav a::after{
  content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--gold);
  transition:width .35s var(--ease);
}
.nav a:hover{color:var(--gold-text);}
.nav a:hover::after{width:100%;}
.nav .btn{padding:.75rem 1.35rem;font-size:.72rem;}
.nav .btn::after{display:none;}

.burger{display:none;background:none;border:0;padding:.6rem;cursor:pointer;color:var(--brown);position:relative;z-index:3;}
/* Voile du menu mobile : toujours hors flux, masqué sur grand écran */
.nav-backdrop{
  position:fixed;inset:0;z-index:1;display:none;
  background:rgba(44,27,14,.35);opacity:0;pointer-events:none;
  transition:opacity .45s var(--ease);
}
.burger span{display:block;width:24px;height:1.5px;background:currentColor;margin:5px 0;transition:transform .35s var(--ease),opacity .25s;}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0;}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}

@media (max-width:1120px){
  .header__inner{grid-template-columns:auto auto;justify-content:space-between;}
  .header__cta{display:none;}
  .burger{display:block;}
  .nav{
    position:fixed;inset:0 0 0 auto;width:min(84vw,360px);z-index:2;
    background:var(--cream);flex-direction:column;align-items:flex-start;justify-content:center;
    gap:1.6rem;padding:2rem clamp(1.5rem,6vw,3rem);
    transform:translateX(100%);transition:transform .45s var(--ease);
    box-shadow:-20px 0 60px rgba(60,36,18,.12);
    visibility:hidden;
  }
  .nav.is-open{transform:translateX(0);visibility:visible;}
  .nav-backdrop{display:block;}
  .nav-backdrop.is-open{opacity:1;pointer-events:auto;}
  body.is-locked{overflow:hidden;}
  .nav a{font-size:.95rem;letter-spacing:.12em;}
  .nav .btn{width:100%;padding:1rem 1.25rem;font-size:.75rem;}
  .nav a[aria-current="page"]::after{width:0;}
}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  padding-top:clamp(8rem,16vw,11.5rem);
  padding-bottom:clamp(4rem,8vw,6.5rem);
  overflow:hidden;
}
.hero::before{
  content:"";position:absolute;inset:0;z-index:-2;
  background:
    radial-gradient(90% 70% at 82% 8%, #FFFDF9 0%, rgba(255,253,249,0) 60%),
    linear-gradient(180deg,#FBF7EF 0%,var(--cream) 62%);
}
.hero::after{
  content:"";position:absolute;right:-14vw;top:-8vw;width:52vw;height:52vw;z-index:-1;
  border:1px solid var(--line-soft);border-radius:50%;pointer-events:none;
}
.hero__grid{
  display:grid;grid-template-columns:1.05fr .95fr;
  gap:clamp(2.5rem,5vw,5.5rem);align-items:center;
}
.hero__title{margin-bottom:1.6rem;}
.hero__title em{color:var(--gold);display:block;}
.hero__role{
  display:block;font-family:var(--serif);font-style:normal;font-weight:400;
  font-size:clamp(1.1rem,.98rem + .5vw,1.4rem);color:var(--muted);
  letter-spacing:.05em;line-height:1.4;margin-top:1.35rem;
}
.hero__note{
  margin-top:2.4rem;padding-top:1.5rem;border-top:1px solid var(--line-soft);
  font-size:.86rem;color:var(--muted);letter-spacing:.01em;max-width:46ch;
}

.portrait{position:relative;justify-self:center;width:min(100%,440px);}
.portrait__frame{
  position:absolute;inset:1.6rem -1.6rem -1.6rem 1.6rem;
  border:1px solid var(--gold);opacity:.5;pointer-events:none;
}
.portrait img{
  position:relative;width:100%;height:auto;
  filter:saturate(1.02);
  box-shadow:0 30px 70px -34px rgba(60,36,18,.42);
}
.portrait__cap{
  position:relative;margin-top:1.5rem;font-size:.72rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--muted);text-align:right;
}

@media (max-width:900px){
  .hero{padding-top:clamp(9.5rem,30vw,11rem);}
  .hero__grid{grid-template-columns:1fr;gap:clamp(3rem,8vw,4rem);}
  .portrait{width:min(100%,400px);justify-self:center;}
  .portrait__frame{inset:1.1rem -1.1rem -1.1rem 1.1rem;}
  .portrait__cap{text-align:right;}
  .hero::after{display:none;}
}

/* ---------- Bandeau repères ---------- */
.strip{border-block:1px solid var(--line-soft);background:var(--cream-2);}
.strip__grid{
  display:grid;grid-template-columns:repeat(4,1fr);
}
.strip__item{
  padding:clamp(1.6rem,3vw,2.4rem) clamp(1rem,2vw,1.75rem);
  border-left:1px solid var(--line-soft);
  display:flex;flex-direction:column;gap:.35rem;
}
.strip__item:first-child{border-left:0;}
.strip__k{font-family:var(--serif);font-size:1.32rem;color:var(--brown);line-height:1.25;}
.strip__v{font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-text);}
@media (max-width:820px){
  .strip__grid{grid-template-columns:1fr 1fr;}
  .strip__item:nth-child(odd){border-left:0;}
  .strip__item:nth-child(n+3){border-top:1px solid var(--line-soft);}
}
@media (max-width:460px){
  .strip__grid{grid-template-columns:1fr;}
  .strip__item{border-left:0;}
  .strip__item+.strip__item{border-top:1px solid var(--line-soft);}
}

/* ---------- Le cabinet ---------- */
.about__grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2.5rem,6vw,6rem);align-items:start;}
.about__aside{position:sticky;top:7rem;}
@media (max-width:900px){
  .about__grid{grid-template-columns:1fr;gap:2.5rem;}
  .about__aside{position:static;}
}
.pull{
  font-family:var(--serif);font-style:italic;font-size:clamp(1.35rem,1.1rem + 1vw,1.85rem);
  line-height:1.5;color:var(--brown);border-left:2px solid var(--gold);
  padding-left:clamp(1.25rem,2.5vw,2rem);margin:2.5rem 0;max-width:44ch;
}
.signature{display:flex;align-items:center;gap:1.5rem;margin-top:2.75rem;}
.signature img{width:92px;height:auto;opacity:.9;}
.signature div{font-size:.82rem;line-height:1.6;color:var(--muted);}
.signature strong{display:block;font-family:var(--serif);font-size:1.1rem;font-weight:500;color:var(--brown);letter-spacing:.04em;}

.chips{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:2rem;list-style:none;padding:0;}
.chips li{
  font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep);
  border:1px solid var(--line);padding:.55rem 1rem;border-radius:100px;background:rgba(255,255,255,.5);
}

/* ---------- Domaines ---------- */
.domains{background:var(--cream-2);border-block:1px solid var(--line-soft);}
.cards{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,3vw,2.5rem);margin-top:clamp(2.5rem,5vw,3.75rem);}
@media (max-width:860px){.cards{grid-template-columns:1fr;}}

.card{
  background:var(--cream);border:1px solid var(--line-soft);
  padding:clamp(1.75rem,3.5vw,2.75rem);
  transition:border-color .4s var(--ease),transform .4s var(--ease),box-shadow .4s var(--ease);
}
.card:hover{border-color:var(--line);transform:translateY(-4px);box-shadow:0 26px 50px -34px rgba(60,36,18,.3);}
.card__num{
  font-family:var(--serif);font-size:.9rem;letter-spacing:.2em;color:var(--gold-text);
  display:block;margin-bottom:.9rem;
}
.card h3{font-size:clamp(1.4rem,1.2rem + .7vw,1.8rem);margin-bottom:.75rem;}
.card__intro{color:var(--muted);font-size:.95rem;margin-bottom:1.5rem;}
.list{list-style:none;margin:0;padding:0;}
.list li{
  position:relative;padding:.7rem 0 .7rem 1.6rem;font-size:.95rem;
  border-top:1px solid var(--line-soft);
}
.list li:first-child{border-top:0;}
.list li::before{
  content:"";position:absolute;left:0;top:1.28rem;width:.45rem;height:.45rem;
  border:1px solid var(--gold);transform:rotate(45deg);
}
.card--wide{grid-column:1 / -1;}
.card--wide .list{columns:2;column-gap:clamp(1.5rem,4vw,3.5rem);}
.card--wide .list li{break-inside:avoid;}
@media (max-width:640px){.card--wide .list{columns:1;}}

/* ---------- Méthode ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:clamp(2.5rem,5vw,3.75rem);}
.step{padding:clamp(1.5rem,2.5vw,2.25rem) clamp(1.1rem,2vw,1.9rem);border-left:1px solid var(--line-soft);}
.step:first-child{border-left:0;padding-left:0;}
.step__n{
  font-family:var(--serif);font-size:2.6rem;font-weight:300;color:var(--gold);
  line-height:1;display:block;margin-bottom:1rem;
}
.step h3{font-size:1.15rem;font-weight:500;margin-bottom:.6rem;letter-spacing:.02em;}
.step p{font-size:.92rem;color:var(--muted);}
@media (max-width:900px){
  .steps{grid-template-columns:1fr 1fr;}
  .step{border-left:0;padding-left:0;padding-right:1.25rem;}
  .step:nth-child(n+3){border-top:1px solid var(--line-soft);padding-top:2rem;}
}
@media (max-width:560px){
  .steps{grid-template-columns:1fr;}
  .step+.step{border-top:1px solid var(--line-soft);padding-top:2rem;}
}

/* ---------- Honoraires ---------- */
.fees{background:var(--cream-2);border-block:1px solid var(--line-soft);}
.fees__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.25rem,2.5vw,2rem);margin-top:clamp(2.25rem,4vw,3rem);}
@media (max-width:820px){.fees__grid{grid-template-columns:1fr;}}
.fee{background:var(--cream);border:1px solid var(--line-soft);padding:clamp(1.5rem,3vw,2.25rem);}
.fee h3{font-size:1.3rem;font-weight:500;margin-bottom:.65rem;}
.fee p{font-size:.93rem;color:var(--muted);}
.notice{
  margin-top:clamp(2rem,4vw,2.75rem);padding:clamp(1.25rem,2.5vw,1.75rem) clamp(1.5rem,3vw,2rem);
  border:1px solid var(--line);background:rgba(255,255,255,.55);
  font-size:.92rem;color:var(--muted);
}
.notice strong{color:var(--brown);font-weight:500;}

/* ---------- FAQ ---------- */
.faq{max-width:900px;margin-inline:auto;margin-top:clamp(2.25rem,4vw,3rem);}
.faq details{border-top:1px solid var(--line-soft);}
.faq details:last-of-type{border-bottom:1px solid var(--line-soft);}
.faq summary{
  cursor:pointer;list-style:none;padding:1.4rem 3rem 1.4rem 0;position:relative;
  font-family:var(--serif);font-size:clamp(1.1rem,1rem + .45vw,1.32rem);color:var(--brown);
  transition:color .3s;
}
.faq summary::-webkit-details-marker{display:none;}
.faq summary:hover{color:var(--gold-text);}
.faq summary::after{
  content:"";position:absolute;right:.35rem;top:50%;width:.62rem;height:.62rem;
  border-right:1px solid var(--gold);border-bottom:1px solid var(--gold);
  transform:translateY(-70%) rotate(45deg);transition:transform .35s var(--ease);
}
.faq details[open] summary::after{transform:translateY(-25%) rotate(-135deg);}
.faq .faq__body{padding:0 2.5rem 1.65rem 0;color:var(--muted);font-size:.96rem;}

/* ---------- Contact ---------- */
.contact{background:var(--brown-2);color:var(--cream);position:relative;overflow:hidden;}
.contact::before{
  content:"";position:absolute;left:-10vw;bottom:-16vw;width:44vw;height:44vw;
  border:1px solid rgba(201,179,146,.16);border-radius:50%;pointer-events:none;
}
.contact h2,.contact h3{color:var(--cream);}
.contact .eyebrow{color:var(--gold-soft);}
.contact .eyebrow::before,.contact .eyebrow::after{background:var(--gold-soft);}
.contact__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,6vw,5rem);align-items:start;position:relative;}
@media (max-width:900px){.contact__grid{grid-template-columns:1fr;gap:3rem;}}
.contact__lead{color:rgba(252,250,245,.8);max-width:44ch;}

.contact__seal{
  margin-top:clamp(2.75rem,6vw,4.5rem);padding-top:1.5rem;
  border-top:1px solid rgba(201,179,146,.22);
  font-size:.86rem;color:rgba(252,250,245,.66);max-width:42ch;font-style:italic;
  font-family:var(--serif);font-size:1.05rem;line-height:1.65;
}

.coords{list-style:none;margin:0;padding:0;}
.coords li{border-top:1px solid rgba(201,179,146,.22);padding:1.35rem 0;}
.coords li:last-child{border-bottom:1px solid rgba(201,179,146,.22);}
.coords .k{display:block;font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:.45rem;}
.coords .v{font-family:var(--serif);font-size:clamp(1.25rem,1.1rem + .7vw,1.6rem);color:var(--cream);text-decoration:none;transition:color .3s;display:inline-block;}
a.v:hover{color:var(--gold-soft);}
.coords .sub{display:block;font-size:.84rem;color:rgba(252,250,245,.66);margin-top:.35rem;}

/* ---------- Pied de page ---------- */
.footer{background:var(--brown);color:rgba(252,250,245,.78);font-size:.85rem;}
.footer__inner{
  display:flex;flex-wrap:wrap;gap:1.5rem 2.5rem;align-items:center;justify-content:space-between;
  padding-block:2.5rem;
}
.footer a{color:rgba(252,250,245,.78);text-decoration:none;transition:color .3s;}
.footer a:hover{color:var(--gold-soft);}
.footer__links{display:flex;flex-wrap:wrap;gap:1.5rem;align-items:center;}
.footer__mono{width:74px;opacity:.55;}
.footer__legal{
  border-top:1px solid rgba(252,250,245,.12);padding-block:1.35rem;
  font-size:.76rem;color:rgba(252,250,245,.64);line-height:1.7;
}

/* ---------- Page intérieure (mentions légales) ---------- */
.page-head{
  padding-top:clamp(8.5rem,15vw,11rem);padding-bottom:clamp(2.5rem,5vw,4rem);
  background:linear-gradient(180deg,#FBF7EF,var(--cream));
  border-bottom:1px solid var(--line-soft);
}
.legal{padding-block:clamp(3rem,7vw,5.5rem);}
.legal__body{max-width:78ch;}
.legal h2{font-size:clamp(1.5rem,1.25rem + 1.1vw,2.05rem);margin:3rem 0 1rem;}
.legal h2:first-child{margin-top:0;}
.legal h3{font-size:1.15rem;font-weight:500;font-family:var(--sans);letter-spacing:.02em;margin:2rem 0 .6rem;color:var(--brown);}
.legal p,.legal li{font-size:.97rem;color:#4A3A2D;}
.legal ul{padding-left:1.2rem;margin:0 0 1.15em;}
.legal li{margin-bottom:.4rem;}
.legal a{color:var(--gold-text);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;}
.legal a:hover{color:var(--brown);}
.legal dl{margin:0 0 1.5rem;display:grid;grid-template-columns:auto 1fr;gap:.45rem 1.75rem;}
.legal dt{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-text);padding-top:.25rem;}
.legal dd{margin:0;font-size:.97rem;}
@media (max-width:620px){
  .legal dl{grid-template-columns:1fr;gap:.2rem;}
  .legal dd{margin-bottom:.9rem;}
}
.todo{
  display:block;border:1px dashed var(--gold);background:rgba(201,179,146,.14);
  padding:1rem 1.25rem;margin:.5rem 0 1.5rem;font-size:.9rem;color:var(--brown);
}
.todo strong{letter-spacing:.1em;text-transform:uppercase;font-size:.74rem;display:block;margin-bottom:.35rem;color:var(--gold-deep);}

/* ---------- Apparitions au défilement ---------- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .9s var(--ease),transform .9s var(--ease);}
.reveal.is-in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none;}
  .btn:hover,.card:hover{transform:none;}
}

/* ---------- Lien d'évitement ---------- */
.skip{
  position:absolute;left:-9999px;top:0;background:var(--brown);color:var(--cream);
  padding:.85rem 1.25rem;z-index:200;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;
}
.skip:focus{left:1rem;top:1rem;}

/* ---------- Impression ---------- */
@media print{
  .header,.footer,.btn-row,.burger,.contact::before{display:none!important;}
  body{background:#fff;color:#000;font-size:11pt;}
  .section{padding-block:1.5rem;}
  .contact{background:#fff;color:#000;}
  .contact h2,.contact h3,.coords .v{color:#000;}
  .reveal{opacity:1;transform:none;}
}

/* ==========================================================================
   V2 — pages intérieures
   ========================================================================== */

/* ---------- Présentation (Le cabinet) ---------- */
.bio__id{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--line-soft);}
.bio__name{
  font-family:var(--serif);font-size:clamp(1.9rem,1.4rem + 1.8vw,2.7rem);
  font-weight:400;color:var(--brown);line-height:1.1;letter-spacing:.02em;
}
.bio__title{
  display:block;margin-top:.65rem;font-family:var(--sans);font-size:.76rem;
  letter-spacing:.24em;text-transform:uppercase;color:var(--gold-text);font-weight:500;
}

/* ---------- Étapes en lignes (Mon intervention) ---------- */
.steps-rows{list-style:none;margin:clamp(2.5rem,5vw,3.5rem) 0 0;padding:0;counter-reset:step;}
.steps-rows > li{
  display:grid;grid-template-columns:auto minmax(0,1fr);
  gap:clamp(1.5rem,4vw,3rem);
  padding:clamp(2rem,4vw,2.75rem) 0;border-top:1px solid var(--line-soft);
}
.steps-rows > li:last-child{border-bottom:1px solid var(--line-soft);}
.steps-rows .n{
  font-family:var(--serif);font-size:clamp(2.4rem,2rem + 1.6vw,3.4rem);font-weight:300;
  color:var(--gold);line-height:1;min-width:2.2ch;
}
.steps-rows h3{
  font-size:clamp(1.3rem,1.15rem + .7vw,1.7rem);font-weight:400;margin-bottom:.7rem;
}
.steps-rows p{color:var(--muted);max-width:62ch;}
@media (max-width:620px){
  .steps-rows > li{grid-template-columns:1fr;gap:.75rem;}
}

.split{
  display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,2.5vw,1.75rem);
  margin-top:1.75rem;
}
@media (max-width:760px){.split{grid-template-columns:1fr;}}
.split > div{
  background:var(--cream-2);border:1px solid var(--line-soft);
  padding:clamp(1.15rem,2.5vw,1.6rem);
}
.split h4{
  font-family:var(--sans);font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--gold-text);font-weight:500;margin-bottom:.6rem;
}
.split p{font-size:.93rem;margin:0;}

.tag-price{
  display:inline-block;margin-top:1.1rem;
  font-family:var(--sans);font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--gold-text);border:1px solid var(--line);border-radius:100px;
  padding:.5rem 1.05rem;background:rgba(255,255,255,.55);
}
.fee .tag-price{margin-top:1.35rem;}

/* ---------- Aperçu des prestations (accueil) ---------- */
.teaser{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.25rem,2.5vw,2rem);margin-top:clamp(2.5rem,5vw,3.5rem);}
@media (max-width:860px){.teaser{grid-template-columns:1fr;}}
.teaser__item{
  display:flex;flex-direction:column;gap:.8rem;text-decoration:none;
  background:var(--cream);border:1px solid var(--line-soft);
  padding:clamp(1.6rem,3vw,2.35rem);
  transition:border-color .4s var(--ease),transform .4s var(--ease),box-shadow .4s var(--ease);
}
.teaser__item:hover{border-color:var(--line);transform:translateY(-4px);box-shadow:0 26px 50px -34px rgba(60,36,18,.3);}
.teaser__item h3{font-size:clamp(1.3rem,1.15rem + .6vw,1.6rem);}
.teaser__item p{font-size:.94rem;color:var(--muted);flex:1;}
.teaser__more{
  font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-text);
  font-weight:500;display:inline-flex;align-items:center;gap:.5rem;
}
.teaser__more::after{content:"→";transition:transform .35s var(--ease);}
.teaser__item:hover .teaser__more::after{transform:translateX(4px);}

/* ---------- Bandeau d'appel (bas de page) ---------- */
.cta{background:var(--brown-2);color:var(--cream);position:relative;overflow:hidden;}
.cta::before{
  content:"";position:absolute;left:-8vw;bottom:-18vw;width:38vw;height:38vw;
  border:1px solid rgba(201,179,146,.16);border-radius:50%;pointer-events:none;
}
.cta__inner{
  position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:clamp(1.75rem,4vw,3.5rem);padding-block:clamp(3rem,6vw,4.5rem);
}
.cta h2{color:var(--cream);font-size:clamp(1.7rem,1.3rem + 1.8vw,2.5rem);font-weight:300;}
.cta p{color:rgba(252,250,245,.72);max-width:46ch;margin-top:1rem;font-size:.97rem;}
.cta .btn-row{margin-top:0;}

/* ---------- Coordonnées en grille (page Contact) ---------- */
.coords--grid{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(2rem,5vw,4rem);}
@media (max-width:760px){.coords--grid{grid-template-columns:1fr;}}

/* Le bouton Contact du tiroir mobile ne s’affiche pas sur grand écran
   (il est déjà présent dans .header__cta) */
@media (min-width:1121px){ .nav > .btn{display:none;} }

/* Pastilles de prix alignées en bas des trois cartes d’honoraires */
.fee{display:flex;flex-direction:column;}
.fee > p:last-of-type{margin-bottom:1.6rem;}
.fee .tag-price{margin-top:auto;align-self:flex-start;}

/* --------------------------------------------------------------------------
   Correctif : un `backdrop-filter` sur l’en-tête crée un bloc conteneur pour
   les éléments `position:fixed` qu’il contient — le tiroir du menu mobile se
   retrouvait alors enfermé dans la hauteur de l’en-tête. On retire le flou en
   dessous du point de bascule et on le remplace par un fond quasi opaque.
   -------------------------------------------------------------------------- */
@media (max-width:1120px){
  .header.is-stuck,.header--solid{
    backdrop-filter:none;-webkit-backdrop-filter:none;
    background:rgba(252,250,245,.985);
  }
}

/* ==========================================================================
   V3 — retour du 21 août
   ========================================================================== */

/* --- Espacements resserrés --- */
.section{padding-block:clamp(3.5rem,7vw,6rem);}
.page-head{
  padding-top:clamp(7.5rem,12vw,9.5rem);
  padding-bottom:clamp(1.75rem,3.5vw,2.75rem);
}
.page-head + .section,
.page-head + .legal{padding-top:clamp(2.25rem,4vw,3.25rem);}

/* --- Texte justifié --- */
/* `:where()` n’ajoute aucune spécificité : les règles de centrage plus bas
   (bannière, blocs centrés…) restent prioritaires sans avoir à surenchérir. */
main :where(p:not(.eyebrow):not(.hero__note):not(.strip__v)),
:where(.legal li),
:where(.faq__body p){
  text-align:justify;
  hyphens:auto;-webkit-hyphens:auto;
}
.center p,.center .lead,.measure-center{text-align:center;}
.cta p,.contact__lead,.contact__seal,.coords .sub{text-align:left;}
.tag-price,.bio__title,.card__num,.step__n,.steps-rows .n{text-align:inherit;}

/* --- Honoraires : pastilles de prix centrées --- */
.fee .tag-price{align-self:center;}

/* --- Page Actualité : état vide --- */
.empty{
  max-width:640px;margin-inline:auto;text-align:center;
  padding:clamp(2.5rem,6vw,4.5rem) clamp(1.5rem,4vw,3rem);
  border:1px solid var(--line-soft);background:var(--cream-2);
}
.empty img{margin:0 auto 1.75rem;opacity:.75;}
.empty h2{font-size:clamp(1.4rem,1.2rem + .8vw,1.85rem);margin-bottom:1rem;}
.empty p{color:var(--muted);font-size:.97rem;text-align:center;}

/* --- Page Actualité : articles --- */
.post{
  max-width:74ch;margin-inline:auto;
  padding-block:clamp(2rem,4vw,3rem);border-top:1px solid var(--line-soft);
}
.post:first-of-type{border-top:0;padding-top:0;}
.post__date{
  font-family:var(--sans);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold-text);margin-bottom:.85rem;text-align:left;
}
.post__title{font-size:clamp(1.5rem,1.25rem + 1.2vw,2.1rem);margin-bottom:1.1rem;}

/* Pas de marge superflue quand le contenu suit directement le titre de page */
.page-head + .section > .wrap > :first-child{margin-top:0;}

/* ==========================================================================
   BANNIÈRE D’ACCUEIL — chocolat + colonnade en filigrane
   ========================================================================== */

/* L’en-tête est fixe : on décale le contenu pour que la bannière commence
   juste en dessous, sans passer sous la barre de navigation. */
body.has-banner main{padding-top:clamp(5.5rem,7vw,6.4rem);}

.banner{
  position:relative;overflow:hidden;
  display:flex;align-items:center;
  min-height:clamp(300px,34vw,430px);
  padding-block:clamp(3rem,6vw,4.5rem);
  background:
    radial-gradient(120% 130% at 50% 0%, #4A2E19 0%, rgba(74,46,25,0) 62%),
    linear-gradient(180deg,#2E1C0E 0%, #241509 100%);
}
.banner__motif{position:absolute;inset:0;z-index:1;opacity:.13;}
.banner__motif img{width:100%;height:100%;object-fit:cover;object-position:center top;}
.banner::after{
  content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:radial-gradient(56% 74% at 50% 52%,
    rgba(36,21,9,.93) 0%, rgba(36,21,9,.58) 58%, rgba(36,21,9,.12) 100%);
}
.banner__frame{
  position:absolute;inset:clamp(14px,2vw,26px);z-index:3;pointer-events:none;
  border:1px solid rgba(201,179,146,.26);
}
.banner__inner{position:relative;z-index:4;text-align:center;}

.banner__logo{
  width:clamp(210px,24vw,318px);height:auto;margin:0 auto;
}
.banner__sub{
  font-family:var(--sans);font-size:clamp(.68rem,.62rem + .22vw,.78rem);
  font-weight:400;letter-spacing:.3em;text-transform:uppercase;
  color:rgba(252,250,245,.82);margin:1.5rem 0 0;text-align:center;
}
.banner__pill{
  display:inline-flex;align-items:center;justify-content:center;
  margin-top:clamp(1.75rem,3vw,2.25rem);
  background:var(--gold);color:#fff;text-decoration:none;
  font-family:var(--sans);font-size:.75rem;font-weight:500;
  letter-spacing:.18em;text-transform:uppercase;
  padding:.95rem 1.95rem;border-radius:100px;
  transition:background .35s var(--ease),transform .35s var(--ease);
}
.banner__pill:hover{background:var(--gold-deep);transform:translateY(-2px);}

/* Le héros n’a plus besoin de dégager l’en-tête : la bannière s’en charge */
body.has-banner .hero{padding-top:clamp(3rem,6vw,5rem);}
body.has-banner .hero::after{top:-16vw;}

@media (max-width:640px){
  .banner{min-height:270px;}
  .banner__sub{letter-spacing:.22em;}
}
@media (prefers-reduced-motion:reduce){ .banner__pill:hover{transform:none;} }

/* Espace resserré entre la barre de navigation et le titre des pages
   intérieures (l’en-tête fixe mesure environ 81 px sur ordinateur, 87 px
   sur mobile : on vise une respiration d’une trentaine de pixels). */
.page-head{padding-top:7.4rem;}
@media (max-width:620px){ .page-head{padding-top:7.2rem;} }

/* ==========================================================================
   Ajustements du 21 août — bannière et monogramme
   ========================================================================== */

/* La hauteur des images suit toujours la largeur : évite qu’un attribut
   height= dans le HTML n’écrase le ratio d’origine. */
img{height:auto;}
.banner__motif img{height:100%;}

/* Bannière : brun repris du pied de page (#3C2412), colonnes un peu plus nettes */
.banner{
  background:
    radial-gradient(120% 130% at 50% 0%, #4E301A 0%, rgba(78,48,26,0) 62%),
    linear-gradient(180deg,#452A15 0%, #3C2412 100%);
}
.banner__motif{opacity:.17;}
.banner::after{
  background:radial-gradient(56% 74% at 50% 52%,
    rgba(60,36,18,.90) 0%, rgba(60,36,18,.55) 58%, rgba(60,36,18,.10) 100%);
}
.banner__pill{background:#8A6B4B;}
.banner__pill:hover{background:var(--gold-hover);}

/* Monogramme complet : tracé plus large, tailles ajustées */
.footer__mono{width:96px;}
.signature img{width:110px;}
.empty img{width:150px;}
