* { margin:0; padding:0; box-sizing:border-box; }
:root {
  --ink:#15170f;            /* noir végétal */
  --olive:#5c6444;          /* kaki */
  --olive-d:#23271a;        /* kaki très sombre */
  --cream:#f6f1e5;
  --cream2:#ede5d2;
  --terra:#b95f3a;          /* terracotta */
  --terra-d:#9a4a28;
  --gold:#c8a266;
  --muted:#716d5b;
  --line:rgba(21,23,15,.12);
}
body { font-family:'Inter',sans-serif; color:var(--ink); background:var(--cream); overflow-x:hidden; line-height:1.65; }
::selection { background:var(--terra); color:var(--cream); }

/* PRÉCHARGEUR */
#preloader { position:fixed; inset:0; z-index:500; background:var(--ink); display:flex; align-items:center; justify-content:center; transition:opacity .7s ease, visibility .7s; }
body.loaded #preloader { opacity:0; visibility:hidden; }
.pre-inner { text-align:center; }
.pre-brand { font-family:'Fraunces',serif; font-weight:400; font-size:38px; color:var(--cream); opacity:0; animation:fadeup 1s ease .1s forwards; }
.pre-brand em { font-style:italic; color:var(--gold); }
.pre-sub { color:rgba(246,241,229,.5); font-size:11px; letter-spacing:4px; text-transform:uppercase; margin-top:12px; opacity:0; animation:fadeup 1s ease .4s forwards; }
.pre-line { width:0; height:1px; background:var(--gold); margin:20px auto 0; animation:linegrow 1.1s ease .35s forwards; }
@keyframes linegrow { to { width:130px; } }

/* BARRE DE PROGRESSION */
#progress { position:fixed; top:0; left:0; height:2px; width:0; background:linear-gradient(90deg,var(--gold),var(--terra)); z-index:400; }

