:root{

  --ivoire:    #F4EEE1;
  --sable:     #EBE2CE;
  --creme:     #FBF7EE;
  --vert:      #0F3D33;
  --vert-2:    #0B2E27;
  --vert-3:    #16574A;
  --ink:       #14201C;
  --laiton:    #B68A40;
  --laiton-clr:#D8B36A;
  --texte:     #243029;
  --texte-doux:#4A554B;
  --pierre:    #A9B5A6;
  --pierre-clr:#D4DCCF;
  --ligne:     rgba(20,32,28,.14);
  --ligne-or:  rgba(182,138,64,.30);
  --ligne-clr: rgba(216,179,106,.22);

  --serif: "Cormorant Garamond", Georgia, serif;
  --arab:  "Amiri", "Cormorant Garamond", Georgia, serif;
  --sans:  "Mulish", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  --gut: clamp(1.25rem, 5vw, 3rem);
  --max: 1240px;
  --section-y: clamp(4.5rem, 9vw, 8.5rem);
  --ease: cubic-bezier(.16,1,.3,1);

  --motif-or:   url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='68'%20height='68'%20viewBox='0%200%2068%2068'%3E%3Cg%20fill='none'%20stroke='%23D8B36A'%20stroke-width='1'%3E%3Crect%20x='22'%20y='22'%20width='24'%20height='24'/%3E%3Crect%20x='22'%20y='22'%20width='24'%20height='24'%20transform='rotate(45%2034%2034)'/%3E%3C/g%3E%3C/svg%3E");
  --motif-fonce:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='68'%20height='68'%20viewBox='0%200%2068%2068'%3E%3Cg%20fill='none'%20stroke='%230F3D33'%20stroke-width='1'%3E%3Crect%20x='22'%20y='22'%20width='24'%20height='24'/%3E%3Crect%20x='22'%20y='22'%20width='24'%20height='24'%20transform='rotate(45%2034%2034)'/%3E%3C/g%3E%3C/svg%3E");
}

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; overflow-x:clip; font-size:104.5%; }
body{
  font-family:var(--sans); font-weight:400; color:var(--texte);
  background:var(--ivoire); line-height:1.7;
  font-size:clamp(1rem, .96rem + .2vw, 1.08rem);
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:clip; max-width:100%;
}
img{ display:block; max-width:100%; height:auto; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; border:none; background:none; color:inherit; }
ul,ol{ list-style:none; }
::selection{ background:var(--laiton); color:var(--creme); }
[lang="ar"]{ font-family:var(--arab); }

.conteneur{ width:100%; max-width:var(--max); margin-inline:auto; padding-inline:var(--gut); }
.section{ padding-block:var(--section-y); position:relative; }

.surtitre{
  font-family:var(--sans); font-size:.72rem; font-weight:600;
  letter-spacing:.26em; text-transform:uppercase; color:var(--laiton);
  display:inline-flex; align-items:center; gap:.85em; margin-bottom:1.4rem;
}
.surtitre::before{ content:""; width:2.4rem; height:1px; background:currentColor; opacity:.6; }
.surtitre--clair{ color:var(--laiton-clr); }
.surtitre [lang="ar"]{ letter-spacing:0; font-size:1.1em; }

.titre-section{
  font-family:var(--serif); font-weight:500;
  font-size:clamp(1.95rem, 1.2rem + 2.7vw, 3.3rem);
  line-height:1.1; letter-spacing:-.01em; color:var(--vert); max-width:20ch;
}
.titre-section--clair{ color:var(--creme); }
.titre-section em{ font-style:italic; color:var(--laiton); }

.chapo{ margin-top:1.4rem; max-width:56ch; color:var(--texte-doux); font-size:1.08rem; }
.chapo--clair{ color:var(--pierre-clr); }

.entete-section{ margin-bottom:clamp(2.5rem,5vw,4.5rem); }
.entete-section--centre{ text-align:center; display:flex; flex-direction:column; align-items:center; }
.entete-section--centre .surtitre::before{ display:none; }
.entete-section--centre .titre-section{ max-width:24ch; }
.entete-section--centre .chapo{ margin-inline:auto; }

p + p{ margin-top:1.15rem; }
em{ font-style:italic; }
strong{ font-weight:700; color:var(--vert); }

