:root{
  --noir:        #0A0A0A;
  --noir-doux:   #121212;
  --or:          #E3B7A0;
  --or-clair:    #F5D9C8;
  --creme:       #F2EDE3;
  --gris:        #9A948A;
  --trait:       rgba(227,183,160,.40);
  --trait-doux:  rgba(227,183,160,.20);

  --titre: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --texte: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

  --marge: clamp(1.25rem, 5vw, 6rem);
  --respire: clamp(5rem, 12vh, 9rem);
}

*,*::before,*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0;
  background:var(--noir);
  color:var(--creme);
  font-family:var(--texte);
  font-weight:300;
  font-size:clamp(1rem,.95rem + .25vw,1.125rem);
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img,video{ max-width:100%; display:block; }

a{ color:inherit; }

.skip{
  position:absolute; left:-9999px;
  background:var(--or); color:var(--noir);
  padding:.75rem 1.25rem; z-index:100;
}
.skip:focus{ left:1rem; top:1rem; }

:focus-visible{ outline:2px solid var(--or); outline-offset:3px; }

.wrap{ width:min(1180px,100%); margin-inline:auto; padding-inline:var(--marge); }
.wrap--etroit{ width:min(720px,100%); }

.surtitre{
  font-family:var(--texte);
  font-size:.75rem; font-weight:500;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--or); margin:0 0 1.5rem;
}

.titre-section{
  font-family:var(--titre);
  font-weight:300;
  font-size:clamp(2rem,1.4rem + 2.6vw,3.4rem);
  line-height:1.15; letter-spacing:-.01em;
  margin:0 0 3.5rem;
}

.nav{
  position:fixed; inset:0 0 auto 0; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  gap:1rem;
  padding:1.1rem var(--marge);
  background:rgba(10,10,10,.72);
  backdrop-filter:blur(14px);
  border-bottom:1px solid transparent;
  transition:border-color .4s, background .4s;
}
.nav.est-defile{ border-bottom-color:var(--trait); background:rgba(10,10,10,.92); }

.nav__logo{
  display:flex; align-items:center; gap:.7rem;
  text-decoration:none;
  font-family:var(--texte); font-weight:500;
  font-size:.82rem; letter-spacing:.3em;
  color:var(--or);
}

.nav__cta{
  font-size:.78rem; letter-spacing:.14em; text-transform:uppercase;
  text-decoration:none; color:var(--creme);
  padding:.6rem 1.2rem;
  border:1px solid var(--trait);
  transition:border-color .3s, color .3s, background .3s;
}
.nav__cta:hover{ border-color:var(--or); color:var(--or); }

.hero{
  position:relative;
  height:360vh;
}

.hero__colle{
  position:sticky; top:0;
  height:100svh;
  display:flex; flex-direction:column; justify-content:center;
  padding:8rem var(--marge) 6rem;
  overflow:hidden;
}

.hero__video{
  position:absolute; inset:0;
  width:100%; height:100%; object-fit:cover;
  z-index:0;
}
.hero__voile{
  position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(180deg, rgba(10,10,10,.55) 0%, rgba(10,10,10,.75) 55%, var(--noir) 100%);
}
.hero__texte{
  position:relative; z-index:2; width:min(760px,100%);
  will-change:opacity,transform;
}

.hero h1{
  font-family:var(--titre);
  font-weight:300;
  font-size:clamp(2.5rem,1.6rem + 4.2vw,5.2rem);
  line-height:1.05; letter-spacing:-.02em;
  margin:0 0 1.75rem;
}
.hero h1 em{ font-style:normal; color:var(--or); }

.chapo{
  font-size:clamp(1.05rem,1rem + .4vw,1.3rem);
  color:var(--gris);
  max-width:46ch;
  margin:0 0 2.75rem;
}

