:root{
  --r-sm:6px; --r-md:12px; --r-lg:20px;
  --shadow-soft:0 18px 40px -24px rgba(0,0,0,.85);
  --shadow-card:0 1px 0 rgba(243,235,221,.03) inset, 0 24px 50px -30px rgba(0,0,0,.9);
  --shadow-lift:0 30px 60px -28px rgba(0,0,0,.95);
}
body{ background:#0E0B08; }
::selection{ background:#C9A24B; color:#0E0B08; }

/* Grain subtil global */
body::before{
  content:""; position:fixed; inset:0; z-index:1; pointer-events:none; opacity:.5;
  mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");
}
body > *{ position:relative; z-index:2; }

/* Texte doré dégradé (titres accent) */
.text-gold-grad{
  background:linear-gradient(105deg,#E7D3A1 0%,#C9A24B 45%,#9C7A2E 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}

/* Scrollbar */
*::-webkit-scrollbar{ width:10px; height:10px; }
*::-webkit-scrollbar-track{ background:#0E0B08; }
*::-webkit-scrollbar-thumb{ background:#3A2E22; border-radius:9999px; }
*::-webkit-scrollbar-thumb:hover{ background:#C9A24B; }

/* Focus accessibilité */
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible{
  outline:2px solid #C9A24B; outline-offset:2px; border-radius:4px;
}

/* Sur-titres small-caps dorés */
.eyebrow{
  display:inline-flex; align-items:center; gap:.65rem;
  font-family:"Cormorant Garamond",serif;
  text-transform:uppercase; letter-spacing:.3em;
  font-size:.82rem; color:#C9A24B; font-weight:600;
}
.eyebrow::before{
  content:""; width:1.6rem; height:1px;
  background:linear-gradient(90deg,transparent,#C9A24B); display:inline-block;
}
/* Eyebrow centré : trait des deux côtés */
.text-center .eyebrow::after{
  content:""; width:1.6rem; height:1px;
  background:linear-gradient(90deg,#C9A24B,transparent); display:inline-block;
}

/* Filet doré */
.rule-gold{ height:1px; background:linear-gradient(90deg,transparent,#C9A24B,transparent); }

/* Boutons */
.btn{ position:relative; display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding:.85rem 1.7rem; border-radius:9999px; font-weight:500; letter-spacing:.03em;
  transition:transform .3s cubic-bezier(.2,.8,.2,1), background .3s ease, box-shadow .3s ease, color .3s ease;
  cursor:pointer; border:1px solid transparent; }
.btn-primary{ background:linear-gradient(135deg,#E2654A,#C44A30); color:#0E0B08;
  box-shadow:0 10px 24px -12px rgba(226,101,74,.7); }
.btn-primary:hover{ transform:translateY(-2px); box-shadow:0 16px 30px -12px rgba(226,101,74,.8); }
.btn-ghost{ border-color:rgba(201,162,75,.55); color:#E7D3A1; background:transparent; }
.btn-ghost:hover{ background:rgba(201,162,75,.1); border-color:#C9A24B; transform:translateY(-2px); }

/* Cards */
.card{ background:linear-gradient(180deg,#1C1612,#171109); border:1px solid #3A2E22;
  border-radius:var(--r-lg); box-shadow:var(--shadow-card);
  transition:transform .4s cubic-bezier(.2,.8,.2,1), border-color .4s ease, box-shadow .4s ease; }
.card.group:hover, article.card:hover, figure.card:hover{
  border-color:rgba(201,162,75,.4); box-shadow:var(--shadow-lift); transform:translateY(-4px);
}

/* Badges */
.badge{ display:inline-flex; align-items:center; gap:.3rem; font-size:.7rem;
  padding:.2rem .6rem; border-radius:9999px; letter-spacing:.05em; font-weight:500; }
.badge-signature{ background:#E2654A; color:#0E0B08; }
.badge-nouveau{ background:#C9A24B; color:#0E0B08; }
.badge-vege{ background:rgba(127,166,106,.18); color:#7FA66A; border:1px solid #7FA66A; }
.badge-sg{ background:rgba(201,162,75,.14); color:#C9A24B; border:1px solid #C9A24B; }

/* Inputs */
.field{ width:100%; background:#2A2018; border:1px solid #3A2E22; color:#F3EBDD;
  border-radius:var(--r-md); padding:.7rem 1rem; font-size:.95rem; }
.field:focus{ border-color:#C9A24B; outline:none; }
.field::placeholder{ color:#A99B85; }
label{ color:#A99B85; font-size:.85rem; }

/* Reveal animations (state avant GSAP) */
.reveal{ opacity:0; transform:translateY(28px); }
.reveal.is-visible{ opacity:1; transform:none; transition:opacity .8s ease, transform .8s ease; }

/* Hero overlay — superposition multi-couche + voile lagon + vignette */
.hero-overlay{
  background:
    radial-gradient(120% 80% at 50% 18%, transparent 0%, rgba(14,11,8,.35) 55%, rgba(14,11,8,.9) 100%),
    linear-gradient(to bottom, rgba(14,11,8,.55) 0%, rgba(14,11,8,.45) 38%, rgba(14,11,8,.82) 72%, #0E0B08 100%);
}
/* Voile teinté lagon/corail, très discret, au-dessus de l'image */
.hero-tint{
  background:
    radial-gradient(60% 50% at 78% 22%, rgba(127,166,106,.14), transparent 60%),
    radial-gradient(55% 45% at 18% 80%, rgba(226,101,74,.16), transparent 62%);
  mix-blend-mode:screen;
}
/* Halo doré derrière le titre */
.hero-halo{
  position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(40% 30% at 50% 42%, rgba(201,162,75,.16), transparent 70%);
}
.hero-img{ will-change:transform; }
[data-hero-fade]{ will-change:transform,opacity; }

/* Menu card image zoom */
.menu-img{ transition:transform .6s ease; }
.menu-card:hover .menu-img{ transform:scale(1.06); }

/* Wizard step indicator */
.step-dot{ transition:all .3s ease; }

/* Leaflet height */
#map{ height:380px; border-radius:var(--r-lg); border:1px solid #3A2E22; z-index:0; }

@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1 !important; transform:none !important; }
  *{ scroll-behavior:auto !important; }
  .btn:hover{ transform:none; }
  .card:hover, article.card:hover, figure.card:hover{ transform:none; }
}