.ornement{ display:flex; align-items:center; justify-content:center; gap:1rem; margin-top:1.8rem; }
.ornement span{ height:1px; width:clamp(2.5rem,9vw,5rem); background:linear-gradient(90deg, transparent, var(--laiton)); }
.ornement span:last-child{ background:linear-gradient(90deg, var(--laiton), transparent); }
.ornement svg{ width:22px; height:22px; color:var(--laiton); }
.ornement--clair span{ background:linear-gradient(90deg, transparent, var(--laiton-clr)); }
.ornement--clair span:last-child{ background:linear-gradient(90deg, var(--laiton-clr), transparent); }
.ornement--clair svg{ color:var(--laiton-clr); }

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.6em;
  font-family:var(--sans); font-weight:600; font-size:.82rem;
  letter-spacing:.08em; text-transform:uppercase; padding:1.05em 1.9em; border-radius:1px;
  transition:background .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease);
}
.btn--primaire{ background:var(--laiton); color:var(--creme); }
.btn--primaire:hover{ background:var(--vert); }
.btn--bloc{ width:100%; margin-top:.5rem; }
.btn--lien{ padding:.6em 0; text-transform:none; letter-spacing:.02em; font-size:.95rem; color:var(--vert); }
.btn--lien .icone-fleche{ width:1.25em; height:1.25em; transition:transform .35s var(--ease); }
.btn--lien:hover .icone-fleche{ transform:translateX(.4em); }
.btn--lien-clair{ color:var(--creme); }
.btn--entete{ background:transparent; border:1px solid currentColor; padding:.85em 1.5em; font-size:.74rem; }
.entete[data-sur-hero="true"]:not(.est-condense) .btn--entete{ color:var(--creme); }
.entete[data-sur-hero="true"]:not(.est-condense) .btn--entete:hover{ background:var(--creme); color:var(--vert); border-color:var(--creme); }
.entete.est-condense .btn--entete{ color:var(--vert); }
.entete.est-condense .btn--entete:hover{ background:var(--vert); color:var(--creme); border-color:var(--vert); }

.entete{ position:fixed; inset:0 0 auto 0; z-index:100; padding-block:1.1rem;
  transition:background .4s var(--ease), padding .4s var(--ease), box-shadow .4s var(--ease); }
.entete__inner{ display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
  max-width:none; padding-inline:clamp(1.25rem, 3.5vw, 4rem); }
.entete.est-condense{ background:rgba(244,238,225,.94); backdrop-filter:saturate(140%) blur(10px);
  -webkit-backdrop-filter:saturate(140%) blur(10px); padding-block:.7rem; box-shadow:0 1px 0 var(--ligne-or); }

.progres{ position:absolute; left:0; right:0; bottom:0; height:2px; background:rgba(216,179,106,.14); }
.progres i{ display:block; height:100%; width:0; background:linear-gradient(90deg, var(--laiton), var(--laiton-clr)); transition:width .12s linear; }

.nav__liste a.est-actif{ color:var(--laiton); }
.nav__liste a.est-actif::after{ width:100%; }

.logo{ display:inline-flex; align-items:center; gap:.75rem; }
.logo__mark{ width:30px; height:30px; color:var(--laiton); flex:none; transition:color .4s var(--ease); }
.logo__txt{ display:flex; flex-direction:column; line-height:1.05; }
.logo__marque{ font-family:var(--serif); font-weight:600; font-size:1.5rem; letter-spacing:.08em; color:var(--vert); transition:color .4s var(--ease); display:flex; align-items:baseline; gap:.5em; }
.logo__ar{ font-size:1rem; color:var(--laiton); font-weight:400; }
.logo__fosse{ font-family:var(--sans); font-weight:600; font-size:.58rem; letter-spacing:.3em; text-transform:uppercase; color:var(--laiton); margin-top:.3rem; }
.entete[data-sur-hero="true"]:not(.est-condense) .logo__marque{ color:var(--creme); }
.entete[data-sur-hero="true"]:not(.est-condense) .logo__mark,
.entete[data-sur-hero="true"]:not(.est-condense) .logo__ar{ color:var(--laiton-clr); }

.nav__liste{ display:flex; gap:2.1rem; }
.nav__liste a{ font-size:.82rem; font-weight:500; letter-spacing:.04em; color:var(--texte); position:relative; padding-block:.3rem; transition:color .3s var(--ease); }
.nav__liste a::after{ content:""; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--laiton); transition:width .35s var(--ease); }
.nav__liste a:hover{ color:var(--laiton); }
.nav__liste a:hover::after{ width:100%; }
.entete[data-sur-hero="true"]:not(.est-condense) .nav__liste a{ color:rgba(251,247,238,.85); }
.entete[data-sur-hero="true"]:not(.est-condense) .nav__liste a:hover{ color:var(--creme); }