.hero__panneau{
  position:absolute; z-index:2; top:50%;
  width:min(420px,38vw);
  opacity:0; will-change:opacity,transform;
}
.hero__panneau--gauche{ left:var(--marge); }
.hero__panneau--droite{ right:var(--marge); text-align:right; }
.hero__panneau h2{
  font-family:var(--titre); font-weight:300;
  font-size:clamp(1.5rem,1.1rem + 1.4vw,2.4rem);
  line-height:1.15; margin:0 0 1.1rem;
}
.hero__panneau p{
  color:var(--gris);
  font-size:clamp(.92rem,.88rem + .2vw,1.02rem);
  line-height:1.75; margin:0 0 .8rem;
}
.hero__panneau p:last-child{ margin-bottom:0; }
.hero__panneau::before{
  content:""; position:absolute; top:-1.4rem;
  width:44px; height:1px; background:var(--or);
}
.hero__panneau--gauche::before{ left:0; }
.hero__panneau--droite::before{ right:0; }

.hero__ecran{
  position:absolute; z-index:3;
  left:24.1%; top:16.5%; width:51.7%; height:55.5%;
  display:flex; align-items:center; justify-content:center;
  opacity:0; pointer-events:none; will-change:opacity;
}
.hero__ecran-in{ width:88%; max-width:520px; }
.hero__ecran-in .surtitre{ margin-bottom:.9rem; }
.hero__ecran-in h2{
  font-family:var(--titre); font-weight:300;
  font-size:clamp(1.3rem,.9rem + 1.5vw,2.1rem);
  line-height:1.15; margin:0 0 1.4rem;
}
.hero__rang{ display:flex; gap:.6rem; margin-bottom:.6rem; }
.hero__ecran input{
  flex:1; min-width:0;
  background:rgba(255,255,255,.04); border:1px solid var(--trait);
  color:var(--creme); font-family:var(--texte); font-size:.9rem;
  padding:.7rem .85rem;
}
.hero__ecran input:focus{ border-color:var(--or); outline:none; }
.hero__ecran-bouton{
  display:block; text-align:center; text-decoration:none;
  margin-top:.5rem;
  font-family:var(--texte); font-size:.72rem; font-weight:500;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--or); border:1px solid var(--or);
  padding:.8rem 1.5rem; cursor:pointer;
  transition:background .3s, color .3s;
}
.hero__ecran-bouton:hover{ background:var(--or); color:var(--noir); }

.hero__tel{
  display:none;
  position:absolute; z-index:3;
  left:21.9%; top:14.5%; width:57.2%; height:71%;
  align-items:center; justify-content:center;
  opacity:0; pointer-events:none; will-change:opacity;
}
.hero__tel-in{ width:86%; }
.hero__tel-in .surtitre{ font-size:.58rem; letter-spacing:.16em; margin:0 0 .45rem; }
.hero__tel-in h2{
  font-family:var(--titre); font-weight:300;
  font-size:clamp(.82rem,.5rem + 2vw,1.1rem);
  line-height:1.18; margin:0 0 .6rem;
}
.hero__tel-in input{
  display:block; width:100%; margin-bottom:.38rem;
  background:rgba(255,255,255,.05); border:1px solid var(--trait);
  color:var(--creme); font-family:var(--texte);
  font-size:16px;
  padding:.5rem .65rem; border-radius:2px;
}
.hero__tel-in input:focus{ border-color:var(--or); outline:none; }
.hero__tel-bouton{
  display:flex; align-items:center; justify-content:center;
  text-align:center; text-decoration:none;
  margin-top:.45rem; min-height:40px;
  font-size:.66rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase;
  color:var(--or); border:1px solid var(--or);
}
.hero__tel-bouton:hover{ background:var(--or); color:var(--noir); }

.hero__scroll{
  position:absolute; bottom:2.25rem; left:50%; translate:-50% 0; z-index:2;
  width:1px; height:60px; background:var(--trait); overflow:hidden;
}
.hero__scroll span{
  display:block; width:100%; height:24px; background:var(--or);
  animation:file 2.4s cubic-bezier(.7,0,.3,1) infinite;
}
@keyframes file{ 0%{transform:translateY(-26px)} 100%{transform:translateY(62px)} }

.corps{ position:relative; }

.corps__marbre{
  position:sticky; top:0;
  width:100%; height:100svh;
  min-height:100dvh;
  z-index:0;
  pointer-events:none;
  overflow:hidden;

  margin-bottom:-100svh;
}
.corps > .section{ position:relative; z-index:1; }

