/*
Theme Name: YMGC Grands Crus
Theme URI: https://ymgc.fr
Author: DevWebPro
Author URI: https://devwebpro.fr
Description: Thème one-page sur mesure, ultra-léger et rapide, pour ymgc.fr. Sans jQuery, sans page builder.
Version: 1.1.0
Requires PHP: 7.4
License: Propriétaire
Text Domain: ymgc
*/

/* ---------- Polices auto-hébergées (licence SIL OFL) ---------- */
@font-face{
  font-family:'Alegreya SC';
  font-style:normal;font-weight:400;font-display:swap;
  src:url('assets/fonts/alegreya-sc-v26-latin-regular.woff2') format('woff2');
}
@font-face{
  font-family:'Alegreya SC';
  font-style:normal;font-weight:500;font-display:swap;
  src:url('assets/fonts/alegreya-sc-v26-latin-500.woff2') format('woff2');
}
@font-face{
  font-family:'Lora';
  font-style:normal;font-weight:400;font-display:swap;
  src:url('assets/fonts/lora-v37-latin-regular.woff2') format('woff2');
}
@font-face{
  font-family:'Lora';
  font-style:normal;font-weight:500;font-display:swap;
  src:url('assets/fonts/lora-v37-latin-500.woff2') format('woff2');
}

:root{
  --cream:#efe9dd;
  --cream-2:#f4f0e7;
  --gold:#8a6a35;        /* grands titres uniquement (>= 3:1) */
  --gold-text:#7c5e2a;   /* petits textes : 4.97:1 sur crème, 4.63:1 sur #EAE1CE */
  --gold-light:#f0d6a5;
  --gold-mid:#c9a45c;
  --brown:#4a3822;
  --ink:#3b2f1e;
  --dark:#1c1710;
  --radius:14px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
/* Le header est collant : les ancres doivent s'arrêter exactement dessous.
   Sa hauteur réelle est mesurée en JS (variable --header-h), donc le calage
   reste parfait quels que soient le logo, l'écran ou la barre d'admin. */
#first,#expertise,#chiffres,#vignoble,#contact{
  scroll-margin-top:var(--header-h,120px);
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}
body{
  font-family:'Lora',Georgia,serif;
  color:var(--ink);
  background:var(--cream);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--gold-text);text-decoration:none}
a:hover{text-decoration:underline}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

/* ---------- Lien d'évitement ---------- */
.skip-link{
  position:absolute;left:-9999px;top:0;z-index:200;
  background:var(--brown);color:var(--cream);
  padding:.7rem 1.2rem;border-radius:0 0 8px 0;
}
.skip-link:focus{left:0;text-decoration:none;color:var(--cream)}