.burger{ display:none; width:30px; height:22px; position:relative; z-index:101; }
.burger span{ position:absolute; left:0; width:100%; height:1.5px; background:var(--vert); transition:transform .35s var(--ease), opacity .25s var(--ease), background .35s var(--ease); }
.burger span:nth-child(1){ top:0; } .burger span:nth-child(2){ top:50%; transform:translateY(-50%); } .burger span:nth-child(3){ bottom:0; }
.entete[data-sur-hero="true"]:not(.est-condense) .burger span{ background:var(--creme); }
.burger.est-ouvert span{ background:var(--creme); }
.burger.est-ouvert span:nth-child(1){ top:50%; transform:translateY(-50%) rotate(45deg); }
.burger.est-ouvert span:nth-child(2){ opacity:0; }
.burger.est-ouvert span:nth-child(3){ bottom:auto; top:50%; transform:translateY(-50%) rotate(-45deg); }

.menu-mobile{ position:fixed; inset:0; z-index:99; background:var(--vert); display:flex; align-items:center; justify-content:center; opacity:0; visibility:hidden; transition:opacity .45s var(--ease), visibility .45s; }
.menu-mobile::before{ content:""; position:absolute; inset:0; background-image:var(--motif-or); opacity:.08; }
.menu-mobile.est-ouvert{ opacity:1; visibility:visible; }
.menu-mobile ul{ text-align:center; display:grid; gap:1.4rem; position:relative; }
.menu-mobile a{ font-family:var(--serif); font-size:2rem; color:var(--creme); font-weight:500; opacity:.92; transition:color .3s var(--ease); }
.menu-mobile a:hover{ color:var(--laiton-clr); }
.menu-mobile__contact{ color:var(--laiton-clr)!important; font-style:italic; }
body.menu-ouvert{ overflow:hidden; }

.hero{ position:relative; min-height:100svh; display:flex; flex-direction:column;
  padding-top:clamp(6rem,14vh,10rem); padding-bottom:0; overflow:hidden; color:var(--creme); }
.hero__media{ position:absolute; inset:0; z-index:0; overflow:hidden; }
.hero__media img{ width:100%; height:100%; object-fit:cover; object-position:center; }
.hero__voile{ position:absolute; inset:0; background:
  linear-gradient(180deg, rgba(11,46,39,.62) 0%, rgba(11,46,39,.22) 30%, rgba(11,46,39,.66) 75%, rgba(11,46,39,.92) 100%),
  linear-gradient(90deg, rgba(11,46,39,.72) 0%, rgba(11,46,39,0) 62%); }
.hero__motif{ position:absolute; inset:0; z-index:1; background-image:var(--motif-or); opacity:.07; pointer-events:none; }
.hero__inner{ position:relative; z-index:2; margin-top:auto; padding-bottom:clamp(2.4rem,5vh,4rem); }
.hero__titre{ font-family:var(--serif); font-weight:500; font-size:clamp(2.6rem, 1.1rem + 6.4vw, 5.8rem);
  line-height:1.03; letter-spacing:-.015em; margin:1rem 0 1.8rem; max-width:15ch; }
.hero__titre .ligne{ display:block; overflow:hidden; padding-bottom:.04em; }
.hero__titre .ligne > span{ display:block; }
.hero__titre em{ color:var(--laiton-clr); font-style:italic; }
.hero__sous-titre{ max-width:48ch; font-size:1.12rem; color:rgba(251,247,238,.9); font-weight:300; }
.hero__actions{ margin-top:2.2rem; display:flex; align-items:center; gap:1.8rem; flex-wrap:wrap; }
.hero__actions .btn--primaire{ background:var(--laiton); color:var(--creme); }
.hero__actions .btn--primaire:hover{ background:var(--creme); color:var(--vert); }
.hero__scroll{ position:absolute; left:50%; bottom:1.6rem; transform:translateX(-50%); z-index:2; color:rgba(251,247,238,.7); }
.hero__scroll svg{ width:1.4rem; height:1.4rem; animation:flotte 2.4s var(--ease) infinite; }
@keyframes flotte{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(.4rem); } }

.epigraphe{ position:relative; background:var(--vert-2); color:var(--creme); padding-block:clamp(4rem,8vw,7rem); overflow:hidden; }
.epigraphe__motif{ position:absolute; inset:0; background-image:var(--motif-or); opacity:.08; }
.epigraphe__inner{ position:relative; text-align:center; max-width:780px; margin-inline:auto; }
.epigraphe__inner .ornement{ margin-top:0; }
.epigraphe__ar{ font-family:var(--arab); font-size:clamp(2.2rem,1rem+5vw,4rem); line-height:1.7; color:var(--laiton-clr); margin-top:1.6rem; }
.epigraphe__fr{ font-family:var(--serif); font-style:italic; font-size:clamp(1.3rem,1rem+1.3vw,1.9rem); color:var(--creme); margin-top:1rem; }
.epigraphe__note{ margin-top:1.8rem; color:var(--pierre-clr); max-width:54ch; margin-inline:auto; font-weight:300; }