.marbre__veines{
  position:absolute; inset:-14% 0 -14% 0;
  display:block; width:100%; height:128%;
}
#derive{ will-change:transform; }

.veines-eclat .e{
  stroke-dasharray:120 2900;
  stroke-dashoffset:3020;
  opacity:.26;
  animation:file-or linear infinite;
}
@keyframes file-or{ to{ stroke-dashoffset:0; } }

.marbre__lampes{ position:absolute; inset:0; }
.lampe{
  position:absolute; left:50%; top:0;
  width:min(150vw,1500px); height:58vh;
  translate:-50% 0;
  background:radial-gradient(ellipse at center,
    rgba(227,183,160,.070) 0%,
    rgba(227,183,160,.026) 38%,
    rgba(10,10,10,0) 72%);
  will-change:transform;
}

.marbre__grain{
  position:absolute; inset:0;
  opacity:.038;
  background-image:url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' width='150' height='150'>\
<filter id='b'><feTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/>\
<feColorMatrix type='saturate' values='0'/></filter>\
<rect width='150' height='150' filter='url(%23b)'/></svg>");
  background-size:150px 150px;
}

.titre-appui{
  color:var(--gris);
  max-width:56ch;
  margin:-2.5rem 0 3.5rem;
}

.menu{
  font-size:.62rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--gris);
}

.formulaire__rgpd{
  font-size:.78rem; line-height:1.6;
  color:var(--gris);
  margin:0 0 1.5rem;
  max-width:58ch;
}
.formulaire__rgpd a{ color:var(--or); }

.contact__tel{
  display:inline-block;
  font-family:var(--titre); font-size:1.45rem;
  color:var(--or); text-decoration:none;
  margin-right:1.25rem;
}
.contact__tel:hover{ text-decoration:underline; }

.bouton{
  display:inline-block;
  font-family:var(--texte); font-size:.8rem; font-weight:500;
  letter-spacing:.18em; text-transform:uppercase; text-decoration:none;
  color:var(--or);
  padding:1.05rem 2.4rem;
  border:1px solid var(--or);
  background:transparent;
  cursor:pointer;
  position:relative; overflow:hidden;
  transition:color .35s;
}
.bouton::after{
  content:""; position:absolute; inset:0; z-index:-1;
  background:var(--or);
  transform:scaleX(0); transform-origin:left;
  transition:transform .4s cubic-bezier(.7,0,.2,1);
}
.bouton:hover{ color:var(--noir); }
.bouton:hover::after{ transform:scaleX(1); }
.bouton{ isolation:isolate; }

.bouton--plein{ width:100%; margin-top:.5rem; }

.section{ padding-block:var(--respire); }
.constat{ background:var(--noir-doux); }

.marche{
  margin-top:clamp(2.5rem,5vw,4rem);
  border:1px solid var(--trait);
  padding:clamp(1.75rem,4vw,3rem);
}
.marche h2{
  font-family:var(--titre); font-weight:300;
  font-size:clamp(1.4rem,1.1rem + 1.2vw,2.1rem);
  line-height:1.2; margin:0 0 1.5rem;
}
.marche p{
  max-width:64ch; margin:0 0 1.1rem;
  color:var(--gris); font-size:1rem; line-height:1.75;
}
.marche strong{ color:var(--creme); font-weight:400; }

.marche__figure{ margin:2rem 0 1.5rem; }
.marche__figure figcaption{
  font-size:.72rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--or); margin-bottom:1rem;
}
.marche__figure svg{ width:100%; height:auto; max-width:560px; display:block; overflow:visible; }
.marche__figure .axe{ stroke:var(--trait); stroke-width:1; }
.marche__figure .barre{ fill:var(--or); }
.marche__figure .nom{
  fill:var(--creme); font-family:var(--texte); font-size:14px; text-anchor:end;
}
.marche__figure .valeur{
  fill:var(--creme); font-family:var(--texte); font-size:14px; font-weight:500;
}
.marche__chute{
  border-left:2px solid var(--or); padding-left:1.1rem;
  color:var(--creme) !important; font-size:1.05rem !important;
}

