/* ============================================================================
   La Table — pilote fond d'ambiance "gastronomie & vin" (Otaweb)
   DA : robe de vin sombre, noble, appétissant. Cormorant (serif d'affichage)
   + Manrope (sans). Tokens à la SIGNATURE_OTAWEB (motion / formes / mesure).
   Le hero n'est qu'un placeholder élégant : le sujet, c'est le FOND.
   ============================================================================ */
:root{
  /* — Robe de vin (la palette du shader est calée sur ces mêmes tons) — */
  --bg:        #16070a;   /* lie-de-vin très sombre, presque noir chaud (domine) */
  --bg-2:      #2a0a12;   /* grenat profond */
  --wine:      #6e0f1f;   /* rouge bordeaux */
  --ruby:      #9e1b2c;   /* rubis vif (rare, l'éclat dans le verre) */
  --copper:    #c8862f;   /* cuivre / or chaud : la lumière de bougie, les accents */
  --gold:      #e7b96a;   /* or clair : éclat de braise, sheen */
  --cream:     #f3e7d4;   /* ivoire chaud : le texte de contenu */

  /* — Motion (échelle Signature) — */
  --ease:        cubic-bezier(.16,1,.3,1);
  --ease-sine:   cubic-bezier(.45,.05,.55,.95);
  --t-fast: .45s; --t-std: 1s; --t-slow: 1.8s;

  /* — Layout / formes — */
  --pad-x: clamp(22px,5vw,80px);
  --measure: 60ch;
  --r: 2px;
}

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0; min-height:100svh; background:var(--bg); color:var(--cream);
  font-family:"Manrope",system-ui,sans-serif; font-weight:300;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

/* ——————————————————————————— Les couches de fond ——————————————————————————— */
#vin,#braises,#grain,#scrim{
  position:fixed; inset:0; width:100%; height:100%;
  z-index:-1; pointer-events:none;
}
#vin{z-index:-4;}            /* shader nappe de vin (le plus profond) */
#braises{z-index:-3;}        /* braises / poussière d'épices */
#grain{                      /* grain SVG en overlay, très léger */
  z-index:-2; opacity:.05; 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='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
#scrim{                      /* scrim directionnel : creuse les bords + assombrit le bas (lisibilité) */
  z-index:-1;
  background:
    radial-gradient(120% 90% at 50% 38%, transparent 38%, rgba(11,4,6,.62) 100%),
    linear-gradient(to bottom, rgba(11,4,6,.34) 0%, transparent 26%, transparent 52%, rgba(11,4,6,.74) 100%);
}
/* avant l'armement du shader : un fond peint en CSS (jamais d'écran nu / flash noir) */
#vin{
  background:
    radial-gradient(70% 60% at 30% 32%, rgba(158,27,44,.40), transparent 58%),
    radial-gradient(95% 85% at 74% 70%, rgba(110,15,31,.55), transparent 64%),
    radial-gradient(34% 30% at 32% 34%, rgba(200,134,47,.10), transparent 68%),
    linear-gradient(160deg, var(--bg-2), var(--bg) 72%);
}

/* ——————————————————————————————— Top bar ————————————————————————————————— */
.topbar{
  position:absolute; top:0; left:0; right:0; z-index:3;
  display:flex; align-items:baseline; gap:14px;
  padding:clamp(22px,3.2vw,34px) var(--pad-x);
}
.brand{
  font-family:"Cormorant Garamond",serif; font-weight:600;
  font-size:clamp(20px,2vw,26px); letter-spacing:.02em; color:var(--cream);
}
.brand-sub{
  font-size:11px; letter-spacing:.34em; text-transform:uppercase;
  color:var(--copper); opacity:.85;
}

/* ———————————————————————————————— Hero ——————————————————————————————————— */
.hero{
  position:relative; z-index:2;
  min-height:100svh; display:flex; flex-direction:column; justify-content:center;
  padding:0 var(--pad-x);
}
.hero__inner{max-width:760px; margin-left:clamp(0px,2vw,24px);}

.eyebrow{
  margin:0 0 22px; font-size:12px; letter-spacing:.32em; text-transform:uppercase;
  color:var(--copper); font-weight:500;
}
.eyebrow::before{
  content:""; display:inline-block; width:34px; height:1px; vertical-align:middle;
  margin-right:14px; background:linear-gradient(90deg,var(--copper),transparent);
}