/* NAV */
.opening-ribbon { position:sticky; top:0; z-index:250; display:flex; align-items:center; justify-content:center; gap:8px; background:linear-gradient(90deg,var(--terra),#c8863f); color:#fff; text-align:center; font-size:13px; font-weight:600; letter-spacing:.3px; padding:10px 16px; }
.opening-ribbon i { font-size:15px; }
.opening-ribbon b { font-weight:800; }
@media (max-width:820px){ .opening-ribbon .rib-suite { display:none; } }
.nav-wrap { position:sticky; top:52px; z-index:200; display:flex; justify-content:center; padding:0 16px; }
.nav { display:flex; align-items:center; gap:26px; background:rgba(21,23,15,.92); backdrop-filter:blur(10px); border:1px solid rgba(200,162,102,.35); border-radius:60px; padding:10px 12px 10px 24px; box-shadow:0 8px 30px -12px rgba(0,0,0,.45); transition:box-shadow .3s; }
.nav.scrolled { box-shadow:0 14px 40px -10px rgba(0,0,0,.6); }
.brand { display:inline-flex; align-items:center; gap:9px; font-family:'Fraunces',serif; font-weight:500; font-size:20px; letter-spacing:.3px; color:var(--cream); cursor:pointer; white-space:nowrap; }
.brand em { font-style:italic; color:var(--gold); }
.brand-logo { height:32px; width:32px; color:var(--gold); flex-shrink:0; }
.nav-links { display:flex; gap:22px; align-items:center; }
.nav-links a { color:rgba(246,241,229,.75); text-decoration:none; font-size:13px; font-weight:500; cursor:pointer; transition:.2s; }
.nav-links a:hover { color:var(--gold); }
.nav-cta { background:var(--terra); color:var(--cream)!important; padding:11px 24px; border-radius:40px; font-weight:600; transition:transform .25s, background .2s; }
.nav-cta:hover { background:var(--terra-d); transform:scale(1.05); }

/* HERO */
.hero { position:relative; min-height:96vh; display:flex; align-items:flex-end; padding:0 20px 70px; margin-top:-72px; overflow:hidden; }
.hero-bg { position:absolute; inset:-6% 0 0 0; z-index:0; overflow:hidden; will-change:transform; }
.hero-bg img { width:100%; height:100%; object-fit:cover; object-position:center 30%; }
@keyframes kenburns { from{ transform:scale(1) translate(0,0); } to{ transform:scale(1.1) translate(-1%,-1%); } }
.hero-bg::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(21,23,15,.3) 0%,rgba(21,23,15,.15) 40%,rgba(21,23,15,.92) 100%), linear-gradient(100deg,rgba(21,23,15,.75) 0%,rgba(21,23,15,.4) 38%,rgba(21,23,15,0) 65%); }
.hero-fallback { position:absolute; inset:0; z-index:-1; background:radial-gradient(circle at 20% 15%,rgba(200,162,102,.18),transparent 45%),linear-gradient(165deg,#3a4028 0%,#23271a 55%,#15170f 100%); }
#fireflies { position:absolute; inset:0; width:100%; height:100%; z-index:1; pointer-events:none; }
.hero-content { position:relative; z-index:2; width:100%; max-width:1120px; margin:0 auto; padding-top:180px; will-change:transform,opacity; }
.hero .tagline { display:inline-flex; align-items:center; gap:10px; border:1px solid rgba(200,162,102,.55); color:var(--gold); font-size:12px; font-weight:500; letter-spacing:2.5px; text-transform:uppercase; padding:8px 18px; border-radius:30px; margin-bottom:24px; opacity:0; transform:translateY(16px); animation:fadeup .9s ease .55s forwards; }
.hero h1 { font-family:'Fraunces',serif; font-weight:400; font-size:clamp(44px,7.5vw,90px); line-height:1.02; color:var(--cream); letter-spacing:-1px; max-width:880px; }
.hero h1 em { font-style:italic; color:var(--gold); }
.hero h1 .w { display:inline-block; opacity:0; transform:translateY(.6em) rotate(1.5deg); animation:wordup .9s cubic-bezier(.16,.8,.26,1) forwards; animation-delay:var(--d,.6s); }
@keyframes wordup { to { opacity:1; transform:none; } }
.hero .sub { font-size:clamp(15px,2vw,18px); color:rgba(246,241,229,.78); margin:22px 0 32px; max-width:580px; opacity:0; transform:translateY(20px); animation:fadeup .9s ease 1.15s forwards; }
.hero-row { display:flex; align-items:center; gap:20px; flex-wrap:wrap; opacity:0; transform:translateY(18px); animation:fadeup .9s ease 1.35s forwards; }
@keyframes fadeup { to{ opacity:1; transform:none; } }
.btn { font-family:'Inter',sans-serif; font-weight:600; font-size:14px; padding:16px 30px; border-radius:40px; cursor:pointer; border:none; transition:transform .25s cubic-bezier(.2,.8,.3,1.3), background .2s, color .2s, box-shadow .3s; }
.btn:hover { transform:translateY(-3px) scale(1.03); box-shadow:0 14px 30px -12px rgba(0,0,0,.4); }
.btn-primary { background:var(--terra); color:var(--cream); }
.btn-primary:hover { background:var(--terra-d); }
.rating-badge { display:flex; align-items:center; gap:10px; background:rgba(246,241,229,.1); backdrop-filter:blur(6px); border:1px solid rgba(246,241,229,.25); padding:11px 18px; border-radius:40px; color:var(--cream); animation:float 4s ease-in-out infinite; }
@keyframes float { 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-5px); } }
.rating-badge .stars { color:var(--gold); font-size:14px; letter-spacing:1px; }
.rating-badge b { font-size:14px; }
.rating-badge span { font-size:12px; color:rgba(246,241,229,.7); }
.status-float { position:absolute; bottom:26px; left:26px; z-index:3; display:flex; align-items:center; gap:8px; background:rgba(246,241,229,.95); padding:9px 16px; border-radius:30px; font-size:12px; font-weight:600; animation:fadeup .9s ease 1.6s both; }
.status-dot { width:7px; height:7px; border-radius:50%; background:#3ecf6e; box-shadow:0 0 0 0 rgba(62,207,110,.5); animation:pulse 1.8s infinite; }
@keyframes pulse { 0%{ box-shadow:0 0 0 0 rgba(62,207,110,.5); } 70%{ box-shadow:0 0 0 8px rgba(62,207,110,0); } 100%{ box-shadow:0 0 0 0 rgba(62,207,110,0); } }

/* OFFRE SPÉCIALE */
.promo-wrap { display:flex; justify-content:center; padding:0 20px; margin-top:-34px; position:relative; z-index:6; }
.promo-inner { display:flex; align-items:center; gap:18px; background:var(--ink); border:1.5px solid var(--gold); border-radius:50px; padding:14px 28px; box-shadow:0 20px 44px -18px rgba(0,0,0,.55); flex-wrap:wrap; justify-content:center; }
.promo-icon { width:40px; height:40px; border-radius:50%; background:var(--terra); color:var(--cream); display:flex; align-items:center; justify-content:center; font-size:19px; flex-shrink:0; }
.promo-text { display:flex; flex-direction:column; color:var(--cream); }
.promo-text strong { font-family:'Fraunces',serif; font-size:17px; font-weight:500; }
.promo-text span { font-size:12.5px; color:rgba(246,241,229,.6); }
.promo-inner .btn { padding:10px 22px; font-size:13px; }
/* Menu grenouilles : bandeau dans la carte (plus de bulle qui flotte sur le haut de page) */
.promo-wrap.promo-carte { margin-top:0; padding:0 0 26px; z-index:auto; }
.promo-carte .promo-inner { width:100%; max-width:760px; border-radius:18px; padding:12px 18px; box-shadow:none; justify-content:space-between; flex-wrap:nowrap; gap:14px; }
.promo-carte .promo-icon { width:34px; height:34px; font-size:16px; }
.promo-carte .promo-text { flex:1; min-width:0; }
.promo-carte .promo-text strong { font-size:16px; }
@media (max-width:820px){ .promo-carte .promo-inner { flex-wrap:wrap; justify-content:center; text-align:center; } .promo-carte .promo-text { flex-basis:100%; order:2; align-items:center; } .promo-carte .promo-icon { order:1; } .promo-carte .btn { order:3; } }

/* MARQUEE */
.marquee { background:var(--terra); overflow:hidden; padding:14px 0; white-space:nowrap; }
.marquee .track { display:inline-block; animation:scrollx 32s linear infinite; }
.marquee span { color:var(--cream); font-family:'Fraunces',serif; font-weight:500; font-size:14px; letter-spacing:2px; padding:0 26px; text-transform:uppercase; }
.marquee span i { margin-right:8px; color:rgba(246,241,229,.8); }
@keyframes scrollx { from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

.reveal { opacity:0; transform:translateY(26px); transition:opacity .7s ease, transform .7s ease; }
.reveal.in { opacity:1; transform:none; }

section { padding:110px 20px; }
.eyebrow { color:var(--terra); font-size:12px; font-weight:600; letter-spacing:3px; margin-bottom:16px; text-transform:uppercase; }
.stitle { font-family:'Fraunces',serif; font-weight:400; font-size:clamp(32px,4.8vw,54px); line-height:1.05; letter-spacing:-.5px; }
.stitle em { font-style:italic; color:var(--terra); }

/* Effet 3D au survol + reflet lumineux */
.tilt { will-change:transform; transition:transform .2s ease-out; transform-style:preserve-3d; }
.img-shine::after { content:''; position:absolute; top:0; left:-75%; width:50%; height:100%; background:linear-gradient(105deg,transparent,rgba(255,255,255,.16),transparent); transform:skewX(-20deg); transition:left .8s ease; z-index:2; pointer-events:none; }
.img-shine:hover::after { left:125%; }

/* STATS */
.statsband { background:var(--olive-d); border-top:1px solid rgba(200,162,102,.3); padding:64px 28px; }
.statsgrid { max-width:1020px; margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:22px; text-align:center; }
.statsgrid .n { font-family:'Fraunces',serif; font-weight:400; font-size:clamp(32px,4.8vw,52px); letter-spacing:-1px; color:var(--gold); }
.statsgrid .l { color:rgba(246,241,229,.55); font-size:11px; letter-spacing:2px; text-transform:uppercase; margin-top:8px; }

/* DUO */
.duo { max-width:1120px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.duo-item { border-radius:18px; overflow:hidden; aspect-ratio:4/5; background:linear-gradient(150deg,#3a4028,#23271a); position:relative; }
.duo-item img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.duo-item:hover img { transform:scale(1.05); }
.duo-item.wide { aspect-ratio:16/10; }
.duo-caption { max-width:1120px; margin:30px auto 0; display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.duo-cap h3 { font-family:'Fraunces',serif; font-weight:500; font-size:27px; letter-spacing:-.3px; margin-bottom:10px; }
.duo-cap p { color:var(--muted); font-size:14.5px; margin-bottom:18px; }
.btn-outline { background:transparent; color:var(--ink); border:1.5px solid var(--ink); padding:12px 26px; border-radius:40px; font-size:13px; font-weight:600; cursor:pointer; transition:.25s; }
.btn-outline:hover { background:var(--ink); color:var(--cream); transform:translateY(-2px); }

/* CARTE */
.carte { background:var(--olive-d); color:var(--cream); }
.carte .eyebrow { color:var(--gold); }
.carte .stitle { color:var(--cream); }
.carte-head { max-width:1020px; margin:0 auto 26px; }
.carte-head p { color:rgba(246,241,229,.6); margin-top:14px; font-size:15px; max-width:560px; }
.signature { max-width:1020px; margin:0 auto 46px; border:1px solid rgba(200,162,102,.45); border-radius:18px; padding:30px 34px; display:flex; justify-content:space-between; align-items:center; gap:24px; background:rgba(200,162,102,.06); flex-wrap:wrap; position:relative; overflow:hidden; }
.signature .sig-label { color:var(--gold); font-size:11px; letter-spacing:3px; text-transform:uppercase; margin-bottom:8px; }
.signature h3 { font-family:'Fraunces',serif; font-weight:500; font-size:26px; color:var(--cream); }
.signature p { color:rgba(246,241,229,.65); font-size:14px; margin-top:6px; max-width:520px; }
.signature .sig-price { font-family:'Fraunces',serif; font-size:34px; color:var(--gold); white-space:nowrap; }
.carte-grid { max-width:1020px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:0 60px; }
.carte-cat { margin:0 0 42px; }
.carte-cat h4 { font-family:'Fraunces',serif; font-weight:500; font-style:italic; font-size:22px; color:var(--gold); margin-bottom:20px; }
.plat { display:flex; justify-content:space-between; align-items:baseline; gap:18px; padding:17px 4px; border-bottom:1px solid rgba(246,241,229,.12); }
.plat:last-child { border-bottom:none; }
.plat-name { font-weight:600; font-size:15.5px; color:var(--cream); }
.plat-desc { color:rgba(246,241,229,.55); font-size:13px; margin-top:3px; }
.plat-price { font-family:'Fraunces',serif; font-size:19px; color:var(--gold); white-space:nowrap; }
.carte-legal { max-width:1020px; margin:8px auto 0; color:rgba(246,241,229,.42); font-size:12px; line-height:1.7; text-align:center; }
.carte-legal strong { color:rgba(246,241,229,.62); font-weight:600; }
.carte-photo { max-width:1020px; margin:44px auto 0; border-radius:18px; overflow:hidden; position:relative; }
.carte-photo img { width:100%; display:block; aspect-ratio:16/7; object-fit:cover; transition:transform .5s ease; }
.carte-photo:hover img { transform:scale(1.04); }
.carte-photo figcaption { position:absolute; left:0; right:0; bottom:0; padding:34px 28px 20px; background:linear-gradient(transparent,rgba(12,14,9,.85)); color:var(--cream); font-family:'Fraunces',serif; font-style:italic; font-size:20px; }
@media(max-width:640px){ .carte-photo img { aspect-ratio:4/3; } .carte-photo figcaption { font-size:16px; } }

/* HOTEL */
.hotel { background:var(--cream2); }
.hotel-wrap { max-width:1120px; margin:0 auto; display:grid; grid-template-columns:1.05fr .95fr; gap:52px; align-items:center; }
.hotel-photo { border-radius:18px; overflow:hidden; aspect-ratio:4/3; background:linear-gradient(150deg,#3a4028,#23271a); position:relative; }
.hotel-photo img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease, opacity .35s ease; }
.hotel-photo:hover img { transform:scale(1.04); }
.hotel-photo.switching img, .jardin-photo.switching img { opacity:0; }
.hphoto-caption { position:absolute; top:16px; left:16px; background:rgba(21,23,15,.75); color:var(--cream); font-size:11.5px; font-weight:600; letter-spacing:1px; text-transform:uppercase; padding:6px 14px; border-radius:20px; z-index:3; transition:opacity .35s ease; }
.hotel-photo.switching .hphoto-caption, .jardin-photo.switching .hphoto-caption { opacity:0; }
.hphoto-nav { position:absolute; left:0; right:0; bottom:16px; display:flex; align-items:center; justify-content:center; gap:14px; z-index:3; }
.hphoto-arrow { width:36px; height:36px; border-radius:50%; border:none; background:rgba(246,241,229,.92); color:var(--ink); font-size:16px; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:transform .2s, background .2s; flex-shrink:0; }
.hphoto-arrow:hover { background:var(--gold); transform:scale(1.08); }
.hphoto-dots { display:flex; gap:8px; }
.hdot { width:8px; height:8px; border-radius:50%; background:rgba(246,241,229,.6); border:none; padding:0; cursor:pointer; transition:.25s; }
.hdot.active { background:var(--gold); width:22px; border-radius:5px; }
.hotel-stars { color:var(--gold); letter-spacing:3px; font-size:15px; margin-bottom:10px; }
.hotel-price { display:flex; align-items:baseline; gap:8px; margin-top:14px; }
.hotel-price .amount { font-family:'Fraunces',serif; font-size:32px; color:var(--ink); }
.hotel-price .per { font-size:13.5px; color:var(--muted); }
.hotel-feats { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:26px 0; }
.hfeat { display:flex; align-items:center; gap:10px; font-size:13.5px; color:var(--muted); }
.hfeat i { color:var(--terra); font-size:19px; }

/* JARDIN / EVENEMENTS */
.jardin-wrap { max-width:1120px; margin:0 auto; }
.jardin-photo { border-radius:18px; overflow:hidden; aspect-ratio:21/9; background:linear-gradient(150deg,#3a4028,#23271a); margin-bottom:36px; position:relative; }
.jardin-photo img { width:100%; height:100%; object-fit:cover; transition:opacity .35s ease; }
.jardin-feats { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:18px; margin-top:36px; }
.jfeat { background:#fff; border:1px solid var(--line); border-radius:16px; padding:26px 24px; transition:transform .3s; }
.jfeat:hover { transform:translateY(-5px); }
.jfeat i { font-size:26px; color:var(--terra); }
.jfeat h4 { font-family:'Fraunces',serif; font-weight:500; font-size:19px; margin:12px 0 6px; }
.jfeat p { font-size:13.5px; color:var(--muted); }

/* AGENDA DES ÉVÉNEMENTS (contenu dans evenements.js) */
.agenda { background:var(--cream2); }
.agenda-head { text-align:center; max-width:640px; margin:0 auto 46px; }
.agenda-head p { color:var(--muted); margin-top:14px; font-size:15px; }
.agenda-grid { max-width:1120px; margin:0 auto; display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:20px; }
.evt { background:#fff; border:1px solid var(--line); border-radius:18px; overflow:hidden; display:flex; flex-direction:column; transition:transform .3s ease, box-shadow .3s ease; }
.evt:hover { transform:translateY(-6px); box-shadow:0 24px 44px -22px rgba(21,23,15,.28); }
.evt-photo { position:relative; aspect-ratio:16/10; background:linear-gradient(150deg,#3a4028,#23271a); overflow:hidden; }
.evt-photo img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.evt:hover .evt-photo img { transform:scale(1.05); }
.evt-date { position:absolute; top:14px; left:14px; background:var(--ink); color:var(--cream); border:1px solid rgba(200,162,102,.5); border-radius:14px; padding:8px 12px 7px; text-align:center; line-height:1; min-width:58px; }
.evt-date .d { display:block; font-family:'Fraunces',serif; font-size:26px; color:var(--gold); }
.evt-date .m { display:block; font-size:10.5px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; margin-top:5px; }
.evt-tag { position:absolute; top:14px; right:14px; background:var(--terra); color:var(--cream); font-size:10.5px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; padding:6px 12px; border-radius:20px; }
.evt-body { padding:22px 24px 24px; display:flex; flex-direction:column; flex:1; }
.evt-when { color:var(--terra); font-size:12px; font-weight:600; letter-spacing:1px; text-transform:uppercase; margin-bottom:8px; }
.evt-body h3 { font-family:'Fraunces',serif; font-weight:500; font-size:21px; line-height:1.2; margin-bottom:8px; }
.evt-body p { font-size:13.5px; color:var(--muted); margin-bottom:16px; }
.evt-foot { margin-top:auto; display:flex; flex-direction:column; align-items:flex-start; gap:12px; }
.evt-prix { font-family:'Fraunces',serif; font-size:17px; color:var(--ink); }
.evt-invite { display:inline-flex; align-items:center; border:1.5px solid var(--gold); color:var(--olive); font-size:12px; font-weight:600; letter-spacing:1px; text-transform:uppercase; padding:8px 16px; border-radius:40px; }
.evt-foot .btn-outline { font-size:12px; padding:9px 18px; text-decoration:none; }
.agenda-empty { max-width:620px; margin:0 auto; text-align:center; background:#fff; border:1px solid var(--line); border-radius:22px; padding:40px 32px; color:var(--muted); font-size:15px; }
.agenda-empty a { color:var(--terra); font-weight:600; text-decoration:none; }
.evt-photo.has-video { cursor:pointer; }
.evt-play { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(21,23,15,.18); transition:background .25s; }
.evt-photo.has-video:hover .evt-play { background:rgba(21,23,15,.34); }
.evt-play i { width:58px; height:58px; border-radius:50%; background:rgba(246,241,229,.95); color:var(--ink); display:flex; align-items:center; justify-content:center; font-size:22px; padding-left:3px; box-shadow:0 10px 24px -10px rgba(0,0,0,.5); transition:transform .25s; }
.evt-photo.has-video:hover .evt-play i { transform:scale(1.08); }
.evt-lightbox { position:fixed; inset:0; z-index:600; display:none; align-items:center; justify-content:center; background:rgba(15,17,11,.88); padding:24px; }
.evt-lightbox.open { display:flex; }
.evt-lightbox-wrap { position:relative; width:100%; max-width:420px; }
.evt-lightbox-wrap.wide { max-width:860px; }
.evt-lightbox-box { position:relative; width:100%; aspect-ratio:9/16; background:#000; border-radius:16px; overflow:hidden; }
.evt-lightbox-wrap.wide .evt-lightbox-box { aspect-ratio:16/9; }
.evt-lightbox-box iframe { width:100%; height:100%; border:0; display:block; }
.evt-lightbox-close { position:absolute; top:-44px; right:0; width:36px; height:36px; border-radius:50%; border:1.5px solid rgba(246,241,229,.5); background:rgba(246,241,229,.1); color:var(--cream); font-size:18px; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.evt-lightbox-close:hover { background:rgba(246,241,229,.2); }

/* VISITE VIRTUELLE */
.visite { background:var(--ink); color:var(--cream); }
.visite .eyebrow { color:var(--gold); }
.visite .stitle { color:var(--cream); }
.visite-head { max-width:640px; margin:0 auto 44px; }
.visite-head p { color:rgba(246,241,229,.55); margin-top:14px; font-size:15px; }
.visite-wrap { max-width:1120px; margin:0 auto; }
.visite-stage { position:relative; border-radius:20px; overflow:hidden; aspect-ratio:16/8.2; background:linear-gradient(150deg,#3a4028,#23271a); perspective:1400px; }
.visite-stage img { width:100%; height:100%; object-fit:cover; display:block; transition:opacity .45s ease, transform .6s cubic-bezier(.2,.8,.2,1); }
.visite-stage.switching img { opacity:0; transform:rotateY(8deg) scale(1.04); }
.visite-caption { position:absolute; left:0; right:0; bottom:0; padding:34px 36px; background:linear-gradient(0deg,rgba(21,23,15,.92),rgba(21,23,15,0)); transition:opacity .35s ease; }
.visite-stage.switching .visite-caption { opacity:0; }
.visite-caption h3 { font-family:'Fraunces',serif; font-weight:500; font-size:26px; margin-bottom:6px; }
.visite-caption p { color:rgba(246,241,229,.7); font-size:14px; max-width:520px; }
.visite-nav { display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin-top:24px; }
.vroom { font-family:'Inter',sans-serif; font-weight:600; font-size:13px; background:rgba(246,241,229,.06); color:rgba(246,241,229,.7); border:1.5px solid rgba(246,241,229,.16); padding:10px 20px; border-radius:30px; cursor:pointer; transition:.25s; display:flex; align-items:center; gap:8px; }
.vroom i { font-size:15px; }
.vroom:hover { border-color:var(--gold); color:var(--cream); }
.vroom.active { background:var(--gold); border-color:var(--gold); color:var(--ink); }

/* CHOISIR SA TABLE */
.tables-head { text-align:center; max-width:640px; margin:0 auto 44px; }
.tables-grid { max-width:1120px; margin:0 auto; display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:18px; }
.table-card { position:relative; border-radius:18px; overflow:hidden; aspect-ratio:3/4; background:linear-gradient(150deg,#3a4028,#23271a); cursor:pointer; }
.table-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.table-card:hover img { transform:scale(1.08); }
.tc-overlay { position:absolute; inset:0; display:flex; flex-direction:column; justify-content:flex-end; padding:24px; background:linear-gradient(0deg,rgba(21,23,15,.9) 10%,rgba(21,23,15,.15) 60%,transparent 100%); }
.tc-tag { position:absolute; top:18px; left:18px; background:rgba(246,241,229,.92); color:var(--ink); font-size:10.5px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; padding:6px 12px; border-radius:20px; }
.tc-overlay h4 { font-family:'Fraunces',serif; font-weight:500; font-size:21px; color:var(--cream); margin-bottom:6px; }
.tc-overlay p { color:rgba(246,241,229,.72); font-size:13px; margin-bottom:14px; }
.tc-overlay .btn-outline { border-color:rgba(246,241,229,.55); color:var(--cream); font-size:12px; padding:9px 18px; }
.tc-overlay .btn-outline:hover { background:var(--gold); border-color:var(--gold); color:var(--ink); }

/* ASSIETTES - flip 3D */
.assiettes { background:var(--cream2); }
.assiettes-head { text-align:center; max-width:640px; margin:0 auto 46px; }
.assiettes-head p { color:var(--muted); margin-top:14px; font-size:15px; }
.assiettes-grid { max-width:1020px; margin:0 auto; display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,325px)); justify-content:center; gap:22px; }
.flip { perspective:1400px; aspect-ratio:3/4; }
.flip-inner { position:relative; width:100%; height:100%; transition:transform .75s cubic-bezier(.2,.8,.2,1); transform-style:preserve-3d; border-radius:18px; }
.flip:hover .flip-inner, .flip.flipped .flip-inner { transform:rotateY(180deg); }
.flip-front, .flip-back { position:absolute; inset:0; backface-visibility:hidden; -webkit-backface-visibility:hidden; border-radius:18px; overflow:hidden; }
.flip-front img { width:100%; height:100%; object-fit:cover; }
.flip-tag { position:absolute; top:16px; left:16px; background:var(--terra); color:var(--cream); font-size:10.5px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; padding:6px 12px; border-radius:20px; z-index:2; }
.flip-front h4 { position:absolute; left:0; right:0; bottom:0; padding:20px; font-family:'Fraunces',serif; font-weight:500; font-size:19px; color:var(--cream); background:linear-gradient(0deg,rgba(21,23,15,.85),transparent); }
.flip-back { transform:rotateY(180deg); background:var(--olive-d); color:var(--cream); padding:26px; display:flex; flex-direction:column; justify-content:center; text-align:center; }
.flip-back h4 { font-family:'Fraunces',serif; font-weight:500; font-size:19px; color:var(--gold); margin-bottom:10px; }
.flip-back p { font-size:13px; color:rgba(246,241,229,.75); line-height:1.6; margin-bottom:14px; }
.flip-back .flip-price { font-family:'Fraunces',serif; font-size:22px; color:var(--cream); }
.flip-hint { text-align:center; font-size:12px; color:var(--muted); margin-top:18px; }

/* GALLERY */
.gallery-head { text-align:center; max-width:620px; margin:0 auto 46px; }
.grid-gal { max-width:1120px; margin:0 auto; display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:14px; }
.gal-item { position:relative; overflow:hidden; border-radius:16px; aspect-ratio:1; background:linear-gradient(150deg,#3a4028,#23271a); }
.gal-item img { width:100%; height:100%; object-fit:cover; transition:transform .45s ease; }
.gal-item:hover img { transform:scale(1.07); }

/* TESTIMONIALS */
.testi-grid { max-width:1120px; margin:0 auto; display:grid; grid-template-columns:repeat(auto-fit,minmax(290px,1fr)); gap:20px; }
.tcard { background:#fff; border:1px solid var(--line); border-radius:18px; padding:30px; transition:transform .3s ease, box-shadow .3s ease; }
.tcard:hover { transform:translateY(-6px); box-shadow:0 24px 44px -22px rgba(21,23,15,.28); }
.gbadge { display:inline-flex; align-items:center; gap:6px; background:var(--ink); color:var(--cream); font-size:11px; font-weight:600; padding:6px 14px; border-radius:20px; margin-bottom:16px; }
.tstars { color:var(--gold); font-size:14px; letter-spacing:1px; margin-bottom:14px; }
.tcard p { font-family:'Fraunces',serif; font-style:italic; font-size:16px; color:#3d3a2e; line-height:1.6; margin-bottom:18px; }
.tcard .name { font-weight:600; font-size:13px; color:var(--muted); }

/* RESA */
.resa { background:var(--ink); color:var(--cream); }
.resa-wrap { max-width:600px; margin:0 auto; text-align:center; }
.resa .eyebrow { color:var(--gold); }
.resa .stitle { color:var(--cream); margin-bottom:12px; }
.resa .lead { color:rgba(246,241,229,.6); font-size:15px; margin-bottom:38px; }
.form-card { background:var(--cream); border-radius:20px; padding:32px; text-align:left; }
.fg { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.field { display:flex; flex-direction:column; gap:6px; margin-bottom:14px; }
.field.full { grid-column:1/-1; }
.field label { font-size:11px; letter-spacing:1.5px; text-transform:uppercase; color:var(--olive); font-weight:600; }
.field input, .field select, .field textarea { border:1.5px solid var(--line); background:#fff; color:var(--ink); padding:12px 14px; border-radius:10px; font-family:'Inter',sans-serif; font-size:14px; outline:none; transition:border-color .2s, box-shadow .2s; resize:vertical; }
.field input:focus, .field select:focus, .field textarea:focus { border-color:var(--terra); box-shadow:0 0 0 3px rgba(185,95,58,.14); }
/* Choix de la table : cases à cocher (le client peut en cocher plusieurs) */
.field.optin { gap:8px; margin-bottom:6px; }
.field.optin label { display:flex; align-items:flex-start; gap:10px; font-size:13.5px; line-height:1.5; letter-spacing:normal; text-transform:none; color:var(--ink); font-weight:500; cursor:pointer; }
.field.optin input { width:18px; height:18px; flex:none; padding:0; margin:2px 0 0; accent-color:var(--terra); cursor:pointer; }
.field.optin small { font-size:12px; line-height:1.5; color:var(--olive); }
.field.optin small a { color:var(--terra); }
.table-choice { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:10px; }
.table-choice .opt { display:flex; align-items:center; gap:10px; border:1.5px solid var(--line); background:#fff; border-radius:10px; padding:12px 14px; cursor:pointer; transition:border-color .2s, box-shadow .2s, background .2s; font-size:14px; font-weight:500; letter-spacing:normal; text-transform:none; color:var(--ink); }
.table-choice .opt:hover { border-color:var(--terra); }
.table-choice .opt input { width:18px; height:18px; flex:none; padding:0; margin:0; accent-color:var(--terra); cursor:pointer; }
.table-choice .opt:has(input:checked) { border-color:var(--terra); background:rgba(185,95,58,.07); box-shadow:0 0 0 3px rgba(185,95,58,.12); }
.submit-full { width:100%; margin-top:6px; }
.resa-note { margin-top:18px; font-size:13px; color:rgba(246,241,229,.55); }
.resa-note a { color:var(--gold); text-decoration:none; }
.ok { display:none; margin-top:16px; background:#eaf3de; border:1.5px solid var(--olive); color:#3d4a26; padding:16px; border-radius:12px; font-size:14px; text-align:center; font-weight:500; }

/* STICKY BAR */
.stickybar { position:sticky; bottom:16px; z-index:150; display:flex; justify-content:center; margin-top:-24px; pointer-events:none; }
.stickybar-inner { pointer-events:auto; background:var(--ink); color:var(--cream); display:flex; align-items:center; gap:16px; padding:10px 10px 10px 22px; border-radius:40px; border:1px solid rgba(200,162,102,.4); box-shadow:0 20px 40px -12px rgba(0,0,0,.5); opacity:0; transform:translateY(20px); transition:.4s; }
.stickybar-inner.show { opacity:1; transform:none; }
.stickybar-inner span { font-family:'Fraunces',serif; font-style:italic; font-size:14px; }

/* INFOS */
.infos { background:var(--olive-d); color:var(--cream); }
.infos-wrap { max-width:1120px; margin:0 auto; display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:44px; }
.info h4 { font-family:'Fraunces',serif; font-weight:500; font-style:italic; color:var(--gold); font-size:17px; margin-bottom:16px; }
.info p { font-size:14px; color:rgba(246,241,229,.7); line-height:1.9; }
.info a { color:var(--gold); text-decoration:none; font-weight:500; }
.hr-row { display:flex; justify-content:space-between; padding:7px 0; border-bottom:1px solid rgba(246,241,229,.12); font-size:13px; }
.hr-row:last-child { border-bottom:none; }
.hr-day { color:rgba(246,241,229,.6); }
.hr-time { font-weight:600; color:var(--cream); }
.hr-time.closed { color:#d98e6b; }

.foot { background:var(--ink); text-align:center; padding:52px 24px 36px; }
.foot .brand { font-size:26px; display:inline-block; margin-bottom:12px; cursor:default; }
.foot small { color:rgba(246,241,229,.45); font-size:12px; }

html { scroll-behavior:smooth; }
@media(max-width:820px){
  .nav-links { display:none; }
  .duo, .duo-caption, .hotel-wrap { grid-template-columns:1fr; }
  .fg { grid-template-columns:1fr; }
  .hero { margin-top:-60px; }
  .hero-content { padding-top:120px; }
  .statsgrid { grid-template-columns:repeat(3,1fr); }
  .signature { flex-direction:column; align-items:flex-start; }
  .carte-grid { grid-template-columns:1fr; }
  .jardin-photo { aspect-ratio:16/10; }
  .visite-stage { aspect-ratio:4/5; }
}
@media (prefers-reduced-motion: reduce){
  .hero-bg img, .marquee .track, .rating-badge { animation:none; }
  .hero h1 .w, .hero .tagline, .hero .sub, .hero-row, .status-float { animation-duration:.01s; animation-delay:0s; }
  .flip-inner { transition:none; }
}
@media (hover:none){
  .flip-hint { display:block; }
}
@media (hover:hover){
  .flip-hint { display:none; }
}

/* ===== Refonte octobre 2026 : deux parcours (restaurant / hôtel) ===== */

/* Accueil qui défile : plusieurs photos en fondu dans le hero */
.hero-slide { position:absolute; inset:0; opacity:0; transition:opacity 1.4s ease; }
.hero-slide.on { opacity:1; }
.hero-slide img { width:100%; height:100%; object-fit:cover; object-position:center 35%; }
.hero-slide.on img { animation:kenburns 9s ease-out forwards; }
.hero-dots { position:absolute; right:26px; bottom:30px; z-index:3; display:flex; align-items:center; gap:8px; }
.hero-dots button { width:8px; height:8px; border-radius:5px; border:none; padding:0; background:rgba(246,241,229,.45); cursor:pointer; transition:.3s; }
.hero-dots button.active { width:24px; background:var(--gold); }
.hero-slide-label { position:absolute; right:26px; bottom:50px; z-index:3; color:rgba(246,241,229,.75); font-size:11px; letter-spacing:2px; text-transform:uppercase; }

/* Lien pour passer d'un site à l'autre, dans la barre de navigation */
.nav-switch { display:inline-flex; align-items:center; gap:6px; color:var(--gold)!important; border:1px solid rgba(200,162,102,.5); padding:7px 14px; border-radius:30px; font-size:12.5px!important; text-decoration:none; white-space:nowrap; }
.nav-switch:hover { background:rgba(200,162,102,.12); }
a.brand { text-decoration:none; }
.nav-links a[href] { text-decoration:none; }

/* Bandeau « l'autre maison » en bas de chaque site */
.autre { position:relative; display:block; min-height:340px; overflow:hidden; text-decoration:none; color:var(--cream); }
.autre img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .8s ease; }
.autre:hover img { transform:scale(1.05); }
.autre::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,rgba(21,23,15,.88),rgba(21,23,15,.35)); }
.autre-in { position:relative; z-index:2; max-width:1120px; margin:0 auto; padding:90px 20px; }
.autre .eyebrow { color:var(--gold); }
.autre h2 { font-family:'Fraunces',serif; font-weight:400; font-size:clamp(30px,4.4vw,48px); line-height:1.08; max-width:560px; }
.autre h2 em { color:var(--gold); }
.autre p { color:rgba(246,241,229,.75); margin:14px 0 24px; max-width:480px; font-size:15px; }
.autre .btn { display:inline-block; }

/* Page d'accueil : le choix entre le restaurant et l'hôtel */
.choix-page { background:var(--ink); color:var(--cream); min-height:100vh; display:flex; flex-direction:column; }
.choix-top { text-align:center; padding:34px 20px 22px; }
.choix-top .brand-logo { height:58px; width:58px; margin:0 auto 10px; display:block; }
.choix-top h1 { font-family:'Fraunces',serif; font-weight:400; font-size:clamp(30px,5vw,46px); letter-spacing:.5px; }
.choix-top h1 em { font-style:italic; color:var(--gold); }
.choix-top p { color:rgba(246,241,229,.6); font-size:12px; letter-spacing:3px; text-transform:uppercase; margin-top:6px; }
.choix { flex:1; display:grid; grid-template-columns:1fr 1fr; gap:14px; padding:0 14px 14px; min-height:62vh; }
.choix-card { position:relative; border-radius:22px; overflow:hidden; text-decoration:none; color:var(--cream); display:flex; align-items:flex-end; min-height:300px; isolation:isolate; }
.choix-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform 1.2s cubic-bezier(.2,.8,.2,1); }
.choix-card::before { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(0deg,rgba(21,23,15,.92) 0%,rgba(21,23,15,.35) 55%,rgba(21,23,15,.1) 100%); transition:background .5s; }
.choix-card:hover img { transform:scale(1.07); }
.choix-in { padding:34px 34px 38px; }
.choix-in .eyebrow { color:var(--gold); margin-bottom:10px; }
.choix-in h2 { font-family:'Fraunces',serif; font-weight:400; font-size:clamp(34px,4.6vw,58px); line-height:1; }
.choix-in h2 em { font-style:italic; color:var(--gold); }
.choix-in p { color:rgba(246,241,229,.78); font-size:14.5px; margin:12px 0 20px; max-width:420px; }
.choix-go { display:inline-flex; align-items:center; gap:10px; background:var(--terra); color:var(--cream); font-weight:600; font-size:14px; padding:13px 24px; border-radius:40px; transition:background .2s, transform .25s; }
.choix-card:hover .choix-go { background:var(--terra-d); transform:translateX(4px); }
.choix-foot { display:flex; flex-wrap:wrap; justify-content:center; gap:10px 26px; padding:18px 20px 26px; color:rgba(246,241,229,.6); font-size:13px; }
.choix-foot a { color:var(--gold); text-decoration:none; }
.choix-foot i { color:var(--gold); margin-right:6px; }

/* Carte : photos des plats et des vins sous chaque carte */
.carte-sub { max-width:1020px; margin:70px auto 26px; }
.carte-sub:first-of-type { margin-top:0; }
.carte-sub .eyebrow { color:var(--gold); }
.carte-sub h3 { font-family:'Fraunces',serif; font-weight:400; font-size:clamp(28px,4vw,42px); color:var(--cream); line-height:1.1; }
.carte-sub h3 em { font-style:italic; color:var(--gold); }
.carte-sub p { color:rgba(246,241,229,.6); margin-top:10px; font-size:14.5px; max-width:560px; }
.photos-strip { max-width:1020px; margin:10px auto 0; display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px; }
.photos-strip figure { position:relative; border-radius:16px; overflow:hidden; aspect-ratio:4/3; background:linear-gradient(150deg,#3a4028,#23271a); }
.photos-strip img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.photos-strip figure:hover img { transform:scale(1.06); }
.photos-strip figcaption { position:absolute; left:0; right:0; bottom:0; padding:26px 16px 12px; background:linear-gradient(transparent,rgba(12,14,9,.85)); color:var(--cream); font-family:'Fraunces',serif; font-style:italic; font-size:16px; }
.photos-attente { max-width:1020px; margin:10px auto 0; border:1px dashed rgba(200,162,102,.45); border-radius:16px; padding:26px; text-align:center; color:rgba(246,241,229,.55); font-size:14px; }

/* Carte des vins */
.vins-grid { max-width:1020px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:0 60px; }
.vins-col h4 { font-family:'Fraunces',serif; font-weight:500; font-style:italic; font-size:26px; color:var(--gold); margin:0 0 6px; }
.vins-col h4:not(:first-child) { margin-top:38px; }
.vins-region { font-size:11px; letter-spacing:2.5px; text-transform:uppercase; color:rgba(246,241,229,.45); margin:22px 0 4px; padding-bottom:6px; border-bottom:1px solid rgba(200,162,102,.3); }
.vins-col .plat { padding:13px 4px; }
.vins-col .plat-name { font-size:15px; }
.vin-aop { font-size:12.5px; color:rgba(246,241,229,.8); margin-top:2px; }
.vin-label { display:inline-block; font-size:10px; font-weight:700; letter-spacing:1px; text-transform:uppercase; color:#9fd18b; border:1px solid rgba(159,209,139,.5); border-radius:10px; padding:1px 7px; margin-left:6px; vertical-align:2px; }
.vin-prix { text-align:right; white-space:nowrap; }
.vin-prix .plat-price { display:block; }
.vin-prix small { display:block; font-size:11px; color:rgba(246,241,229,.5); }
.vins-legende { max-width:1020px; margin:0 auto 18px; color:rgba(246,241,229,.5); font-size:12.5px; }

/* Bouton « Feuilleter la vraie carte » */
.feuilleter { max-width:1020px; margin:0 auto 46px; display:flex; align-items:center; gap:22px; border:1px solid rgba(200,162,102,.45); border-radius:18px; padding:20px 24px; background:rgba(200,162,102,.06); flex-wrap:wrap; }
.feuilleter img { width:74px; height:104px; object-fit:cover; border-radius:4px; box-shadow:6px 8px 20px -6px rgba(0,0,0,.7); transform:perspective(500px) rotateY(-16deg); }
.feuilleter-txt { flex:1; min-width:200px; }
.feuilleter-txt strong { font-family:'Fraunces',serif; font-weight:500; font-size:21px; color:var(--cream); display:block; }
.feuilleter-txt span { color:rgba(246,241,229,.6); font-size:13.5px; }

/* Livre 3D à feuilleter (plein écran) */
.livre { position:fixed; inset:0; z-index:700; display:none; flex-direction:column; background:radial-gradient(circle at 50% 40%,#2d311f 0%,#0e0f0a 75%); }
.livre.open { display:flex; }
.livre-top { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 18px; color:var(--cream); }
.livre-tabs { display:flex; gap:8px; flex-wrap:wrap; }
.livre-tabs button { font-family:'Inter',sans-serif; font-size:13px; font-weight:600; background:rgba(246,241,229,.08); color:rgba(246,241,229,.75); border:1.5px solid rgba(246,241,229,.2); border-radius:30px; padding:8px 16px; cursor:pointer; }
.livre-tabs button.active { background:var(--gold); border-color:var(--gold); color:var(--ink); }
.livre-close { width:40px; height:40px; border-radius:50%; border:1.5px solid rgba(246,241,229,.45); background:rgba(246,241,229,.08); color:var(--cream); font-size:19px; cursor:pointer; display:flex; align-items:center; justify-content:center; flex:none; }
.livre-stage { flex:1; display:flex; align-items:center; justify-content:center; padding:4px 16px; min-height:0; overflow:hidden; }
.livre-book { width:100%; height:100%; display:flex; align-items:center; justify-content:center; }

/* Le livre en 3D : table éclairée, ombre, tranches, pages qui tournent */
.livre { background:
  radial-gradient(ellipse 60% 55% at 50% 48%, rgba(255,214,150,.16), transparent 70%),
  repeating-linear-gradient(92deg, rgba(255,255,255,.012) 0 2px, rgba(0,0,0,.025) 2px 5px),
  linear-gradient(180deg,#2a1d12 0%,#1a120b 55%,#0d0906 100%); }
.lv-scene { position:relative; perspective:2200px; perspective-origin:50% 30%; touch-action:pan-y; user-select:none; -webkit-user-select:none; cursor:grab; }
.lv-scene:active { cursor:grabbing; }
.lv-book { position:relative; width:calc(var(--pw) * 2); height:var(--ph); transform-style:preserve-3d; transform:translateX(var(--decal,0)) rotateX(10deg); transition:transform 1s cubic-bezier(.45,.05,.2,1); }
.lv-une .lv-book { transform:translateX(var(--decal,0)) rotateX(6deg); }
.lv-ombre { position:absolute; left:50%; bottom:-34px; width:86%; height:60px; transform:translateX(-50%); background:radial-gradient(ellipse at center, rgba(0,0,0,.75), transparent 70%); filter:blur(6px); pointer-events:none; }
.lv-feuille { position:absolute; left:50%; top:0; width:var(--pw); height:100%; transform-origin:0 50%; transform-style:preserve-3d; will-change:transform; }
.lv-face { position:absolute; inset:0; backface-visibility:hidden; -webkit-backface-visibility:hidden; overflow:hidden; background:#0b0b0b; border-radius:0 4px 4px 0; box-shadow:0 0 0 1px rgba(255,255,255,.04) inset; }
.lv-face img { width:100%; height:100%; object-fit:cover; display:block; pointer-events:none; }
.lv-verso { transform:rotateY(180deg); border-radius:4px 0 0 4px; }
/* creux de la reliure + léger relief du papier */
.lv-face::before { content:''; position:absolute; inset:0; z-index:1; pointer-events:none; }
.lv-recto::before { background:linear-gradient(90deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.18) 4%, transparent 11%, transparent 94%, rgba(255,255,255,.05) 100%); }
.lv-verso::before { background:linear-gradient(270deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.18) 4%, transparent 11%, transparent 94%, rgba(255,255,255,.05) 100%); }
/* lumière qui glisse sur la page quand elle se soulève */
.lv-lumiere { position:absolute; inset:0; z-index:2; pointer-events:none; opacity:0; background:linear-gradient(90deg, rgba(0,0,0,.65) 0%, rgba(0,0,0,0) calc(var(--x,50%) - 18%), rgba(255,236,200,.35) var(--x,50%), rgba(0,0,0,0) calc(var(--x,50%) + 18%), rgba(0,0,0,.5) 100%); }
.lv-dos { display:flex; align-items:center; justify-content:center; background:radial-gradient(circle at 50% 45%, #1b1a14, #050505 75%); }
.lv-dos svg { width:34%; color:#c8a266; opacity:.85; }
/* tranches (épaisseur des pages) */
.lv-tranche { position:absolute; top:3px; bottom:3px; z-index:0; transition:width .4s, opacity .4s; background:repeating-linear-gradient(90deg,#d9d2c3 0 1px,#a79f8f 1px 2px); box-shadow:0 0 6px rgba(0,0,0,.6); }
.lv-tranche-d { left:calc(50% + var(--pw)); border-radius:0 3px 3px 0; }
.lv-tranche-g { right:calc(50% + var(--pw)); border-radius:3px 0 0 3px; }
/* ombre portée par la page qui tourne sur celle d'en dessous */
.lv-portee { position:absolute; top:0; height:100%; width:var(--pw); pointer-events:none; opacity:0; z-index:50; transform:translateZ(1px); }
.lv-portee-d { left:50%; background:linear-gradient(90deg, rgba(0,0,0,.85), rgba(0,0,0,.2) 45%, transparent 80%); }
.lv-portee-g { right:50%; background:linear-gradient(270deg, rgba(0,0,0,.85), rgba(0,0,0,.2) 45%, transparent 80%); }
/* arrivée du livre */
@keyframes lvArrivee { from { opacity:0; transform:translateY(40px) scale(.9) rotateX(28deg); } to { opacity:1; transform:none; } }
.livre.lv-arrivee .lv-scene { animation:lvArrivee .9s cubic-bezier(.2,.8,.2,1); }
@media (prefers-reduced-motion: reduce){ .lv-book { transition:none; } .livre.lv-arrivee .lv-scene { animation:none; } }
.livre-bottom { display:flex; align-items:center; justify-content:center; gap:16px; padding:12px 16px 20px; color:rgba(246,241,229,.7); font-size:13px; }
.livre-bottom button { width:44px; height:44px; border-radius:50%; border:none; background:rgba(246,241,229,.92); color:var(--ink); font-size:18px; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.livre-bottom button:disabled { opacity:.35; cursor:default; }
.livre-bottom a { color:var(--gold); text-decoration:none; font-weight:600; }
.livre-hint { text-align:center; color:rgba(246,241,229,.45); font-size:12px; padding:0 16px; }

@media(max-width:820px){
  .choix { grid-template-columns:1fr; }
  .choix-card { min-height:42vh; }
  .vins-grid { grid-template-columns:1fr; }
  .nav-switch span { display:none; }
  .nav { gap:12px; padding-left:16px; }
  .nav-switch { padding:7px 10px; }
  .hero-dots { display:none; }
  .hero-slide-label { display:none; }
}
@media (prefers-reduced-motion: reduce){
  .hero-slide.on img { animation:none; }
}

/* Page d'accueil plein écran : photos qui défilent, logo et deux boutons */
.accueil { position:relative; min-height:100vh; min-height:100svh; display:flex; flex-direction:column; background:var(--ink); color:var(--cream); overflow:hidden; }
.accueil-bg { position:absolute; inset:0; }
.accueil-bg::after { content:''; position:absolute; inset:0; background:radial-gradient(ellipse at center,rgba(21,23,15,.45) 0%,rgba(21,23,15,.8) 75%), linear-gradient(0deg,rgba(21,23,15,.85),transparent 40%); }
.accueil #fireflies { position:absolute; inset:0; width:100%; height:100%; z-index:1; pointer-events:none; }
.accueil-in { position:relative; z-index:2; flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:40px 20px; }
.accueil-logo { width:96px; height:96px; color:var(--gold); opacity:0; animation:fadeup 1.1s ease .2s forwards; }
.accueil h1 { font-family:'Fraunces',serif; font-weight:400; font-size:clamp(46px,9vw,104px); line-height:1; margin-top:14px; opacity:0; animation:fadeup 1.1s ease .45s forwards; }
.accueil h1 em { font-style:italic; color:var(--gold); }
.accueil-sub { color:rgba(246,241,229,.75); font-size:12px; letter-spacing:3.5px; text-transform:uppercase; margin-top:14px; opacity:0; animation:fadeup 1.1s ease .7s forwards; }
.accueil-choix { display:flex; gap:16px; margin-top:44px; flex-wrap:wrap; justify-content:center; opacity:0; animation:fadeup 1.1s ease .95s forwards; }
.accueil-btn { display:flex; align-items:center; gap:14px; min-width:250px; padding:16px 26px; border-radius:60px; border:1.5px solid rgba(200,162,102,.7); background:rgba(21,23,15,.55); backdrop-filter:blur(8px); color:var(--cream); text-decoration:none; text-align:left; transition:background .3s, transform .3s, border-color .3s; }
.accueil-btn:hover { background:var(--terra); border-color:var(--terra); transform:translateY(-3px); }
.accueil-btn i { font-size:26px; color:var(--gold); }
.accueil-btn:hover i { color:var(--cream); }
.accueil-btn b { display:block; font-family:'Fraunces',serif; font-weight:500; font-size:21px; }
.accueil-btn small { display:block; font-size:12.5px; color:rgba(246,241,229,.7); }
.accueil-foot { position:relative; z-index:2; display:flex; flex-wrap:wrap; justify-content:center; gap:8px 24px; padding:16px 20px 22px; font-size:13px; color:rgba(246,241,229,.6); }
.accueil-foot a { color:var(--gold); text-decoration:none; }
.accueil-foot i { color:var(--gold); margin-right:6px; }
@media(max-width:600px){ .accueil-btn { width:100%; min-width:0; } .accueil-choix { width:100%; max-width:340px; } }