/* ---------- Header ---------- */
.site-header{
  position:sticky;top:0;z-index:100;
  background:#EAE1CE;
  border-bottom:1px solid rgba(74,56,34,.12);
  box-shadow:0 1px 8px rgba(0,0,0,.06);
}
.admin-bar .site-header{top:32px}
@media (max-width:782px){.admin-bar .site-header{top:46px}}
.header-inner{
  max-width:1400px;margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;
  padding:.55rem 1.25rem;
}
.brand img{width:96px;height:auto}
@media (max-width:860px){.brand img{width:72px}}
.nav{display:flex;gap:2rem;align-items:center}
.nav-panel-head,.nav-panel-contact{display:none}
.nav a{
  font-family:'Alegreya SC',Georgia,serif;
  letter-spacing:.06em;
  font-size:24px;              /* version ordinateur */
  color:var(--ink);
  font-weight:500;
}
.nav a:hover{color:var(--gold);text-decoration:none}
.nav-toggle{
  display:none;background:none;border:0;cursor:pointer;
  width:44px;height:44px;padding:10px;
  position:relative;z-index:3;
}
.nav-toggle span{
  display:block;height:2px;border-radius:2px;
  background:var(--brown);
  margin:5px 0 5px auto;               /* alignés à droite */
  transition:transform .35s cubic-bezier(.4,0,.2,1),
             width .35s cubic-bezier(.4,0,.2,1),
             opacity .25s ease,
             background-color .3s ease;
  transform-origin:center;
}
.nav-toggle span:nth-child(1){width:24px}
.nav-toggle span:nth-child(2){width:17px}
.nav-toggle span:nth-child(3){width:10px}
.nav-toggle:hover span{width:24px}
/* Ouvert : croix dorée */
.nav-toggle[aria-expanded="true"] span{background:var(--gold-light);width:24px}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;transform:scaleX(.4)}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media (max-width:860px){
  .nav-toggle{display:block}

  /* Panneau plein écran, esprit héro : brun profond + halo doré */
  .nav{
    position:fixed;inset:0;z-index:2;
    flex-direction:column;justify-content:center;align-items:center;
    gap:0;
    padding:6rem 2rem 3rem;
    background:
      radial-gradient(ellipse at 50% 0%, rgba(201,164,92,.22), transparent 55%),
      linear-gradient(165deg,#241a0e 0%,#3a2a16 100%);
    opacity:0;visibility:hidden;pointer-events:none;
    transition:opacity .4s ease,visibility 0s linear .4s;
  }
  .nav.open{
    opacity:1;visibility:visible;pointer-events:auto;
    transition:opacity .4s ease;
  }

  /* Logo en tête de panneau */
  .nav-panel-head{display:block;margin-bottom:2.2rem}
  .nav-panel-head img{
    width:84px;height:auto;margin:0 auto;
    filter:drop-shadow(0 2px 12px rgba(0,0,0,.5));
  }

  /* Liens : grands, dorés, apparition en cascade */
  .nav a{
    width:auto;padding:.65rem 0;border:0;
    font-size:clamp(1.6rem,6.5vw,2rem);
    color:var(--gold-light);
    letter-spacing:.08em;
    position:relative;
    opacity:0;transform:translateY(14px);
    transition:opacity .45s ease,transform .45s ease,color .25s ease;
  }
  .nav.open a{opacity:1;transform:none}
  .nav.open a:nth-of-type(1){transition-delay:.10s}
  .nav.open a:nth-of-type(2){transition-delay:.18s}
  .nav.open a:nth-of-type(3){transition-delay:.26s}
  .nav.open a:nth-of-type(4){transition-delay:.34s}
  .nav a:hover{color:#fff;text-decoration:none}
  /* soulignement doré qui s'étire au survol */
  .nav a::after{
    content:"";position:absolute;left:50%;bottom:.35rem;
    width:0;height:1.5px;background:var(--gold-mid);
    transform:translateX(-50%);
    transition:width .3s ease;
  }
  .nav a:hover::after,.nav a:focus-visible::after{width:70%}

  /* Coordonnées en pied de panneau */
  .nav-panel-contact{
    display:flex;flex-direction:column;align-items:center;gap:.3rem;
    margin-top:2.6rem;padding-top:1.6rem;
    border-top:1px solid rgba(201,164,92,.35);
    min-width:230px;
    opacity:0;transition:opacity .45s ease .42s;
  }
  .nav.open .nav-panel-contact{opacity:1}
  .nav-panel-contact a{
    font-family:'Lora',Georgia,serif!important;
    font-style:italic;
    font-size:1.05rem!important;
    color:var(--gold-mid);
    letter-spacing:.02em;
    opacity:1!important;transform:none!important;transition-delay:0s!important;
    padding:.15rem 0;
  }
  .nav-panel-contact a::after{display:none}
  .nav-panel-contact a:hover{color:var(--gold-light)}

  /* Fond figé quand le panneau est ouvert */
  body.nav-open{overflow:hidden}

  /* Pages internes : lien unique « Retour à la page d'accueil », toujours visible */
  .nav.nav-simple{position:static;flex-direction:row;background:none;border:0;overflow:visible;
    opacity:1;visibility:visible;pointer-events:auto;padding:0}
  .nav.nav-simple a{width:auto;padding:0;border:0;font-size:1.05rem;color:var(--ink);
    opacity:1;transform:none;letter-spacing:.06em}
  .nav.nav-simple a::after{display:none}
}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  display:flex;align-items:center;justify-content:center;
  text-align:center;
  padding:14% 1.5rem;
  isolation:isolate;
  background:#2c2a1a;
}
.hero-bg{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:rgba(0,0,0,.55)}
.hero-content{max-width:760px}
.hero-logo{
  position:relative;display:block;width:200px;margin:0 auto 1.6rem;
}
.hero-content img{
  width:100%;display:block;
  /* logo ivoire (couleur exacte de la maquette) + halo lumineux */
  filter:drop-shadow(0 3px 12px rgba(0,0,0,.45))
         drop-shadow(0 0 16px rgba(243,238,224,.55))
         drop-shadow(0 0 38px rgba(243,238,224,.30));
}
/* Reflet : bande de lumière qui balaie le logo, découpée par sa forme */
.hero-logo::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(115deg,
    transparent 42%,
    rgba(255,255,255,.85) 50%,
    transparent 58%);
  background-size:260% 100%;
  background-position:130% 0;
  -webkit-mask:url('assets/img/Logo-Yvon-Mau-Grands-Crus-Ivoire.webp') center/contain no-repeat;
  mask:url('assets/img/Logo-Yvon-Mau-Grands-Crus-Ivoire.webp') center/contain no-repeat;
  animation:hero-shine 4.5s ease-in-out infinite;
}
@keyframes hero-shine{
  0%,55%{background-position:130% 0}
  85%,100%{background-position:-30% 0}
}
.hero h1{
  font-size:clamp(1.35rem,2.2vw,1.85rem);
  font-weight:400;
  color:#f6e3bd;
  line-height:1.45;
  filter:drop-shadow(0 2px 8px rgba(0,0,0,.5))
         drop-shadow(0 0 14px rgba(240,214,165,.40))
         drop-shadow(0 0 32px rgba(240,214,165,.22));
}
/* Reflet lumineux sur le texte, même rythme que le logo */
@supports ((-webkit-background-clip:text) or (background-clip:text)){
  .hero h1{
    background:linear-gradient(115deg,
      #f6e3bd 42%,
      #ffffff 50%,
      #f6e3bd 58%);
    background-size:260% 100%;
    background-position:130% 0;
    -webkit-background-clip:text;background-clip:text;
    color:transparent;
    animation:hero-shine 4.5s ease-in-out infinite;
  }
}
@media (max-width:767px){
  .hero{padding:22% 1.25rem}
  .hero-logo{width:140px}
}

/* ---------- Sections ---------- */
.section{padding:4.5rem 1.5rem}
.container{max-width:1400px;margin:0 auto}
.section-title{
  text-align:center;
  font-family:'Alegreya SC',Georgia,serif;
  font-weight:500;
  font-size:clamp(2.1rem,4.5vw,3.1rem);
  color:var(--gold);
  letter-spacing:.02em;
  margin-bottom:2.8rem;
  line-height:1.15;
}
.two-col{
  display:grid;
  grid-template-columns:minmax(0,5fr) minmax(0,6fr);
  gap:3rem;
  align-items:center;
}
@media (max-width:860px){.two-col{grid-template-columns:1fr;gap:2rem}}
.figure img{border-radius:var(--radius);box-shadow:0 10px 30px rgba(0,0,0,.15)}
.figure figcaption{
  margin-top:1rem;text-align:center;
  font-family:'Alegreya SC',Georgia,serif;font-weight:500;
  letter-spacing:.05em;color:var(--brown);font-size:.95rem;
}
.lead{font-weight:700;margin-bottom:1rem}
.body-text p+p{margin-top:1rem}
.body-text{font-size:19px}
#vignoble .body-text{
  background-repeat:no-repeat;
  background-position:right center;
  background-size:contain;
}