.visuel-arche__cadre{
  -webkit-clip-path:url(#arche); clip-path:url(#arche);
  background:linear-gradient(160deg, var(--laiton-clr), var(--laiton));
  padding:3px;
}
.visuel-arche__cadre img{
  -webkit-clip-path:url(#arche); clip-path:url(#arche);
  width:100%; height:100%; object-fit:cover; filter:saturate(.95);
}

.grille-presentation{ display:grid; grid-template-columns:0.82fr 1fr; gap:clamp(2rem,5vw,5rem); align-items:center; }
.visuel-arche{ position:relative; }
.visuel-arche .visuel-arche__cadre{ aspect-ratio:3/4.2; }
.visuel-arche figcaption{ margin-top:1.1rem; text-align:center; font-family:var(--serif); font-style:italic; font-size:1.1rem; color:var(--texte-doux); }
.visuel-arche figcaption [lang="ar"]{ color:var(--laiton); font-style:normal; font-size:1.2em; }
.presentation__texte .titre-section{ margin-block:.4rem 1.6rem; }
.presentation__texte p{ color:var(--texte-doux); }

.valeurs{ margin-top:clamp(3.5rem,7vw,6rem); display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(1.5rem,3vw,2.5rem); }
.valeur{ text-align:center; padding:0 .5rem; }
.valeur__etoile{ display:inline-block; width:30px; height:30px; margin-bottom:1.2rem;
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cg%20fill='none'%20stroke='%23B68A40'%20stroke-width='1.2'%3E%3Crect%20x='6'%20y='6'%20width='12'%20height='12'/%3E%3Crect%20x='6'%20y='6'%20width='12'%20height='12'%20transform='rotate(45%2012%2012)'/%3E%3C/g%3E%3C/svg%3E");
  background-size:contain; background-repeat:no-repeat; }
.valeur h3{ font-family:var(--serif); font-weight:600; font-size:1.45rem; color:var(--vert); margin-bottom:.6rem; }
.valeur p{ font-size:.95rem; color:var(--texte-doux); }

.section--prestations{ background:var(--sable); }
.cartes{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1rem,2vw,1.6rem); }
.carte{ background:var(--creme); border:1px solid var(--ligne-or); padding:clamp(1.8rem,2.5vw,2.4rem);
  position:relative; transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease); }
.carte::after{ content:""; position:absolute; inset:6px; border:1px solid transparent; transition:border-color .4s var(--ease); pointer-events:none; }
.carte:hover{ box-shadow:0 18px 40px -28px rgba(15,61,51,.5); border-color:var(--laiton); }
.carte:hover::after{ border-color:var(--ligne-or); }
.carte__icone{ width:3rem; height:3rem; color:var(--vert); margin-bottom:1.4rem; }
.carte__icone svg{ width:100%; height:100%; }
.carte h3{ font-family:var(--serif); font-weight:600; font-size:1.4rem; color:var(--vert); margin-bottom:.7rem; line-height:1.2; }
.carte p{ font-size:.95rem; color:var(--texte-doux); }

.section--rite{ position:relative; color:var(--creme); overflow:hidden; }
.rite__media{ position:absolute; inset:0; z-index:0; }
.rite__media img{ width:100%; height:100%; object-fit:cover; }
.rite__voile{ position:absolute; inset:0; background:linear-gradient(120deg, rgba(11,46,39,.95) 0%, rgba(15,61,51,.9) 55%, rgba(15,61,51,.82) 100%); }
.rite__motif{ position:absolute; inset:0; z-index:1; background-image:var(--motif-or); opacity:.07; }
.rite__inner{ position:relative; z-index:2; display:grid; grid-template-columns:0.9fr 1.1fr; gap:clamp(2rem,5vw,5rem); align-items:start; }
.rite__chapo{ margin-top:1.4rem; color:var(--pierre-clr); font-weight:300; font-size:1.08rem; max-width:42ch; }
.rite__points{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.5rem,3vw,2.5rem); }
.rite__points li{ position:relative; padding-left:2.4rem; }
.rite__points li::before{ content:""; position:absolute; left:0; top:.2rem; width:1.4rem; height:1.4rem;
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cg%20fill='none'%20stroke='%23D8B36A'%20stroke-width='1.3'%3E%3Crect%20x='6'%20y='6'%20width='12'%20height='12'/%3E%3Crect%20x='6'%20y='6'%20width='12'%20height='12'%20transform='rotate(45%2012%2012)'/%3E%3C/g%3E%3C/svg%3E");
  background-size:contain; background-repeat:no-repeat; }