.constat__source{
  margin:1rem 0 0 !important;
  font-size:.76rem !important; letter-spacing:.02em;
}
.constat__source a{
  color:var(--gris); text-decoration:underline;
  text-underline-offset:3px; text-decoration-thickness:1px;
  transition:color .25s;
}
.constat__source a:hover{ color:var(--or); }

.constat__grille{
  display:grid; gap:clamp(2.5rem,5vw,5rem);
  grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));
}
.constat h2{
  font-family:var(--titre); font-weight:400;
  font-size:clamp(1.35rem,1.2rem + .6vw,1.75rem);
  line-height:1.3; margin:.4rem 0 .9rem;
}
.constat p:not(.chiffre){ color:var(--gris); margin:0; }

.chiffre{
  font-family:var(--titre);
  font-size:clamp(2.6rem,2rem + 2.6vw,4rem);
  font-weight:300; color:var(--or);
  line-height:1; margin:0;
}

.google__texte{
  max-width:62ch; margin:0 0 1.2rem;
  color:var(--gris); font-size:1.02rem; line-height:1.8;
}
.google__texte strong{ color:var(--creme); font-weight:400; }
.google__offre{
  margin-top:clamp(2rem,4vw,3rem);
  border:1px solid var(--or); padding:clamp(1.5rem,4vw,2.5rem);
}
.google__gratuit{
  margin:0 0 .9rem;
  font-size:.72rem; letter-spacing:.22em; text-transform:uppercase; color:var(--or);
}
.google__offre > p{
  max-width:62ch; margin:0 0 1.75rem;
  color:var(--gris); font-size:.97rem; line-height:1.75;
}
.google__offre > p strong{ color:var(--creme); font-weight:400; }

.offres__famille{
  font-size:.74rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--or); font-weight:500;
  margin:clamp(2.5rem,5vw,3.5rem) 0 1.5rem;
  padding-bottom:.75rem; border-bottom:1px solid var(--trait);
}
.offres__famille:first-of-type{ margin-top:2.5rem; }
.offres__grille--seule{ grid-template-columns:minmax(0,1fr); }
.offres__grille--seule .offre{ max-width:none; }

.offre--vedette{
  border-color:var(--or);
  position:relative;
}
.offre__sceau{
  position:absolute; top:0; left:50%; transform:translate(-50%,-50%);
  margin:0; padding:.35rem 1rem;
  background:var(--noir); border:1px solid var(--or);
  color:var(--or); font-size:.62rem; letter-spacing:.2em; text-transform:uppercase;
  white-space:nowrap;
}
.offre li strong{ color:var(--creme); font-weight:500; }

.offres__grille{
  display:grid; gap:clamp(1.5rem,3vw,2.5rem);
  grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));
}

.offre{
  border:1px solid var(--trait);
  padding:clamp(1.75rem,4vw,2.75rem);
  display:flex; flex-direction:column;
  transition:border-color .4s, transform .4s;
}
.offre:hover{ border-color:var(--or); transform:translateY(-4px); }

.offre__type{
  font-size:.72rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--or); margin:0 0 .75rem;
}
.offre h3{
  font-family:var(--titre); font-weight:400;
  font-size:clamp(1.6rem,1.4rem + .9vw,2.2rem);
  line-height:1.2; margin:0 0 1.5rem;
}
.offre__prix{
  display:flex; flex-direction:column; gap:.25rem;
  margin:0 0 1.75rem; padding-bottom:1.75rem;
  border-bottom:1px solid var(--trait);
}
.offre__prix strong{
  font-family:var(--titre); font-weight:400;
  font-size:clamp(2.2rem,1.8rem + 1.6vw,3rem);
  color:var(--or); line-height:1;
}
.offre__prix span{ font-size:.85rem; color:var(--gris); }

