/* ============================================================
   INTERCAVES VILLEREST — Components
   ============================================================ */

/* ---------- TOP BAR (promo + nav) ---------- */
.topbar{position:fixed; top:0; left:0; right:0; z-index:200;}

.promobar{
  position:relative; overflow:hidden; height:var(--promo-h);
  background:var(--green-night); color:var(--cream);
  display:flex; align-items:center;
  border-bottom:1px solid rgba(225,220,210,.1);
}
.promobar .pm-track{display:flex; width:max-content; white-space:nowrap; animation:promoscroll 38s linear infinite;}
.promobar:hover .pm-track{animation-play-state:paused;}
.promobar .pm-item{display:inline-flex; align-items:center; gap:18px; padding-right:18px;
  font-family:var(--sans); font-size:12px; font-weight:400; letter-spacing:.22em; text-transform:uppercase;}
.promobar .pm-item b{color:var(--rose-glow); font-weight:600;}
.promobar .pm-item .sep{width:5px; height:5px; border-radius:50%; background:var(--rose); flex:none;}
@keyframes promoscroll{to{transform:translateX(-50%);}}

/* ---------- NAV (frosted glass) ---------- */
.nav{
  position:relative; left:0; right:0; z-index:100;
  display:flex; align-items:center; gap:24px;
  padding:18px var(--pad);
  transition:padding .5s var(--ease), background .5s var(--ease), box-shadow .5s var(--ease), border-color .5s var(--ease);
  border-bottom:1px solid transparent;
}
.nav.scrolled{
  padding:11px var(--pad);
  background:linear-gradient(180deg, rgba(245,241,233,.82), rgba(245,241,233,.62));
  backdrop-filter:blur(20px) saturate(1.3); -webkit-backdrop-filter:blur(20px) saturate(1.3);
  border-bottom:1px solid rgba(35,39,31,.1);
  box-shadow:0 10px 40px -28px rgba(34,39,31,.6);
}
.nav.on-hero{color:var(--cream);}
.nav.on-hero.scrolled{color:var(--ink);}

.brand{display:flex; align-items:center; gap:12px; z-index:2;}
.brand .mark{
  width:34px; height:34px; border-radius:8px; flex:none; position:relative; overflow:hidden;
  background:var(--green) url("img/logo-mark.png") center/82% no-repeat;
  border:1px solid rgba(225,220,210,.18);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08), 0 6px 16px -8px rgba(34,39,31,.7);
}
.brand .mark i{display:none;}
.brand .name{line-height:1;}
.brand .name b{font-family:var(--sans); font-weight:500; font-size:18px; letter-spacing:.14em; display:block;}
.brand .name small{font-family:var(--sans); font-weight:400; font-size:9.5px; letter-spacing:.42em; opacity:.62; display:block; margin-top:3px;}

.nav .links{display:flex; gap:30px; margin:0 auto;}
.nav .links a{font-family:var(--sans); font-weight:400; font-size:14px; letter-spacing:.04em; position:relative; padding:6px 0; opacity:.85; transition:opacity .3s; white-space:nowrap;}
.nav .links a::after{content:""; position:absolute; left:0; bottom:0; height:1px; width:100%; background:currentColor; transform:scaleX(0); transform-origin:left; transition:transform .45s var(--ease-out);}
.nav .links a:hover{opacity:1;}
.nav .links a:hover::after{transform:scaleX(1);}

/* nav dropdown (La cave) */
.nav .links .nav-item{position:relative; display:inline-flex; align-items:center;}
.nav .links .nav-item > a{display:inline-flex; align-items:center; gap:7px;}
.nav .links .nav-item .caret{width:6px; height:6px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg); margin-top:-3px; opacity:.65; transition:transform .35s var(--ease-out);}
.nav .links .nav-item:hover .caret{transform:rotate(45deg) translate(1.5px,1.5px); opacity:1;}
.nav .links .nav-item .drop{position:absolute; top:100%; left:-16px; min-width:212px; padding:10px; margin-top:14px;
  background:linear-gradient(160deg, rgba(34,39,31,.94), rgba(22,27,23,.94));
  backdrop-filter:blur(20px) saturate(1.3); -webkit-backdrop-filter:blur(20px) saturate(1.3);
  border:1px solid rgba(225,220,210,.16); border-radius:14px;
  box-shadow:0 26px 54px -24px rgba(0,0,0,.65);
  opacity:0; visibility:hidden; transform:translateY(8px); transition:opacity .35s var(--ease-out), transform .35s var(--ease-out), visibility .35s;}
.nav .links .nav-item .drop::before{content:""; position:absolute; top:-16px; left:0; right:0; height:16px;}
.nav .links .nav-item:hover .drop, .nav .links .nav-item:focus-within .drop{opacity:1; visibility:visible; transform:translateY(0);}
.nav .links .nav-item .drop a{display:flex; align-items:center; justify-content:space-between; padding:11px 14px; border-radius:9px; color:var(--cream) !important; font-size:14px; letter-spacing:.02em; opacity:.82; transition:.28s var(--ease-out);}
.nav .links .nav-item .drop a::after{content:"→"; position:static; width:auto; height:auto; background:none; transform:translateX(-6px); opacity:0; transition:.28s var(--ease-out); font-size:13px; color:var(--rose-glow);}
.nav .links .nav-item .drop a:hover{background:rgba(225,220,210,.09); opacity:1; padding-left:18px;}
.nav .links .nav-item .drop a:hover::after{opacity:1; transform:translateX(0);}
.nav.scrolled .links .nav-item .drop a{color:var(--cream) !important;}
.nav .nav-right{display:flex; align-items:center; gap:18px; z-index:2;}
.nav .nav-tel{display:flex; align-items:center; gap:9px; font-family:var(--sans); font-size:14px; letter-spacing:.04em; white-space:nowrap;}
.nav .nav-tel .tdot{position:relative; width:7px; height:7px; border-radius:50%; background:var(--rose); flex:none;}
.nav .nav-tel .tdot::after{content:""; position:absolute; inset:0; border-radius:50%; background:var(--rose); animation:tdot-pulse 1.7s var(--ease-out) infinite;}
@keyframes tdot-pulse{0%{transform:scale(1); opacity:.55;} 70%,100%{transform:scale(3.4); opacity:0;}}
@media (prefers-reduced-motion:reduce){.nav .nav-tel .tdot::after{animation:none;}}

.burger{display:none; width:40px; height:40px; border:none; background:none; color:inherit; cursor:pointer; flex-direction:column; gap:5px; justify-content:center; align-items:center; z-index:120;}
.burger i{width:22px; height:1.5px; background:var(--cream); transition:.4s var(--ease);}
.nav.scrolled .burger i{background:var(--ink);}
.burger.open i:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.burger.open i:nth-child(2){opacity:0;}
.burger.open i:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}

/* mobile drawer */
.drawer{
  position:fixed; inset:0; z-index:190; background:var(--green-darkest); color:var(--cream);
  display:flex; flex-direction:column; justify-content:space-between; padding:108px var(--pad) calc(var(--pad) + 8px);
  clip-path:circle(0 at calc(100% - 40px) 40px); transition:clip-path .7s var(--ease-out); pointer-events:none;
}
.drawer::before{content:""; position:absolute; inset:0; pointer-events:none; opacity:.5;
  background:radial-gradient(120% 80% at 100% 0%, rgba(214,82,92,.16), transparent 55%), radial-gradient(110% 70% at 0% 100%, rgba(80,89,73,.35), transparent 60%);}
.drawer.open{clip-path:circle(150% at calc(100% - 40px) 40px); pointer-events:auto;}
.drawer-nav{position:relative; z-index:2; display:flex; flex-direction:column;}
.drawer a{font-family:var(--serif); font-size:clamp(32px,8.4vw,52px); font-weight:300; line-height:1.08; padding:13px 0; opacity:0; transition:opacity .5s var(--ease-out); position:relative;}
.drawer-nav > a{border-bottom:1px solid rgba(225,220,210,.1);}
.drawer.open a{opacity:1;}
.drawer.open a:nth-child(1){transition-delay:.15s;} .drawer.open a:nth-child(2){transition-delay:.22s;}
.drawer.open a:nth-child(3){transition-delay:.29s;} .drawer.open a:nth-child(4){transition-delay:.36s;}
.drawer.open a:nth-child(5){transition-delay:.43s;} .drawer.open a:nth-child(6){transition-delay:.5s;}
.drawer .d-foot{position:relative; z-index:2; margin-top:24px; padding-top:22px; border-top:1px solid rgba(225,220,210,.14); display:flex; flex-direction:column; gap:14px; opacity:0; transition:.6s var(--ease-out) .55s;}
.drawer.open .d-foot{opacity:1;}
.drawer .d-tel{display:inline-flex; align-items:center; gap:11px; font-family:var(--serif); font-style:italic; font-size:26px; color:var(--cream); padding:0;}
.drawer .d-tel .d-dot{width:8px; height:8px; border-radius:50%; background:var(--rose); box-shadow:0 0 10px 1px rgba(214,82,92,.8); flex:none;}
.drawer .d-info{display:flex; flex-direction:column; gap:3px; font-family:var(--sans); font-size:13.5px; letter-spacing:.02em; color:var(--taupe-light);}
.drawer .d-social{display:flex; gap:11px; margin-top:6px;}
.drawer .d-social a{width:40px; height:40px; padding:0; border-radius:50%; border:1px solid rgba(225,220,210,.24); display:grid; place-items:center; opacity:1; transform:none;}
.drawer .d-social a svg{width:17px; height:17px; fill:var(--pearl);}
.drawer .d-social a:active{background:var(--rose); border-color:var(--rose);}
.drawer .drawer-sub{display:flex; flex-wrap:wrap; gap:8px 18px; margin:14px 0 6px; padding-left:2px;}
.drawer .drawer-sub a{font-family:var(--sans); font-size:15px; font-weight:300; letter-spacing:.04em; padding:2px 0; opacity:.72;}
.drawer.open .drawer-sub a{opacity:.72; transform:none; transition-delay:.2s;}
.drawer .drawer-sub a::before{content:"·"; margin-right:8px; color:var(--rose);}