.rite__points h3{ font-family:var(--serif); font-weight:600; font-size:1.35rem; color:var(--creme); margin-bottom:.4rem; }
.rite__points p{ color:var(--pierre-clr); font-size:.96rem; font-weight:300; }

.grille-matiere{ display:grid; grid-template-columns:1.1fr 0.7fr; gap:clamp(2rem,5vw,5rem); align-items:center; }
.matiere__texte p{ color:var(--texte-doux); }
.matiere__texte .titre-section{ margin-block:.4rem 1.4rem; max-width:18ch; }
.visuel-arche--petite .visuel-arche__cadre{ aspect-ratio:3/4; }
.liste-coche{ margin-top:2rem; display:grid; gap:1rem; }
.liste-coche li{ position:relative; padding-left:2rem; color:var(--texte-doux); }
.liste-coche li::before{ content:""; position:absolute; left:0; top:.55em; width:1.2rem; height:1px; background:var(--laiton); }

.methode{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.5rem,3vw,3rem); }
.methode__etape{ position:relative; padding-top:1.2rem; border-top:1px solid var(--ligne-or); }
.methode__num{ font-family:var(--serif); font-size:2.4rem; color:var(--laiton); line-height:1; display:block; margin-bottom:.8rem; }
.methode__etape h3{ font-family:var(--serif); font-weight:600; font-size:1.35rem; color:var(--vert); margin-bottom:.5rem; }
.methode__etape p{ font-size:.95rem; color:var(--texte-doux); }

.section--engagements{ position:relative; background:var(--vert); color:var(--creme); overflow:hidden; }
.engagements__motif{ position:absolute; inset:0; background-image:var(--motif-or); opacity:.08; }
.section--engagements .conteneur{ position:relative; }
.engagements{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(1.5rem,3vw,2.5rem); }
.engagement{ text-align:left; }
.engagement h3{ font-family:var(--serif); font-weight:600; font-size:1.5rem; color:var(--creme); margin-bottom:.9rem; padding-bottom:.9rem; position:relative; }
.engagement h3::after{ content:""; position:absolute; left:0; bottom:0; width:2.2rem; height:1px; background:var(--laiton-clr); }
.engagement p{ color:var(--pierre-clr); font-size:.96rem; font-weight:300; }

.section--realisations{ background:var(--sable); }
.galerie{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(1.2rem,2.5vw,2rem); }
.galerie__item .visuel-arche__cadre{ aspect-ratio:3/4.2; transition:transform .6s var(--ease); }
.galerie__item:hover .visuel-arche__cadre{ transform:translateY(-6px); }
.galerie__item figcaption{ margin-top:1rem; text-align:center; font-size:.9rem; color:var(--texte-doux); font-style:italic; font-family:var(--serif); font-size:1.05rem; }
.note-discrete{ margin-top:1.8rem; text-align:center; font-size:.85rem; font-style:italic; color:var(--texte-doux); }

.grille-faq{ display:grid; grid-template-columns:0.7fr 1.3fr; gap:clamp(2rem,5vw,5rem); align-items:start; }
.faq__entete{ position:sticky; top:7rem; }
.faq{ border-top:1px solid var(--ligne-or); }
.faq__item{ border-bottom:1px solid var(--ligne-or); }
.faq__question{ width:100%; display:flex; align-items:center; justify-content:space-between; gap:1.5rem; text-align:left; padding:1.6rem 0;
  font-family:var(--serif); font-size:1.3rem; font-weight:500; color:var(--vert); transition:color .3s var(--ease); }
.faq__question:hover{ color:var(--laiton); }
.faq__plus{ position:relative; width:18px; height:18px; flex:none; }
.faq__plus::before,.faq__plus::after{ content:""; position:absolute; background:var(--laiton); transition:transform .35s var(--ease); }
.faq__plus::before{ top:50%; left:0; width:100%; height:1.5px; transform:translateY(-50%); }
.faq__plus::after{ left:50%; top:0; width:1.5px; height:100%; transform:translateX(-50%); }
.faq__item.est-ouvert .faq__plus::after{ transform:translateX(-50%) scaleY(0); }
.faq__reponse{ overflow:hidden; height:0; transition:height .4s var(--ease); }
.faq__reponse p{ padding-bottom:1.7rem; color:var(--texte-doux); max-width:64ch; }