.offre ul{ list-style:none; margin:0 0 1.75rem; padding:0; }
.offre li{
  position:relative; padding-left:1.5rem; margin-bottom:.7rem;
  color:var(--creme); font-size:.97rem; line-height:1.6;
}
.offre li::before{
  content:""; position:absolute; left:0; top:.72em;
  width:7px; height:1px; background:var(--or);
}

.offre__note{
  margin:auto 0 0; padding-top:1.5rem;
  border-top:1px solid var(--trait);
  font-size:.88rem; color:var(--gris);
}

.offre__cta{
  width:100%; margin-top:1.5rem; text-align:center;
}

.formulaire__offre{
  margin:0 0 1.5rem; padding:.9rem 1.1rem;
  border:1px solid var(--or);
  font-size:.9rem; color:var(--creme);
}
.formulaire__offre strong{ color:var(--or); font-weight:500; }
.formulaire__offre button{
  margin-left:.5rem; padding:0;
  background:none; border:0; cursor:pointer;
  color:var(--gris); font:inherit; font-size:.82rem;
  text-decoration:underline; text-underline-offset:3px;
}
.formulaire__offre button:hover{ color:var(--or); }

.avis__liste{ display:grid; gap:1.25rem; margin:0 0 2rem; }
.avis__carte{
  border:1px solid var(--trait); padding:1.5rem;
}
.avis__etoiles{
  margin:0 0 .75rem; color:var(--or);
  font-size:1.05rem; letter-spacing:.2em;
}
.avis__carte blockquote{
  margin:0 0 1rem; font-size:1.02rem; line-height:1.7; color:var(--creme);
}
.avis__carte footer{ font-size:.85rem; color:var(--gris); }

.avis__vide{
  margin:0 0 2rem; padding:1.25rem 1.4rem;
  border:1px dashed var(--trait);
  color:var(--gris); font-size:.92rem;
}

.avis__depot{ border-top:1px solid var(--trait); padding-top:1.5rem; }
.avis__depot summary{
  cursor:pointer; color:var(--or);
  font-size:.8rem; letter-spacing:.16em; text-transform:uppercase;
  padding:.4rem 0; min-height:44px; display:flex; align-items:center;
}
.avis__depot summary:hover{ text-decoration:underline; text-underline-offset:4px; }
.avis__depot .formulaire-avis{ margin-top:1.5rem; }

.etoiles{ border:0; padding:0; margin:0 0 1.75rem; }
.etoiles legend{
  padding:0; margin-bottom:.7rem;
  font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gris);
}
.lu-seulement{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0;
}
.etoiles__grille{ display:inline-flex; flex-direction:row-reverse; gap:.2rem; }
.etoiles__grille input{
  position:absolute; width:1px; height:1px; opacity:0; pointer-events:none;
}
.etoiles__grille label{
  cursor:pointer; padding:.25rem; line-height:0; border-radius:4px;
}
.etoiles__grille svg{
  width:34px; height:34px; display:block;
  fill:transparent;
  stroke:#5a4a44; stroke-width:1.4; stroke-linejoin:round;
  transition:fill .25s ease, stroke .25s ease, transform .25s cubic-bezier(.34,1.56,.64,1);
}

.etoiles__grille label:hover svg,
.etoiles__grille label:hover ~ label svg,
.etoiles__grille input:checked + label svg,
.etoiles__grille input:checked ~ label svg{
  fill:var(--or); stroke:var(--or);
}
.etoiles__grille label:hover svg{ transform:translateY(-3px) scale(1.12); }
.etoiles__grille label:hover ~ label svg{ transform:translateY(-1px); }
.etoiles__grille input:checked + label svg{ transform:scale(1.08); }