.title{
  margin:0; font-family:"Cormorant Garamond",serif; font-weight:500;
  font-size:clamp(46px,8.4vw,108px); line-height:.98; letter-spacing:-.012em;
  color:var(--cream);
}
.title em{
  font-style:italic; font-weight:400;
  /* l'accent rubis→or, comme un reflet de vin dans le verre */
  background:linear-gradient(96deg,var(--ruby),var(--gold) 60%,var(--copper));
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
}
/* split-titre : chaque ligne monte sous un masque (Signature, valeurs réelles) */
.title .line{display:block; overflow:hidden;}
.title .line__in{display:block; transform:translateY(112%);}
.js .title .line__in{transition:transform 1.05s var(--ease);}
.js .title.in .line:nth-child(1) .line__in{transition-delay:.12s;}
.js .title.in .line:nth-child(2) .line__in{transition-delay:.24s;}
.js .title.in .line:nth-child(3) .line__in{transition-delay:.36s;}
.title.in .line__in{transform:none;}

.lede{
  margin:30px 0 0; max-width:var(--measure);
  font-size:clamp(16px,1.5vw,20px); line-height:1.62; font-weight:300;
  color:var(--cream); opacity:.9;
}

/* — CTA : un solide (action unique) + un texte sheen sans bordure (Signature B6) — */
.cta{margin-top:42px; display:flex; flex-wrap:wrap; align-items:center; gap:clamp(20px,3vw,40px);}
.btn{
  display:inline-flex; align-items:center; gap:11px;
  font-family:"Manrope",sans-serif; font-size:12.5px; letter-spacing:.18em;
  text-transform:uppercase; font-weight:500; text-decoration:none;
  transition:var(--t-fast) var(--ease);
}
.btn--solid{
  position:relative; overflow:hidden; padding:16px 30px; border-radius:var(--r);
  color:#1c0407; background:linear-gradient(120deg,var(--gold),var(--copper));
  box-shadow:0 10px 34px -14px rgba(200,134,47,.6);
}
.btn--solid:hover{transform:translateY(-2px);}
.btn--solid::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(105deg,transparent 38%,rgba(255,248,233,.6) 50%,transparent 62%);
  transform:translateX(-120%); animation:sheen 4.2s ease-in-out 1.4s infinite;
}
@keyframes sheen{0%{transform:translateX(-120%);}20%,100%{transform:translateX(120%);}}

.btn--text{
  position:relative; padding:6px 0; gap:10px;
  --s1:var(--copper); --s2:var(--gold); --s3:#fff3da;
  background:linear-gradient(100deg,var(--s1) 0%,var(--s2) 38%,var(--s3) 50%,var(--s2) 62%,var(--s1) 100%);
  background-size:280% 100%; background-position:100% 0;
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
  animation:textSheen 5s ease-in-out infinite;
}
.btn--text::after{
  content:""; position:absolute; left:0; bottom:0; height:1px; width:100%;
  background:linear-gradient(90deg,var(--copper),rgba(200,134,47,.2));
  transform:scaleX(0); transform-origin:left; transition:transform .55s var(--ease);
}
.btn--text:hover::after,.btn--text:focus-visible::after{transform:scaleX(1);}
@keyframes textSheen{0%{background-position:100% 0;}60%,100%{background-position:0 0;}}

.btn:focus-visible{outline:2px solid var(--gold); outline-offset:6px; border-radius:2px;}

.scroll-hint{
  position:absolute; left:var(--pad-x); bottom:26px;
  font-size:10.5px; letter-spacing:.3em; text-transform:uppercase;
  color:var(--cream); opacity:.42;
}
.scroll-hint::after{
  content:""; display:block; width:1px; height:30px; margin:10px auto 0;
  background:linear-gradient(to bottom,var(--copper),transparent);
  animation:hintLine 2.6s var(--ease-sine) infinite;
}
@keyframes hintLine{0%,100%{transform:scaleY(.4);opacity:.3;transform-origin:top;}50%{transform:scaleY(1);opacity:.8;}}

/* — Reveals (Signature) — */
.js .rv{opacity:0; transform:translateY(26px); transition:opacity .9s var(--ease),transform .95s var(--ease);}
.rv.in{opacity:1; transform:none;}

/* ————————————————————————————————— Mobile ———————————————————————————————— */
@media(max-width:760px){
  #grain{opacity:.04;}
  .hero__inner{margin-left:0;}
  .cta{gap:22px;}
  .btn--text{order:2;}
}

/* ———————————————————————— prefers-reduced-motion ————————————————————————— */
@media(prefers-reduced-motion:reduce){
  .js .title .line__in{transition:none; transform:none;}
  .js .rv{opacity:1; transform:none; transition:none;}
  .btn--solid::after{display:none;}
  .btn--text{animation:none; background:none;
    -webkit-text-fill-color:var(--gold); color:var(--gold);}
  .scroll-hint::after{animation:none;}
}