.section--contact{ background:var(--vert-2); color:var(--creme); position:relative; overflow:hidden; }
.contact__motif{ position:absolute; inset:0; background-image:var(--motif-or); opacity:.07; }
.grille-contact{ position:relative; z-index:1; display:grid; grid-template-columns:1fr 1fr; gap:clamp(2.5rem,5vw,5rem); align-items:start; }
.contact__intro{ color:var(--pierre-clr); max-width:46ch; font-weight:300; margin-top:1.4rem; }
.coordonnees{ margin-top:2.4rem; display:grid; border-top:1px solid var(--ligne-clr); }
.coordonnees li{ display:flex; justify-content:space-between; gap:1.5rem; align-items:baseline; padding:1.15rem 0; border-bottom:1px solid var(--ligne-clr); }
.coordonnees__label{ flex:none; font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--pierre); }
.coordonnees__valeur,.coordonnees a{ font-family:var(--serif); font-size:1.12rem; color:var(--creme); min-width:0; text-align:right; overflow-wrap:break-word; }
.coordonnees a{ transition:color .3s var(--ease); }
.coordonnees a:hover{ color:var(--laiton-clr); }
.section--contact strong{ color:var(--creme); }
[data-placeholder]{ color:var(--laiton-clr); font-style:italic; font-size:.95rem!important; opacity:.9; }
.contact__signature{ margin-top:2rem; font-family:var(--serif); font-style:italic; font-size:1.3rem; color:var(--pierre-clr); }
.contact__signature [lang="ar"]{ color:var(--laiton-clr); font-style:normal; }