.etoiles__grille input:focus-visible + label{
  outline:2px solid var(--or); outline-offset:2px;
}
.etoiles.est-invalide .etoiles__grille svg{ stroke:#E4735F; }

@media (prefers-reduced-motion: reduce){
  .etoiles__grille svg{ transition:fill .2s, stroke .2s; }
  .etoiles__grille label:hover svg,
  .etoiles__grille label:hover ~ label svg,
  .etoiles__grille input:checked + label svg{ transform:none; }
}

.travaux__grille{
  display:grid; gap:clamp(1.5rem,3vw,2.5rem);
  grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));
}
.travail{ text-decoration:none; display:block; }
.travail__image{
  aspect-ratio:16/10; width:100%; height:auto;
  object-fit:cover; object-position:top center;
  background:var(--noir-doux);
  border:1px solid var(--trait);
  display:block;
  transition:border-color .4s, transform .4s;
}
.travail:hover .travail__image{ transform:translateY(-3px); }
.travail:hover .travail__image{ border-color:var(--or); }
.travail h3{
  font-family:var(--titre); font-weight:400;
  font-size:1.4rem; margin:1.1rem 0 .2rem;
}
.travail p{ margin:0; font-size:.85rem; color:var(--gris); }

.travail__voir{
  font-family:var(--texte); font-size:.7rem; font-weight:500;
  letter-spacing:.16em; text-transform:uppercase;
  color:var(--or); margin-left:.9rem;
  opacity:0; transition:opacity .35s;
}
.travail:hover .travail__voir,
.travail:focus-visible .travail__voir{ opacity:1; }


.contact{ background:var(--noir-doux); }
.contact__intro{ color:var(--gris); margin:0 0 3rem; }

.choix{ border:0; padding:0; margin:0 0 1.6rem; }
.choix legend{
  padding:0; margin-bottom:.7rem;
  font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gris);
}
.choix__grille{ display:flex; flex-wrap:wrap; gap:.5rem; }
.choix__grille input{
  position:absolute; width:1px; height:1px; opacity:0; pointer-events:none;
}
.choix__grille label{
  display:inline-flex; align-items:center;
  min-height:44px; padding:.55rem 1rem;
  border:1px solid var(--trait); border-radius:2px;
  color:var(--creme); font-size:.9rem; line-height:1.3;
  cursor:pointer;
  transition:border-color .25s, color .25s, background .25s;
}
.choix__grille label:hover{ border-color:var(--or); }
.choix__grille input:checked + label{
  border-color:var(--or); color:var(--or);
  background:rgba(227,183,160,.08);
}
.choix__grille input:focus-visible + label{ outline:2px solid var(--or); outline-offset:2px; }
.choix.est-invalide .choix__grille label{ border-color:#E4735F; }
.champ__option{
  color:var(--gris); font-size:.78rem; letter-spacing:.06em; text-transform:none;
}

.champ{ margin-bottom:1.6rem; }
.champ label{
  display:block; margin-bottom:.5rem;
  font-size:.75rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--or);
}
.champ input,.champ textarea{
  width:100%; padding:.9rem 1rem;
  background:var(--noir);
  border:1px solid var(--trait);
  color:var(--creme);
  font-family:var(--texte); font-size:1rem;
  transition:border-color .3s;
}
.champ input:focus,.champ textarea:focus{ border-color:var(--or); outline:none; }
.champ textarea{ resize:vertical; }

.champ.est-invalide input,.champ.est-invalide textarea{ border-color:#E4735F; }
.erreur{ margin:.45rem 0 0; font-size:.82rem; color:#E4735F; min-height:1px; }

.piege{ position:absolute; left:-9999px; opacity:0; }

.formulaire__etat{ margin-top:1.25rem; font-size:.9rem; color:var(--or); }

.contact__direct{ margin-top:2.5rem; font-size:.92rem; color:var(--gris); }
.contact__direct a{ color:var(--or); text-decoration:none; border-bottom:1px solid var(--trait); }
.contact__direct a:hover{ border-bottom-color:var(--or); }

.pied__zone{
  width:100%; justify-self:stretch;
  border-bottom:1px solid var(--trait);
  padding-bottom:2.5rem; margin-bottom:2.5rem;
  text-align:left;
}
.pied__zone h2{
  font-family:var(--titre); font-weight:300;
  font-size:clamp(1.3rem,1.1rem + .8vw,1.75rem);
  margin:0 0 .75rem; color:var(--creme);
}
.pied__zone-intro{
  max-width:60ch; margin:0 0 2rem;
  color:var(--gris); font-size:.95rem; line-height:1.7;
}
.pied__zone-grille{
  display:grid; gap:1.5rem 2rem;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));
  margin-bottom:2rem;
}
.pied__zone-grille h3{
  font-size:.72rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--or); margin:0 0 .6rem; font-weight:500;
}
.pied__zone-grille p{
  margin:0; color:var(--gris);
  font-size:.88rem; line-height:1.7;
}
.pied__zone-appui{
  margin:0; max-width:72ch;
  color:var(--gris); font-size:.88rem; line-height:1.7;
}
.pied__zone-appui a{ color:var(--or); }