/* ---------- Chiffres clés ---------- */
.chiffres{
  position:relative;isolation:isolate;
  padding:4.5rem 1.5rem;
  color:#fff;
  background:#241a0e;
}
.chiffres-bg{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover}
.chiffres::after{content:"";position:absolute;inset:0;z-index:-1;background:rgba(20,12,4,.45)}
.chiffres .section-title{color:#fff}
.counters{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1.5rem;
  max-width:1400px;margin:0 auto;
}
@media (max-width:980px){.counters{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.counters{grid-template-columns:1fr}}
.counter{
  background:rgba(30,22,12,.55);
  border-radius:22px;
  padding:2.2rem 1.4rem;
  text-align:center;
  backdrop-filter:blur(2px);
}
.counter .circle{position:relative;width:132px;height:132px;margin:0 auto 1.2rem}
.counter svg{width:132px;height:132px;transform:rotate(-90deg)}
.counter svg circle{fill:none;stroke-width:3}
.counter .track{stroke:rgba(255,255,255,.25)}
.counter .bar{
  stroke:#fff;
  stroke-dasharray:400;
  stroke-dashoffset:400;
  transition:stroke-dashoffset 1.6s ease-out;
}
.counter.in .bar{stroke-dashoffset:0}
.counter .value{
  position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;
  font-size:1.7rem;font-weight:700;
  font-variant-numeric:tabular-nums;
}
.counter .label{font-weight:600;font-size:23px;line-height:1.35}
@media (max-width:640px){.counter .label{font-size:19px}}

/* ---------- Contact ---------- */
.contact-info{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:2rem;max-width:1200px;margin:0 auto 3rem;
}
@media (max-width:767px){.contact-info{grid-template-columns:1fr;gap:1.5rem}}
.contact-info h3{
  font-family:'Alegreya SC',Georgia,serif;
  font-size:20px;letter-spacing:.08em;
  color:var(--brown);margin-bottom:.35rem;font-weight:500;
}
.contact-info p{font-style:italic;color:var(--gold-text);font-size:20px}
.contact-info a{color:var(--gold-text)}

.contact-form{max-width:1000px;margin:0 auto}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;margin-bottom:1.8rem}
@media (max-width:640px){.form-row{grid-template-columns:1fr;gap:1.8rem}}
.field label{display:block;font-size:20px;color:var(--brown);margin-bottom:.3rem}
.field input,.field textarea{
  width:100%;
  background:transparent;
  border:0;border-bottom:1.5px solid var(--brown);
  padding:.45rem .1rem;
  font:inherit;color:var(--ink);
}
.field textarea{min-height:120px;resize:vertical}
.field input:focus,.field textarea:focus{outline:none;border-bottom-color:var(--gold)}
.hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}
.form-actions{display:flex;justify-content:flex-end;margin-top:1.6rem}
.btn{
  font:inherit;font-style:italic;font-size:20px;
  color:var(--ink);background:transparent;
  border:1.5px solid var(--brown);border-radius:999px;
  padding:.55rem 2rem;cursor:pointer;
  transition:background .2s,color .2s;
}
.btn:hover{background:var(--brown);color:var(--cream)}
.form-status{margin-top:1rem;font-style:italic;text-align:right;min-height:1.4em}
.form-status.ok{color:#3f6b34}
.form-status.err{color:#9c3b26}

/* ---------- Footer ---------- */
.site-footer{background:#EAE1CE;border-top:1px solid rgba(74,56,34,.12);padding:3rem 1.5rem 1.5rem}
.site-footer h2{
  text-align:center;font-family:'Alegreya SC',Georgia,serif;font-size:31px;
  letter-spacing:.1em;color:var(--ink);margin-bottom:2rem;font-weight:500;
}
/* Carrousel partenaires : défilement infini en CSS, pause accessible en JS */
.partners-wrap{position:relative;max-width:1400px;margin:0 auto 2.5rem}

.partners{
  position:relative;
  overflow:hidden;
  background:#EAE1CE;
  padding:2rem 0;
  margin:0;
}
/* Fondu des bords assorti au fond du carrousel */
.partners::before,.partners::after{
  content:"";position:absolute;top:0;bottom:0;width:9%;
  z-index:1;pointer-events:none;
}
.partners::before{left:0;background:linear-gradient(90deg,#EAE1CE,rgba(234,225,206,0))}
.partners::after{right:0;background:linear-gradient(270deg,#EAE1CE,rgba(234,225,206,0))}
.partners-track{
  display:flex;align-items:center;
  gap:5rem;
  width:max-content;
  padding-right:5rem;              /* même écart entre la fin et la reprise */
  animation:partners-scroll 40s linear infinite;
}
.partners:hover .partners-track{animation-play-state:paused}
@keyframes partners-scroll{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}   /* la piste contient 2 copies : -50% = boucle parfaite */
}
.partners img{height:88px;width:auto;flex:none}
@media (max-width:640px){
  .partners-track{gap:2.5rem;padding-right:2.5rem;animation-duration:28s}
  .partners img{height:62px}
}
@media (prefers-reduced-motion:reduce){
  .partners::before,.partners::after{display:none}
  .partners-track{animation:none;flex-wrap:wrap;justify-content:center;width:auto;padding:0 1.5rem;gap:2rem 3rem}
  .partners-track img:nth-child(n+12){display:none} /* on masque la 2e copie */
}
.partners .partner-name{
  font-family:'Alegreya SC',Georgia,serif;font-weight:500;letter-spacing:.06em;
  color:var(--brown);font-size:1rem;text-align:center;
}
.footer-bottom{
  max-width:1400px;margin:0 auto;
  display:flex;flex-direction:column;align-items:center;
  gap:1.4rem;
  border-top:1px solid rgba(74,56,34,.2);
  padding-top:1.4rem;
  font-family:'Alegreya SC',Georgia,serif;font-size:20px;letter-spacing:.05em;
  text-align:center;
}
.footer-bottom a{color:var(--ink)}
.footer-bottom .legal{display:flex;gap:2.5rem;flex-wrap:wrap;justify-content:center}
.footer-bottom .credit{
  display:flex;flex-direction:column;align-items:center;gap:.5rem;
  text-decoration:none;
}
.footer-bottom .credit span{letter-spacing:.05em}
.footer-bottom .credit img{height:33px;width:auto}
.footer-bottom .credit:hover{text-decoration:none}
.footer-bottom .credit:hover span{text-decoration:underline}

/* ---------- Pages internes (mentions légales, etc.) ---------- */
.page-content{max-width:820px;margin:0 auto;padding:4rem 1.5rem}
.page-content h1{color:var(--gold);font-family:'Alegreya SC',Georgia,serif;font-weight:500;margin-bottom:1.5rem}
.page-content p+p,.page-content h2,.page-content ul{margin-top:1rem}

/* ---------- Page 404 ---------- */
.p404{
  --p404-wine:#6e1f24;                 /* rouge bordeaux */
  min-height:calc(100vh - 140px);
  display:flex;align-items:center;justify-content:center;
  text-align:center;
  padding:4rem 1.5rem;
  background:
    radial-gradient(ellipse at 50% -10%, rgba(138,106,53,.12), transparent 55%),
    var(--cream);
  color:var(--brown);
}
.p404-inner{max-width:640px}
.p404-glass{
  width:120px;height:auto;margin:0 auto 1rem;
  color:var(--brown);
  transform:rotate(14deg);
  transform-origin:50% 90%;
}
.p404-drop{animation:p404-drip 2.6s ease-in infinite}
@keyframes p404-drip{
  0%,55%{transform:translateY(0);opacity:1}
  90%{transform:translateY(46px);opacity:0}
  100%{transform:translateY(0);opacity:0}
}
.p404-code{
  font-family:'Alegreya SC',Georgia,serif;
  font-weight:500;
  font-size:clamp(5.5rem,16vw,9rem);
  line-height:1;
  color:var(--gold);
  display:flex;align-items:center;justify-content:center;gap:.08em;
  margin:.5rem 0 1rem;
}
/* le zéro : un cercle « lie de vin », clin d'œil au fond du verre */
.p404-zero{
  width:.72em;height:.72em;
  border:.055em solid var(--gold);
  border-radius:50%;
  position:relative;
  display:inline-block;
}
.p404-zero::after{
  content:"";position:absolute;inset:22%;
  border-radius:50%;
  background:radial-gradient(circle at 35% 30%, #93343a, var(--p404-wine) 70%);
}
.p404-title{
  font-family:'Alegreya SC',Georgia,serif;
  font-weight:500;
  font-size:clamp(1.6rem,4vw,2.3rem);
  color:var(--brown);
  margin-bottom:1rem;
}
.p404-text{max-width:46ch;margin:0 auto 2.2rem;font-size:1.05rem}
.p404-actions{display:flex;gap:1.8rem;align-items:center;justify-content:center;flex-wrap:wrap}
.p404-btn{display:inline-block;text-decoration:none}
.p404-btn:hover{text-decoration:none}
.p404-link{font-style:italic}
.p404-vine{
  display:block;width:min(420px,80%);height:auto;
  margin:3rem auto 0;
  color:var(--gold-mid);
  opacity:.75;
}
@media (prefers-reduced-motion:reduce){.p404-drop{animation:none;opacity:0}}

/* ---------- Barre d'accessibilité Sienna : couleurs du site ----------
   La couleur principale passe par la variable --asw-primary ;
   quelques règles du widget ont le bleu #0848ca codé en dur, surchargé ici. */
.asw-widget,.asw-menu{
  --asw-primary:#4a3822 !important;   /* brun du site — blanc/brun : ~11:1 */
}
.asw-footer-powered{color:#4a3822!important}
.asw-structure-header{background:linear-gradient(135deg,#4a3822 0%,#2c2012 100%)!important}
.asw-tab-btn:hover{color:#4a3822!important;background:rgba(74,56,34,.05)!important}
.asw-tab-btn.asw-active{color:#4a3822!important}
.asw-tab-btn.asw-active::after{background:#4a3822!important}
.asw-action-btn:hover{background:rgba(74,56,34,.1)!important;color:#4a3822!important}
/* Bouton flottant : léger liseré doré pour l'intégrer à la charte.
   Positionné en bas à gauche — l'icône RGPD de tarteaucitron occupe le bas droite. */
.asw-menu-btn{
  box-shadow:0 4px 14px rgba(0,0,0,.25),0 0 0 2px var(--gold-mid)!important;
}

/* ---------- Tarteaucitron : bandeau et panneau aux couleurs du site ----------
   La feuille de style du widget est injectée après celle du thème,
   d'où les surcharges à spécificité renforcée (id racine doublé) avec !important. */

/* Bandeau de consentement (orientation middle) */
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitronAlertBig{
  background:var(--cream)!important;
  color:var(--ink)!important;
  border:1px solid rgba(74,56,34,.25)!important;
  border-radius:18px!important;
  box-shadow:0 24px 60px rgba(0,0,0,.35)!important;
  font-family:'Lora',Georgia,serif!important;
  padding:26px 28px!important;
}
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitronDisclaimerAlert,
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitronDisclaimerAlert strong{
  color:var(--ink)!important;
  font-family:'Lora',Georgia,serif!important;
}
html body #tarteaucitronRoot#tarteaucitronRoot a,
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPrivacyUrl{
  color:var(--gold-text)!important;
}

/* Boutons du bandeau : pilules assorties au bouton « Envoyer » du site */
html body #tarteaucitronRoot#tarteaucitronRoot button.tarteaucitronCTAButton{
  font-family:'Lora',Georgia,serif!important;
  font-style:italic!important;
  font-size:17px!important;
  border-radius:999px!important;
  padding:9px 24px!important;
  transition:background .2s,color .2s!important;
}
/* Tout accepter : plein brun */
html body #tarteaucitronRoot#tarteaucitronRoot button.tarteaucitronCTAButton.tarteaucitronAllow{
  background:var(--brown)!important;
  color:var(--cream)!important;
  border:1.5px solid var(--brown)!important;
}
html body #tarteaucitronRoot#tarteaucitronRoot button.tarteaucitronCTAButton.tarteaucitronAllow:hover{
  background:transparent!important;
  color:var(--brown)!important;
}
/* Tout refuser : contour brun */
html body #tarteaucitronRoot#tarteaucitronRoot button.tarteaucitronCTAButton.tarteaucitronDeny{
  background:transparent!important;
  color:var(--brown)!important;
  border:1.5px solid var(--brown)!important;
}
html body #tarteaucitronRoot#tarteaucitronRoot button.tarteaucitronCTAButton.tarteaucitronDeny:hover{
  background:var(--brown)!important;
  color:var(--cream)!important;
}
/* Personnaliser / fermer */
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitronCloseAlert{
  background:transparent!important;
  color:var(--gold-text)!important;
  border:0!important;
  font-family:'Lora',Georgia,serif!important;
  font-style:italic!important;
}
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitronCloseAlert:hover{text-decoration:underline!important}

/* Voile derrière le panneau */
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitronBack{
  background:#1c1710!important;
  opacity:.75!important;
}

/* Panneau de contrôle */
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron{
  border-radius:18px!important;
  overflow:hidden!important;
  box-shadow:0 24px 60px rgba(0,0,0,.4)!important;
}
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron #tarteaucitronClosePanel{
  background:var(--brown)!important;
  color:var(--cream)!important;
  border:0!important;
  font-family:'Lora',Georgia,serif!important;
}
html body #tarteaucitronRoot#tarteaucitronRoot .tarteaucitronMainLine,
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron div#tarteaucitronMainLineOffset{
  background:var(--brown)!important;
  border-color:var(--brown)!important;
}
html body #tarteaucitronRoot#tarteaucitronRoot .tarteaucitronH1{
  font-family:'Alegreya SC',Georgia,serif!important;
  font-weight:500!important;
  color:var(--cream)!important;
}
html body #tarteaucitronRoot#tarteaucitronRoot .tarteaucitronH2,
html body #tarteaucitronRoot#tarteaucitronRoot .tarteaucitronH3{
  font-family:'Alegreya SC',Georgia,serif!important;
  font-weight:500!important;
  color:var(--ink)!important;
}
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitronServices{
  background:var(--cream-2)!important;
  box-shadow:none!important;
}
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronLine{
  background:var(--cream)!important;
}
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronLine .tarteaucitronName,
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronLine .tarteaucitronName span,
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitronInfo,
html body #tarteaucitronRoot#tarteaucitronRoot .tarteaucitronInfoBox{
  color:var(--ink)!important;
  font-family:'Lora',Georgia,serif!important;
}
/* Boutons Autoriser / Interdire des services */
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronAsk .tarteaucitronAllow,
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronAsk .tarteaucitronDeny{
  border-radius:999px!important;
  font-family:'Lora',Georgia,serif!important;
  font-style:italic!important;
}
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronAsk .tarteaucitronAllow{
  background:var(--brown)!important;color:var(--cream)!important;
}
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronAsk .tarteaucitronDeny{
  background:#9c3b26!important;color:#fff!important;
}
/* États sélectionnés */
html body #tarteaucitronRoot#tarteaucitronRoot .tarteaucitronIsAllowed .tarteaucitronAllow{background:var(--brown)!important}
html body #tarteaucitronRoot#tarteaucitronRoot .tarteaucitronIsDenied .tarteaucitronDeny{background:#9c3b26!important}
html body #tarteaucitronRoot#tarteaucitronRoot .tarteaucitronLine.tarteaucitronIsAllowed{border-color:var(--brown)!important}
html body #tarteaucitronRoot#tarteaucitronRoot .tarteaucitronLine.tarteaucitronIsDenied{border-color:#9c3b26!important}

/* Icône flottante (bas droite) : sans fond */
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitronIcon{
  background:transparent!important;
  border-radius:0!important;
  box-shadow:none!important;
}
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitronIcon #tarteaucitronManager{
  background:transparent!important;
}

/* Focus visibles, RGAA */
html body #tarteaucitronRoot#tarteaucitronRoot button:focus-visible,
html body #tarteaucitronRoot#tarteaucitronRoot a:focus-visible{
  outline:2px solid var(--gold)!important;
  outline-offset:2px!important;
}

/* ---------- Contact Form 7 : même habillage que le formulaire natif ---------- */
.contact-form .wpcf7-form-control-wrap{display:block}
.contact-form .wpcf7-not-valid-tip{
  font-family:'Lora',Georgia,serif;
  font-size:15px;font-style:italic;
  color:#9c3b26;margin-top:.35rem;display:block;
}
.contact-form .wpcf7-response-output{
  margin:1rem 0 0!important;padding:0!important;
  border:0!important;
  font-style:italic;text-align:right;
  color:var(--ink);
}
.contact-form form.sent .wpcf7-response-output{color:#3f6b34}
.contact-form form.invalid .wpcf7-response-output,
.contact-form form.failed .wpcf7-response-output,
.contact-form form.aborted .wpcf7-response-output,
.contact-form form.unaccepted .wpcf7-response-output,
.contact-form form.spam .wpcf7-response-output{color:#9c3b26}
.contact-form .wpcf7-spinner{background-color:var(--brown)}

/* ==========================================================================
   FINITIONS PREMIUM — v1.1
   Entrée en scène, filigranes et micro-interactions.
   Aucune couleur ni mise en page d'origine n'est modifiée : tout ce qui suit
   s'ajoute par-dessus. Les états « cachés avant révélation » ne s'appliquent
   que si le JavaScript du thème tourne (classe .ymgc-fx posée par main.js) ;
   sans JS, ou avec « animations réduites », le site s'affiche tel quel.
   ========================================================================== */

/* Motifs tirés du logo, utilisés comme masques (la couleur vient du CSS) :
   l'écusson au trait, son bandeau hachuré (ornement de titre) et un grain
   de papier. */
:root{
  --ecusson:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='34 8 152 176' fill='none' stroke='%23000' stroke-linecap='round'%3E %3Cpath d='M40.5 14h139v108a69.5 55 0 0 1-139 0z' stroke-width='1.5'/%3E %3Cpath d='M46.5 33.5v88.5a63.5 49 0 0 0 127 0v-88.5' stroke-width='.55'/%3E %3Cpath d='M40.5 33.5h139' stroke-width='1'/%3E %3Cpath d='M44.0 33l10-19M50.3 33l10-19M56.6 33l10-19M62.9 33l10-19M69.2 33l10-19M75.5 33l10-19M81.8 33l10-19M88.1 33l10-19M94.4 33l10-19M100.7 33l10-19M107.0 33l10-19M113.3 33l10-19M119.6 33l10-19M125.9 33l10-19M132.2 33l10-19M138.5 33l10-19M144.8 33l10-19M151.1 33l10-19M157.4 33l10-19M163.7 33l10-19' stroke-width='.6'/%3E %3Cpath d='M110 40v124M57 95h106' stroke-width='.55'/%3E %3C/svg%3E");
  --ornement:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 11' fill='none' stroke='%23000'%3E %3Cpath d='M0 5.5h84M136 5.5h84' stroke-width='.8'/%3E %3Cpath d='M91.5 1h37v9h-37z' stroke-width='.9'/%3E %3Cpath d='M94.0 10l4.5-9M98.0 10l4.5-9M102.0 10l4.5-9M106.0 10l4.5-9M110.0 10l4.5-9M114.0 10l4.5-9M118.0 10l4.5-9M122.0 10l4.5-9' stroke-width='.7'/%3E %3Cpath d='M84 5.5l2.2-2.2 2.2 2.2-2.2 2.2zM131.6 5.5l2.2-2.2 2.2 2.2-2.2 2.2z' fill='%23000' stroke='none'/%3E %3C/svg%3E");
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .29 0 0 0 0 .22 0 0 0 0 .13 .62 0 0 0 -.34'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23g)'/%3E%3C/svg%3E");
}
:root{
  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-io:cubic-bezier(.65,0,.35,1);
}

/* ---------- Détails globaux ---------- */
::selection{background:var(--brown);color:var(--cream)}
html{scrollbar-color:var(--gold-mid) #EAE1CE}
body{background-image:var(--grain)}          /* grain de papier, sous le contenu */

/* ---------- Header ---------- */
.site-header{transition:box-shadow .5s ease}
.site-header.is-scrolled{box-shadow:0 6px 28px rgba(0,0,0,.12)}
/* fil d'or : progression de lecture */
.site-header::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;
  background:linear-gradient(90deg,var(--gold),var(--gold-mid));
  transform:scaleX(var(--lecture,0));transform-origin:left;
  pointer-events:none;
}
.brand img{transition:transform .8s var(--ease-out)}
.brand:hover img{transform:scale(1.04)}
@media (min-width:861px){
  .nav a{position:relative;transition:color .35s ease}
  .nav a::after{
    content:"";position:absolute;left:0;right:0;bottom:-.15rem;height:1px;
    background:var(--gold);
    transform:scaleX(0);transform-origin:center;
    transition:transform .6s var(--ease-out);
  }
  .nav a:hover::after,.nav a:focus-visible::after,.nav a.is-active::after{transform:scaleX(1)}
  .nav a.is-active{color:var(--gold)}
}

/* ---------- Héro ---------- */
.hero{overflow:hidden}
.hero-bg{will-change:transform}
.hero-dust{position:absolute;inset:0;z-index:-1;width:100%;height:100%;pointer-events:none}
/* filet intérieur, comme le cadre d'une étiquette */
.hero::before{
  content:"";position:absolute;inset:clamp(10px,1.6vw,22px);
  border:1px solid rgba(240,214,165,.26);
  pointer-events:none;
}
/* invitation à défiler */
.hero-cue{
  position:absolute;left:50%;bottom:clamp(22px,3.4vw,44px);
  width:1px;height:clamp(30px,4.6vw,56px);margin-left:-.5px;
  background:rgba(240,214,165,.25);overflow:hidden;
}
.hero-cue::after{
  content:"";position:absolute;left:0;top:0;width:100%;height:45%;
  background:var(--gold-light);
  animation:hero-cue 2.4s var(--ease-io) infinite;
}
@keyframes hero-cue{from{transform:translateY(-110%)}to{transform:translateY(330%)}}

/* Entrée en scène, déclenchée par .ymgc-ready (posée par main.js au chargement) */
.ymgc-js .hero-bg{animation:hero-zoom 3.2s var(--ease-out) both paused}
.ymgc-js.ymgc-ready .hero-bg{animation-play-state:running}
@keyframes hero-zoom{from{transform:scale(1.14)}to{transform:scale(1)}}
.ymgc-js .hero-logo,.ymgc-js .hero h1,.ymgc-js .hero::before,.ymgc-js .hero-cue{
  transition:opacity 1.2s ease,translate 1.4s var(--ease-out),scale 1.4s var(--ease-out);
}
.ymgc-js .hero-logo{transition-delay:.25s}
.ymgc-js .hero h1{transition-delay:.5s}
.ymgc-js .hero::before{transition-delay:.8s}
.ymgc-js .hero-cue{transition-delay:1.2s}
.ymgc-js:not(.ymgc-ready) .hero-logo{opacity:0;translate:0 26px;scale:.94}
.ymgc-js:not(.ymgc-ready) .hero h1{opacity:0;translate:0 22px}
.ymgc-js:not(.ymgc-ready) .hero::before{opacity:0;scale:1.02}
.ymgc-js:not(.ymgc-ready) .hero-cue{opacity:0}

/* ---------- Titres de section : ornement + lever de rideau mot à mot ---------- */
.section-title::after,.site-footer h2::after{
  content:"";display:block;
  width:min(220px,62%);height:11px;margin:1.05rem auto 0;
  background:currentColor;opacity:.8;
  -webkit-mask:var(--ornement) center/contain no-repeat;
  mask:var(--ornement) center/contain no-repeat;
}
.site-footer h2::after{width:min(170px,50%);margin-top:.8rem;opacity:.55}
.fx-w{
  display:inline-block;overflow:hidden;vertical-align:bottom;
  padding:.1em .02em .16em;margin:-.1em -.02em -.16em;
}
.fx-wi{display:inline-block}
.ymgc-fx [data-fx="titre"] .fx-wi{
  translate:0 118%;
  transition:translate 1.15s var(--ease-out) calc(var(--i,0)*95ms);
}
.ymgc-fx [data-fx="titre"].is-in .fx-wi{translate:none}
.ymgc-fx [data-fx="titre"]::after{
  scale:0 1;
  transition:scale 1.4s var(--ease-out) .35s;
}
.ymgc-fx [data-fx="titre"].is-in::after{scale:1 1}

/* ---------- Révélations au défilement ---------- */
.ymgc-fx [data-fx="texte"],.ymgc-fx [data-fx="monte"]{
  opacity:0;translate:0 26px;
  transition:opacity 1.1s ease var(--d,0s),translate 1.3s var(--ease-out) var(--d,0s);
}
.ymgc-fx [data-fx="texte"].is-in,.ymgc-fx [data-fx="monte"].is-in{opacity:1;translate:none}
.ymgc-fx [data-fx="fondu"]{opacity:0;transition:opacity 1.6s ease}
.ymgc-fx [data-fx="fondu"].is-in{opacity:1}

/* ---------- Photos : cadre, rideau, zoom lent, parallaxe ---------- */
.figure{position:relative;isolation:isolate}
.figure-media{
  display:block;position:relative;overflow:hidden;
  border-radius:var(--radius);
  box-shadow:0 10px 30px rgba(0,0,0,.15);
  transition:box-shadow .9s ease;
}
.figure .figure-media img{
  width:100%;border-radius:0;box-shadow:none;
  scale:1.06;translate:0 var(--py,0px);
  transition:scale 1.6s var(--ease-out);
  will-change:translate;
}
.figure:hover .figure-media{box-shadow:0 18px 44px rgba(0,0,0,.2)}
.figure:hover .figure-media img{scale:1.1}
/* rideau ivoire qui se lève sur la photo */
.figure-media::after{
  content:"";position:absolute;inset:-1px;
  background:#EAE1CE;
  transform:scaleY(0);transform-origin:50% 0;
  pointer-events:none;
}
.ymgc-fx [data-fx="photo"] .figure-media{box-shadow:0 0 0 rgba(0,0,0,0)}
.ymgc-fx [data-fx="photo"] .figure-media::after{transform:scaleY(1);transition:transform 1.5s var(--ease-io)}
.ymgc-fx [data-fx="photo"] .figure-media img{scale:1.3}
.ymgc-fx [data-fx="photo"].is-in .figure-media{box-shadow:0 10px 30px rgba(0,0,0,.15);transition-delay:.7s}
.ymgc-fx [data-fx="photo"].is-in:hover .figure-media{box-shadow:0 18px 44px rgba(0,0,0,.2);transition-delay:0s}
.ymgc-fx [data-fx="photo"].is-in .figure-media::after{transform:scaleY(0)}
.ymgc-fx [data-fx="photo"].is-in .figure-media img{scale:1.06;transition-duration:2.2s}
.ymgc-fx [data-fx="photo"].is-in:hover .figure-media img{scale:1.1;transition-duration:1.6s}
.ymgc-fx [data-fx="photo"] figcaption{opacity:0;transition:opacity 1.2s ease .9s}
.ymgc-fx [data-fx="photo"].is-in figcaption{opacity:1}

/* Filigrane : coin hachuré (le bandeau de l'écusson) glissé derrière la photo */
.figure::before{
  content:"";position:absolute;z-index:-1;
  top:-16px;right:-16px;width:46%;aspect-ratio:1;
  border-radius:var(--radius);
  background:repeating-linear-gradient(-63deg,var(--gold) 0 1px,transparent 1px 8px);
  -webkit-mask:linear-gradient(225deg,#000 12%,transparent 62%);
  mask:linear-gradient(225deg,#000 12%,transparent 62%);
  opacity:.34;pointer-events:none;
}
#vignoble .figure::before{
  top:auto;right:auto;bottom:-16px;left:-16px;
  -webkit-mask:linear-gradient(45deg,#000 12%,transparent 62%);
  mask:linear-gradient(45deg,#000 12%,transparent 62%);
}
.ymgc-fx [data-fx="photo"]::before{opacity:0;transition:opacity 1.6s ease 1s}
.ymgc-fx [data-fx="photo"].is-in::before{opacity:.34}
@media (max-width:860px){
  .figure::before{top:-10px;right:-10px}
  #vignoble .figure::before{top:auto;right:auto;bottom:-10px;left:-10px}
}

/* ---------- Filigranes : l'écusson, au trait ----------
   Toujours placés dans une zone sans texte (marge du titre, côté du formulaire,
   gouttière des pages internes) et masqués dès que la place manque. */
#expertise,#contact{position:relative;overflow:hidden;overflow:clip}
#expertise > .container,#contact > .container{position:relative;z-index:1}
.contact-form{position:relative}
#expertise::before,.contact-form::after,.page-content::after,.p404::after{
  content:"";position:absolute;pointer-events:none;
  aspect-ratio:152/176;
  background:var(--gold);
  -webkit-mask:var(--ecusson) center/contain no-repeat;
  mask:var(--ecusson) center/contain no-repeat;
  opacity:.17;
  translate:0 var(--py,0px);
  display:none;
}
/* Expertise : l'écusson dépasse derrière la photo, à gauche du titre */
@media (min-width:981px){
  #expertise::before{display:block;left:-1.6vw;top:1.4rem;width:min(27vw,410px)}
}
/* Contact : dans la marge à droite du formulaire */
@media (min-width:1240px){
  .contact-form::after{display:block;left:calc(100% + 2.75rem);top:-.5rem;width:340px}
}
/* Pages internes : dans la gouttière de droite, fixe, sous le pied de page */
@media (min-width:1400px){
  .page-content::after{
    display:block;position:fixed;z-index:-1;
    right:-84px;top:32vh;width:340px;
  }
}
/* 404 : même place, mais dans la section (elle a son propre fond) */
.p404{position:relative;overflow:hidden;overflow:clip}
.p404-inner{position:relative;z-index:1}
@media (min-width:1400px){
  .p404::after{display:block;right:-84px;top:50%;margin-top:-197px;width:340px}
}

/* ---------- Chiffres clés ---------- */
.chiffres{overflow:hidden}
.chiffres-bg{inset:-12% 0 auto;height:124%;translate:0 var(--py,0px);will-change:translate}
.counter{
  position:relative;
  box-shadow:inset 0 0 0 1px rgba(240,214,165,.14);
  transition:transform .7s var(--ease-out),background-color .6s ease;
}
/* liseré doré qui suit le pointeur */
.counter::before{
  content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;
  background:radial-gradient(240px circle at var(--mx,50%) var(--my,0%),
    rgba(240,214,165,.95),rgba(201,164,92,.3) 45%,transparent 72%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;
  opacity:0;transition:opacity .6s ease;pointer-events:none;
}
@media (hover:hover){
  .counter:hover{transform:translateY(-6px);background-color:rgba(30,22,12,.66)}
  .counter:hover::before{opacity:1}
}
.counter .value[data-long]{font-size:1.45rem}   /* « 450 000 » tient dans son cercle */
.ymgc-fx .counter{
  opacity:0;translate:0 40px;
  transition:opacity 1s ease var(--d,0s),translate 1.3s var(--ease-out) var(--d,0s),
             transform .7s var(--ease-out),background-color .6s ease;
}
.ymgc-fx .counter.in{opacity:1;translate:none}
.ymgc-fx .counter .bar{transition:stroke-dashoffset 2s var(--ease-io) calc(var(--d,0s) + .2s)}

/* ---------- Contact ---------- */
.contact-info a,.footer-bottom .legal a{
  background:linear-gradient(currentColor,currentColor) no-repeat 0 100%/0 1px;
  transition:background-size .6s var(--ease-out);
  padding-bottom:2px;
}
.contact-info a:hover,.footer-bottom .legal a:hover,
.contact-info a:focus-visible,.footer-bottom .legal a:focus-visible{background-size:100% 1px;text-decoration:none}
/* champs : le trait doré s'étire sous le champ actif */
.field label{transition:color .4s ease}
.field:focus-within label{color:var(--gold-text)}
.field input,.field textarea{
  border-bottom-color:transparent;
  background:
    linear-gradient(var(--gold),var(--gold)) no-repeat 0 100%/0 2px,
    linear-gradient(var(--brown),var(--brown)) no-repeat 0 100%/100% 1.5px;
  background-origin:border-box;background-clip:border-box;
  transition:background-size .8s var(--ease-out);
}
.field input:focus,.field textarea:focus{
  border-bottom-color:transparent;
  background-size:100% 2px,100% 1.5px;
}
/* bouton : remplissage qui balaie de gauche à droite (mêmes couleurs) */
.btn{
  background:linear-gradient(var(--brown),var(--brown)) no-repeat 0 0/0% 100% transparent;
  transition:background-size .65s var(--ease-out),color .35s ease,translate .5s var(--ease-out);
  translate:var(--ax,0px) var(--ay,0px);
}
.btn:hover,.btn:focus-visible{
  background:linear-gradient(var(--brown),var(--brown)) no-repeat 0 0/100% 100% transparent;
  color:var(--cream);
}

/* ---------- Partenaires ---------- */
.partners img{transition:opacity .6s ease,transform .8s var(--ease-out)}
@media (hover:hover){
  .partners-track:hover img{opacity:.42}
  .partners-track img:hover{opacity:1;transform:scale(1.08)}
}

/* ---------- Animations réduites : rien ne bouge, tout est visible ---------- */
@media (prefers-reduced-motion:reduce){
  .hero-cue,.hero-dust{display:none}
  .figure .figure-media img{scale:1;translate:none}
  .chiffres-bg{inset:0;height:100%;translate:none}
}