.contact__form{ background:rgba(255,255,255,.04); border:1px solid var(--ligne-clr); padding:clamp(1.6rem,3vw,2.6rem); }
.champ{ margin-bottom:1.4rem; }
.champ label{ display:block; font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--pierre); margin-bottom:.6rem; }
.champ input,.champ textarea,.champ select{ width:100%; background:transparent; border:none; border-bottom:1px solid var(--ligne-clr); color:var(--creme); font-family:var(--sans); font-size:1rem; padding:.7rem 0; transition:border-color .3s var(--ease); }
.champ textarea{ resize:vertical; }
.champ select{ -webkit-appearance:none; appearance:none; cursor:pointer; padding-right:1.8rem; background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cpath%20d='M6%209l6%206%206-6'%20fill='none'%20stroke='%23C2A06A'%20stroke-width='1.6'%20stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right .1rem center; background-size:1.1rem; }
.champ select option{ color:#1A1F1A; }
.champ input::placeholder,.champ textarea::placeholder{ color:var(--pierre); }
.champ input:focus,.champ textarea:focus,.champ select:focus{ outline:none; border-color:var(--laiton-clr); }
.champ.est-invalide input,.champ.est-invalide textarea,.champ.est-invalide select{ border-color:#c97a6d; }
.champ-piege{ position:absolute!important; left:-9999px!important; width:1px; height:1px; opacity:0; overflow:hidden; }
.champ__erreur{ display:block; min-height:1rem; margin-top:.4rem; font-size:.8rem; color:#e0998d; }
.form__statut{ margin-top:1rem; font-size:.92rem; color:var(--laiton-clr); min-height:1.2rem; }
.form__statut.est-succes{ color:#9bbf8f; }

.pied{ position:relative; background:var(--ink); color:var(--pierre-clr); padding-block:clamp(3rem,5vw,4.5rem) 1.5rem; overflow:hidden; }
.pied__motif{ position:absolute; inset:0; background-image:var(--motif-or); opacity:.05; }
.pied .conteneur{ position:relative; max-width:none; padding-inline:clamp(1.25rem,3.5vw,4rem); }
.pied__inner{ display:grid; grid-template-columns:1.3fr .8fr 1fr; gap:clamp(2rem,4vw,4rem); padding-bottom:2.6rem; border-bottom:1px solid var(--ligne-clr); }
.pied .logo__marque{ color:var(--creme); }
.pied .logo__mark,.pied .logo__ar{ color:var(--laiton-clr); }
.pied__marque > p{ margin-top:1.1rem; font-family:var(--serif); font-style:italic; font-size:1.1rem; color:var(--pierre); max-width:30ch; }
.pied__nav ul{ display:grid; gap:.85rem; }
.pied__nav a{ font-size:.92rem; color:var(--pierre-clr); transition:color .3s var(--ease); }
.pied__nav a:hover{ color:var(--laiton-clr); }
.pied__contact p{ display:grid; gap:.2rem; margin-bottom:1.1rem; font-size:.95rem; }
.pied__contact span{ font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; color:var(--pierre); }
.pied__contact em{ font-style:italic; }
.pied__bas{ display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; padding-top:1.5rem; font-size:.8rem; color:var(--pierre); }

.bandeau{
  background:var(--vert-2); border-block:1px solid var(--ligne-or);
  overflow:hidden; padding-block:1rem; position:relative; z-index:2;
}

.bandeau::before,.bandeau::after{
  content:""; position:absolute; top:0; bottom:0; width:clamp(2.5rem,9vw,7rem);
  z-index:2; pointer-events:none;
}
.bandeau::before{ left:0; background:linear-gradient(90deg, var(--vert-2) 20%, transparent); }
.bandeau::after{ right:0; background:linear-gradient(270deg, var(--vert-2) 20%, transparent); }
.bandeau__piste{
  position:relative; z-index:1;
  display:flex; align-items:center; width:max-content;
  animation:defile 44s linear infinite;
}
.bandeau:hover .bandeau__piste{ animation-play-state:paused; }
.bandeau__item{
  display:inline-flex; align-items:center; gap:clamp(1.6rem,4vw,2.8rem);
  padding-right:clamp(1.6rem,4vw,2.8rem);
  font-family:var(--sans); font-size:.76rem; font-weight:600;
  letter-spacing:.22em; text-transform:uppercase; color:var(--pierre-clr);
  white-space:nowrap;
}
.bandeau__sep{ width:14px; height:14px; color:var(--laiton-clr); flex:none; }
@keyframes defile{ to{ transform:translateX(-50%); } }

.whatsapp{
  position:fixed; right:clamp(1rem,3vw,2rem); bottom:clamp(1rem,3vw,2rem); z-index:96;
  display:flex; align-items:center; gap:.7rem;
}
.whatsapp__rond{
  position:relative; width:56px; height:56px; border-radius:50%; flex:none;
  background:var(--vert); color:var(--creme); border:1px solid var(--laiton);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 12px 30px -10px rgba(11,46,39,.7);
  transition:transform .3s var(--ease), background .3s var(--ease);
}
.whatsapp__rond svg{ width:30px; height:30px; }
.whatsapp__rond::after{
  content:""; position:absolute; inset:-1px; border-radius:50%;
  border:1px solid var(--laiton-clr); animation:pulse 2.8s ease-out infinite;
}
.whatsapp:hover .whatsapp__rond{ background:var(--laiton); transform:translateY(-3px); }
.whatsapp__txt{
  background:var(--creme); color:var(--vert); font-size:.82rem; font-weight:600;
  padding:.6em 1em; border-radius:2px; white-space:nowrap;
  box-shadow:0 10px 24px -12px rgba(11,46,39,.5);
  opacity:0; transform:translateX(.6rem); pointer-events:none;
  transition:opacity .35s var(--ease), transform .35s var(--ease);
}
.whatsapp:hover .whatsapp__txt{ opacity:1; transform:translateX(0); }
@keyframes pulse{ 0%{ transform:scale(1); opacity:.7; } 100%{ transform:scale(1.7); opacity:0; } }

.retour-haut{
  position:fixed; left:clamp(1rem,3vw,2rem); right:auto;
  bottom:clamp(1rem,3vw,2rem); z-index:95;
  width:46px; height:46px; border-radius:50%; background:var(--ink); color:var(--creme);
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; transform:translateY(.6rem);
  transition:opacity .4s var(--ease), transform .4s var(--ease), background .3s var(--ease), visibility .4s;
}
.retour-haut svg{ width:1.2rem; height:1.2rem; }
.retour-haut.est-visible{ opacity:1; visibility:visible; transform:translateY(0); }
.retour-haut:hover{ background:var(--laiton); }

.hero__media img{ animation:kenburns 26s ease-in-out infinite alternate; transform-origin:center; will-change:transform; }
@keyframes kenburns{ from{ transform:scale(1.03); } to{ transform:scale(1.1); } }
.ornement svg{ animation:tourne 26s linear infinite; }
@keyframes tourne{ to{ transform:rotate(360deg); } }

.skip-link{ position:absolute; left:1rem; top:-3rem; z-index:200; background:var(--vert); color:var(--creme); padding:.7rem 1.2rem; transition:top .3s var(--ease); }
.skip-link:focus{ top:1rem; }
:focus-visible{ outline:2px solid var(--laiton); outline-offset:3px; }
.entete[data-sur-hero="true"]:not(.est-condense) a:focus-visible{ outline-color:var(--laiton-clr); }

.js .reveal{ opacity:0; transform:translateY(26px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
.js .reveal.est-visible{ opacity:1; transform:none; }
.js .hero__titre .ligne > span{ transform:translateY(110%); transition:transform 1s var(--ease); }
.js .hero__titre .ligne.est-visible > span{ transform:translateY(0); }
.valeur:nth-child(2),.carte:nth-child(2),.methode__etape:nth-child(2),.engagement:nth-child(2){ transition-delay:.08s; }
.valeur:nth-child(3),.carte:nth-child(3),.methode__etape:nth-child(3),.engagement:nth-child(3){ transition-delay:.16s; }
.valeur:nth-child(4),.engagement:nth-child(4){ transition-delay:.24s; }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .js .reveal,.js .hero__titre .ligne > span{ opacity:1!important; transform:none!important; transition:none!important; }
  .bandeau__piste,.hero__media img,.ornement svg,.whatsapp__rond::after{ animation:none!important; }
}

.partenaires{ display:flex; flex-wrap:wrap; justify-content:center; gap:clamp(1rem,2vw,1.6rem); margin-top:clamp(2rem,4vw,3rem); }
.partenaire{ flex:1 1 300px; max-width:420px; display:flex; flex-direction:column; gap:.35rem; padding:clamp(1.6rem,2.5vw,2.2rem); background:var(--creme); border:1px solid var(--ligne-or); transition:border-color .4s var(--ease), transform .4s var(--ease), box-shadow .4s var(--ease); }
.partenaire:hover{ border-color:var(--laiton); transform:translateY(-4px); box-shadow:0 18px 40px -28px rgba(15,61,51,.5); }
.partenaire__nom{ font-family:var(--serif); font-weight:600; font-size:1.35rem; color:var(--vert); }
.partenaire__lieu{ font-size:.85rem; color:var(--texte-doux); }
.partenaire__lien{ margin-top:1rem; display:inline-flex; align-items:center; gap:.5em; font-size:.74rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--laiton); }
.partenaire__lien svg{ width:1.2em; height:1.2em; transition:transform .35s var(--ease); }
.partenaire:hover .partenaire__lien svg{ transform:translateX(.35em); }
.contact__intro a{ color:var(--laiton-clr); border-bottom:1px solid currentColor; padding-bottom:1px; }
.contact__intro a:hover{ color:var(--creme); }

@media (min-width:881px){
  .hero__inner{
    margin-block:auto; padding-bottom:0; max-width:1240px;
    display:grid; grid-template-columns:1.2fr .8fr;
    grid-template-areas:"eyebrow desc" "title desc" "title cta";
    column-gap:clamp(3rem,6vw,6rem); align-content:center;
  }
  .hero__inner .surtitre{ grid-area:eyebrow; align-self:end; margin-bottom:1.3rem; }
  .hero__inner .hero__titre{ grid-area:title; margin:0; font-size:clamp(2.8rem,1rem+3.6vw,4.7rem); }
  .hero__inner .hero__sous-titre{ grid-area:desc; align-self:center; max-width:44ch; padding-left:clamp(2rem,3vw,3.5rem); border-left:1px solid rgba(216,179,106,.35); }
  .hero__inner .hero__actions{ grid-area:cta; align-self:start; margin-top:1.7rem; }
}

@media (max-width:1024px){
  .cartes,.methode{ grid-template-columns:repeat(2,1fr); }
  .galerie{ grid-template-columns:repeat(2,1fr); }
  .rite__inner{ grid-template-columns:1fr; }
  .engagements{ grid-template-columns:repeat(2,1fr); }
  .partenaires{ grid-template-columns:repeat(3,1fr); }
}
@media (max-width:880px){
  .nav,.btn--entete{ display:none; }
  .burger{ display:block; }

  .entete[data-sur-hero="true"]:not(.est-condense){ background:linear-gradient(180deg, rgba(11,46,39,.6) 0%, rgba(11,46,39,.28) 60%, transparent 100%); }
  .entete__inner{ padding-inline:clamp(1.25rem,5vw,2rem); }
  .grille-presentation,.grille-matiere,.grille-faq,.grille-contact{ grid-template-columns:1fr; }
  .faq__entete{ position:static; }
  .valeurs{ grid-template-columns:repeat(2,1fr); }
  .visuel-arche{ max-width:380px; margin-inline:auto; }
  .pied__inner{ grid-template-columns:1fr 1fr; }
  .pied__marque{ grid-column:1 / -1; }
}
@media (max-width:560px){
  :root{ --section-y:clamp(3.5rem,12vw,5rem); }
  .cartes,.methode,.valeurs,.galerie,.rite__points,.engagements,.partenaires{ grid-template-columns:1fr; }
  .pied__inner{ grid-template-columns:1fr; gap:2rem; }
  .pied__bas{ flex-direction:column; align-items:flex-start; gap:.45rem; }
  .coordonnees li{ flex-direction:column; gap:.2rem; }
}