.pied{ padding-block:4rem; border-top:1px solid var(--trait); }
.pied .wrap{ display:grid; gap:1.75rem; justify-items:center; text-align:center; }
.pied__legal{ margin:0; font-size:.8rem; color:var(--gris); line-height:1.9; }
.a-remplir{ color:#E4735F; }
.pied__social{
  display:flex; flex-wrap:wrap; gap:1rem 1.75rem;
  align-items:center; justify-content:center;
}
.pied__social svg{ width:18px; height:18px; flex:none; }

.pied__social-bientot{
  display:inline-flex; align-items:center; gap:.5rem;
  color:var(--gris); font-size:.78rem;
  letter-spacing:.14em; text-transform:uppercase;
  opacity:.65; cursor:default;
}
.pied__social-bientot svg{ fill:currentColor; }

.pied__partage{
  display:inline-flex; align-items:center; gap:.55rem;
  min-height:44px; padding:.55rem 1.1rem;
  background:transparent; border:1px solid var(--trait); border-radius:2px;
  color:var(--or); font-family:var(--texte);
  font-size:.74rem; letter-spacing:.16em; text-transform:uppercase;
  cursor:pointer;
  transition:border-color .3s, background .3s;
}
.pied__partage:hover{ border-color:var(--or); background:rgba(227,183,160,.08); }
.pied__partage:focus-visible{ outline:2px solid var(--or); outline-offset:2px; }
.pied__partage[data-etat="fait"]{ border-color:var(--or); color:var(--creme); }

.pied__liens{ display:flex; flex-wrap:wrap; gap:1.75rem; justify-content:center; }
.pied__liens a{
  font-size:.8rem; color:var(--gris); text-decoration:none;
  transition:color .3s;
}
.pied__liens a:hover{ color:var(--or); }

.legal{
  padding-block:calc(var(--respire) + 4rem) var(--respire);
}
.legal__titre{
  font-family:var(--titre); font-weight:300;
  font-size:clamp(2.2rem,1.6rem + 2.4vw,3.4rem);
  line-height:1.15; letter-spacing:-.01em;
  margin:0 0 .75rem;
}
.legal__maj{ margin:0 0 3rem; font-size:.82rem; color:var(--gris); }
.legal__chapo{
  font-size:clamp(1.02rem,1rem + .3vw,1.18rem);
  color:var(--creme);
  border-left:1px solid var(--or);
  padding-left:1.5rem;
  margin:0 0 3.5rem;
}
.legal h2{
  font-family:var(--titre); font-weight:400;
  font-size:clamp(1.4rem,1.25rem + .7vw,1.85rem);
  line-height:1.3; color:var(--or);
  margin:3rem 0 1rem;
}
.legal p{ color:var(--gris); margin:0 0 1.1rem; }
.legal p strong{ color:var(--creme); font-weight:500; }
.legal ul{ margin:0 0 1.5rem; padding:0; list-style:none; }
.legal li{
  position:relative; padding-left:1.5rem; margin-bottom:.6rem;
  color:var(--gris); line-height:1.7;
}
.legal li::before{
  content:""; position:absolute; left:0; top:.8em;
  width:7px; height:1px; background:var(--or);
}
.legal li strong{ color:var(--creme); font-weight:500; }
.legal a{ color:var(--or); text-decoration:none; border-bottom:1px solid var(--trait); }
.legal a:hover{ border-bottom-color:var(--or); }
.legal__retour{ margin-top:4rem; padding-top:2rem; border-top:1px solid var(--trait); }

.erreur404{
  min-height:100svh;
  display:grid; place-items:center;
  text-align:center;
  padding-block:var(--respire);
}
.erreur404__logo{ margin:0 auto 2.5rem; }
.erreur404 h1{
  font-family:var(--titre); font-weight:300;
  font-size:clamp(2.2rem,1.6rem + 3vw,4rem);
  line-height:1.1; margin:0 0 1.5rem;
}
.erreur404 h1 em{ font-style:normal; color:var(--or); }
.erreur404 .chapo{ margin-inline:auto; }
.erreur404__liens{
  display:flex; flex-direction:column; align-items:center; gap:1.5rem;
}
.erreur404__contact{
  font-size:.85rem; color:var(--gris); text-decoration:none;
  border-bottom:1px solid var(--trait);
}
.erreur404__contact:hover{ color:var(--or); border-bottom-color:var(--or); }

html:not(.js) [data-anim]{ opacity:1 !important; transform:none !important; }

[data-anim]{
  opacity:0;
  transform:translateY(24px);
  transition:opacity .9s cubic-bezier(.16,1,.3,1), transform .9s cubic-bezier(.16,1,.3,1);
}
[data-anim].est-visible{ opacity:1; transform:none; }

[data-anim]:nth-child(2){ transition-delay:.08s; }
[data-anim]:nth-child(3){ transition-delay:.16s; }
[data-anim]:nth-child(4){ transition-delay:.24s; }

@media (prefers-reduced-motion:reduce){
  [data-anim]{ opacity:1; transform:none; transition:none; }
  .hero__scroll span{ animation:none; }
  .hero__video{ display:none; }

  .hero{ height:auto; }
  .hero__colle{ position:static; height:auto; min-height:100svh; }
  .hero__ecran{ display:none; }
  .hero__panneau{ display:none; }
}

@media (max-width:860px){

  .hero{ height:300vh; }
  .hero__colle{
    padding:6rem var(--marge) 4rem;
    justify-content:flex-start;
  }
  .hero__ecran{ display:none; }
  .hero__tel{ display:flex; }

  .hero__panneau{
    left:var(--marge); right:var(--marge);
    width:auto; max-width:none;
    text-align:left;
  }
  .hero__panneau--droite{ text-align:left; }
  .hero__panneau--droite::before{ right:auto; left:0; }
  .hero__panneau h2{ font-size:clamp(1.35rem,1.1rem + 2.2vw,1.9rem); }
  .hero__panneau p{ font-size:.94rem; line-height:1.65; }
  .hero h1{ font-size:clamp(2rem,1.5rem + 3vw,2.9rem); }
  .chapo{ margin-bottom:2rem; }

  .nav{ padding:.9rem var(--marge); }
  .nav__logo span{ display:none; }
  .nav__logo img{ width:40px; height:49px; }
  .nav__cta{ padding:.55rem .9rem; font-size:.7rem; letter-spacing:.1em; }

  .marbre__lampes{ opacity:.7; }
  .veines-eclat{ display:none; }

  .contact__tel{
    display:block; width:100%;
    margin:0 0 .6rem;
    font-family:var(--titre); font-size:1.6rem; line-height:1.2;
    color:var(--or); text-decoration:none;
    border:1px solid var(--trait); padding:.85rem 1rem;
    text-align:center;
  }
  .contact__tel .menu{ display:block; font-family:var(--texte);
    font-size:.6rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gris); }

  .travail h3{ color:var(--or); }
  .travail__voir{
    display:inline-block; margin-left:.5rem;
    font-family:var(--texte); font-size:.64rem; letter-spacing:.14em;
    text-transform:uppercase; color:var(--noir); background:var(--or);
    padding:.2rem .5rem; opacity:1;
  }

  .nav__cta, .bouton, .travail{ min-height:44px; }
}

@media (max-width:420px){
  .hero__rang{ flex-direction:column; }
}

.corps--page{ position:relative; min-height:60vh; }
.corps--page .corps__marbre{ opacity:.85; }
.corps--page .lit-fige, .corps--page .fortes-fige{ display:none; }
.corps--page .section,
.corps--page .wrap{ position:relative; z-index:1; }