/* ---------- HERO ---------- */
.hero{position:relative; min-height:100svh; display:flex; align-items:flex-end; overflow:hidden; color:var(--cream);}
.hero.hero-solid .hero-bg img{display:none;}
.hero.hero-solid{background:#191d17;}
.hero.hero-solid .hero-bg{
  background:
    radial-gradient(95% 70% at 80% 8%, rgba(214,82,92,.16), transparent 52%),
    radial-gradient(120% 90% at 12% 100%, rgba(80,89,73,.42), transparent 60%),
    linear-gradient(160deg, #323a2c 0%, #262d20 42%, #161a12 100%);
}
.hero.hero-solid .hero-bg::after{
  content:""; position:absolute; inset:0; 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='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.hero.hero-solid .hero-scrim{display:none;}
.hero.hero-solid::before{display:none;}
.hero::before{content:""; position:absolute; top:0; left:0; right:0; height:160px; z-index:1; pointer-events:none; background:linear-gradient(180deg, rgba(13,16,10,.6), transparent);}
.hero .hero-bg{position:absolute; inset:0; z-index:0;}
.hero .hero-bg .ph{position:absolute; inset:-8% 0; border-radius:0; transform:scale(1.08);}
.hero .hero-bg img{position:absolute; inset:-8% 0; width:100%; height:116%; object-fit:cover; object-position:center 62%; transform:scale(1.08); will-change:transform; filter:brightness(.78);}
.hero .hero-bg .hero-scrim{position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    radial-gradient(110% 75% at 78% 6%, rgba(214,82,92,.13), transparent 50%),
    linear-gradient(95deg, rgba(13,16,10,.86) 0%, rgba(13,16,10,.62) 40%, rgba(13,16,10,.28) 72%, rgba(13,16,10,.4) 100%),
    linear-gradient(180deg, rgba(13,16,10,.5), rgba(13,16,10,.32) 30%, rgba(13,16,10,.55) 68%, rgba(13,16,10,.92) 100%);}
.hero .hero-bg .ph::before{
  background:
    radial-gradient(120% 80% at 70% 10%, rgba(214,82,92,.16), transparent 55%),
    linear-gradient(180deg, rgba(20,24,18,.35), rgba(20,24,18,.2) 35%, rgba(20,24,18,.85)),
    linear-gradient(150deg, var(--green-soft), var(--green-deep) 50%, var(--green-night));
}
.hero .wrap{position:relative; z-index:2; width:100%; padding-bottom:clamp(72px,12vh,128px); padding-top:140px;}
.hero .display{max-width:none; margin:28px 0 0; color:var(--cream);}
.hero .display .serif-it{color:var(--rose-glow);}
.hero .hero-sub{max-width:52ch; margin:32px 0 0; color:#e7e2d6; font-size:clamp(17px,1.45vw,21px);}
.hero .hero-cta{display:flex; flex-wrap:wrap; gap:14px; margin-top:42px;}
.hero .scroll-cue{position:absolute; right:var(--pad); bottom:clamp(56px,9vh,110px); z-index:2; display:flex; align-items:center; gap:14px; writing-mode:vertical-rl; font-family:var(--sans); font-weight:500; font-size:11.5px; letter-spacing:.34em; text-transform:uppercase; color:var(--cream); opacity:.95; text-shadow:0 1px 12px rgba(13,16,9,.6);}
.hero .scroll-cue .bar{width:2px; height:64px; border-radius:2px; background:linear-gradient(var(--rose-glow), rgba(225,220,210,.18)); position:relative; overflow:hidden; box-shadow:0 0 10px rgba(214,82,92,.35);}
.hero .scroll-cue .bar::after{content:""; position:absolute; top:-55%; left:0; width:100%; height:55%; border-radius:2px; background:linear-gradient(var(--cream), #fff); box-shadow:0 0 8px 1px rgba(255,255,255,.55); animation:cue 2.1s var(--ease-out) infinite;}
@keyframes cue{0%{top:-55%;} 60%,100%{top:100%;}}

/* hero meta strip */
.hero-meta{display:flex; flex-wrap:wrap; gap:30px 56px; margin-top:42px; padding-top:26px; border-top:1px solid rgba(225,220,210,.22);}
.hero-meta .m{}
.hero-meta .m b{font-family:var(--serif); font-size:30px; font-weight:400; display:block; line-height:1.05; white-space:nowrap;}
.hero-meta .m span{font-family:var(--sans); font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:#cfc9bb; display:block; margin-top:8px; white-space:nowrap;}

/* ---------- manifesto ---------- */
.manifesto{text-align:center; max-width:1000px; margin:0 auto;}
.manifesto .h2{font-weight:300; max-width:16ch; margin:0 auto;}
.manifesto .h2 .serif-it{color:var(--rose);}

/* ---------- intro band (Le goût du partage) ---------- */
.intro-band{display:grid; grid-template-columns:1.12fr .88fr; gap:clamp(30px,5vw,72px); align-items:end;}
.intro-band .ib-left .h2{font-weight:300; line-height:1.02;}
.intro-band .ib-left .serif-it{color:var(--rose-glow);}
.intro-band .ib-right{max-width:46ch; color:#cdc7b8; margin:0; padding-bottom:6px;}
@media (max-width:860px){
  .intro-band{grid-template-columns:1fr; gap:22px; align-items:start;}
}

/* ---------- categories ---------- */
.cats{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(12px,1.6vw,22px);}
.cats.four{grid-template-columns:repeat(4,1fr);}
.cats.four .cat .ratio{aspect-ratio:4/5;}
.cat{position:relative; display:block; border-radius:var(--r); overflow:hidden; color:var(--cream); background:var(--green-deep);}
.cat .ratio{aspect-ratio:3/4;}
.cat img{filter:brightness(.94);}
.cat::after{content:""; position:absolute; inset:0; z-index:2; pointer-events:none; transition:background .55s var(--ease-out);
  background:linear-gradient(180deg, rgba(20,24,15,.18) 0%, transparent 30%, rgba(20,24,15,.3) 54%, rgba(20,24,15,.72) 80%, rgba(20,24,15,.94) 100%);}
.cat:hover::after{background:linear-gradient(180deg, rgba(20,24,15,.4) 0%, rgba(20,24,15,.34) 32%, rgba(20,24,15,.55) 60%, rgba(20,24,15,.82) 82%, rgba(20,24,15,.96) 100%);}
.cat .ph::before{filter:brightness(.86);}
.cat .cat-body{position:absolute; inset:0; z-index:3; display:flex; flex-direction:column; justify-content:flex-end; padding:clamp(24px,2.2vw,34px);}
.cat .num{display:none;}
.cat h3{position:relative; font-family:var(--serif); font-weight:400; font-size:clamp(30px,3.1vw,42px); line-height:1; margin:0; padding-bottom:15px; color:var(--cream); text-shadow:0 2px 22px rgba(13,16,9,.7), 0 1px 3px rgba(13,16,9,.5);}
.cat h3::after{content:""; position:absolute; left:0; bottom:0; height:2px; width:32px; border-radius:2px; background:var(--rose); box-shadow:0 0 10px 1px rgba(214,82,92,.7); transition:width .55s var(--ease-out);}
.cat:hover h3::after{width:74px;}
.cat .c-sub{display:none;}
.cat .c-go{margin-top:18px; display:inline-flex; align-items:center; gap:11px; font-family:var(--sans); font-size:12.5px; letter-spacing:.16em; text-transform:uppercase; color:#fff; transform:translateY(8px); opacity:0; transition:.5s var(--ease-out);}
.cat .c-go .arr{display:inline-block; width:26px; height:1px; background:currentColor; position:relative;}
.cat .c-go .arr::after{content:""; position:absolute; right:0; top:-3px; width:7px; height:7px; border-top:1px solid currentColor; border-right:1px solid currentColor; transform:rotate(45deg);}
.cat:hover .ph::before,.cat:hover img{transform:scale(1.06);}
.cat:hover .c-go{transform:none; opacity:1;}
.cat .ph::before,.cat img{transition:transform 1.4s var(--ease-out);}

/* ---------- section head ---------- */
.sec-head{display:flex; align-items:flex-end; justify-content:space-between; gap:30px; flex-wrap:wrap; margin-bottom:clamp(38px,5vw,64px);}
.sec-head .st{max-width:540px;}
.sec-head .st .h2{margin-top:20px;}

/* ---------- products / coups de coeur ---------- */
.prods{display:grid; grid-template-columns:repeat(5,1fr); gap:clamp(14px,1.8vw,24px);}
.prod .pic img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 1.3s var(--ease-out);}
.prod:hover .pic img{transform:scale(1.05);}
.prod{position:relative;}
.prod .pic{position:relative; border-radius:var(--r); overflow:hidden; aspect-ratio:3/4; background:var(--cream-3);}
.prod .pic .ph{position:absolute; inset:0;}
.prod .pic .ph::before{background:
  radial-gradient(80% 60% at 50% 18%, rgba(255,255,255,.14), transparent 60%),
  linear-gradient(160deg, var(--green-soft), var(--green-deep) 60%, var(--green-night));}
.prod .tagb{position:absolute; top:14px; left:14px; z-index:3; font-family:var(--sans); font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; padding:8px 13px; border-radius:100px; color:var(--cream); white-space:nowrap; display:inline-flex; align-items:center; gap:7px;
  background:linear-gradient(135deg, rgba(20,24,15,.62), rgba(20,24,15,.44));
  backdrop-filter:blur(12px) saturate(1.3); -webkit-backdrop-filter:blur(12px) saturate(1.3);
  border:1px solid rgba(225,220,210,.24);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16), 0 10px 22px -14px rgba(13,16,9,.6);}
.prod .tagb::before{content:""; width:6px; height:6px; border-radius:50%; background:var(--rose); box-shadow:0 0 8px 1px rgba(214,82,92,.85); flex:none;}
.prod .add{
  position:absolute; bottom:14px; right:14px; z-index:3; width:44px; height:44px; border-radius:50%;
  display:grid; place-items:center; color:#fff; cursor:pointer;
  transform:translateY(10px) scale(.9); opacity:0; transition:.5s var(--ease-out);
}
.prod .add::before,.prod .add::after{content:""; position:absolute; background:currentColor;}
.prod .add::before{width:15px; height:1.5px;} .prod .add::after{width:1.5px; height:15px;}
.prod:hover .add{transform:none; opacity:1;}
.prod:hover .ph::before{transform:scale(1.05);}
.prod .ph::before{transition:transform 1.3s var(--ease-out);}
.prod .meta{padding:18px 2px 0;}
.prod .meta .dom{font-family:var(--sans); font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--taupe-deep);}
.prod .meta h4{font-family:var(--serif); font-weight:500; font-size:24px; margin:5px 0 0; line-height:1.1; min-height:2.2em;}
.prod .meta .row{display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:12px;}
.prod .meta .price{font-family:var(--serif); font-weight:500; font-size:17px; color:var(--green-deep); line-height:1; padding:6px 14px 8px; border-radius:100px; white-space:nowrap; flex:none; display:inline-flex; align-items:center; justify-content:center;
  background:linear-gradient(160deg, rgba(80,89,73,.1), rgba(80,89,73,.04));
  border:1px solid rgba(80,89,73,.2); box-shadow:inset 0 1px 0 rgba(255,255,255,.5);
  transition:background .4s var(--ease-out), border-color .4s var(--ease-out), color .4s var(--ease-out);}
.prod:hover .meta .price{background:var(--green); border-color:var(--green); color:var(--cream);}
.prod .meta .note{font-family:var(--sans); font-size:12.5px; color:var(--ink-soft);}

/* ---------- cavistes (Pascal & Noé) ---------- */
.duo{display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(30px,5vw,80px); align-items:center;}
.duo .duo-eyebrow{display:none;}
.duo .imgs{position:relative; display:flex; flex-direction:column; gap:clamp(12px,1.4vw,18px);}
.duo .imgs .ph-main{border-radius:var(--r); overflow:hidden; aspect-ratio:16/10; box-shadow:0 40px 80px -44px rgba(34,39,31,.55);}
.duo .imgs .ph-main img{transition:transform 1.5s var(--ease-out);}
.duo .imgs .ph-main:hover img{transform:scale(1.04);}
.duo .imgs .ph-sub{display:grid; grid-template-columns:1fr 1fr; gap:clamp(12px,1.4vw,18px);}
.duo .imgs .ph-sub .ratio{border-radius:var(--r); overflow:hidden; aspect-ratio:1/1; box-shadow:0 30px 60px -38px rgba(34,39,31,.5);}
.duo .imgs .ph-sub img{transition:transform 1.5s var(--ease-out);}
.duo .imgs .ph-sub .ratio:hover img{transform:scale(1.05);}
.duo .imgs .ph-sub .ratio:first-child img{object-position:center 26%;}
.duo .imgs .ph-sub .ratio:last-child img{object-position:center 78%;}
/* caviste distinction badge (in text column) */
.duo .caviste-badge{display:flex; align-items:center; gap:15px; margin-top:26px; padding:16px 20px; border-radius:14px;
  background:linear-gradient(150deg, rgba(80,89,73,.12), rgba(80,89,73,.05));
  border:1px solid rgba(80,89,73,.22);}
.duo .caviste-badge .cb-icon{width:42px; height:42px; flex:none; border-radius:50%; display:grid; place-items:center;
  background:var(--green); color:var(--rose-glow); font-size:19px; box-shadow:0 10px 22px -12px rgba(34,39,31,.6);}
.duo .caviste-badge .cb-top{display:block; font-family:var(--sans); font-weight:600; font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--rose-deep);}
.duo .caviste-badge .cb-main{display:block; margin-top:5px; font-family:var(--sans); font-weight:300; font-size:14.5px; line-height:1.4; color:var(--ink);}
.duo .caviste-badge .cb-main b{font-weight:500;}
.bg-green .duo .lead strong{color:var(--cream); font-weight:500;}
/* cavistes on dark green */
.bg-green .duo .quote{color:var(--cream);}
.bg-green .duo .sign{color:var(--rose-glow);}
.bg-green .duo .who{color:var(--taupe-light);}
.bg-green .duo .imgs .b{border-color:var(--green-darkest);}
.bg-green .duo .caviste-badge{background:linear-gradient(150deg, rgba(225,220,210,.12), rgba(225,220,210,.04)); border-color:rgba(225,220,210,.2);}
.bg-green .duo .caviste-badge .cb-icon{background:rgba(225,220,210,.1); border:1px solid rgba(228,134,141,.4);}
.bg-green .duo .caviste-badge .cb-top{color:var(--rose-glow);}
.bg-green .duo .caviste-badge .cb-main{color:#dcd6c8;}
.duo .imgs .b{position:absolute; width:46%; aspect-ratio:1/1; right:-6%; bottom:-12%; border-radius:var(--r); overflow:hidden; border:8px solid var(--cream); box-shadow:0 30px 60px -30px rgba(34,39,31,.5);}
.duo .imgs .b img{object-position:center 26%; transition:transform 1.5s var(--ease-out);}
.duo .imgs:hover .b img{transform:scale(1.05);}
.duo .duo-quote-mobile{display:none;}
.duo .quote{font-family:var(--serif); font-size:clamp(26px,3vw,40px); font-weight:300; line-height:1.18; margin:20px 0 22px;}
.duo .quote .serif-it{color:var(--rose);}
.duo .sign{font-family:var(--serif); font-style:italic; font-size:22px; color:var(--green); margin-top:18px;}
.duo .who{font-family:var(--sans); font-size:13px; letter-spacing:.14em; text-transform:uppercase; color:var(--taupe-deep); margin-top:4px;}

/* ---------- services ---------- */
.serv{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(14px,1.6vw,24px);}
.serv .s{
  position:relative; border-radius:var(--r); padding:clamp(26px,2.4vw,38px); overflow:hidden;
  background:linear-gradient(165deg, rgba(225,220,210,.5), rgba(225,220,210,.12));
  border:1px solid rgba(35,39,31,.1); min-height:340px;
  display:flex; flex-direction:column; transition:transform .6s var(--ease-out), box-shadow .6s var(--ease-out), border-color .6s;
}
.serv .s:hover{transform:translateY(-6px); box-shadow:0 30px 60px -34px rgba(34,39,31,.5); border-color:rgba(214,82,92,.4);}
.serv .s .si{width:52px; height:52px; border-radius:13px; background:var(--green); display:grid; place-items:center; color:var(--pearl); margin-bottom:auto;}
.serv .s .si svg{width:25px; height:25px; fill:none; stroke:var(--pearl); stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round;}
.serv .s h3{font-size:28px; margin-top:26px;}
.serv .s p{font-family:var(--sans); font-size:15px; color:var(--ink-soft); margin:12px 0 0; line-height:1.6;}
.serv .s .more{margin-top:20px;}

/* ---------- events band ---------- */
.band{position:relative; overflow:hidden; border-radius:var(--r);}
.band .ph{position:absolute; inset:0; border-radius:0;}
.band .ph::before{background:linear-gradient(110deg, rgba(22,27,23,.92), rgba(22,27,23,.55) 60%, rgba(214,82,92,.35)), linear-gradient(150deg, var(--green-soft), var(--green-night));}
.band .inner{position:relative; z-index:2; padding:clamp(44px,6vw,84px); color:var(--cream); max-width:60ch;}

/* ---------- journal (accords mets-vins) ---------- */
.journal{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:clamp(16px,2vw,30px); align-items:start;}
.post{display:block; group:.post;}
.post .pic{border-radius:var(--r); overflow:hidden; aspect-ratio:4/3; margin-bottom:18px;}
.post.lead .pic{aspect-ratio:4/5;}
.post .ph::before{transition:transform 1.3s var(--ease-out);}
.post:hover .ph::before{transform:scale(1.05);}
.post .cat-tag{font-family:var(--sans); font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--rose);}
.post h3{font-size:clamp(22px,2vw,30px); margin:10px 0; font-weight:500;}
.post.lead h3{font-size:clamp(28px,3vw,42px);}
.post p{font-family:var(--sans); font-size:15px; color:var(--ink-soft); line-height:1.6;}
.post .rt{font-family:var(--sans); font-size:12.5px; color:var(--taupe-deep); margin-top:10px;}

/* ---------- newsletter / click&collect ---------- */
.cc{display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(30px,5vw,70px); align-items:center;}
.field{display:flex; gap:10px; margin-top:24px; max-width:460px; flex-wrap:wrap;}
.field input{
  flex:1; min-width:200px; font-family:var(--sans); font-size:15px; color:var(--ink);
  padding:16px 20px; border-radius:100px; border:1px solid rgba(35,39,31,.2); background:rgba(255,255,255,.5);
  outline:none; transition:border-color .3s, background .3s;
}
.field input:focus{border-color:var(--green); background:#fff;}
.field input::placeholder{color:var(--taupe-deep);}
.consent{font-family:var(--sans); font-size:12.5px; color:var(--ink-soft); margin-top:14px;}

/* ---------- chiffres (proof strip) ---------- */
.chiffres{display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(20px,3vw,48px);}
.chiffres .cf{position:relative; padding-left:26px;}
.chiffres .cf::before{content:""; position:absolute; left:0; top:6px; bottom:6px; width:1px; background:rgba(225,220,210,.26);}
.chiffres .cf b{font-family:var(--serif); font-weight:400; font-size:clamp(40px,4.4vw,64px); line-height:.95; display:block; color:var(--cream); white-space:nowrap;}
.chiffres .cf b .u{display:inline; font-size:.6em; vertical-align:super; color:var(--rose); font-weight:500; margin-left:2px; text-shadow:0 0 1px rgba(214,82,92,.3);}
.chiffres .cf > span{display:block; margin-top:12px; font-family:var(--sans); font-size:13px; letter-spacing:.08em; color:#cdc7b8; max-width:22ch;}

/* ---------- Les Comptoirs de la Bio (the duo) ---------- */
.duo-spaces{display:grid; grid-template-columns:1fr 1fr; gap:clamp(16px,2vw,28px);}
.space-card{position:relative; border-radius:var(--r); overflow:hidden; min-height:clamp(420px,46vw,560px); display:flex; flex-direction:column; justify-content:flex-end; color:var(--cream); padding:clamp(28px,3vw,44px); box-shadow:0 28px 60px -40px rgba(13,16,9,.6); transition:transform .55s var(--ease-out), box-shadow .55s var(--ease-out);}
.space-card:hover{transform:translateY(-5px); box-shadow:0 44px 80px -42px rgba(13,16,9,.7);}
.space-card .ph{position:absolute; inset:0; border-radius:0;}
.space-card .ph img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; filter:brightness(.7); transition:transform 1.5s var(--ease-out);}
.space-card:hover .ph img{transform:scale(1.06);}
.space-card .ph::before{z-index:1;}
.space-card .ph::after{display:none;}
.space-card.bio .ph img{object-position:center 64%;}
.space-card.cave .ph img{object-position:center 50%;}
.space-card.bio .ph::before{background:linear-gradient(180deg, rgba(18,22,15,.32) 0%, rgba(18,22,15,.2) 28%, rgba(18,22,15,.6) 56%, rgba(18,22,15,.9) 80%, rgba(18,22,15,.99) 100%);}
.space-card.cave .ph::before{background:linear-gradient(180deg, rgba(18,22,15,.32) 0%, rgba(18,22,15,.2) 28%, rgba(18,22,15,.6) 56%, rgba(18,22,15,.9) 80%, rgba(18,22,15,.99) 100%);}
.space-card .sc-k{position:relative; z-index:2; display:inline-flex; align-items:center; gap:8px; font-family:var(--sans); font-weight:600; font-size:12px; letter-spacing:.22em; text-transform:uppercase; color:#fff; text-shadow:0 1px 16px rgba(12,15,9,.9);}
.space-card .sc-k::before{content:""; width:7px; height:7px; border-radius:50%; background:var(--rose); box-shadow:0 0 10px 1px rgba(214,82,92,.9); flex:none;}
.space-card h3{position:relative; z-index:2; font-size:clamp(31px,3.3vw,48px); margin:14px 0 0; padding-bottom:15px; line-height:1.02; text-shadow:0 2px 26px rgba(12,15,9,.8), 0 1px 3px rgba(12,15,9,.5);}
.space-card h3::after{content:""; position:absolute; left:0; bottom:0; height:2px; width:36px; border-radius:2px; background:var(--rose); box-shadow:0 0 10px 1px rgba(214,82,92,.7); transition:width .55s var(--ease-out);}
.space-card:hover h3::after{width:72px;}
.space-card p{position:relative; z-index:2; font-family:var(--sans); font-size:15px; line-height:1.6; color:#f3efe6; max-width:42ch; margin:14px 0 0; text-shadow:0 1px 3px rgba(12,15,9,.9), 0 2px 22px rgba(12,15,9,.85);}
.space-card .sc-meta{position:relative; z-index:2; margin-top:20px; display:flex; gap:10px; flex-wrap:wrap;}
.space-card .chip{font-family:var(--sans); font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; padding:7px 13px; border-radius:100px; color:var(--cream);
  background:linear-gradient(135deg, rgba(255,255,255,.17), rgba(255,255,255,.05));
  backdrop-filter:blur(9px) saturate(1.3); -webkit-backdrop-filter:blur(9px) saturate(1.3);
  border:1px solid rgba(255,255,255,.3); box-shadow:inset 0 1px 0 rgba(255,255,255,.3);}
.duo-lead{max-width:60ch; margin:0 auto clamp(38px,5vw,60px); text-align:center;}

/* ---------- avis Google (marquee) ---------- */
.avis-head{text-align:center; max-width:680px; margin:0 auto clamp(40px,5vw,60px);}
.avis-head h2{margin-top:20px;}
.g-rating{display:inline-flex; align-items:center; gap:16px; margin-top:26px; padding:14px 24px 14px 16px; border-radius:100px;
  background:linear-gradient(165deg,#fff,#fbfaf6); border:1px solid rgba(35,39,31,.1); box-shadow:0 20px 40px -26px rgba(34,39,31,.55);}
.g-rating .gmark{width:38px; height:38px; border-radius:50%; flex:none; display:grid; place-items:center;
  font-family:var(--sans); font-weight:600; font-size:20px; color:#fff;
  background:conic-gradient(from -40deg, #4285F4 0 25%, #34A853 0 50%, #FBBC05 0 75%, #EA4335 0 100%);}
.g-rating .gmark span{width:26px; height:26px; border-radius:50%; background:#fff; color:#4285F4; display:grid; place-items:center; font-size:15px; font-weight:600;}
.g-rating .gr-txt{display:flex; flex-direction:column; align-items:flex-start; gap:3px; text-align:left;}
.g-rating .gr-txt .top{display:flex; align-items:center; gap:9px;}
.g-rating .gr-txt b{font-family:var(--serif); font-size:24px; font-weight:500; line-height:1; color:var(--ink);}
.g-rating .gr-txt .sub{font-family:var(--sans); font-size:12.5px; color:var(--ink-soft); letter-spacing:.02em;}
.stars{color:#e3a72f; letter-spacing:2px; font-size:15px; line-height:1; text-shadow:0 1px 2px rgba(227,167,47,.25);}

.avis-rail{position:relative;
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 9%, #000 91%, transparent);
  mask-image:linear-gradient(90deg, transparent, #000 9%, #000 91%, transparent);}
.avis-rail + .avis-rail{margin-top:22px;}
.avis-row{display:flex; gap:22px; width:max-content; padding:6px 11px;}
.avis-row.r1{animation:avisScroll 60s linear infinite;}
.avis-row.r2{animation:avisScroll 60s linear infinite reverse;}
@keyframes avisScroll{from{transform:translate3d(0,0,0);}to{transform:translate3d(-50%,0,0);}}
@media (hover:hover){ .avis-rail:hover .avis-row{animation-play-state:paused;} }
.rev{position:relative; flex:0 0 clamp(290px,28vw,360px); height:236px; background:linear-gradient(165deg, #fff, var(--cream));
  border:1px solid rgba(35,39,31,.09); border-radius:16px; padding:26px 26px 22px;
  box-shadow:0 20px 44px -32px rgba(34,39,31,.5); display:flex; flex-direction:column; margin:0; overflow:hidden;
  transition:transform .5s var(--ease-out), box-shadow .5s var(--ease-out), border-color .5s var(--ease-out);}
.rev::after{content:""; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg, var(--rose), var(--rose-glow)); transform:scaleX(0); transform-origin:left; transition:transform .5s var(--ease-out);}
.rev:hover{transform:translateY(-6px); box-shadow:0 34px 60px -34px rgba(34,39,31,.6); border-color:rgba(214,82,92,.3);}
.rev:hover::after{transform:scaleX(1);}
.rev .stars{margin-bottom:14px; position:relative; z-index:1;}
.rev p{font-family:var(--sans); font-weight:300; font-size:14.5px; line-height:1.55; color:var(--ink); margin:0 0 14px; position:relative; z-index:1;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;}
.rev figcaption{display:flex; align-items:center; gap:13px; margin:auto 0 0; padding-top:16px; border-top:1px solid rgba(35,39,31,.08); position:relative; z-index:1;}
.rev .av{width:42px; height:42px; border-radius:50%; flex:none; display:grid; place-items:center;
  font-family:var(--serif); font-size:19px; color:var(--cream); background:var(--green);}
.avis-row .rev:nth-child(3n+2) .av{background:var(--rose-deep);}
.avis-row .rev:nth-child(3n) .av{background:var(--taupe-deep);}
.rev .nm{display:flex; flex-direction:column; line-height:1.3; flex:1;}
.rev .nm b{font-family:var(--sans); font-weight:500; font-size:14.5px; color:var(--ink);}
.rev .nm small{font-family:var(--sans); font-size:12px; color:var(--taupe-deep);}
.rev .gs{width:22px; height:22px; border-radius:50%; flex:none; display:grid; place-items:center; font-family:var(--sans); font-weight:600; font-size:13px;
  background:conic-gradient(from -40deg, #4285F4 0 25%, #34A853 0 50%, #FBBC05 0 75%, #EA4335 0 100%); color:#fff; position:relative;}
.rev .gs::after{content:"G"; position:absolute; inset:3px; border-radius:50%; background:#fff; color:#4285F4; display:grid; place-items:center; font-size:11px;}

/* ---------- dégustations (slim strip) ---------- */
.deg-strip{position:relative; overflow:hidden; border-radius:var(--r);
  display:flex; align-items:center; justify-content:space-between; gap:30px; flex-wrap:wrap;
  padding:clamp(28px,3.4vw,46px) clamp(28px,3.6vw,56px); color:var(--cream);}
.deg-strip .ph{position:absolute; inset:0; border-radius:0;}
.deg-strip .ph::before{background:linear-gradient(110deg, rgba(22,27,23,.92), rgba(22,27,23,.6) 62%, rgba(214,82,92,.32)), linear-gradient(150deg, var(--green-soft), var(--green-night));}
.deg-strip .deg-txt{position:relative; z-index:2; max-width:62ch;}
.deg-strip .deg-txt h3{font-size:clamp(26px,2.6vw,36px); color:var(--cream); margin:12px 0 10px;}
.deg-strip .deg-txt p{font-family:var(--sans); font-size:15px; line-height:1.6; color:#dcd6c8; margin:0; max-width:58ch;}
.deg-strip .deg-cta{position:relative; z-index:2; flex:none;}

/* ---------- contact form (demande particulière) ---------- */
.demande{display:grid; grid-template-columns:.92fr 1.08fr; gap:clamp(34px,5vw,76px); align-items:start;}
.demande .intro .lead{margin-top:18px;}
.demande .intro .reassure{margin-top:30px; display:flex; flex-direction:column; gap:16px;}
.demande .intro .reassure .ri{display:flex; gap:14px; align-items:flex-start;}
.demande .intro .reassure .ri .rd{width:38px; height:38px; border-radius:50%; flex:none; background:rgba(80,89,73,.1); color:var(--green); display:grid; place-items:center;}
.demande .intro .reassure .ri .rd svg{width:18px; height:18px; fill:none; stroke:var(--green); stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round;}
.demande .intro .reassure .ri b{font-family:var(--sans); font-weight:500; font-size:15px; color:var(--ink); display:block;}
.demande .intro .reassure .ri span{font-family:var(--sans); font-size:14px; color:var(--ink-soft);}

.cform{position:relative; border-radius:var(--r); padding:clamp(26px,2.8vw,40px);
  background:linear-gradient(165deg, rgba(255,255,255,.7), rgba(245,241,233,.4));
  border:1px solid rgba(35,39,31,.1);
  box-shadow:0 30px 70px -42px rgba(34,39,31,.5);}
.cform .fl{font-family:var(--sans); font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--taupe-deep); display:block; margin-bottom:10px;}
.seg{display:flex; flex-wrap:wrap; gap:9px;}
.seg label{position:relative; cursor:pointer; font-family:var(--sans); font-size:13.5px; letter-spacing:.02em;
  padding:11px 17px; border-radius:100px; border:1px solid rgba(35,39,31,.2); color:var(--ink-soft);
  transition:.35s var(--ease-out); white-space:nowrap; user-select:none;}
.seg label:hover{border-color:rgba(80,89,73,.55); color:var(--ink);}
.seg input{position:absolute; opacity:0; width:0; height:0;}
.seg label:has(input:checked){background:var(--green); border-color:var(--green); color:var(--cream); box-shadow:0 10px 22px -12px rgba(34,39,31,.6);}
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:24px;}
.form-grid .full{grid-column:1 / -1;}
.inp{width:100%; font-family:var(--sans); font-weight:300; font-size:15px; color:var(--ink);
  padding:14px 16px; border-radius:12px; border:1px solid rgba(35,39,31,.2); background:rgba(255,255,255,.6);
  outline:none; transition:border-color .3s, background .3s, box-shadow .3s;}
.inp::placeholder{color:var(--taupe-deep);}
.inp:focus{border-color:var(--green); background:#fff; box-shadow:0 0 0 4px rgba(80,89,73,.1);}
textarea.inp{min-height:128px; resize:vertical; line-height:1.5;}
.cform .form-foot{display:flex; flex-direction:column; align-items:center; gap:16px; margin-top:28px;}
.cform .consent{font-family:var(--sans); font-size:12.5px; color:var(--ink-soft); max-width:38ch; margin:0; text-align:center;}
.cform .form-foot .btn{padding:17px 40px; letter-spacing:.14em;}
.cform .form-foot .btn .arr{position:relative; z-index:1; display:inline-block; transition:transform .45s var(--ease-out);}
.cform .form-foot .btn:hover .arr{transform:translateX(5px);}
.cform.sent .form-grid,.cform.sent .seg,.cform.sent .form-foot{opacity:.4; pointer-events:none;}
.cform .sent-msg{display:none; align-items:center; gap:12px; font-family:var(--serif); font-style:italic; font-size:21px; color:var(--green); margin-top:24px;}
.cform.sent .sent-msg{display:flex;}
.cform .sent-msg .ok{width:34px; height:34px; border-radius:50%; background:var(--green); color:var(--cream); display:grid; place-items:center; font-style:normal; font-size:16px; flex:none;}

/* ---------- info note (promo inline) ---------- */
.note-line{display:inline-flex; align-items:center; gap:12px; font-family:var(--sans); font-size:13px; letter-spacing:.04em; color:var(--ink-soft); margin-top:22px;}
.note-line .star{width:24px; height:24px; border-radius:50%; background:rgba(214,82,92,.12); color:var(--rose-deep); display:grid; place-items:center; font-size:13px; flex:none;}

/* ---------- event (dégustation d'exception) ---------- */
.event{position:relative; overflow:hidden; margin-top:clamp(48px,6vw,80px); border-radius:calc(var(--r) + 4px);
  background:linear-gradient(150deg, var(--green-soft) 0%, var(--green-deep) 55%, var(--green-night) 100%); color:var(--cream);
  padding:clamp(40px,6vw,84px) clamp(26px,5vw,72px); text-align:center;
  box-shadow:0 40px 90px -50px rgba(13,16,9,.7);}
.event::before{content:""; position:absolute; inset:0; pointer-events:none; opacity:.5;
  background:repeating-linear-gradient(58deg, rgba(255,255,255,.04) 0 2px, transparent 2px 10px);}
.event-glow{position:absolute; inset:0; pointer-events:none; overflow:hidden;
  background:radial-gradient(90% 60% at 50% -10%, rgba(214,82,92,.28), transparent 60%);}
.event-glow .bub{position:absolute; bottom:-14px; width:7px; height:7px; border-radius:50%;
  background:radial-gradient(circle at 35% 30%, rgba(255,255,255,.9), rgba(243,217,160,.5) 60%, transparent 70%);
  opacity:0; animation:rise linear infinite;}
.event-glow .bub:nth-child(1){left:12%; animation-duration:9s; animation-delay:0s; width:6px; height:6px;}
.event-glow .bub:nth-child(2){left:28%; animation-duration:11s; animation-delay:2.5s;}
.event-glow .bub:nth-child(3){left:47%; animation-duration:8s; animation-delay:1.2s; width:5px; height:5px;}
.event-glow .bub:nth-child(4){left:66%; animation-duration:12s; animation-delay:3.5s; width:8px; height:8px;}
.event-glow .bub:nth-child(5){left:82%; animation-duration:10s; animation-delay:.6s;}
.event-glow .bub:nth-child(6){left:91%; animation-duration:13s; animation-delay:4.2s; width:5px; height:5px;}
.event-glow .bub:nth-child(7){left:20%; animation-duration:12s; animation-delay:5s; width:5px; height:5px;}
.event-glow .bub:nth-child(8){left:57%; animation-duration:10s; animation-delay:6.5s; width:7px; height:7px;}
.event-glow .bub:nth-child(9){left:74%; animation-duration:14s; animation-delay:2s; width:6px; height:6px;}
@keyframes rise{0%{transform:translateY(0) scale(.6); opacity:0;}12%{opacity:.7;}80%{opacity:.5;}100%{transform:translateY(-560px) scale(1); opacity:0;}}
@media (prefers-reduced-motion:reduce){.event-glow .bub{display:none;} .event-title{animation:none;}}
.event-inner{position:relative; z-index:2; max-width:760px; margin:0 auto; display:flex; flex-direction:column; align-items:center;}
.event-kicker{display:inline-flex; align-items:center; gap:10px; font-family:var(--sans); font-weight:500; font-size:12px; letter-spacing:.24em; text-transform:uppercase; color:var(--rose-glow);}
.event-kicker::before,.event-kicker::after{content:""; width:22px; height:1px; background:currentColor; opacity:.55;}
.event-title{font-family:var(--serif); font-weight:300; font-size:clamp(34px,5vw,60px); line-height:1.02; margin:20px 0 0; color:var(--cream);}
.event-title .serif-it{color:var(--rose-glow);}
.event-lead{font-family:var(--sans); font-weight:300; font-size:clamp(15px,1.5vw,17px); line-height:1.7; color:#dcd6c8; max-width:56ch; margin:22px 0 0;}
.event-lead strong{color:var(--cream); font-weight:500;}
.event-facts{display:flex; flex-wrap:wrap; justify-content:center; gap:clamp(10px,2vw,16px); margin-top:clamp(26px,3.5vw,36px);}
.event-facts .ef{display:flex; flex-direction:column; align-items:center; gap:4px; min-width:96px; padding:16px 18px; border-radius:14px;
  background:linear-gradient(155deg, rgba(255,255,255,.11), rgba(255,255,255,.03));
  backdrop-filter:blur(10px) saturate(1.2); -webkit-backdrop-filter:blur(10px) saturate(1.2);
  border:1px solid rgba(225,220,210,.16); box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
  font-family:var(--sans); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--taupe-light);}
.event-facts .ef b{font-family:var(--serif); font-weight:400; font-size:clamp(20px,2.6vw,26px); letter-spacing:.01em; text-transform:none; color:var(--cream); line-height:1;}
@media (max-width:520px){ .event-facts{gap:8px;} .event-facts .ef{min-width:0; flex:1 1 40%; padding:13px 8px;} }
.event-houses{display:flex; align-items:center; justify-content:center; gap:clamp(18px,4vw,48px); margin-top:clamp(32px,4vw,44px); flex-wrap:nowrap;}
.ehouse{margin:0; display:flex; flex-direction:column; align-items:center; gap:14px; align-self:stretch; justify-content:flex-start;}
.ehouse figcaption{min-height:2.6em;}
.ehouse-logo{display:block; width:clamp(128px,22vw,160px); aspect-ratio:1; border-radius:16px;
  background:linear-gradient(150deg, rgba(255,255,255,.92), rgba(245,241,233,.74));
  backdrop-filter:blur(14px) saturate(1.3); -webkit-backdrop-filter:blur(14px) saturate(1.3);
  border:1px solid rgba(255,255,255,.6);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7), 0 22px 46px -24px rgba(0,0,0,.6);}
.ehouse-logo.has-logo{display:grid; place-items:center; padding:18%; overflow:hidden;}
.ehouse.charpentier .ehouse-logo{background:linear-gradient(155deg, #7d1730, #5e1023); border-color:rgba(212,175,110,.5); box-shadow:inset 0 1px 0 rgba(255,255,255,.14), 0 22px 46px -22px rgba(0,0,0,.7);}
.ehouse.charpentier .ehouse-logo.has-logo{padding:13%;}
.ehouse.mons .ehouse-logo{background:linear-gradient(150deg, #fbf9f4, #efe9dc);}
.ehouse-logo.has-logo img{width:100%; height:100%; object-fit:contain;}
.ehouse figcaption b{display:block; font-family:var(--serif); font-weight:500; font-size:18px; color:var(--cream); line-height:1.2;}
.ehouse figcaption span{display:block; margin-top:4px; font-family:var(--sans); font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--taupe-light);}
.ehouse-x{display:none;}
.ehouse-link{flex:none; align-self:center; display:flex; flex-direction:column; align-items:center; gap:10px; transform:translateY(-0.9em);}
.ehouse-link .el-line{width:1px; height:26px; background:linear-gradient(var(--rose-glow), transparent);}
.ehouse-link .el-line:last-child{background:linear-gradient(transparent, var(--rose-glow));}
.ehouse-link .el-word{font-family:var(--serif); font-style:italic; font-size:clamp(17px,2.4vw,22px); color:var(--rose-glow); white-space:nowrap;}
.countdown{display:flex; justify-content:center; flex-wrap:wrap; gap:clamp(10px,2vw,20px); margin-top:clamp(32px,4vw,44px);}
.cd-cell{position:relative; min-width:66px; padding:14px 10px; border-radius:12px; overflow:hidden; isolation:isolate;
  background:linear-gradient(155deg, rgba(255,255,255,.11), rgba(255,255,255,.03));
  backdrop-filter:blur(10px) saturate(1.2); -webkit-backdrop-filter:blur(10px) saturate(1.2);
  border:1px solid rgba(225,220,210,.16); box-shadow:inset 0 1px 0 rgba(255,255,255,.12);}
.cd-cell::before{content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(155deg, rgba(34,39,31,.55), rgba(22,26,18,.5));}
.cd-cell b{display:block; font-family:var(--serif); font-weight:400; font-size:clamp(26px,3.4vw,38px); line-height:1; color:var(--cream);}
.cd-cell span{display:block; margin-top:7px; font-family:var(--sans); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--taupe-light);}
.cd-soon{font-family:var(--serif); font-style:italic; font-size:clamp(16px,2vw,20px); color:var(--rose-glow); margin:clamp(28px,4vw,40px) 0 0;}
.countdown[hidden]+.cd-soon{}
.event-cta{margin-top:clamp(28px,3.5vw,38px);}
@media (max-width:520px){
  .event-houses{gap:16px;}
  .ehouse-link .el-line{height:16px;}
  .cd-cell{min-width:0; flex:1; padding:12px 4px;}
  .countdown{gap:8px; width:100%;}
}

/* ---------- infos pratiques ---------- */.facade-band{position:relative; border-radius:var(--r); overflow:hidden; aspect-ratio:5/2; margin-bottom:clamp(16px,2vw,24px);}
.facade-band img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 46%; transition:transform 1.6s var(--ease-out);}
.facade-band:hover img{transform:scale(1.04);}
.facade-band::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 45%, rgba(13,16,9,.55));}
.facade-band .facade-tag{position:absolute; left:clamp(16px,2vw,24px); bottom:clamp(14px,2vw,20px); z-index:2; font-family:var(--sans); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--cream); display:flex; align-items:center; gap:10px; padding:11px 18px 11px 15px; border-radius:100px;
  background:linear-gradient(135deg, rgba(20,24,15,.6), rgba(20,24,15,.42));
  backdrop-filter:blur(14px) saturate(1.3); -webkit-backdrop-filter:blur(14px) saturate(1.3);
  border:1px solid rgba(225,220,210,.22); box-shadow:inset 0 1px 0 rgba(255,255,255,.16), 0 12px 30px -16px rgba(13,16,9,.6);}
.facade-band .facade-tag::before{content:""; width:7px; height:7px; border-radius:50%; background:var(--rose); box-shadow:0 0 10px 1px rgba(214,82,92,.9); flex:none;}
@media (max-width:860px){
  .facade-band{aspect-ratio:3/2;}
  .facade-band img{object-position:center 60%;}
  .facade-band .facade-tag{font-size:11px;}
}
.infos{display:grid; grid-template-columns:1fr 1.1fr; gap:0; border-radius:var(--r); overflow:hidden; border:1px solid rgba(35,39,31,.1);}
.infos .left{padding:clamp(32px,4vw,60px); background:var(--green-darkest); color:var(--pearl);}
.infos .left h2{color:var(--cream);}
.infos .rows{margin-top:30px; display:flex; flex-direction:column;}
.infos .rows .ir{display:flex; gap:18px; padding:18px 0; border-top:1px solid rgba(225,220,210,.16);}
.infos .rows .ir:last-child{border-bottom:1px solid rgba(225,220,210,.16);}
.infos .rows .ir .k{font-family:var(--sans); font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--rose-glow); width:120px; flex:none; padding-top:3px;}
.infos .rows .ir .v{font-family:var(--sans); font-weight:300; font-size:16px; color:#e3ded2;}
.infos .rows .ir .v b{font-weight:400;}
.infos .map{position:relative; min-height:360px; isolation:isolate; background:var(--green-deep);}
.infos .map::after{content:""; position:absolute; inset:0; z-index:1; pointer-events:none; background:var(--green-deep); opacity:1; transition:opacity 1s var(--ease-out);
  background-image:radial-gradient(60% 50% at 50% 45%, rgba(225,220,210,.06), transparent 70%);}
.infos .map.map-loaded::after{opacity:0;}
.infos .map iframe{position:absolute; inset:0; width:100%; height:100%; border:0; display:block;
  filter:grayscale(.55) sepia(.18) saturate(.9) brightness(1.02) contrast(.95);
  opacity:0; transition:filter 1.1s var(--ease-out), opacity .9s var(--ease-out);}
.infos .map.map-loaded iframe{opacity:1;}
.infos .map:hover iframe{filter:grayscale(0) sepia(0) saturate(1.02) brightness(1) contrast(1);}
/* editorial vignette + tint, non-interactive so the map stays usable */
.infos .map .map-veil{position:absolute; inset:0; z-index:2; pointer-events:none;
  background:
    radial-gradient(120% 90% at 50% 40%, transparent 55%, rgba(34,39,31,.34)),
    linear-gradient(100deg, rgba(54,61,51,.28), transparent 26%);
  mix-blend-mode:multiply; opacity:1; transition:opacity 1.1s var(--ease-out);}
.infos .map:hover .map-veil{opacity:.25;}

/* ---------- partenaires locaux ---------- */
.partners{display:grid; grid-template-columns:1fr 1.05fr; gap:clamp(34px,5vw,72px); align-items:center;}
.partners-intro .h2{margin-top:20px;}
.partners-intro .lead{margin-top:20px; max-width:46ch;}
.partners-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:clamp(14px,1.6vw,20px);}
.partner{margin:0; display:flex; flex-direction:column; gap:14px;}
.partner .partner-logo{display:block; width:100%; aspect-ratio:1/1; border-radius:14px;
  background:linear-gradient(165deg, #fbfaf6, #efeade); border:1px solid rgba(35,39,31,.1);
  box-shadow:0 22px 46px -32px rgba(13,16,9,.5);}
.partner .partner-logo.dark{background:linear-gradient(160deg, #2a3024, #161a12); border-color:rgba(225,220,210,.16); box-shadow:inset 0 1px 0 rgba(255,255,255,.06), 0 22px 46px -30px rgba(0,0,0,.7);}
.partner .partner-logo.has-img{display:grid; place-items:center; padding:13%; overflow:hidden;}
.partner .partner-logo.has-img.logo-lg{padding:6%;}
.partner .partner-logo.has-img img{width:100%; height:100%; object-fit:contain; transition:transform .6s var(--ease-out);}
.partner .partner-logo.has-img:hover img{transform:scale(1.06);}
.partner figcaption{text-align:center;}
.partner figcaption b{display:block; font-family:var(--serif); font-weight:500; font-size:18px; color:var(--green-deep); line-height:1.15;}
.partner figcaption span{display:block; margin-top:3px; font-family:var(--sans); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--taupe-deep);}
.bg-green .partner figcaption b{color:var(--cream);}
.bg-green .partner figcaption span{color:var(--taupe-light);}
.bg-green .partner .partner-logo{box-shadow:0 22px 44px -28px rgba(0,0,0,.6);}

/* ---------- footer ---------- */
.foot{background:var(--green-night); color:#cfc9bb; padding:clamp(60px,8vw,110px) 0 30px;}
.foot a{opacity:.78; transition:opacity .3s;} .foot a:hover{opacity:1;}
.foot .top{display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:40px; padding-bottom:54px; border-bottom:1px solid rgba(225,220,210,.14);}
.foot .name b{font-family:var(--sans); font-weight:500; font-size:22px; letter-spacing:.14em; color:var(--cream); display:block;}
.foot .name small{font-family:var(--sans); font-size:10px; letter-spacing:.4em; opacity:.6; display:block; margin-top:5px;}
.foot .blurb{font-family:var(--sans); font-size:14.5px; line-height:1.7; margin:22px 0; max-width:34ch;}
.foot .col h5{font-family:var(--sans); font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--rose-glow); margin:0 0 18px;}
.foot .col a{display:block; font-family:var(--sans); font-size:14.5px; padding:6px 0;}
.foot .socials{display:flex; gap:12px; margin-top:8px;}
.foot .socials a{width:42px; height:42px; border-radius:50%; border:1px solid rgba(225,220,210,.24); display:grid; place-items:center; opacity:.85; transition:.35s var(--ease-out);}
.foot .socials a svg{width:18px; height:18px; fill:var(--pearl); transition:fill .35s;}
.foot .socials a:hover{background:var(--rose); border-color:var(--rose); opacity:1; transform:translateY(-2px);}
.foot .socials a:hover svg{fill:#fff;}
.foot .legal{display:flex; justify-content:space-between; flex-wrap:wrap; gap:14px; padding-top:26px; font-family:var(--sans); font-size:12.5px;}
.foot .legal .warn{letter-spacing:.05em; color:var(--pearl); opacity:.9; max-width:62ch;}
.foot .legal .legal-links a{color:var(--rose-glow); text-decoration:none; transition:color .3s;}
.foot .legal .legal-links a:hover{color:#fff;}

/* ---------- legal page ---------- */
.legal-page{padding-top:calc(var(--promo-h) + 120px); padding-bottom:clamp(60px,8vw,120px); background:var(--cream);}
.legal-hero{max-width:var(--maxw); margin:0 auto; padding:0 var(--pad) clamp(40px,5vw,64px);}
.legal-hero h1{font-family:var(--serif); font-weight:300; font-size:clamp(40px,6vw,76px); line-height:1.02; margin:18px 0 0;}
.legal-body{max-width:840px; margin:0 auto; padding:0 var(--pad);}
.legal-body .lg-block{padding:clamp(26px,3vw,40px) 0; border-top:1px solid rgba(35,39,31,.12);}
.legal-body .lg-block:first-child{border-top:0;}
.legal-body h2{font-family:var(--serif); font-weight:400; font-size:clamp(24px,2.6vw,32px); margin:0 0 18px; color:var(--green-deep);}
.legal-body h3{font-family:var(--sans); font-weight:600; font-size:15px; letter-spacing:.02em; margin:22px 0 8px; color:var(--ink);}
.legal-body p,.legal-body li{font-family:var(--sans); font-weight:300; font-size:16px; line-height:1.7; color:var(--ink-soft);}
.legal-body p{margin:0 0 14px;}
.legal-body a{color:var(--rose-deep); text-decoration:underline; text-underline-offset:3px;}
.legal-body ul{margin:0 0 14px; padding-left:20px;}
.legal-body li{margin-bottom:7px;}
.legal-body .fill{background:rgba(214,82,92,.1); color:var(--rose-deep); padding:1px 7px; border-radius:5px; font-weight:400; font-style:normal;}
.legal-body .lg-table{display:grid; grid-template-columns:auto 1fr; gap:10px 26px; margin:8px 0 4px;}
.legal-body .lg-table dt{font-family:var(--sans); font-weight:500; font-size:14px; color:var(--ink); letter-spacing:.04em;}
.legal-body .lg-table dd{margin:0; font-size:15px; color:var(--ink-soft);}
.legal-note{max-width:840px; margin:clamp(30px,4vw,48px) auto 0; padding:18px 22px; border-radius:12px; background:var(--cream-2); border:1px solid rgba(35,39,31,.1); font-family:var(--sans); font-size:13.5px; color:var(--ink-soft);}
.legal-back{display:inline-flex; align-items:center; gap:9px; margin-top:clamp(36px,4vw,52px); font-family:var(--sans); font-size:14px; letter-spacing:.04em;}

/* ---------- universe page (Spiritueux, etc.) ---------- */
.u-hero{position:relative; min-height:72vh; display:flex; align-items:flex-end; overflow:hidden; background:var(--green-night); color:var(--cream);}
.u-hero img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:brightness(.8);}
.u-hero .u-scrim{position:absolute; inset:0; background:
  linear-gradient(90deg, rgba(13,16,9,.8) 0%, rgba(13,16,9,.5) 42%, rgba(13,16,9,.2) 72%, transparent 100%),
  linear-gradient(180deg, rgba(13,16,9,.78) 0%, rgba(13,16,9,.5) 20%, rgba(13,16,9,.34) 46%, rgba(13,16,9,.62) 78%, rgba(13,16,9,.94) 100%);}
.u-hero .wrap{position:relative; z-index:2; width:100%; padding-top:calc(var(--promo-h) + 120px); padding-bottom:clamp(40px,5vw,68px);}
.u-hero .crumb{font-family:var(--sans); font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:#cfc9bb; display:flex; gap:10px; align-items:center; margin-bottom:22px;}
.u-hero .crumb a{color:var(--rose-glow);}
.u-hero .crumb a:hover{color:#fff;}
.u-hero h1{font-family:var(--serif); font-weight:300; font-size:clamp(54px,9vw,116px); line-height:.96; color:var(--cream);}
.u-hero .u-sub{font-family:var(--sans); font-weight:300; font-size:clamp(17px,1.5vw,21px); line-height:1.6; color:#dcd6c8; max-width:52ch; margin:22px 0 0;}
.u-hero .u-stat{display:flex; gap:40px; flex-wrap:wrap; margin-top:34px; padding-top:26px; border-top:1px solid rgba(225,220,210,.2);}
.u-hero .u-stat .s b{font-family:var(--serif); font-size:30px; display:block; line-height:1;}
.u-hero .u-stat .s span{font-family:var(--sans); font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--taupe-light); margin-top:6px; display:block;}

.u-intro{display:grid; grid-template-columns:1fr 1fr; gap:clamp(34px,5vw,72px); align-items:center;}
.u-intro-txt .h2{margin-top:20px;}
.u-intro-txt .lead{margin-top:22px;}
.u-intro-tags{display:flex; flex-wrap:wrap; gap:10px; margin-top:28px;}
.u-intro-tags span{font-family:var(--sans); font-size:12.5px; letter-spacing:.04em; color:var(--green-deep); padding:9px 16px; border-radius:100px; background:rgba(80,89,73,.08); border:1px solid rgba(80,89,73,.18);}
.u-intro-pic{position:relative; margin:0; border-radius:var(--r); overflow:hidden; aspect-ratio:4/5; box-shadow:0 40px 80px -44px rgba(34,39,31,.55);}
.u-intro-pic img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 1.5s var(--ease-out);}
.u-intro-pic:hover img{transform:scale(1.05);}
.u-intro-pic::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 55%, rgba(13,16,9,.62));}
.u-intro-pic figcaption{position:absolute; z-index:2; left:clamp(16px,1.6vw,22px); bottom:clamp(15px,1.6vw,20px); display:flex; align-items:center; gap:9px; font-family:var(--sans); font-size:12.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--cream); text-shadow:0 1px 12px rgba(13,16,9,.85);}
.u-intro-pic figcaption::before{content:""; width:7px; height:7px; border-radius:50%; background:var(--rose); box-shadow:0 0 10px 1px rgba(214,82,92,.9); flex:none;}
@media (max-width:820px){
  .u-intro{grid-template-columns:1fr; gap:30px;}
  .u-hero{align-items:flex-start;}
  .u-hero .wrap{padding-top:calc(var(--promo-h) + 96px); padding-bottom:clamp(40px,7vw,60px);}
  .u-intro-pic{aspect-ratio:3/2;}
  .u-intro.u-intro-rev .u-intro-pic{order:1;}
  .u-intro-rev .u-intro-pic img{object-position:center top;}
  .u-intro-pic.crop-top img{object-position:center 38%;}
  .u-intro-pic.crop-bieres img{object-position:center 8%;}
}
.u-intro-rev .u-intro-pic{order:-1;}

.fam-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2vw,26px); margin-top:clamp(40px,5vw,64px);}
.fam{position:relative; padding:clamp(26px,2.6vw,38px); border-radius:var(--r); background:linear-gradient(165deg, #fff, var(--cream)); border:1px solid rgba(35,39,31,.09); box-shadow:0 24px 50px -38px rgba(34,39,31,.45); overflow:hidden; transition:transform .5s var(--ease-out), box-shadow .5s var(--ease-out);}
.fam:hover{transform:translateY(-4px); box-shadow:0 34px 60px -36px rgba(34,39,31,.5);}
.fam .fam-n{display:block; width:32px; height:2px; border-radius:2px; background:var(--rose); font-size:0; line-height:0; overflow:hidden; margin-bottom:20px;}
.fam h3{font-family:var(--serif); font-weight:400; font-size:clamp(26px,2.4vw,32px); margin:6px 0 12px; color:var(--green-deep);}
.fam p{font-family:var(--sans); font-weight:300; font-size:15px; line-height:1.6; color:var(--ink-soft); margin:0;}
.fam .tags{display:flex; flex-wrap:wrap; gap:7px; margin-top:16px;}
.fam .tags span{font-family:var(--sans); font-size:11.5px; letter-spacing:.06em; padding:6px 11px; border-radius:100px; background:rgba(80,89,73,.09); color:var(--green-deep);}

.u-band{position:relative; overflow:hidden; border-radius:var(--r); color:var(--cream); padding:clamp(44px,6vw,84px); display:grid; grid-template-columns:1.4fr 1fr; gap:clamp(36px,4.5vw,72px); align-items:center;}
.u-band .ph{position:absolute; inset:0; border-radius:0;}
.u-band .ph::before{background:linear-gradient(110deg, rgba(22,27,23,.94), rgba(22,27,23,.6) 60%, rgba(214,82,92,.34)), linear-gradient(150deg, var(--green-soft), var(--green-night));}
.u-band .ub-txt{position:relative; z-index:2;}
.u-band .ub-txt h2{font-family:var(--serif); font-weight:300; font-size:clamp(28px,3vw,42px); color:var(--cream); margin:20px 0 18px;}
.u-band .ub-txt p{font-family:var(--sans); font-weight:300; font-size:15.5px; line-height:1.75; color:#dcd6c8; margin:0; max-width:52ch;}
.u-band .ub-points{position:relative; z-index:2; display:flex; flex-wrap:wrap; gap:12px; margin-top:30px;}
.u-band .ub-points span{display:inline-flex; align-items:center; gap:9px; font-family:var(--sans); font-size:13px; letter-spacing:.02em; color:var(--cream); padding:11px 17px; border-radius:100px;
  background:linear-gradient(135deg, rgba(255,255,255,.13), rgba(255,255,255,.03));
  backdrop-filter:blur(9px) saturate(1.2); -webkit-backdrop-filter:blur(9px) saturate(1.2);
  border:1px solid rgba(225,220,210,.26); box-shadow:inset 0 1px 0 rgba(255,255,255,.18);}
.u-band .ub-points span::before{content:""; width:6px; height:6px; border-radius:50%; background:var(--rose-glow); box-shadow:0 0 9px 1px rgba(214,82,92,.8); flex:none;}
.u-band .ub-aside{position:relative; z-index:2; justify-self:end; display:flex; flex-direction:column; align-items:flex-end; gap:18px; text-align:right;}
.u-band .ub-aside .ub-kicker{font-family:var(--serif); font-style:italic; font-size:19px; color:var(--rose-glow); line-height:1.2; white-space:nowrap;}
.u-band .ub-cta{position:relative; z-index:2;}
.u-band .ub-photo{position:relative; z-index:2; justify-self:end; width:clamp(220px,25vw,320px); border-radius:16px; overflow:hidden; border:1px solid rgba(225,220,210,.22); box-shadow:inset 0 1px 0 rgba(255,255,255,.14), 0 30px 60px -28px rgba(0,0,0,.7);}
.u-band .ub-photo img{display:block; width:100%; aspect-ratio:3/4; object-fit:cover; transition:transform 1.5s var(--ease-out);}
.u-band .ub-photo:hover img{transform:scale(1.05);}

.u-next{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(14px,1.6vw,22px); margin-top:clamp(36px,4vw,56px);}
.u-next a{position:relative; overflow:hidden; border-radius:var(--r); aspect-ratio:4/5; display:flex; flex-direction:column; justify-content:flex-end; padding:clamp(24px,2.2vw,34px); color:var(--cream); box-shadow:0 24px 50px -38px rgba(34,39,31,.5); transition:transform .5s var(--ease-out), box-shadow .5s var(--ease-out);}
.u-next a:hover{transform:translateY(-4px); box-shadow:0 36px 64px -34px rgba(34,39,31,.6);}
.u-next a img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:brightness(.94); transition:transform 1.4s var(--ease-out);}
.u-next a:hover img{transform:scale(1.06);}
.u-next a::after{content:""; position:absolute; inset:0; transition:background .55s var(--ease-out);
  background:linear-gradient(180deg, rgba(20,24,15,.18) 0%, transparent 30%, rgba(20,24,15,.3) 54%, rgba(20,24,15,.72) 80%, rgba(20,24,15,.94) 100%);}
.u-next a:hover::after{background:linear-gradient(180deg, rgba(20,24,15,.4) 0%, rgba(20,24,15,.34) 32%, rgba(20,24,15,.55) 60%, rgba(20,24,15,.82) 82%, rgba(20,24,15,.96) 100%);}
.u-next a .u-bar{display:none;}
.u-next a .t{position:relative; z-index:2; font-family:var(--serif); font-weight:400; font-size:clamp(30px,3.1vw,42px); line-height:1; padding-bottom:15px; color:var(--cream); text-shadow:0 2px 22px rgba(13,16,9,.7), 0 1px 3px rgba(13,16,9,.5);}
.u-next a .t::after{content:""; position:absolute; left:0; bottom:0; height:2px; width:32px; border-radius:2px; background:var(--rose); box-shadow:0 0 10px 1px rgba(214,82,92,.7); transition:width .55s var(--ease-out);}
.u-next a:hover .t::after{width:74px;}
.u-next a .go{position:relative; z-index:2; margin-top:18px; font-family:var(--sans); font-size:12.5px; letter-spacing:.16em; text-transform:uppercase; display:inline-flex; align-items:center; gap:11px; color:#fff; transform:translateY(8px); opacity:0; transition:.5s var(--ease-out);}
.u-next a .go i{display:inline-block; font-style:normal; transition:transform .4s var(--ease-out);}
.u-next a:hover .go{transform:none; opacity:1;}
.u-next a:hover .go i{transform:translateX(5px);}

/* universe photo gallery (3 real shelf photos) */
.u-gallery{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(12px,1.6vw,20px); margin-top:clamp(36px,4vw,56px);}
.u-gallery figure{position:relative; margin:0; border-radius:var(--r); overflow:hidden; aspect-ratio:3/4;}
.u-gallery img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 8%; transition:transform 1.4s var(--ease-out);}
.u-gallery figure:hover img{transform:scale(1.05);}
.u-gallery figure::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 52%, rgba(13,16,9,.78));}
.u-gallery figcaption{position:absolute; z-index:2; left:clamp(16px,1.6vw,22px); bottom:clamp(15px,1.6vw,20px); display:flex; align-items:center; gap:9px; font-family:var(--sans); font-size:13px; letter-spacing:.08em; text-transform:uppercase; color:var(--cream); text-shadow:0 1px 12px rgba(13,16,9,.8);}
.u-gallery figcaption::before{content:""; width:7px; height:7px; border-radius:50%; background:var(--rose); box-shadow:0 0 10px 1px rgba(214,82,92,.9); flex:none;}
@media (max-width:680px){ .u-gallery{grid-template-columns:1fr 1fr;} .u-gallery figure{aspect-ratio:3/4;} .u-gallery figure:last-child{grid-column:1 / -1; aspect-ratio:16/9;}
  .gallery-vins figure:nth-child(1){order:1;}
  .gallery-vins figure:nth-child(3){order:2;}
  .gallery-vins figure:nth-child(2){order:3; grid-column:1 / -1; aspect-ratio:16/9;}
  .gallery-vins figure:nth-child(3){grid-column:auto; aspect-ratio:3/4;}
}

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .journal{grid-template-columns:1fr 1fr;}
  .post.lead{grid-column:1 / -1; display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:center;}
  .post.lead .pic{margin-bottom:0;}
}
@media (max-width:860px){
  .nav .links{display:none;}
  .nav .nav-right .nav-tel{display:none;}
  .nav .nav-right{margin-left:auto;}
  .burger{display:flex;}
  .nav.on-hero .burger i{box-shadow:0 0 8px rgba(13,16,9,.4);}
  .prods{grid-template-columns:repeat(2,1fr);}
  .cats,.cats.four{grid-template-columns:1fr 1fr;}
  .cat .ratio,.cats.four .cat .ratio{aspect-ratio:4/5;}
  .chiffres{grid-template-columns:1fr 1fr; gap:30px 24px;}
  .duo-spaces{grid-template-columns:1fr;}
  .serv{grid-template-columns:1fr;}
  .partners{grid-template-columns:1fr; gap:30px;}
  .partners-grid{display:flex; flex-direction:column; gap:0; max-width:380px; margin:0 auto;}
  .partner{flex-direction:row; align-items:center; gap:18px; padding:16px 4px; border-bottom:1px solid rgba(35,39,31,.12);}
  .partner:last-child{border-bottom:0;}
  .partner .partner-logo{width:94px; height:94px; flex:none; aspect-ratio:1; border-radius:14px;}
  .partner .partner-logo.has-img{padding:7%;}
  .partner .partner-logo.has-img.logo-lg{padding:2%;}
  .partner figcaption{text-align:left; flex:1;}
  .partner figcaption b{font-size:18px; white-space:nowrap;}
  .partner figcaption span{margin-top:4px;}
  .serv .s{min-height:auto;}
  .duo{grid-template-columns:1fr; display:flex; flex-direction:column; align-items:stretch;}
  .duo .imgs{order:3; width:100%;}
  .duo .duo-eyebrow{display:inline-flex; order:1; margin-bottom:4px;}
  .duo .duo-quote-mobile{display:block; order:2; margin:16px 0 22px;}
  .duo .duo-text{order:4;}
  .duo .duo-text-eyebrow{display:none;}
  .duo .duo-text .quote{display:none;}
  .duo .imgs .b{width:38%; right:0; left:auto; bottom:-10%;}
  .duo .imgs .b img{object-position:center 24%;}
  .fam-grid{grid-template-columns:1fr 1fr;}
  .u-band{grid-template-columns:1fr;}
  .u-band .ub-aside{justify-self:start; align-items:flex-start; text-align:left;}
  .u-band .ub-cta{justify-self:start;}
  .u-band .ub-photo{justify-self:center; width:100%; max-width:330px;}
  #exception .ub-points{display:none;}
  #bulles .ub-points{display:none;}
  .esprit-tags{display:none;}
  .u-band-mixo .ub-points{display:none;}
  .u-band-mixo .ub-aside{display:block !important; width:100% !important; justify-self:stretch !important; text-align:center !important;}
  .u-band-mixo .ub-cta{display:inline-flex !important; width:auto !important; max-width:100%; margin:0;}
  .u-band-mixo{grid-template-columns:1fr !important;}
  .esprit-tags{display:flex !important;}
  .u-band-pression .ub-points{display:none;}
  .gallery-bieres figure:nth-child(1){order:1;}
  .gallery-bieres figure:nth-child(2){order:2; grid-column:auto; aspect-ratio:3/4;}
  .gallery-bieres figure:nth-child(3){order:3; grid-column:1 / -1; aspect-ratio:16/9;}
  .gallery-bieres figure:nth-child(3) img{object-position:center 70%;}
  .u-next{grid-template-columns:1fr;}
  .u-next a{aspect-ratio:16/10;}
  .u-hero .u-stat{gap:24px 34px;}
  .cc{grid-template-columns:1fr;}
  .demande{grid-template-columns:1fr;}
  .deg-strip{flex-direction:column; align-items:flex-start;}
  .infos{grid-template-columns:1fr;}
  .infos .rows .ir{flex-direction:column; gap:5px;}
  .infos .rows .ir .k{width:auto;}
  .infos .rows .ir .v{overflow-wrap:anywhere; word-break:break-word;}
  .infos .map{min-height:300px;}
  .journal{grid-template-columns:1fr;}
  .post.lead{grid-template-columns:1fr;}
  .post.lead .pic{margin-bottom:18px;}
  .foot .top{grid-template-columns:1fr 1fr; gap:30px;}
  .hero-meta{gap:22px 30px;}
}
@media (max-width:520px){
  .nav .nav-right .btn{display:none;}
  .u-hero .u-stat{flex-wrap:wrap;}
  .display{font-size:clamp(28px,8.6vw,40px);}
  .u-hero h1{font-size:clamp(46px,13vw,66px);}
  .hero{min-height:0; align-items:flex-start;}
  .hero .wrap{padding-top:124px; padding-bottom:64px; display:block;}
  .hero .eyebrow{margin-bottom:0;}
  .hero .display{margin-top:26px;}
  .hero .hero-sub{margin-top:30px;}
  .hero .hero-cta{margin-top:38px;}
  .hero .scroll-cue{display:none;}
  .eyebrow{font-size:10.5px; letter-spacing:.18em; gap:9px;}
  .eyebrow::before,.eyebrow.center::after{width:18px;}
  .prods{grid-template-columns:1fr 1fr; gap:34px 14px;}
  .prod .meta{padding-top:14px;}
  .prod .meta h4{min-height:0; font-size:21px;}
  .prod .meta .row{flex-wrap:wrap; gap:8px; margin-top:7px;}
  .prod .meta .note{flex:1 1 100%;}
  .cats,.cats.four{grid-template-columns:1fr;}
  .form-grid{grid-template-columns:1fr;}
  .fam-grid{grid-template-columns:1fr;}
  .cat .ratio,.cats.four .cat .ratio{aspect-ratio:16/10;}
  .chiffres{grid-template-columns:1fr 1fr;}
  .prod .tagb{white-space:normal; font-size:10px; letter-spacing:.12em; line-height:1.25;}
  .foot .top{grid-template-columns:1fr;}
  .hero-meta .m b{font-size:24px;}
}
