
/* ============================================================
   DOMAINE HUMBRECHT 1619 — v3, direction éditoriale spare
   Inspiré de la direction artistique de brandnapavalley.com
   (FINE) : dépouillé, typographie confiante, une seule couleur
   d'accent, grands aplats photo, nav numérotée. Contenu, prix et
   boutique restent 100% ceux du Domaine Humbrecht — ce site vend
   en direct, contrairement au modèle par allocation de la référence.

   Paper #FAF8F4   Ink #15140F   Accent (vigne) #48592E   Gold #A9823D
   ============================================================ */
:root{
  --paper:#FAF8F4;
  --paper-dim:#EFE9DE;
  --ink:#15140F;
  --ink-soft:#5C594F;
  --line:rgba(21,20,15,.14);
  --line-soft:rgba(21,20,15,.08);
  --accent:#48592E;
  --accent-soft:#7C8863;
  --gold:#A9823D;
  --gold-2:#D9AE60;
  --gold-ink:#87631F;
  --stone:#9C9587;
  --wine:#5B2331;
  --shadow:0 50px 90px -45px rgba(21,20,15,.35);
  --ease:cubic-bezier(.16,.8,.24,1);
  --fs-hero: clamp(2.6rem, 3.6vw + 1.6rem, 6rem);
  --fs-h2: clamp(2rem, 2vw + 1.3rem, 3.6rem);
  --fs-h3: clamp(1.2rem, .6vw + 1rem, 1.55rem);
  --fs-lead: clamp(1.05rem, .4vw + .9rem, 1.35rem);
  --fs-body: clamp(1rem, .1vw + .95rem, 1.05rem);
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:'Instrument Sans', sans-serif; font-size:var(--fs-body); line-height:1.6;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
h1,h2,h3,h4{font-family:'Fraunces', serif; font-weight:440; line-height:1.04; margin:0; letter-spacing:-.015em; color:var(--ink);}
p{margin:0;}
a{color:inherit; text-decoration:none;}
ul{margin:0; padding:0; list-style:none;}
img{max-width:100%; display:block;}
button{font-family:inherit; cursor:pointer; background:none; border:none; color:inherit;}
::selection{background:var(--ink); color:var(--paper);}
:focus-visible{outline:1.5px solid var(--accent); outline-offset:3px;}
.ink :focus-visible, .dark-section :focus-visible{outline-color:var(--paper);}

.icon{width:1em; height:1em; display:inline-block; vertical-align:-.15em;}
.grain{
  position:fixed; inset:0; pointer-events:none; z-index:9999; opacity:.035; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.wrap{max-width:1320px; margin:0 auto; padding:0 clamp(1.25rem,4vw,3.5rem);}
.mono{font-family:'IBM Plex Mono', monospace;}
.eyebrow{
  font-family:'IBM Plex Mono', monospace; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--stone); display:flex; align-items:center; gap:.7em;
}
.eyebrow .num{color:var(--accent); font-weight:500;}
.dark-section .eyebrow .num{color:var(--gold);}
.dark-section .eyebrow{color:rgba(250,248,244,.55);}

section{position:relative;}
.pad{padding:clamp(5.5rem,9vw,10rem) 0;}
.pad-sm{padding:clamp(3.5rem,6vw,6rem) 0;}

.reveal{opacity:0; transform:translateY(24px); transition:opacity 1s var(--ease), transform 1s var(--ease);}
.reveal.in{opacity:1; transform:translateY(0);}
.reveal-stagger > *{opacity:0; transform:translateY(18px); transition:opacity .8s var(--ease), transform .8s var(--ease);}
.reveal-stagger.in > *{opacity:1; transform:translateY(0);}
.reveal-stagger.in > *:nth-child(1){transition-delay:0s;}
.reveal-stagger.in > *:nth-child(2){transition-delay:.09s;}
.reveal-stagger.in > *:nth-child(3){transition-delay:.18s;}
.reveal-stagger.in > *:nth-child(4){transition-delay:.27s;}
.reveal-stagger.in > *:nth-child(5){transition-delay:.36s;}
.reveal-stagger.in > *:nth-child(6){transition-delay:.45s;}
.reveal-stagger.in > *:nth-child(7){transition-delay:.54s;}
.reveal-stagger.in > *:nth-child(8){transition-delay:.63s;}

/* ---------- boutons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.7em; padding:1em 1.9em .95em;
  font-family:'IBM Plex Mono', monospace; font-size:.76rem; letter-spacing:.1em; text-transform:uppercase;
  border:1px solid var(--ink); transition:background .35s ease, color .35s ease, border-color .35s ease, opacity .35s ease;
  white-space:nowrap;
}
.btn .icon{width:1em; height:1em; transition:transform .4s var(--ease);}
.btn:hover .icon{transform:translateX(4px);}
.btn-fill{background:var(--ink); color:var(--paper);}
.btn-fill:hover{background:var(--accent); border-color:var(--accent);}
.btn-line{background:transparent; color:var(--ink); border-color:var(--ink);}
.btn-line:hover{background:var(--ink); color:var(--paper);}
.btn-line.on-dark{color:var(--paper); border-color:rgba(250,248,244,.5);}
.btn-line.on-dark:hover{background:var(--paper); color:var(--ink);}
.btn-fill.on-dark{background:var(--paper); color:var(--ink);}
.btn-fill.on-dark:hover{background:var(--gold); color:var(--ink);}
.text-link{
  display:inline-flex; align-items:center; gap:.5em; font-family:'IBM Plex Mono',monospace;
  font-size:.76rem; letter-spacing:.08em; text-transform:uppercase; border-bottom:1px solid var(--ink); padding-bottom:.2em;
}
.text-link .icon{width:.9em; height:.9em; transition:transform .4s var(--ease);}
.text-link:hover .icon{transform:translateX(4px);}

/* ============ NAV ============ */
.nav{position:fixed; top:0; left:0; right:0; z-index:500; padding:1.5rem 0; transition:background .5s ease, padding .5s ease, border-color .5s ease; border-bottom:1px solid transparent;}
.nav.solid{background:rgba(250,248,244,.94); backdrop-filter:blur(10px); padding:1.05rem 0; border-color:var(--line);}
.nav .wrap{display:flex; align-items:center; justify-content:space-between; gap:1.5rem;}
.brand{display:flex; align-items:center; line-height:0;}
.brand-logo{display:block; width:clamp(122px,12.6vw,152px); height:auto;}
.nav-links{display:flex; align-items:center; gap:clamp(1.3rem,2.4vw,2.6rem);}
.nav-links a{display:flex; align-items:baseline; gap:.5em; font-size:.82rem; letter-spacing:.02em; color:inherit; opacity:.72; transition:opacity .3s ease;}
.nav-links a:hover{opacity:1;}
.nav-links .num{font-family:'IBM Plex Mono',monospace; font-size:.68rem; color:var(--gold);}
.nav-right{display:flex; align-items:center; gap:1.1rem;}
.lang-switch{position:relative;}
.lang-btn{display:flex; align-items:center; gap:.4rem; height:36px; padding:0 .8rem; border:1px solid var(--line); font-family:'IBM Plex Mono',monospace; font-size:.72rem; letter-spacing:.05em; color:inherit; transition:border-color .3s ease;}
.lang-btn:hover{border-color:var(--ink);}
.lang-btn .icon{width:10px; height:10px; transition:transform .3s ease;}
.lang-switch.open .lang-btn .icon{transform:rotate(180deg);}
.lang-menu{
  position:absolute; top:calc(100% + .6rem); right:0; background:var(--paper); border:1px solid var(--line); box-shadow:var(--shadow);
  min-width:150px; opacity:0; pointer-events:none; transform:translateY(-6px); transition:opacity .25s ease, transform .25s ease; z-index:50;
}
.lang-switch.open .lang-menu{opacity:1; pointer-events:auto; transform:translateY(0);}
.lang-menu button{display:block; width:100%; text-align:left; padding:.7em 1em; font-size:.84rem; color:var(--ink-soft); transition:background .2s ease, color .2s ease;}
.lang-menu button:hover{background:var(--paper-dim); color:var(--ink);}
.lang-menu button.active{color:var(--accent); font-weight:600;}
.nav-cart-btn{position:relative; display:flex; align-items:center; justify-content:center; width:36px; height:36px; border:1px solid var(--line); transition:border-color .3s ease;}
.nav-cart-btn:hover{border-color:var(--ink);}
.nav-cart-btn .icon{width:16px; height:16px;}
.cart-count{
  position:absolute; top:-7px; right:-7px; min-width:16px; height:16px; padding:0 3px; background:var(--wine); color:var(--paper);
  font-family:'IBM Plex Mono',monospace; font-size:.6rem; display:flex; align-items:center; justify-content:center; transform:scale(0); transition:transform .3s var(--ease);
}
.cart-count.show{transform:scale(1);}
.nav-burger{display:none; width:36px; height:36px; align-items:center; justify-content:center; border:1px solid var(--line);}
.nav-burger .icon{width:16px; height:16px;}

.mobile-menu{position:fixed; inset:0; background:var(--ink); z-index:600; display:flex; flex-direction:column; justify-content:center; padding:2rem clamp(1.5rem,7vw,4rem); transform:translateY(-100%); visibility:hidden; transition:transform .55s var(--ease), visibility 0s linear .55s;}
.mobile-menu.open{transform:translateY(0); visibility:visible; transition:transform .55s var(--ease), visibility 0s;}
.mobile-menu a{display:flex; align-items:baseline; gap:.8rem; font-family:'Fraunces',serif; font-size:clamp(1.8rem,7vw,3rem); color:var(--paper); padding:.3rem 0; font-weight:400;}
.mobile-menu a .num{font-family:'IBM Plex Mono',monospace; font-size:1rem; color:var(--gold);}
.mobile-menu-close{position:absolute; top:1.5rem; right:clamp(1.25rem,4vw,3rem); width:40px; height:40px; border:1px solid rgba(250,248,244,.3); display:flex; align-items:center; justify-content:center;}
.mobile-menu-close .icon{width:16px; height:16px; color:var(--paper);}
.mobile-menu-foot{margin-top:2.2rem; padding-top:1.6rem; border-top:1px solid rgba(250,248,244,.2); color:var(--stone); font-family:'IBM Plex Mono',monospace; font-size:.78rem;}

/* ============ HERO ============ */
.hero{min-height:100svh; display:flex; flex-direction:column; justify-content:flex-end; position:relative; color:var(--paper); overflow:hidden;}
.hero-bg{position:absolute; inset:0; z-index:0;}
.hero-bg img{width:100%; height:100%; object-fit:cover; object-position:center 58%; filter:contrast(1.1) saturate(1.15) brightness(.97);}
.hero-bg::after{content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(15,15,10,.86) 0%, rgba(15,15,10,.4) 42%, rgba(15,15,10,.18) 60%, rgba(15,15,10,.32) 100%);}
.hero-inner{position:relative; z-index:2; padding-bottom:clamp(2.6rem,5vw,4rem);}
.hero-line{max-width:20ch; font-size:var(--fs-hero); font-weight:400; color:var(--paper); margin-bottom:clamp(1.6rem,3vw,2.4rem);}
.hero-line em{font-style:italic; color:var(--gold); font-weight:380;}
.hero-row{display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-end; gap:2rem; padding-top:clamp(1.6rem,3vw,2.2rem);}
.hero-sub{max-width:42ch; font-size:var(--fs-lead); color:rgba(250,248,244,.82); font-weight:400;}
.hero-facts{display:flex; flex-wrap:wrap; gap:.5em 1.4em; font-family:'IBM Plex Mono',monospace; font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; color:rgba(250,248,244,.6);}
.hero-ctas{display:flex; gap:1rem; margin-top:2rem;}
.hero-scroll{position:absolute; z-index:3; right:clamp(1.25rem,4vw,3.5rem); bottom:1.8rem; writing-mode:vertical-rl; display:flex; align-items:center; gap:.7rem; color:rgba(250,248,244,.55); font-family:'IBM Plex Mono',monospace; font-size:.66rem; letter-spacing:.14em; text-transform:uppercase;}

/* ============ MANIFESTE / DOMAINE ============ */
.manifesto{background:var(--paper);}
.manifesto-grid{display:grid; grid-template-columns:.4fr 1fr; gap:clamp(2rem,5vw,5rem); align-items:end;}
.manifesto-num{font-family:'Fraunces',serif; font-weight:300; font-size:clamp(5rem,11vw,11rem); line-height:.82; color:var(--ink);}
.manifesto-num span{display:block; font-family:'IBM Plex Mono',monospace; font-size:.7rem; letter-spacing:.14em; font-weight:400; color:var(--stone); margin-top:.8rem;}
.manifesto-text{font-family:'Fraunces',serif; font-weight:400; font-style:italic; font-size:clamp(1.4rem,2vw,2.1rem); line-height:1.35; color:var(--ink); max-width:22ch;}
.manifesto-text strong{font-style:normal; font-weight:500;}

.domaine-grid{display:grid; grid-template-columns:1fr 1fr; gap:clamp(2.5rem,5vw,5rem); align-items:center; margin-top:clamp(4rem,7vw,7rem);}
.domaine-media{position:relative; overflow:hidden; height:clamp(360px,44vw,600px);}
.domaine-media img{position:absolute; top:-25%; left:0; width:100%; height:150%; object-fit:cover; will-change:transform;}
.domaine-body p{color:var(--ink-soft); max-width:52ch; font-size:var(--fs-body);}
.domaine-body p + p{margin-top:1.2rem;}
.domaine-facts{display:flex; gap:clamp(1.8rem,4vw,3.2rem); margin-top:2.4rem; padding-top:1.8rem; border-top:1px solid var(--line);}
.domaine-facts div strong{display:block; font-family:'Fraunces',serif; font-size:1.7rem; color:var(--ink);}
.domaine-facts div span{font-family:'IBM Plex Mono',monospace; font-size:.66rem; letter-spacing:.08em; text-transform:uppercase; color:var(--stone);}

/* ============ PHILOSOPHIE (dark, plein cadre) ============ */
.philosophy{background:var(--ink); color:var(--paper);}
.philo-media{position:relative; height:clamp(360px,58vw,680px); overflow:hidden;}
.philo-media img{position:absolute; top:-25%; left:0; width:100%; height:150%; object-fit:cover; object-position:50% 68%; will-change:transform;}
.philo-media::after{content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(21,20,15,.85) 0%, rgba(21,20,15,.3) 40%, rgba(21,20,15,.04) 68%);}
.philo-overlay{position:absolute; left:0; right:0; bottom:0; z-index:2; padding:clamp(2rem,5vw,4rem) 0 clamp(2.6rem,5vw,4.5rem);}
.philo-overlay .wrap{display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,4vw,4rem); align-items:end;}
.philo-line{font-family:'Fraunces',serif; font-weight:400; font-size:clamp(1.6rem,2.6vw,2.6rem); line-height:1.2; max-width:16ch; text-shadow:0 2px 20px rgba(0,0,0,.5);}
.philo-copy{background:linear-gradient(90deg, rgba(15,15,10,.66), rgba(15,15,10,.52)); padding:clamp(1.3rem,2vw,1.8rem) clamp(1.4rem,2.2vw,2rem); backdrop-filter:blur(2px); -webkit-backdrop-filter:blur(2px); text-shadow:0 1px 14px rgba(0,0,0,.95), 0 1px 3px rgba(0,0,0,.85);}
    .philo-copy p, .philo-copy .cert-label{color:#f3efe7;}
.philo-copy p{color:rgba(250,248,244,.92); max-width:48ch; font-size:var(--fs-body);}
.philo-copy p + p{margin-top:1rem;}
.cert-row{display:flex; flex-wrap:wrap; gap:.9rem; margin-top:1.8rem; align-items:center;}
.cert-badge{background:var(--paper); padding:.55rem .9rem; display:flex; align-items:center; box-shadow:0 6px 18px rgba(0,0,0,.3); flex-shrink:0;}
.cert-badge img{height:30px; width:auto; max-width:80px; object-fit:contain; display:block;}
.cert-row .cert-label{font-family:'IBM Plex Mono',monospace; font-size:.68rem; letter-spacing:.05em; text-transform:uppercase; color:var(--paper); background:rgba(21,20,15,.55); padding:.5em .8em; backdrop-filter:blur(3px);}

/* ============ VIGNOBLE ============ */
.terroir{background:var(--paper);}
.terroir-top{display:grid; grid-template-columns:1fr 1fr; gap:clamp(2.5rem,5vw,5rem); align-items:center; margin-bottom:clamp(4rem,7vw,6rem);}
.terroir-media img{width:100%; height:clamp(320px,38vw,460px); object-fit:cover;}
.terroir-body p{color:var(--ink-soft); max-width:50ch; margin-top:1.4rem;}
.village-row{display:flex; flex-wrap:wrap; gap:0 1.4rem; margin-top:1.8rem; font-family:'IBM Plex Mono',monospace; font-size:.74rem; letter-spacing:.05em; color:var(--ink-soft);}
.village-row span:not(:last-child)::after{content:"／"; margin-left:1.4rem; color:var(--line);}

.cru-list{border-top:1px solid var(--line);}
.cru-row{display:grid; grid-template-columns:.5fr 2.5fr 1.6fr; gap:2rem; padding:clamp(2rem,4vw,3rem) 0; border-bottom:1px solid var(--line); align-items:baseline;}
.cru-row-num{font-family:'IBM Plex Mono',monospace; font-size:.8rem; color:var(--gold);}
.cru-row h3{font-size:var(--fs-h3); margin-bottom:.7rem;}
.cru-row-alt{font-family:'IBM Plex Mono',monospace; font-size:.7rem; color:var(--stone); text-transform:uppercase; letter-spacing:.05em; margin-bottom:.9rem;}
.cru-row p{color:var(--ink-soft); max-width:56ch;}
.cru-row-tags{font-family:'IBM Plex Mono',monospace; font-size:.72rem; color:var(--ink-soft); text-align:right;}
.cru-row-tags span{display:block;}
.cru-row-tags span + span{margin-top:.4rem;}

/* ============ CAVE ============ */
.cave{background:var(--ink); color:var(--paper);}
.cave{background:var(--ink); color:var(--paper); position:relative; overflow:hidden;}
.cave-bg{position:absolute; inset:0; z-index:0;}
.cave-bg img{width:100%; height:100%; object-fit:cover; opacity:.4;}
.cave-bg::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(21,20,15,.55) 0%, rgba(21,20,15,.88) 55%, var(--ink) 100%);}
.cave .wrap{position:relative; z-index:1;}
.cave .wrap{position:relative; z-index:2;}
    .cave-top, .cave .process-row{text-shadow:0 1px 16px rgba(21,20,15,.95), 0 1px 4px rgba(21,20,15,.9);}
    .cave-top{display:flex; justify-content:space-between; align-items:flex-end; gap:2rem; flex-wrap:wrap; margin-bottom:clamp(2.5rem,5vw,4rem);}
.cave-top h2{color:var(--paper); max-width:16ch;}
.cave-media-wrap{position:relative; margin-bottom:clamp(3rem,5vw,5rem);}
    .cave-bleed{position:absolute; left:0; width:100%; height:auto; top:42%; transform:translateY(-42%); z-index:0; opacity:.46; pointer-events:none; -webkit-mask-image:linear-gradient(180deg, transparent 3%, #000 20%, #000 74%, transparent 95%); mask-image:linear-gradient(180deg, transparent 3%, #000 20%, #000 74%, transparent 95%);}
    .cave-media{position:relative; z-index:1; overflow:hidden; border:1px solid rgba(250,248,244,.07);}
.cave-media img{width:100%; height:clamp(420px,54vw,720px); object-fit:cover; object-position:50% 46%; display:block;}
.cave-media::after{content:""; position:absolute; left:0; right:0; bottom:0; height:18%; background:linear-gradient(0deg, rgba(21,20,15,.55), transparent); pointer-events:none;}
.cave-media .cap{position:absolute; left:1.4rem; bottom:1.2rem; font-family:'IBM Plex Mono',monospace; font-size:.66rem; letter-spacing:.05em; text-transform:uppercase; color:rgba(250,248,244,.9);}
.process-row{display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid rgba(250,248,244,.16);}
.process-cell{padding:clamp(1.8rem,2.5vw,2.4rem) clamp(1.2rem,2vw,1.8rem) 0; border-right:1px solid rgba(250,248,244,.16);}
.process-cell:last-child{border-right:none;}
.process-cell .n{font-family:'IBM Plex Mono',monospace; font-size:.72rem; color:var(--gold); display:block; margin-bottom:1rem;}
.process-cell h4{font-family:'Fraunces',serif; font-weight:440; font-size:1.1rem; color:var(--paper); margin-bottom:.7rem;}
.process-cell p{font-size:.85rem; color:rgba(250,248,244,.62); line-height:1.6;}

/* ============ COURS D'OENOLOGIE ============ */
.course{background:var(--paper-dim); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.course-grid{display:grid; grid-template-columns:1.3fr .9fr; gap:clamp(2.5rem,5vw,5rem); align-items:center;}
.course h2{margin-top:1rem; max-width:15ch;}
.course-gift{margin-top:.9rem; font-family:'Fraunces',serif; font-style:italic; font-size:1.05rem; color:var(--accent);}
.course-lead{margin-top:1rem; color:var(--ink-soft); max-width:44ch; font-size:var(--fs-lead);}
.course-list{margin-top:1.8rem; display:grid; gap:.6rem; font-family:'IBM Plex Mono',monospace; font-size:.82rem; color:var(--ink-soft);}
.course-list li{display:flex; gap:.9rem;}
.course-list li::before{content:"／"; color:var(--gold);}
.course-panel{border:1px solid var(--ink); padding:clamp(2rem,3vw,2.6rem); text-align:center;}
.course-price{font-family:'Fraunces',serif; font-weight:400; font-size:clamp(3rem,5vw,3.8rem); line-height:1;}
.course-price sup{font-size:.4em; top:-1.3em;}
.course-price-sub{font-family:'IBM Plex Mono',monospace; font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; color:var(--stone); margin-top:.7rem;}
.course-dates{margin-top:1.5rem; padding-top:1.5rem; border-top:1px solid var(--line); font-size:.82rem; color:var(--ink-soft);}
.course-panel .btn{margin-top:1.7rem; width:100%; justify-content:center;}
.course-duration{font-family:'IBM Plex Mono',monospace; font-size:.9rem; letter-spacing:.12em; color:var(--accent); margin-bottom:.9rem;}
.course-duration span{opacity:.55;}
.course-phone{margin-top:1rem; font-family:'IBM Plex Mono',monospace; font-size:.7rem; letter-spacing:.04em; color:var(--ink-soft); display:flex; flex-direction:column; gap:.25rem;}
.course-phone a{color:var(--ink); border-bottom:1px solid var(--line); align-self:center; padding-bottom:.15em;}
.course-phone a:hover{border-color:var(--ink);}

/* --- Calendrier des séances --- */
.calendar{margin-top:clamp(3rem,5vw,4.5rem); border-top:1px solid var(--line); padding-top:clamp(2rem,3.5vw,3rem);}
.cal-head{display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:1rem; margin-bottom:2rem;}
.cal-head h3{font-size:var(--fs-h3);}
.cal-head p{font-family:'IBM Plex Mono',monospace; font-size:.72rem; letter-spacing:.04em; color:var(--ink-soft);}
.cal-count{color:var(--accent); font-weight:600;}
.cal-info{display:flex; flex-direction:column; align-items:flex-end; gap:.6rem;}
.cal-legend{display:flex; gap:1rem; flex-wrap:wrap;}
.cal-legend li{display:flex; align-items:center; gap:.4rem; font-family:'IBM Plex Mono',monospace; font-size:.64rem; letter-spacing:.04em; text-transform:uppercase; color:var(--ink-soft);}
.lg{width:9px; height:9px; display:block; flex-shrink:0;}
.lg-open{background:var(--accent);}
.lg-full{background:var(--wine);}
.lg-past{background:var(--line); border:1px solid var(--stone);}
@media (max-width:640px){ .cal-info{align-items:flex-start;} }
.cal-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(168px,1fr)); gap:1px; background:var(--line); border:1px solid var(--line);}
.cal-month{background:var(--paper); padding:1.1rem 1.1rem 1.3rem;}
.cal-month h4{font-family:'IBM Plex Mono',monospace; font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; color:var(--accent); margin-bottom:.9rem; font-weight:500;}
.cal-month ul{display:grid; gap:.55rem;}
.slot{display:flex; align-items:baseline; gap:.5rem; flex-wrap:wrap; font-size:.83rem; line-height:1.35;}
.slot .d{color:var(--ink);}
.slot .t{font-family:'IBM Plex Mono',monospace; font-size:.72rem; color:var(--ink-soft);}
.slot.full{opacity:.5;}
.slot.past{opacity:.38;}
.slot.past .d{color:var(--stone); text-decoration:none;}
.slot.past .t{color:var(--stone);}
.slot.past .badge-full{display:none;}
.cal-month.past-month h4{color:var(--stone);}
.slot.full .d{text-decoration:line-through;}
.slot .badge{font-family:'IBM Plex Mono',monospace; font-size:.56rem; letter-spacing:.08em; text-transform:uppercase; background:var(--wine); color:var(--paper); padding:.18em .45em; white-space:nowrap;}
.cal-more{margin-top:1.4rem; font-family:'Fraunces',serif; font-style:italic; font-size:.95rem; color:var(--ink-soft);}

/* ============ BOUTIQUE ============ */
/* ============ AVIS ============ */
.reviews{background:var(--ink); color:var(--paper);}
.rev-head{display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-end; gap:2rem; margin-bottom:clamp(2.2rem,4vw,3.2rem);}
.rev-head h2{color:var(--paper); margin-top:1rem; max-width:14ch;}
.rev-head .eyebrow{color:rgba(250,248,244,.55);}
.rev-head .eyebrow .num{color:var(--gold);}
.rev-lead{max-width:40ch; color:rgba(250,248,244,.72); font-size:var(--fs-lead);}
.rev-scores{display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-bottom:1.6rem;}
.rev-score{display:flex; align-items:flex-start; gap:1.1rem; padding:clamp(1.3rem,2.2vw,1.8rem); border:1px solid var(--line-soft); background:rgba(250,248,244,.04); transition:border-color .3s ease, background .3s ease, transform .4s var(--ease);}
.rev-score:hover{border-color:var(--gold); background:rgba(250,248,244,.07); transform:translateY(-2px);}
.score-logo svg, .plat-logo svg, .sc-logo svg{width:62%; height:62%; display:block;}
.score-logo.t svg, .plat-logo.t svg, .sc-logo.ta svg{width:74%; color:#0d1b12;}
.score-logo.g, .plat-logo.g{background:#fff;}
.score-logo.t, .plat-logo.t, .sc-logo.ta{background:#34E0A1;}
.score-logo{width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0; font-family:'Instrument Sans',sans-serif; font-weight:700; font-size:1.05rem;}
.score-logo.g{background:#fff; color:#4285F4;}
.score-logo.t{background:#34E0A1; color:#0d1b12;}
.score-main{display:flex; flex-direction:column; gap:.35rem;}
.score-num{font-family:'Fraunces',serif; font-weight:500; font-size:clamp(2.4rem,4vw,3.4rem); line-height:1; color:var(--gold);}
.score-num span{font-size:.3em; color:var(--stone); margin-left:.12em;}
.stars.big{font-size:1.05rem; gap:.18rem;}
.score-meta{font-family:'IBM Plex Mono',monospace; font-size:.74rem; letter-spacing:.04em; color:rgba(250,248,244,.78);}
.score-meta strong{color:var(--paper); font-weight:600;}
.score-meta .sep{color:var(--stone); margin:0 .3em;}
.score-rank{display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; margin-top:.3rem; font-family:'IBM Plex Mono',monospace; font-size:.68rem; letter-spacing:.03em; color:rgba(250,248,244,.7);}
.rank-badge{background:var(--gold); color:var(--ink); font-weight:600; padding:.2em .5em; font-size:.72rem;}
@media (max-width:760px){ .rev-scores{grid-template-columns:1fr;} }
.rev-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line-soft); border:1px solid var(--line-soft);}
.rev-card{background:var(--ink); padding:clamp(1.5rem,2.5vw,2rem); display:flex; flex-direction:column; gap:1rem;}
.stars{display:flex; gap:.15rem; color:var(--gold); font-size:.9rem; letter-spacing:.06em;}
.rev-card blockquote{margin:0; font-family:'Fraunces',serif; font-size:clamp(1.05rem,1.3vw,1.25rem); line-height:1.4; color:var(--paper);}
.rev-card footer{margin-top:auto; padding-top:.9rem; border-top:1px solid var(--line-soft); display:flex; flex-direction:column; gap:.15rem;}
.rev-card footer strong{font-size:.85rem; font-weight:500; color:var(--paper);}
.rev-card footer span{font-family:'IBM Plex Mono',monospace; font-size:.66rem; letter-spacing:.06em; text-transform:uppercase; color:var(--stone);}
.rev-platforms{display:grid; grid-template-columns:repeat(auto-fit,minmax(228px,1fr)); gap:1rem; margin-top:1.6rem;}
.plat{display:flex; align-items:center; gap:.9rem; padding:1rem 1.2rem; border:1px solid var(--line-soft); transition:border-color .3s ease, background .3s ease, transform .4s var(--ease);}
.plat:hover{border-color:var(--gold); background:rgba(250,248,244,.05); transform:translateY(-2px);}
.plat-logo{width:32px; height:32px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0; font-family:'Instrument Sans',sans-serif; font-weight:700; font-size:.95rem;}
.plat-logo.g{background:#fff; color:#4285F4;}
.plat-logo.t{background:#34E0A1; color:#0d1b12;}
.plat-logo.f{background:#1877F2; color:#fff;}
.plat-logo.i{background:linear-gradient(45deg,#F58529,#DD2A7B 45%,#8134AF 75%,#515BD4); color:#fff;}
.plat-logo.k{background:#FF690F; color:#fff; font-size:.9rem; letter-spacing:.02em;}
.plat-body{display:flex; flex-direction:column; gap:.15rem; flex-grow:1; min-width:0;}
.plat-body strong{font-family:'Fraunces',serif; font-weight:500; font-size:.95rem; color:var(--paper);}
.plat-stars{font-size:.72rem; letter-spacing:.08em;}
.plat-meta{font-family:'IBM Plex Mono',monospace; font-size:.66rem; letter-spacing:.03em; color:var(--stone);}
.plat > .icon{width:14px; height:14px; color:var(--stone); flex-shrink:0; transition:transform .35s var(--ease);}
.plat:hover > .icon{transform:translateX(3px); color:var(--gold);}
@media (max-width:900px){ .rev-grid, .rev-platforms{grid-template-columns:1fr;} }

/* ============ BOUTIQUE ============ */
.shop{background:var(--paper);}
.shop-head{display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-end; gap:2rem; margin-bottom:2.6rem;}
.shop-head h2{margin-top:1rem; max-width:18ch;}
.shop-head-lead{max-width:40ch; color:var(--ink-soft); margin-top:1.2rem;}
.shop-filters{display:flex; flex-wrap:wrap; gap:0; margin:2.8rem 0 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.filter-btn{
  font-family:'IBM Plex Mono',monospace; font-size:.72rem; letter-spacing:.06em; text-transform:uppercase;
  padding:1em 1.3em; color:var(--ink-soft); border-right:1px solid var(--line); transition:all .3s ease;
}
.filter-btn:hover{color:var(--ink); background:var(--paper-dim);}
.filter-btn.active{background:var(--ink); color:var(--paper); border-color:var(--ink);}
.gamme-block{margin-bottom:clamp(3rem,5vw,4.5rem);}
.gamme-head{display:flex; align-items:baseline; gap:1.2rem; margin-bottom:1.8rem; flex-wrap:wrap; padding-bottom:1rem; border-bottom:1px solid var(--line);}
.gamme-head h3{font-size:var(--fs-h3);}
.gamme-head p{font-size:.85rem; color:var(--stone); font-style:italic; font-family:'Fraunces',serif;}
.product-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(258px,1fr)); gap:1px; background:transparent;}
/* Le filet entre fiches est porte par chaque carte : une gamme comptant
   moins de fiches que de colonnes ne laisse plus de bloc gris en bout de ligne. */
.product-card{box-shadow:0 0 0 1px var(--line);}
.product-card{background:var(--paper); display:flex; flex-direction:column; position:relative; transition:background .3s ease;}
.product-card:hover{background:var(--paper-dim);}
.product-photo{
  height:238px; display:flex; align-items:center; justify-content:center; padding:1.1rem; position:relative; flex-shrink:0; overflow:hidden;
  border-bottom:1px solid var(--line);
  background:#FFFFFF;
}
.product-photo img{
  /* Packshots déjà détourés et harmonisés en amont (fond blanc, même cadrage,
     même luminosité) : aucun rattrapage CSS n'est nécessaire ici. */
  position:relative; z-index:1;
  max-height:100%; max-width:88%; object-fit:contain;
}
.product-card:hover .product-photo img{transform:scale(1.04); transition:transform .6s var(--ease);}
.product-photo-placeholder{width:52px; height:52px; color:var(--stone); position:relative; z-index:1;}
.product-award{position:absolute; top:.8rem; right:.8rem; background:var(--ink); color:var(--gold); font-family:'IBM Plex Mono',monospace; font-size:.6rem; letter-spacing:.02em; text-align:center; padding:.4em .6em; line-height:1.35;}
.product-body{padding:1.5rem 1.4rem 1.5rem; display:flex; flex-direction:column; flex-grow:1;}
.product-top{display:flex; justify-content:space-between; align-items:flex-start; gap:.6rem; margin-bottom:.8rem;}
.product-tag{font-family:'IBM Plex Mono',monospace; font-size:.62rem; letter-spacing:.06em; text-transform:uppercase; color:var(--accent);}
.product-vintage{font-family:'IBM Plex Mono',monospace; font-size:.66rem; color:var(--stone);}
.product-name{font-family:'Fraunces',serif; font-weight:440; font-size:1.15rem; margin-bottom:.6rem; line-height:1.2;}
.sweetness{display:flex; flex-wrap:wrap; align-items:center; gap:.15em .1em; margin-bottom:.7rem; font-family:'IBM Plex Mono',monospace; font-size:.62rem; letter-spacing:.04em; text-transform:uppercase; color:var(--ink-soft);}
.sw-step{opacity:.34; white-space:nowrap;}
.sw-step:not(:last-child)::after{content:"·"; margin:0 .4em; opacity:.6;}
.sw-step.on{opacity:1; color:var(--accent); font-weight:600;}
.product-meta{display:flex; flex-wrap:wrap; gap:0 .7rem; margin-bottom:.8rem; font-family:'IBM Plex Mono',monospace; font-size:.64rem; color:var(--ink-soft);}
.product-meta span:not(:last-child)::after{content:"／"; margin-left:.7rem; color:var(--line);}
.product-note{font-size:.82rem; color:var(--ink); line-height:1.5; margin-bottom:.6rem;}
.product-accord{font-size:.76rem; color:var(--ink-soft); line-height:1.45; margin-bottom:1.2rem; flex-grow:1;}
.product-accord strong{color:var(--accent); font-family:'IBM Plex Mono',monospace; font-size:.6rem; letter-spacing:.05em; text-transform:uppercase; display:block; margin-bottom:.2rem;}
.product-bottom{display:flex; align-items:center; justify-content:space-between; gap:.8rem; padding-top:1rem; border-top:1px solid var(--line); margin-top:auto;}
.product-price{font-family:'Fraunces',serif; font-size:1.25rem; color:var(--ink);}
.product-price span{font-size:.6em; color:var(--ink-soft);}
    .product-price s{font-size:.78em; color:var(--ink-soft); margin-right:.3em; text-decoration-thickness:1px;}
.add-btn{display:flex; align-items:center; gap:.5em; font-family:'IBM Plex Mono',monospace; font-size:.68rem; letter-spacing:.04em; text-transform:uppercase; padding:.6em .9em; border:1px solid var(--ink); color:var(--ink); transition:background .3s ease, color .3s ease;}
.add-btn:hover{background:var(--ink); color:var(--paper);}
.add-btn.added{background:var(--accent); border-color:var(--accent); color:var(--paper);}
.add-btn .icon{width:13px; height:13px;}
.shop-cta{margin-top:2.4rem; display:flex; flex-direction:column; align-items:center; gap:.9rem; text-align:center;}
    .shop-cta .btn{min-width:min(320px,100%);}
    .shop-cta-sub{font-size:.82rem; color:var(--ink-soft); margin:0;}

/* ---------- panier ---------- */
.cart-overlay{position:fixed; inset:0; background:rgba(21,20,15,.6); z-index:700; opacity:0; pointer-events:none; transition:opacity .4s ease;}
.cart-overlay.show{opacity:1; pointer-events:auto;}
.cart-drawer{position:fixed; top:0; right:0; bottom:0; width:min(440px,92vw); background:var(--paper); z-index:800; display:flex; flex-direction:column; transform:translateX(100%); visibility:hidden; transition:transform .5s var(--ease), visibility 0s linear .5s; box-shadow:-30px 0 60px rgba(0,0,0,.2);}
.cart-drawer.open{transform:translateX(0); visibility:visible; transition:transform .5s var(--ease), visibility 0s;}
.cart-head{display:flex; align-items:center; justify-content:space-between; padding:1.7rem clamp(1.3rem,3vw,2rem); border-bottom:1px solid var(--line);}
.cart-head h3{font-size:1.3rem;}
.cart-close{width:36px; height:36px; border:1px solid var(--line); display:flex; align-items:center; justify-content:center;}
.cart-close .icon{width:14px; height:14px;}
.cart-items{flex-grow:1; overflow-y:auto; padding:1rem clamp(1.3rem,3vw,2rem);}
.cart-empty{color:var(--ink-soft); font-size:.92rem; padding:2.5rem 0; text-align:center;}
.cart-line{display:flex; gap:1rem; padding:1.1rem 0; border-bottom:1px solid var(--line); align-items:center;}
.cart-line-info{flex-grow:1; min-width:0;}
.cart-line-name{font-family:'Fraunces',serif; font-size:1rem; margin-bottom:.2rem;}
.cart-line-price{font-family:'IBM Plex Mono',monospace; font-size:.74rem; color:var(--ink-soft);}
.qty-stepper{display:flex; align-items:center; border:1px solid var(--line); flex-shrink:0;}
.qty-stepper button{width:26px; height:26px; display:flex; align-items:center; justify-content:center; font-size:1rem; color:var(--ink-soft);}
.qty-stepper button:hover{color:var(--ink);}
.qty-stepper span{width:24px; text-align:center; font-family:'IBM Plex Mono',monospace; font-size:.8rem;}
.cart-line-remove{color:var(--stone); flex-shrink:0;}
.cart-line-remove .icon{width:13px; height:13px;}
.cart-foot{padding:1.5rem clamp(1.3rem,3vw,2rem) 1.8rem; border-top:1px solid var(--line); background:var(--paper-dim);}
.cart-total-row{display:flex; justify-content:space-between; align-items:baseline; margin-bottom:1.3rem;}
.cart-total-row span{font-family:'IBM Plex Mono',monospace; font-size:.76rem; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-soft);}
.cart-total-row strong{font-family:'Fraunces',serif; font-size:1.7rem;}
.cart-age-check{display:flex; align-items:flex-start; gap:.65rem; margin-bottom:1.1rem; cursor:pointer; font-size:.8rem; color:var(--ink); line-height:1.4;}
.cart-age-check input{margin-top:.2rem; width:16px; height:16px; accent-color:var(--accent); flex-shrink:0; cursor:pointer;}
.cart-warning{display:none; align-items:center; gap:.5rem; background:rgba(91,35,49,.08); color:var(--wine); border:1px solid rgba(91,35,49,.25); padding:.6rem .8rem; font-size:.76rem; margin-bottom:.9rem;}
.cart-warning.show{display:flex;}
.cart-warning .icon{width:14px; height:14px; flex-shrink:0;}
.cart-actions{display:grid; gap:.7rem;}
.cart-actions .btn{width:100%; justify-content:center;}
.pay-btn{position:relative;}
.pay-btn:disabled{opacity:.6; cursor:default; transform:none !important;}
.cart-divider{display:flex; align-items:center; gap:.8rem; margin:.3rem 0; font-family:'IBM Plex Mono',monospace; font-size:.64rem; letter-spacing:.05em; text-transform:uppercase; color:var(--stone);}
.cart-divider::before, .cart-divider::after{content:""; flex:1; height:1px; background:var(--line);}
.cart-hint{font-size:.73rem; color:var(--ink-soft); margin-top:1rem; line-height:1.5;}
.cart-secure{display:flex; align-items:center; gap:.4rem; justify-content:center; margin-top:.9rem; font-family:'IBM Plex Mono',monospace; font-size:.64rem; color:var(--stone);}
.cart-secure .icon{width:12px; height:12px;}
.cart-fab{position:fixed; bottom:1.6rem; right:1.6rem; z-index:400; visibility:hidden; background:var(--ink); color:var(--paper); padding:.9rem 1.3rem .9rem 1rem; display:flex; align-items:center; gap:.7rem; box-shadow:var(--shadow); transform:translateY(calc(100% + 2rem)); transition:transform .5s var(--ease);}
.cart-fab.show{transform:translateY(0); visibility:visible;}
.cart-fab .icon{width:17px; height:17px;}
.cart-fab-total{font-family:'IBM Plex Mono',monospace; font-size:.8rem;}

.pay-banner{position:fixed; top:0; left:0; right:0; z-index:1000; transform:translateY(-100%); visibility:hidden; transition:transform .5s var(--ease); background:var(--ink); color:var(--paper); border-bottom:1px solid var(--line-soft);}
.pay-banner.show{transform:translateY(0); visibility:visible;}
.pay-banner.error{background:var(--wine);}
.pay-banner-inner{max-width:1320px; margin:0 auto; padding:1rem clamp(1.25rem,4vw,3.5rem); display:flex; align-items:center; gap:.9rem;}
.pay-banner-inner .icon:first-child{width:19px; height:19px; color:var(--gold); flex-shrink:0;}
.pay-banner-inner p{font-size:.87rem; flex-grow:1; line-height:1.4;}
.pay-banner-close{width:28px; height:28px; flex-shrink:0; display:flex; align-items:center; justify-content:center; opacity:.7;}
.pay-banner-close .icon{width:14px; height:14px;}

/* ---------- repli image cassée ---------- */
.img-missing{display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg, var(--paper-dim), var(--stone));}
.img-missing .img-missing-icon{width:15%; max-width:64px; min-width:28px; color:var(--paper); opacity:.7;}
.dark-section .img-missing, .philosophy .img-missing, .cave .img-missing{background:linear-gradient(135deg, var(--ink), #2a2920);}

/* ============ VISITE ============ */
/* ============ JOURNAL (BLOG) ============ */
.journal{background:var(--paper-dim);}
.journal-filters{display:flex; flex-wrap:wrap; gap:0; margin-bottom:clamp(2.5rem,4vw,3.5rem); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.journal-filters .filter-btn{background:var(--paper-dim);}
.journal-filters .filter-btn:hover{background:var(--paper);}
.journal-head{display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-end; gap:2rem; margin-bottom:clamp(2.5rem,5vw,4rem);}
.journal-head h2{max-width:14ch;}
.journal-lead{max-width:40ch; color:var(--ink-soft); font-size:var(--fs-lead);}
.journal-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line);}
.journal-card{background:var(--paper); padding:clamp(1.7rem,2.5vw,2.2rem); display:flex; flex-direction:column; gap:.9rem; cursor:pointer; transition:background .3s ease;}
.journal-card:hover{background:var(--paper-dim);}
.journal-card:hover h3{color:var(--accent);}
.journal-kicker{font-family:'IBM Plex Mono',monospace; font-size:.64rem; letter-spacing:.08em; text-transform:uppercase; color:var(--accent);}
.journal-card h3{font-family:'Fraunces',serif; font-weight:440; font-size:1.2rem; line-height:1.3; transition:color .3s ease;}
.journal-card p{font-size:.86rem; color:var(--ink-soft); line-height:1.55; flex-grow:1;}
.journal-meta{font-family:'IBM Plex Mono',monospace; font-size:.68rem; color:var(--stone); padding-top:.8rem; border-top:1px solid var(--line);}

.journal-overlay{position:fixed; inset:0; background:rgba(21,20,15,.6); z-index:700; opacity:0; pointer-events:none; transition:opacity .4s ease;}
.journal-overlay.show{opacity:1; pointer-events:auto;}
.journal-reader{
  position:fixed; top:0; right:0; bottom:0; width:min(640px,94vw); background:var(--paper); z-index:800;
  display:flex; flex-direction:column; transform:translateX(100%); visibility:hidden; transition:transform .5s var(--ease), visibility 0s linear .5s; box-shadow:-30px 0 60px rgba(0,0,0,.2);
}
.journal-reader.open{transform:translateX(0); visibility:visible; transition:transform .5s var(--ease), visibility 0s;}
.journal-reader-head{display:flex; align-items:center; justify-content:space-between; padding:1.7rem clamp(1.5rem,3vw,2.6rem); border-bottom:1px solid var(--line); flex-shrink:0;}
.journal-reader-kicker{font-family:'IBM Plex Mono',monospace; font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; color:var(--accent);}
.journal-reader-body{overflow-y:auto; padding:0 clamp(1.5rem,3vw,2.6rem) 3rem;}
.journal-reader-body h2{font-size:clamp(1.5rem,2.2vw,2.1rem); margin-bottom:1.4rem; max-width:20ch;}
.jr-notice{font-family:'IBM Plex Mono',monospace; font-size:.7rem; letter-spacing:.03em; color:var(--ink-soft); background:var(--paper-dim); padding:.7rem .9rem; margin-bottom:1.4rem;}
.journal-reader-body .jr-meta{font-family:'IBM Plex Mono',monospace; font-size:.72rem; color:var(--stone); margin-bottom:1.8rem; padding-bottom:1.8rem; border-bottom:1px solid var(--line);}
.journal-reader-body p{color:var(--ink); line-height:1.75; margin-bottom:1.15rem; max-width:60ch;}
.journal-reader-body p:first-of-type::first-letter{font-family:'Fraunces',serif; font-size:2.6em; float:left; line-height:.85; padding:.06em .1em 0 0; color:var(--accent); font-weight:500;}
.journal-reader-body strong{font-weight:600; color:var(--ink);}
.journal-reader-cta{margin-top:2rem; padding-top:2rem; border-top:1px solid var(--line);}

.visit{background:var(--ink); color:var(--paper);}
.visit-grid{display:grid; grid-template-columns:1fr 1fr; gap:clamp(2.5rem,5vw,4.5rem); align-items:stretch;}
.visit-info h2{color:var(--paper); margin-top:1rem; margin-bottom:1.6rem; max-width:14ch;}
.visit-info > p{color:rgba(250,248,244,.75); max-width:44ch; margin-bottom:2.2rem;}
.map-link{border-bottom:1px solid rgba(250,248,244,.28); transition:border-color .3s ease, color .3s ease;}
.map-link:hover{border-color:var(--gold); color:var(--gold);}
.map-cue{display:flex; align-items:center; gap:.35em; margin-top:.5rem; font-family:'IBM Plex Mono',monospace; font-size:.66rem; letter-spacing:.06em; text-transform:uppercase; color:var(--gold); border:0;}
.map-cue .icon{width:12px; height:12px;}
.footer-col .map-link{border-bottom-color:rgba(156,149,135,.35);}
a.visit-map-pin{transition:border-color .3s ease;}
a.visit-map-pin:hover{border-color:var(--gold);}
.visit-detail{display:flex; gap:1rem; padding:1.3rem 0; border-top:1px solid var(--line-soft);}
.visit-detail:last-of-type{border-bottom:1px solid var(--line-soft);}
.visit-detail .icon{width:18px; height:18px; color:var(--gold); flex-shrink:0; margin-top:.15rem;}
.visit-detail h4{font-family:'IBM Plex Mono',monospace; font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; color:var(--stone); margin-bottom:.4rem;}
.visit-detail p, .visit-detail a{font-size:.94rem; color:var(--paper); line-height:1.5;}
.visit-detail a:hover{color:var(--gold);}
.visit-ctas{display:flex; flex-wrap:wrap; gap:1rem; margin-top:2rem;}
.visit-social{display:flex; gap:.9rem; margin-top:2.4rem;}
.social-btn{width:40px; height:40px; border:1px solid var(--line-soft); display:flex; align-items:center; justify-content:center; transition:border-color .3s ease;}
.social-btn:hover{border-color:var(--gold);}
.social-btn .icon{width:16px; height:16px; color:var(--paper);}
.social-cards{display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-top:2.4rem;}
.social-card{
  display:flex; flex-direction:column; gap:.7rem; padding:1.2rem 1.3rem 1.1rem;
  border:1px solid var(--line-soft); background:rgba(250,248,244,.045);
  transition:border-color .3s ease, background .3s ease, transform .4s var(--ease);
}
.social-card:hover{border-color:var(--gold); background:rgba(250,248,244,.08); transform:translateY(-2px);}
.sc-top{display:flex; align-items:center; gap:.7rem;}
.sc-logo{width:34px; height:34px; display:flex; align-items:center; justify-content:center; flex-shrink:0; border-radius:50%;}
.sc-logo .icon{width:17px; height:17px;}
.sc-logo.ta{background:#34E0A1; color:#0d1b12;}
.sc-logo.fb{background:#1877F2; color:#fff;}
.sc-id{display:flex; flex-direction:column; line-height:1.25;}
.sc-id strong{font-family:'Fraunces',serif; font-weight:500; font-size:.98rem; color:var(--paper);}
.sc-meta{font-family:'IBM Plex Mono',monospace; font-size:.66rem; letter-spacing:.04em; color:var(--stone);}
.sc-rank{display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; font-size:.78rem; color:rgba(250,248,244,.8);}
.sc-badge{font-family:'IBM Plex Mono',monospace; font-size:.64rem; letter-spacing:.06em; background:var(--gold); color:var(--ink); padding:.2em .5em; font-weight:600;}
.sc-quote{font-family:'Fraunces',serif; font-style:italic; font-size:.95rem; color:var(--paper);}
.sc-post{font-size:.8rem; line-height:1.5; color:rgba(250,248,244,.72);}
.sc-tags{font-family:'IBM Plex Mono',monospace; font-size:.68rem; color:var(--gold);}
.sc-cta{margin-top:auto; padding-top:.6rem; display:inline-flex; align-items:center; gap:.45em; font-family:'IBM Plex Mono',monospace; font-size:.68rem; letter-spacing:.06em; text-transform:uppercase; color:var(--paper); border-top:1px solid var(--line-soft);}
.sc-cta .icon{width:.85em; height:.85em; transition:transform .35s var(--ease);}
.social-card:hover .sc-cta .icon{transform:translateX(3px);}
@media (max-width:520px){ .social-cards{grid-template-columns:1fr;} }
.visit-map{position:relative; min-height:340px; border:1px solid var(--line-soft);}
.visit-map iframe{width:100%; height:100%; min-height:340px; border:0; filter:grayscale(.55) invert(.94) contrast(.9);}
.visit-map-pin{position:absolute; top:1.4rem; left:1.4rem; background:var(--ink); color:var(--paper); border:1px solid var(--line-soft); padding:.8rem 1.1rem; font-family:'IBM Plex Mono',monospace; font-size:.7rem; letter-spacing:.04em; display:flex; align-items:center; gap:.6rem;}
.visit-map-pin .icon{width:13px; height:13px; color:var(--gold);}

/* ============ FOOTER ============ */
.footer{background:var(--ink); color:var(--stone); padding:0 0 2rem;}
.footer-top{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:2.5rem; padding:clamp(3rem,5vw,4.5rem) 0; border-top:1px solid var(--line-soft);}
.footer-brand{margin-bottom:1.3rem; line-height:0;}
.footer-logo{display:block; width:96px; height:auto; filter:invert(1); opacity:.92;}
.footer-col p{font-size:.86rem; color:rgba(156,149,135,.9); max-width:32ch; line-height:1.6;}
.footer-col h5{font-family:'IBM Plex Mono',monospace; font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--paper); margin-bottom:1.1rem;}
.footer-col ul{display:grid; gap:.65rem;}
.footer-col a{font-size:.86rem; color:var(--stone); transition:color .3s ease;}
.footer-col a:hover{color:var(--gold);}
.footer-partners{padding:1.8rem 0; border-top:1px solid var(--line-soft); display:flex; flex-wrap:wrap; align-items:baseline; gap:.6rem 1.6rem;}
.footer-partners-label{font-family:'IBM Plex Mono',monospace; font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--paper); flex-shrink:0;}
.footer-partners-links{display:flex; flex-wrap:wrap; gap:.4rem 1.4rem;}
.footer-partners-links a{font-size:.82rem; color:var(--stone); transition:color .3s ease;}
.footer-partners-links a:hover{color:var(--gold);}
.footer-partners-links a span{font-family:'IBM Plex Mono',monospace; font-size:.66rem; color:rgba(156,149,135,.65); margin-left:.3em;}
.footer-partners-credit{width:100%; font-size:.76rem; color:rgba(156,149,135,.75); margin-top:.2rem;}
.footer-bottom{display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem; padding-top:1.8rem; border-top:1px solid var(--line-soft); font-size:.75rem; color:rgba(156,149,135,.75);}
.footer-legal{max-width:60ch; line-height:1.6;}

/* ============ RESPONSIVE ============ */
/* ============ CORRECTIFS MOBILE ============ */
@media (max-width:760px){
  /* Philosophie : sur mobile le texte est plus haut que la photo. En
     superposition absolue il debordait au-dessus de la section precedente
     (texte blanc sur fond clair, illisible). On repasse en flux normal :
     photo au-dessus, texte en-dessous sur le fond sombre de la section. */
  .philo-media{height:44vh; min-height:260px;}
  .philo-media::after{background:linear-gradient(0deg, var(--ink) 0%, rgba(21,20,15,.25) 55%, transparent 85%);}
  .philo-overlay{position:static; padding:0 0 clamp(2.5rem,6vw,3.5rem);}
  .philo-overlay .wrap{margin-top:-2.5rem;}
  .philo-copy{background:transparent; backdrop-filter:none; -webkit-backdrop-filter:none; padding:0;}
  .philo-line{text-shadow:none;}
}

@media (max-width:760px){
  /* Hero : sur un ecran court (barre d'URL Android) ou dans une langue plus
     verbeuse (DE, ES, RU, NL), le contenu remontait sous la barre de
     navigation. On reserve la hauteur de la barre et on laisse la section
     grandir au lieu de comprimer vers le haut. */
  .hero{padding-top:5.6rem; justify-content:flex-end;}
  .hero-inner{padding-top:1rem;}
}

/* Ecran court (barre d'URL visible) : on resserre la typo pour que les deux
   boutons d'action restent visibles sans defiler, meme dans les langues
   les plus verbeuses (allemand, espagnol, russe). */
@media (max-width:760px) and (max-height:700px){
  .hero-line{font-size:clamp(1.7rem, 6.6vw, 2.4rem); margin-bottom:.9rem;}
  .hero-sub{font-size:.92rem; line-height:1.5;}
  .hero-row{padding-top:1rem; gap:1rem;}
  .hero-inner{padding-bottom:1.4rem;}
  .hero-facts{margin-bottom:.2rem;}
  .hero-ctas{margin-top:1rem;}
}

@media (max-width:640px){
  /* Hero : le titre et les boutons debordaient hors de l'ecran a droite. */
  .hero-line{max-width:100%; font-size:clamp(2rem, 8.2vw, 3.2rem); overflow-wrap:break-word;}
  .hero-sub{max-width:100%;}
  .hero-inner, .hero-row, .hero-row > div{min-width:0; max-width:100%;}
  .hero-ctas{flex-direction:column; align-items:stretch; gap:.7rem;}
  .hero-ctas .btn{justify-content:center; white-space:normal; text-align:center;}
  .hero-facts{font-size:.66rem; gap:.4em 1rem;}
  .hero-scroll{display:none;}
  .btn{white-space:normal;}
}

@media (max-width:980px){
  .nav-links{display:none;} .nav-burger{display:flex;}
  .manifesto-grid{grid-template-columns:1fr; gap:2rem;}
  .domaine-grid{grid-template-columns:1fr;}
  .philo-overlay .wrap{grid-template-columns:1fr; gap:1.4rem;}
  .terroir-top{grid-template-columns:1fr;}
  .cru-row{grid-template-columns:1fr; gap:.6rem;}
  .cru-row-tags{text-align:left;}
  .process-row{grid-template-columns:1fr 1fr;}
  .process-cell{border-bottom:1px solid rgba(250,248,244,.16); padding-bottom:1.6rem; margin-bottom:.4rem;}
  .course-grid{grid-template-columns:1fr;}
  .visit-grid{grid-template-columns:1fr;}
  .footer-top{grid-template-columns:1fr 1fr; row-gap:2.2rem;}
  .journal-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:640px){
  .domaine-facts{flex-wrap:wrap; gap:1.4rem;}
  .process-row{grid-template-columns:1fr;}
  .footer-top{grid-template-columns:1fr;}
  .hero-row{flex-direction:column; align-items:flex-start;}
  .journal-grid{grid-template-columns:1fr;}
}

/* ============ AJOUTS MOBILE + QUANTITE ============ */
.qty-pick{display:inline-flex; align-items:center; border:1px solid var(--line); background:var(--paper); flex:0 0 auto;}
.qty-pick button{display:flex; align-items:center; justify-content:center; width:2.1rem; height:2.1rem; color:var(--ink-soft); background:none; border:0; cursor:pointer; transition:color .25s ease, background .25s ease;}
.qty-pick button:hover{color:var(--paper); background:var(--ink);}
.qty-pick button .icon{width:.72em; height:.72em;}
.qty-pick input{width:2.3rem; height:2.1rem; text-align:center; border:0; border-left:1px solid var(--line); border-right:1px solid var(--line); background:transparent; color:var(--ink); font-family:'IBM Plex Mono',monospace; font-size:.78rem; -moz-appearance:textfield; appearance:textfield;}
.qty-pick input:focus{outline:none; background:var(--paper-dim);}
.qty-pick input::-webkit-outer-spin-button,.qty-pick input::-webkit-inner-spin-button{-webkit-appearance:none; margin:0;}
.product-bottom{flex-wrap:wrap; row-gap:.8rem;}
.product-bottom .product-price{margin-right:auto;}

/* Les ancres ne doivent plus passer sous la barre de navigation fixe */
[id]{scroll-margin-top:clamp(74px,11vw,104px);}

@media (max-width:820px){
  /* Le calque de la photo de cave en transparence debordait sur le texte */
  /* Halo : la meme photo, agrandie et fondue, deborde du cadre.
     Le cadre reste au-dessus, donc la photo nette n'est jamais voilee. */
  .cave-bleed{display:block; left:50%; top:50%; width:124%; max-width:none; height:auto;
    transform:translate(-50%,-50%); opacity:.26; filter:saturate(.68) contrast(.9);
    -webkit-mask-image:radial-gradient(112% 70% at 50% 50%, #000 22%, rgba(0,0,0,.4) 50%, transparent 78%);
    mask-image:radial-gradient(112% 70% at 50% 50%, #000 22%, rgba(0,0,0,.4) 50%, transparent 78%);}
  .cave-media img{height:clamp(300px,64vw,460px);}
  .cave-media::after{height:24%;}
  .cave-media-wrap{margin:3.2rem 0 8.5rem;}
  .cave-top{margin-bottom:4.6rem;}
  .cave-bg img{opacity:.22;}
  .cave-bg::after{background:linear-gradient(180deg, rgba(21,20,15,.7) 0%, rgba(21,20,15,.93) 45%, var(--ink) 100%);}
  .cave-top,.cave .process-row{text-shadow:none;}

  /* Les flous temps reel font saccader le defilement sur mobile */
  .nav.solid{-webkit-backdrop-filter:none; backdrop-filter:none; background:rgba(250,248,244,.985);}
  .philo-copy{-webkit-backdrop-filter:none; backdrop-filter:none; background:linear-gradient(90deg,rgba(15,15,10,.82),rgba(15,15,10,.72));}
  .cert-row .cert-label{-webkit-backdrop-filter:none; backdrop-filter:none; background:rgba(21,20,15,.74);}
  .domaine-media img,.philo-media img{will-change:auto;}

  /* Filtres boutique : une seule ligne qui defile horizontalement */
  .shop-filters{flex-wrap:nowrap; overflow-x:auto; overflow-y:hidden; scrollbar-width:none; -ms-overflow-style:none;
    margin:2rem -1.25rem 1.7rem; padding:0 1.25rem; -webkit-overflow-scrolling:touch; scroll-snap-type:x proximity;}
  .shop-filters::-webkit-scrollbar{display:none;}
  .filter-btn{flex:0 0 auto; white-space:nowrap; padding:1em 1.15em; scroll-snap-align:start;}
  .filter-btn:last-child{border-right:0;}

  .qty-pick button{width:2.4rem; height:2.4rem;}
  .qty-pick input{width:2.6rem; height:2.4rem; font-size:.85rem;}
  .add-btn{padding:.75em 1em;}
}


/* ---- Lisibilite des numeros (menus + etapes de vinification) ---- */
.nav-links a{opacity:.9;}
.nav-links .num{color:var(--gold-2); font-size:.72rem; font-weight:500; letter-spacing:.04em;}
.nav.solid .nav-links .num{color:var(--gold-ink);}
.mobile-menu a .num{font-size:1.05rem; font-weight:600; color:var(--gold-2); letter-spacing:.06em; min-width:2.6ch;}

.process-cell .n{display:flex; align-items:center; gap:.6em; margin-bottom:1.05rem;
  font-family:'IBM Plex Mono',monospace; color:var(--gold-2);}
.process-cell .n-word{font-size:.6rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(250,248,244,.6);}
.process-cell .n-fig{font-size:1.2rem; font-weight:600; line-height:1; color:var(--gold-2);}
.process-cell .n::after{content:""; flex:1 1 auto; height:1px; min-width:1.2rem;
  background:linear-gradient(90deg, rgba(217,174,96,.6), rgba(250,248,244,.08));}
.process-cell h4{color:var(--paper);}
@media (max-width:820px){
  .process-cell .n-fig{font-size:1.35rem;}
  .process-cell .n-word{font-size:.63rem;}
}


.cal-empty{grid-column:1 / -1; font-family:'Instrument Sans',sans-serif; font-size:1rem; color:var(--ink-soft); max-width:46ch; margin:0; padding:1.4rem 0;}

/* ---- CTA boutique permanent ---- */
.shop-fab{position:fixed; bottom:1.6rem; left:1.6rem; z-index:400;
  display:flex; align-items:center; gap:.6rem;
  background:var(--ink); color:var(--paper); box-shadow:var(--shadow);
  padding:.9rem 1.25rem; white-space:nowrap;
  font-family:'IBM Plex Mono',monospace; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase;
  visibility:hidden; transform:translateY(calc(100% + 2.4rem));
  transition:transform .5s var(--ease), background .35s ease, color .35s ease;}
.shop-fab.show{transform:translateY(0); visibility:visible;}
.shop-fab:hover{background:var(--accent); color:var(--paper);}
.shop-fab .icon{width:1em; height:1em; flex-shrink:0;}
.shop-fab-arrow{transition:transform .4s var(--ease);}
.shop-fab:hover .shop-fab-arrow{transform:translateX(3px);}
@media (max-width:820px){
  .shop-fab{bottom:1.05rem; left:1.05rem; padding:.85rem 1rem; font-size:.66rem; gap:.5rem;}
  .cart-fab{bottom:1.05rem; right:1.05rem;}
}
@media (max-width:360px){
  .shop-fab span{display:none;}
}

/* ---- Detail deporte dans le panneau lateral ---- */
.detail-store{display:none;}
.detail-btn{margin-top:clamp(1.6rem,3vw,2.2rem); cursor:pointer;}
.cave-more{margin-top:clamp(.5rem,2vw,1rem);}
.journal-reader-body .cru-list,.journal-reader-body .process-row{display:block; border:0; margin-top:1.4rem;}
.journal-reader-body .cru-row,.journal-reader-body .process-cell{
  border:0; border-top:1px solid var(--line); padding:1.4rem 0 0; margin-top:1.4rem; display:block;}
.journal-reader-body .cru-row:first-child,.journal-reader-body .process-cell:first-child{border-top:0; margin-top:0;}
.journal-reader-body .process-cell h4,.journal-reader-body .cru-row h3{color:var(--ink); margin-bottom:.5rem;}
.journal-reader-body .process-cell p,.journal-reader-body .cru-row p{color:var(--ink-soft);}
.journal-reader-body .process-cell .n-word{color:var(--stone);}
.journal-reader-body .process-cell .n-fig{color:var(--gold-ink);}
.journal-reader-body .process-cell .n::after{background:linear-gradient(90deg, rgba(135,99,31,.4), rgba(21,20,15,.06));}
.journal-reader-body .cru-row-num{font-family:'IBM Plex Mono',monospace; font-size:.7rem; color:var(--gold-ink); display:block; margin-bottom:.6rem;}
.journal-reader-body .cru-row-tags{display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.9rem;}
.journal-reader-body .cru-row-tags span{font-family:'IBM Plex Mono',monospace; font-size:.64rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--ink-soft); border:1px solid var(--line); padding:.35em .7em;}

.rev-more,.course-more{margin-top:clamp(1.4rem,3vw,2rem);}
.journal-reader-body .course-list{list-style:none; padding:0; margin:1.4rem 0 0;}
.journal-reader-body .course-list li{border-top:1px solid var(--line); padding:.9rem 0; color:var(--ink-soft);}
.journal-reader-body .calendar{margin-top:2.2rem;}
.journal-reader-body .cal-grid{display:block; background:transparent; border:0; gap:0; padding:0;}
.journal-reader-body .cal-month{background:transparent;}
.journal-reader-body .cal-count{font-size:1.1rem;}
.journal-reader-body .cal-month{border:0; border-top:1px solid var(--line); padding:1.2rem 0 0; margin-top:1.2rem;}
.journal-reader-body .rev-grid{display:block;}
.journal-reader-body .rev-card{border:0; border-top:1px solid var(--line); padding:1.4rem 0 0; margin-top:1.4rem;}
.journal-reader-body .rev-card:first-child{border-top:0; margin-top:0;}

:root{ --paper-2:#F4F0E8; }

/* ============================================================
   V4 — structure multi-pages, inspirée des sites de domaine
   premium : page d'accueil courte, chaque rubrique = un teaser
   qui renvoie vers sa page dédiée.
   ============================================================ */

:root{ --v4-max:1180px; --v4-gutter:clamp(1.25rem,5vw,4rem); }

body.v4{background:var(--paper); color:var(--ink);}
.v4 .wrap4{max-width:var(--v4-max); margin:0 auto; padding:0 var(--v4-gutter);}
.v4 .pad4{padding:clamp(4rem,9vw,8.5rem) 0;}
.v4 .pad4-sm{padding:clamp(2.6rem,6vw,5rem) 0;}

/* ---- En-tête : MENU à gauche, logo au centre, actions à droite ---- */
.v4 .hd{position:fixed; top:0; left:0; right:0; z-index:500;
  display:grid; grid-template-columns:1fr auto 1fr; align-items:center;
  padding:1.05rem var(--v4-gutter); background:rgba(250,248,244,.96);
  border-bottom:1px solid var(--line-soft); transition:background .4s ease, border-color .4s ease;}
.v4 .hd.on-hero{background:transparent; border-color:transparent; color:var(--paper);}
.v4 .hd.on-hero .hd-link, .v4 .hd.on-hero .hd-menu{color:var(--paper);}
.v4 .hd.on-hero .brand-logo{filter:invert(1) brightness(1.7);}
.v4 .hd-menu{display:inline-flex; align-items:center; gap:.65rem; background:none; border:0; cursor:pointer;
  font-family:'IBM Plex Mono',monospace; font-size:.82rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ink); font-weight:500;}
.v4 .hd-menu .icon{width:1.25rem; height:1.25rem;}
.v4 .hd-brand{justify-self:center; transition:opacity .45s ease, transform .45s ease;}
.v4 .hd-brand img{display:block; width:clamp(104px,10vw,136px); height:auto;}
.v4 .hd.brand-hidden .hd-brand{opacity:0; transform:translateY(-8px); pointer-events:none;}
.v4 .hd-right{justify-self:end; display:flex; align-items:center; gap:clamp(.9rem,2.2vw,2rem);}
.v4 .hd-link{font-family:'IBM Plex Mono',monospace; font-size:.8rem; letter-spacing:.14em; font-weight:500;
  text-transform:uppercase; color:var(--ink-soft); text-decoration:none; white-space:nowrap;}
.v4 .hd-link:hover{color:var(--accent);}
.v4 .hd-link.is-shop{color:var(--ink); border-bottom:1px solid var(--gold); padding-bottom:.2rem;}
@media (max-width:1100px){ .v4 .hd-link.is-cours{display:none;} }
.v4 .hd-cart{position:relative; display:inline-flex; align-items:center; background:none; border:0; cursor:pointer; color:inherit;}
.v4 .hd-cart .icon{width:1.15rem; height:1.15rem;}
.v4 .hd-cart-count{position:absolute; top:-.45rem; right:-.55rem; min-width:1.05rem; height:1.05rem;
  display:none; align-items:center; justify-content:center; background:var(--accent); color:var(--paper);
  border-radius:50%; font-family:'IBM Plex Mono',monospace; font-size:.58rem;}
.v4 .hd-cart-count.show{display:flex;}
@media (max-width:760px){ .v4 .hd-link.is-visit{display:none;} .v4 .hd-menu span{display:none;} }
.v4 .lang-btn{font-size:.8rem;}

/* ---- Hero ---- */
.v4 .hero4{position:relative; min-height:100svh; display:flex; align-items:stretch; overflow:hidden;}
.v4 .hero4-in{display:flex; flex-direction:column; justify-content:space-between; min-height:100svh;
  padding-top:clamp(5.4rem,11vh,7.5rem);}
.v4 .hero4-logo{align-self:center; width:clamp(150px,24vh,300px); flex:0 0 auto; margin:0 auto;
  transform-origin:50% 0; will-change:transform,opacity;}
.v4 .hero4-logo img{display:block; width:100%; height:auto; filter:invert(1) brightness(1.65) drop-shadow(0 12px 30px rgba(0,0,0,.35));}
.v4 .hero4-txt{padding-top:clamp(1.5rem,4vh,3rem);}
.v4 .hero4-ctas .btn .icon:first-child{width:1.1em; height:1.1em;}
@media (max-height:640px){ .v4 .hero4-logo{width:clamp(120px,20vh,200px);} }
.v4 .hero4-bg{position:absolute; inset:0; z-index:0;}
.v4 .hero4-bg img{width:100%; height:100%; object-fit:cover;}
.v4 .hero4-bg::after{content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(21,20,15,.5) 0%, rgba(21,20,15,.15) 40%, rgba(21,20,15,.82) 100%);}
.v4 .hero4-in{position:relative; z-index:1; width:100%; padding-bottom:clamp(3.5rem,9vw,7rem); color:var(--paper);}
.v4 .hero4-bg::after{background:linear-gradient(180deg, rgba(21,20,15,.62) 0%, rgba(21,20,15,.28) 42%, rgba(21,20,15,.84) 100%);}
.v4 .hero4 h1{color:var(--paper); font-size:clamp(2.2rem,4.6vw,4.6rem); line-height:1.04; max-width:19ch;}
.v4 .hero4 .eyebrow{color:rgba(250,248,244,.66); margin-bottom:1.2rem;}
.v4 .hero4-lead{color:rgba(250,248,244,.86); max-width:46ch; margin-top:1.5rem;}
.v4 .hero4-ctas{display:flex; flex-wrap:wrap; gap:1rem; margin-top:2.2rem;}

/* ---- Bloc d'introduction centré ---- */
.v4 .intro4{text-align:center; max-width:760px; margin:0 auto;}
.v4 .intro4 h2{font-size:clamp(1.9rem,3.2vw,3.1rem); margin-bottom:1rem;}
.v4 .intro4-sub{font-family:'Fraunces',serif; font-style:italic; font-size:clamp(1.1rem,1.6vw,1.5rem);
  color:var(--gold); margin-bottom:1.8rem;}
.v4 .intro4 p{color:var(--ink-soft); margin:0 auto .9rem; max-width:62ch;}

/* ---- Liens texte soulignés (le procédé du modèle) ---- */
.v4 .tlinks{display:flex; flex-wrap:wrap; justify-content:center; gap:clamp(1.2rem,4vw,3rem); margin-top:2.4rem;}
.v4 .tlink{display:inline-flex; align-items:center; gap:.55em; padding-bottom:.45rem;
  font-family:'IBM Plex Mono',monospace; font-size:.72rem; letter-spacing:.13em; text-transform:uppercase;
  color:var(--ink); text-decoration:none; border-bottom:1px solid var(--gold);
  transition:color .3s ease, border-color .3s ease, gap .3s ease;}
.v4 .tlink:hover{color:var(--accent); border-color:var(--accent); gap:.9em;}
.v4 .tlink .icon{width:.85em; height:.85em;}
.v4 .tlinks-left{justify-content:flex-start;}
.v4 .on-dark .tlink{color:var(--paper); border-color:var(--gold-2);}
.v4 .on-dark .tlink:hover{color:var(--gold-2);}

/* ---- Bloc alterné texte / photo ---- */
.v4 .duo{display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:clamp(2rem,5vw,5rem);}
.v4 .duo.rev .duo-txt{order:2;}
.v4 .duo-media{position:relative; overflow:hidden; aspect-ratio:4/3;}
.v4 .duo-media img{width:100%; height:100%; object-fit:cover; display:block;}
.v4 .duo-txt h2{font-size:clamp(1.7rem,2.8vw,2.7rem); margin-bottom:1rem;}
.v4 .duo-txt p{color:var(--ink-soft); max-width:50ch;}
.v4 .duo-txt .eyebrow{margin-bottom:1rem;}
@media (max-width:860px){
  .v4 .duo{grid-template-columns:1fr; gap:1.8rem;}
  .v4 .duo.rev .duo-txt{order:0;}
  .v4 .duo-media{aspect-ratio:3/2;}
}

/* ---- Bande photo pleine largeur ---- */
.v4 .band{position:relative; min-height:clamp(340px,52vw,600px); display:flex; align-items:center; overflow:hidden;}
.v4 .band-bg{position:absolute; inset:0; z-index:0;}
.v4 .band-bg img{width:100%; height:100%; object-fit:cover;}
.v4 .band-bg::after{content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(21,20,15,.78), rgba(21,20,15,.35));}
.v4 .band-in{position:relative; z-index:1; color:var(--paper); max-width:44ch;}
.v4 .band-in h2{color:var(--paper); font-size:clamp(1.7rem,3vw,2.8rem);}
.v4 .band-in p{color:rgba(250,248,244,.85); margin-top:1rem;}
.v4 .band-in .eyebrow{color:rgba(250,248,244,.6);}

/* ---- Chiffres clés ---- */
.v4 .figs{display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:1px; background:var(--line);
  border:1px solid var(--line); margin-top:clamp(2rem,4vw,3rem);}
.v4 .figs div{background:var(--paper); padding:clamp(1.3rem,2.5vw,2rem);}
.v4 .figs strong{display:block; font-family:'Fraunces',serif; font-size:clamp(1.7rem,3vw,2.6rem); font-weight:440; line-height:1;}
.v4 .figs span{display:block; margin-top:.6rem; font-family:'IBM Plex Mono',monospace; font-size:.62rem;
  letter-spacing:.14em; text-transform:uppercase; color:var(--stone);}

/* ---- Menu plein écran ---- */
.v4 .nav4{position:fixed; inset:0; z-index:900; background:var(--ink); color:var(--paper);
  display:flex; flex-direction:column; justify-content:center; padding:2rem var(--v4-gutter);
  transform:translateY(-100%); visibility:hidden; transition:transform .55s var(--ease), visibility 0s linear .55s;}
.v4 .nav4.open{transform:translateY(0); visibility:visible; transition:transform .55s var(--ease), visibility 0s;}
.v4 .nav4-close{position:absolute; top:1rem; right:var(--v4-gutter); background:none; border:1px solid rgba(250,248,244,.3);
  color:var(--paper); width:44px; height:44px; display:flex; align-items:center; justify-content:center; cursor:pointer;}
.v4 .nav4 a{display:flex; align-items:baseline; gap:1.1rem; color:var(--paper); text-decoration:none;
  font-family:'Fraunces',serif; font-size:clamp(2rem,6.5vw,3.6rem); padding:.4rem 0; transition:color .3s ease;}
.v4 .nav4 a:hover{color:var(--gold-2);}
.v4 .nav4 a .num{font-family:'IBM Plex Mono',monospace; font-size:1.05rem; font-weight:600; color:var(--gold-2); min-width:2.6ch;}
.v4 .nav4-gammes a{font-size:.74rem;}
.v4 .nav4-foot{margin-top:2.5rem; padding-top:1.5rem; border-top:1px solid rgba(250,248,244,.16);
  font-family:'IBM Plex Mono',monospace; font-size:.68rem; letter-spacing:.08em; color:rgba(250,248,244,.6);}
.v4 .nav4-foot a{display:inline; font-family:inherit; font-size:inherit; color:rgba(250,248,244,.8);}

/* ---- Coffrets (levier panier moyen) ---- */
.v4 .packs{display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:1.2rem; margin-top:2.4rem;}
.v4 .pack{border:1px solid var(--line); padding:clamp(1.4rem,2.6vw,2rem); display:flex; flex-direction:column; background:var(--paper);}
.v4 .pack h3{font-size:1.3rem; margin-bottom:.5rem;}
.v4 .pack-desc{color:var(--ink-soft); font-size:.95rem; flex-grow:1;}
.v4 .pack-meta{font-family:'IBM Plex Mono',monospace; font-size:.64rem; letter-spacing:.12em;
  text-transform:uppercase; color:var(--stone); margin:1rem 0 .4rem;}
.v4 .pack-price{font-family:'Fraunces',serif; font-size:1.5rem; margin-bottom:1rem;}
.v4 .pack .btn{width:100%; justify-content:center;}

/* ---- Réassurance ---- */
.v4 .trust{display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:1.4rem;
  margin-top:clamp(2.4rem,5vw,3.6rem); padding-top:clamp(1.8rem,4vw,2.6rem); border-top:1px solid var(--line);}
.v4 .trust > div{display:flex; gap:.8rem; align-items:flex-start;}
.v4 .trust > div > div{display:block; min-width:0;}
.v4 .trust .icon{width:1.1rem; height:1.1rem; color:var(--accent); flex-shrink:0; margin-top:.15rem;}
.v4 .trust strong{display:block; font-size:.95rem; margin-bottom:.2rem;}
.v4 .trust span{color:var(--ink-soft); font-size:.86rem;}

/* ---- Fil d'Ariane / pied de page ---- */
.v4 .ft{background:var(--ink); color:rgba(250,248,244,.7); padding:clamp(3rem,6vw,5rem) 0 2rem;}
.v4 .ft a{color:rgba(250,248,244,.8); text-decoration:none;}
.v4 .ft a:hover{color:var(--gold-2);}
.v4 .ft-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:clamp(1.8rem,4vw,3.5rem);}
.v4 .ft h5{font-family:'IBM Plex Mono',monospace; font-size:.64rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--stone); margin-bottom:1.1rem;}
.v4 .ft ul{list-style:none; padding:0; margin:0;}
.v4 .ft li{margin-bottom:.6rem;}
.v4 .ft-logo{width:120px; height:auto; filter:invert(1); margin-bottom:1.2rem;}
.v4 .ft-bottom{margin-top:clamp(2.4rem,5vw,3.5rem); padding-top:1.4rem; border-top:1px solid rgba(250,248,244,.14);
  display:flex; flex-wrap:wrap; gap:1rem 2rem; font-family:'IBM Plex Mono',monospace; font-size:.62rem;
  letter-spacing:.1em; text-transform:uppercase; color:rgba(250,248,244,.45);}
@media (max-width:760px){ .v4 .ft-grid{grid-template-columns:1fr;} }

/* ---- Page intérieure : en-tête compact ---- */
.v4 .phead{padding:calc(clamp(4rem,9vw,7rem) + 64px) 0 clamp(2rem,4vw,3rem); background:var(--paper-dim);}
.v4 .phead h1{font-size:clamp(2.1rem,4vw,3.6rem); max-width:18ch;}
.v4 .phead .eyebrow{margin-bottom:1rem;}
.v4 .phead-lead{margin-top:1.2rem; color:var(--ink-soft); max-width:60ch;}

/* ============ LES GAMMES (accueil) ============ */
.v4 .gammes-head{display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; flex-wrap:wrap;}
.v4 .gammes-head h2{font-size:clamp(1.9rem,3.4vw,3rem); line-height:1.08;}
.v4 .gammes-head p{color:var(--ink-soft); max-width:46ch; margin-top:.9rem;}
.v4 .gammes{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line);
  border:1px solid var(--line); margin-top:clamp(2rem,4vw,3rem);}
.v4 .gcard{background:var(--paper); padding:clamp(1.5rem,2.6vw,2.2rem); display:flex; flex-direction:column;
  gap:.75rem; text-decoration:none; color:inherit; position:relative; transition:background .35s ease;}
.v4 .gcard:hover{background:var(--paper-2,#F6F2EA);}
.v4 .gcard-n{font-family:'IBM Plex Mono',monospace; font-size:.6rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--gold-ink); display:flex; align-items:center; gap:.7em;}
.v4 .gcard-n::after{content:''; flex:1; height:1px; background:linear-gradient(to right,var(--gold-2),transparent);}
.v4 .gcard h3{font-family:'Fraunces',serif; font-weight:440; font-size:clamp(1.25rem,2vw,1.6rem); line-height:1.15;}
.v4 .gcard h3 small{display:block; font-family:'Instrument Sans',sans-serif; font-size:.78rem; font-weight:400;
  color:var(--ink-soft); margin-top:.35rem; letter-spacing:.01em;}
.v4 .gcard p{color:var(--ink-soft); font-size:.94rem; line-height:1.6; flex:1;}
.v4 .gcard-foot{display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:.4rem;
  padding-top:.9rem; border-top:1px solid var(--line);}
.v4 .gcard-price{font-family:'IBM Plex Mono',monospace; font-size:.72rem; letter-spacing:.06em; color:var(--ink);}
.v4 .gcard-price span{color:var(--ink-soft); letter-spacing:.14em; text-transform:uppercase; font-size:.6rem;}
.v4 .gcard-go{display:inline-flex; align-items:center; gap:.5em; font-family:'IBM Plex Mono',monospace;
  font-size:.64rem; letter-spacing:.18em; text-transform:uppercase; color:var(--accent); transition:gap .3s ease;}
.v4 .gcard-go .icon{width:.95em; height:.95em;}
.v4 .gcard:hover .gcard-go{gap:.95em;}
@media (max-width:900px){ .v4 .gammes{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .v4 .gammes{grid-template-columns:1fr;} .v4 .gcard{padding:1.35rem 1.25rem;} }

/* ancre : ne pas passer sous le header fixe */
.v4 .gamme-block{scroll-margin-top:96px;}
.v4 [id]{scroll-margin-top:96px;}

/* liens de gammes dans le menu plein écran */
.v4 .nav4-gammes{display:flex; flex-wrap:wrap; gap:.55rem .9rem; margin-top:1.6rem; padding-top:1.4rem;
  border-top:1px solid rgba(255,255,255,.14); max-width:640px;}
.v4 .nav4-gammes a{display:inline-block; font-family:'IBM Plex Mono',monospace; font-size:.66rem;
  letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.62); padding:.42em .85em;
  border:1px solid rgba(255,255,255,.18); border-radius:2px; transition:.25s ease; text-decoration:none;}
.v4 .nav4-gammes a:hover{color:var(--gold-2); border-color:var(--gold-2);}
@media (max-width:620px){ .v4 .nav4-gammes{gap:.45rem .5rem; margin-top:1.2rem;} .v4 .nav4-gammes a{font-size:.6rem; padding:.38em .7em;} }


/* ============ RÉVISION 14/10 — retours Humbrecht ============ */

/* cours d'œnologie sur l'accueil */
.v4 .course{border-top:0;}
.v4 .course .course-grid{align-items:start;}
.v4 .course h2{font-size:clamp(1.9rem,3.2vw,3rem); max-width:16ch;}
.v4 .course-where{display:flex; align-items:center; gap:.5rem; margin-top:1.6rem; font-family:'IBM Plex Mono',monospace;
  font-size:.7rem; letter-spacing:.06em; color:var(--ink-soft);}
.v4 .course-where .icon{width:.95rem; height:.95rem; color:var(--accent); flex-shrink:0;}
.v4 .course-panel{background:var(--paper); position:sticky; top:96px;}
.v4 .course-price{font-size:clamp(2.4rem,4vw,3.2rem);}
.v4 .course-price-n{white-space:nowrap; letter-spacing:-.01em;}
.v4 .course-panel .btn{text-decoration:none;}
.v4 .calendar{margin-top:clamp(2.6rem,5vw,4rem);}
.v4 .cal-head h3{font-size:clamp(1.25rem,1.8vw,1.6rem);}
.v4 .cal-month ul{list-style:none; padding:0; margin:0;}
.v4 .cal-legend{list-style:none; padding:0; margin:0;}
.v4 .cal-empty{padding:1.6rem; color:var(--ink-soft); font-family:'Fraunces',serif; font-style:italic;}
@media (max-width:860px){ .v4 .course .course-grid{grid-template-columns:1fr;} .v4 .course-panel{position:static;} }
@media (max-width:560px){ .v4 .cal-grid{grid-template-columns:1fr;} }

/* liens « cépage → boutique » dans les textes */
.v4 .vlink{color:var(--ink); text-decoration:none; border-bottom:1px solid var(--gold); padding-bottom:.05em;
  transition:color .25s ease, border-color .25s ease;}
.v4 .vlink:hover{color:var(--accent); border-color:var(--accent);}
.v4 .on-dark .vlink{color:var(--paper); border-color:var(--gold-2);}

/* repères (page domaine) */
.v4 .timeline{list-style:none; padding:0; margin:clamp(1.8rem,3vw,2.6rem) 0 0; display:grid;
  grid-template-columns:repeat(7,1fr); gap:1px;}
.v4 .timeline li{background:var(--paper); box-shadow:0 0 0 1px var(--line); padding:clamp(1.2rem,2.2vw,1.7rem) clamp(1rem,1.8vw,1.4rem);}
@media (max-width:1000px){ .v4 .timeline{grid-template-columns:repeat(4,1fr);} }
@media (max-width:620px){ .v4 .timeline{grid-template-columns:repeat(2,1fr);} .v4 .timeline li:last-child{grid-column:1/-1;} }
.v4 .timeline strong{display:block; font-family:'Fraunces',serif; font-weight:440; font-size:clamp(1.6rem,2.6vw,2.2rem); line-height:1;
  color:var(--ink); margin-bottom:.6rem;}
.v4 .timeline span{display:block; font-size:.86rem; line-height:1.5; color:var(--ink-soft);}
.v4 .duo-media-tall{aspect-ratio:4/5;}
@media (max-width:860px){ .v4 .duo-media-tall{aspect-ratio:4/3;} }

/* schéma de la colline */
.v4 .vignoble{background:var(--paper-2,#F4F0E8);}
.v4 .colline-fig{margin:clamp(2rem,4vw,3.2rem) auto 0; max-width:960px;}
.v4 .colline{display:block; width:100%; height:auto; font-family:'IBM Plex Mono',monospace;}
.v4 .colline text{font-size:11px; letter-spacing:.12em; text-transform:uppercase; fill:var(--ink-soft);}
.v4 .c-compass line{stroke:var(--stone); stroke-width:1; stroke-dasharray:2 6;}
.v4 .c-compass .c-fill{fill:var(--stone);}
.v4 .c-sun circle{fill:none; stroke:var(--gold); stroke-width:1.2;}
.v4 .c-sun path{stroke:var(--gold); stroke-width:1.2; stroke-linecap:round;}
.v4 .c-hill polygon{stroke:var(--ink); stroke-width:1.2; stroke-linejoin:round;}
.v4 .c-goldert polygon{fill:#5F7040;}
.v4 .c-steinert polygon{fill:#8A9770;}
.v4 .c-rangs line{stroke:rgba(250,248,244,.42); stroke-width:1;}
.v4 .c-village path, .v4 .c-village rect{fill:var(--paper); stroke:var(--ink); stroke-width:1.1; stroke-linejoin:round;}
.v4 .c-village text{fill:var(--ink); font-family:'Fraunces',serif; text-transform:none; letter-spacing:0; font-size:13px; font-style:italic;}
.v4 .c-strates line{stroke:var(--ink); stroke-width:1;}
.v4 .c-strates .c-dash{stroke:var(--stone); stroke-dasharray:3 5;}
.v4 .c-strates text{font-size:10px;}
.v4 .c-labels .c-name{fill:var(--ink); font-family:'Fraunces',serif; text-transform:none; letter-spacing:0; font-size:19px;}
.v4 .c-labels .c-sub{font-size:10px; fill:var(--ink-soft);}
.v4 .c-labels .c-cep{fill:var(--paper); font-size:10.5px; letter-spacing:.14em;}
.v4 .c-labels .c-expo{fill:rgba(250,248,244,.85); font-size:9.5px; letter-spacing:.14em;}
.v4 .colline-fig figcaption{margin-top:1rem; text-align:center; font-family:'Fraunces',serif; font-style:italic;
  font-size:.95rem; color:var(--ink-soft);}
@media (max-width:640px){ .v4 .colline text{font-size:17px;} .v4 .c-labels .c-name{font-size:27px;} .v4 .c-labels .c-sub,.v4 .c-strates text{font-size:15px;}
  .v4 .c-labels .c-cep{font-size:15px;} .v4 .c-village text{font-size:19px;} .v4 .colline-fig{margin-left:-.5rem; margin-right:-.5rem;} }

/* boutique : filtres par type, température */
.v4 .filters-label{margin:2rem 0 0; font-family:'IBM Plex Mono',monospace; font-size:.62rem; letter-spacing:.18em;
  text-transform:uppercase; color:var(--stone);}
.v4 .filters-label + .shop-filters{margin-top:.55rem;}
.v4 .shop-types .filter-btn{font-size:.68rem;}
.v4 .shop-none{margin:2rem 0; padding:1.6rem; border:1px dashed var(--line); text-align:center; color:var(--ink-soft);
  font-family:'Fraunces',serif; font-style:italic;}
.v4 .product-meta .temp{color:var(--accent); white-space:nowrap;}

/* panier */
.v4 .cart-ship{display:flex; align-items:center; gap:.5rem; margin:-.6rem 0 1rem; padding:.55rem .75rem;
  background:rgba(72,89,46,.08); border:1px solid rgba(72,89,46,.22); color:var(--accent);
  font-family:'IBM Plex Mono',monospace; font-size:.66rem; letter-spacing:.03em;}
.v4 .cart-ship .icon{width:14px; height:14px; flex-shrink:0;}
.v4 .cart-ship-left{margin-left:auto; color:var(--ink-soft);}
.v4 .cart-ship.reached{background:var(--accent); color:var(--paper); border-color:var(--accent);}
.v4 .cart-ship.reached .cart-ship-left{display:none;}
.v4 .cart-pickup > span{display:flex; flex-direction:column; gap:.1rem;}
.v4 .cart-pickup small{font-size:.7rem; color:var(--ink-soft);}
.v4 .cart-promo{margin-bottom:1.1rem;}
.v4 .cart-promo label{display:block; font-family:'IBM Plex Mono',monospace; font-size:.62rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--stone); margin-bottom:.4rem;}
.v4 .cart-promo-row{display:flex; border:1px solid var(--ink); background:var(--paper);}
.v4 .cart-promo-row input{flex:1; min-width:0; border:0; background:transparent; padding:.65rem .8rem;
  font-family:'IBM Plex Mono',monospace; font-size:.82rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink); outline:none;}
.v4 .cart-promo-row input:disabled{color:var(--ink-soft);}
.v4 .cart-promo-row button{border:0; border-left:1px solid var(--ink); background:var(--ink); color:var(--paper); padding:0 1rem;
  font-family:'IBM Plex Mono',monospace; font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; cursor:pointer;}
.v4 .cart-promo-row button:disabled{opacity:.45; cursor:default;}
.v4 .cart-promo-ok{display:flex; align-items:center; flex-wrap:wrap; gap:.4rem; margin:.55rem 0 0; font-size:.74rem; color:var(--accent);}
.v4 .cart-promo-ok[hidden]{display:none;}
.v4 .cart-promo-ok .icon{width:13px; height:13px; flex-shrink:0;}
.v4 .cart-promo-ok button{background:none; border:0; padding:0; color:var(--ink-soft); text-decoration:underline; cursor:pointer;
  font-family:'IBM Plex Mono',monospace; font-size:.64rem; letter-spacing:.06em; text-transform:uppercase;}
.v4 .cart-countries{margin-top:.6rem; font-family:'IBM Plex Mono',monospace; font-size:.62rem; letter-spacing:.03em; color:var(--stone); line-height:1.5;}

/* étapes de la cave sur fond clair (V4) */
.v4 .process-row{border-top:1px solid var(--line);}
.v4 .process-cell{border-right-color:var(--line);}
.v4 .process-cell h4{color:var(--ink);}
.v4 .process-cell p{color:var(--ink-soft);}
.v4 .process-cell .n-word{color:var(--stone);}
.v4 .process-cell .n-fig{color:var(--gold-ink);}
.v4 .process-cell .n::after{background:var(--line);}
@media (max-width:900px){ .v4 .process-cell{border-bottom-color:var(--line);} }


/* ============ RÉSERVATION DU COURS ============ */
.v4 .resa-overlay{position:fixed; inset:0; background:rgba(21,20,15,.6); z-index:700; opacity:0; pointer-events:none; transition:opacity .4s ease;}
.v4 .resa-overlay.show{opacity:1; pointer-events:auto;}
.v4 .resa{position:fixed; top:0; right:0; bottom:0; width:min(480px,94vw); background:var(--paper); z-index:800; display:flex; flex-direction:column;
  overflow-y:auto; transform:translateX(100%); visibility:hidden; transition:transform .5s var(--ease), visibility 0s linear .5s; box-shadow:-30px 0 60px rgba(0,0,0,.2);}
.v4 .resa.open{transform:translateX(0); visibility:visible; transition:transform .5s var(--ease), visibility 0s;}
.v4 .resa-head{display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; padding:1.6rem clamp(1.3rem,3vw,2rem) 1.2rem; border-bottom:1px solid var(--line);}
.v4 .resa-head h3{font-size:1.35rem; margin-top:.5rem;}
.v4 .resa-form, .v4 .resa-done{padding:1.4rem clamp(1.3rem,3vw,2rem) 2rem; display:grid; gap:1rem;}
.v4 .resa-form[hidden], .v4 .resa-done[hidden]{display:none;}
.v4 .resa-field{display:grid; gap:.4rem;}
.v4 .resa-field > span{font-family:'IBM Plex Mono',monospace; font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--stone);}
.v4 .resa-field input, .v4 .resa-field select, .v4 .resa-field textarea{width:100%; border:1px solid var(--ink); background:var(--paper); color:var(--ink);
  padding:.7rem .85rem; font-family:'Instrument Sans',sans-serif; font-size:.95rem; border-radius:0; outline:none; -webkit-appearance:none; appearance:none;}
.v4 .resa-field select{background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);
  background-position:calc(100% - 18px) 55%, calc(100% - 12px) 55%; background-size:6px 6px; background-repeat:no-repeat; padding-right:2.2rem;}
.v4 .resa-field input:focus, .v4 .resa-field select:focus, .v4 .resa-field textarea:focus{border-color:var(--accent); box-shadow:0 0 0 2px rgba(72,89,46,.15);}
.v4 .resa-field textarea{resize:vertical; min-height:4.5rem;}
.v4 .resa-row{display:grid; grid-template-columns:1fr 1fr; gap:1rem; align-items:end;}
.v4 .resa-nb{display:flex; border:1px solid var(--ink);}
.v4 .resa-nb button{width:42px; flex-shrink:0; background:none; border:0; cursor:pointer; color:var(--ink); display:flex; align-items:center; justify-content:center;}
.v4 .resa-nb button .icon{width:14px; height:14px;}
.v4 .resa-nb input{border:0 !important; text-align:center; font-family:'IBM Plex Mono',monospace; font-size:1rem; padding:.6rem 0 !important; -moz-appearance:textfield;}
.v4 .resa-nb input::-webkit-outer-spin-button, .v4 .resa-nb input::-webkit-inner-spin-button{-webkit-appearance:none; margin:0;}
.v4 .resa-price{margin:0; display:grid; gap:.2rem;}
.v4 .resa-price strong{font-family:'Fraunces',serif; font-weight:440; font-size:1.6rem; line-height:1;}
.v4 .resa-price span{font-size:.72rem; color:var(--ink-soft); line-height:1.35;}
.v4 .resa-hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;}
.v4 .resa-note{margin:0; font-size:.78rem; color:var(--ink-soft); line-height:1.5; padding:.7rem .85rem; background:var(--paper-dim); border-left:2px solid var(--gold);}
.v4 .resa-actions{display:grid; gap:.7rem; margin-top:.2rem;}
.v4 .resa-actions .btn{width:100%; justify-content:center; text-decoration:none;}
.v4 .resa-actions .btn:disabled{opacity:.6; cursor:default;}
.v4 .resa .cart-warning{margin:0;}
.v4 .resa-done{text-align:center; padding-top:3rem; justify-items:center;}
.v4 .resa-done > .icon{width:44px; height:44px; color:var(--accent); border:1px solid var(--accent); border-radius:50%; padding:10px;}
.v4 .resa-done h3{font-size:1.5rem;}
.v4 .resa-done p{color:var(--ink-soft); max-width:36ch;}
.v4 .course-panel .btn + .btn{margin-top:.7rem;}
.v4 .course-panel .btn .icon:first-child{width:1em; height:1em;}
.v4 .slot.is-bookable{cursor:pointer; border-radius:2px; transition:background .2s ease;}
.v4 .slot.is-bookable:hover, .v4 .slot.is-bookable:focus-visible{background:rgba(72,89,46,.08); outline:none;}
.v4 .slot.is-bookable::after{content:"→"; margin-left:auto; color:var(--accent); opacity:0; transition:opacity .2s ease; font-family:'IBM Plex Mono',monospace; font-size:.8rem;}
.v4 .slot.is-bookable:hover::after{opacity:1;}
.v4 .slot{padding:.15rem .35rem; margin:0 -.35rem;}
@media (max-width:420px){ .v4 .resa-row{grid-template-columns:1fr;} }


/* ============ RÉVISION 15/10 — page unique, retours Max ============ */

/* menu plein écran sur deux colonnes */
.v4 .nav4-cols{display:grid; grid-template-columns:1fr 1fr; gap:0 clamp(2rem,6vw,6rem);}
.v4 .nav4 a{font-size:clamp(1.6rem,4.6vw,2.9rem); padding:.3rem 0;}
@media (max-width:640px){ .v4 .nav4-cols{grid-template-columns:1fr;} .v4 .nav4 a{font-size:clamp(1.45rem,6vw,2rem); padding:.22rem 0;} .v4 .nav4-foot{margin-top:1.4rem; font-size:.6rem;} }
@media (max-height:700px){ .v4 .nav4 a{font-size:clamp(1.3rem,4vw,1.9rem); padding:.18rem 0;} }

/* carrousel des gammes */
.v4 .vins4{background:var(--paper-2,#F4F0E8); overflow:hidden;}
.v4 .caro-tabs{display:flex; flex-wrap:wrap; gap:.5rem .6rem; margin-top:1.8rem;}
.v4 .caro-tab{font-family:'IBM Plex Mono',monospace; font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft);
  background:none; border:1px solid var(--line); padding:.55em 1em; cursor:pointer; transition:.25s ease;}
.v4 .caro-tab:hover{color:var(--ink); border-color:var(--ink);}
.v4 .caro-tab.active{background:var(--ink); color:var(--paper); border-color:var(--ink);}
.v4 .caro{position:relative; margin-top:clamp(1.6rem,3vw,2.4rem);}
.v4 .caro-track{display:flex; gap:clamp(.8rem,1.6vw,1.4rem); overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth;
  padding:.4rem max(var(--v4-gutter), calc((100% - var(--v4-max)) / 2 + var(--v4-gutter))) 1.2rem; scroll-padding-inline:max(var(--v4-gutter), calc((100% - var(--v4-max)) / 2 + var(--v4-gutter)));
  scrollbar-width:none; -webkit-overflow-scrolling:touch; outline:none;}
.v4 .caro-track::-webkit-scrollbar{display:none;}
.v4 .caro-card{flex:0 0 clamp(270px, 29vw, 380px); scroll-snap-align:start; background:var(--paper); text-decoration:none; color:inherit;
  display:flex; flex-direction:column; box-shadow:0 0 0 1px var(--line); transition:transform .35s var(--ease), box-shadow .35s var(--ease);}
.v4 .caro-card:hover{transform:translateY(-4px); box-shadow:0 0 0 1px var(--line), 0 24px 40px -28px rgba(21,20,15,.35);}
.v4 .caro-media{height:clamp(220px, 24vw, 300px); background:#FFFFFF; border-bottom:1px solid var(--line); padding:1.2rem 1rem .9rem; display:flex; align-items:flex-end; justify-content:center; overflow:hidden;}
.v4 .caro-bottles{height:100%; display:flex; align-items:flex-end; justify-content:center; gap:0;}
.v4 .caro-bottles img{height:100%; width:auto; object-fit:contain; display:block; transition:transform .5s var(--ease);}
.v4 .caro-bottles.n3 img{margin:0 -7%;}
.v4 .caro-bottles.n2 img{margin:0 -3%;}
.v4 .caro-card:hover .caro-bottles img{transform:scale(1.04);}
.v4 .caro-body{padding:clamp(1.2rem,2vw,1.6rem); display:flex; flex-direction:column; gap:.6rem; flex:1;}
.v4 .caro-body h3{font-family:'Fraunces',serif; font-weight:440; font-size:clamp(1.3rem,2vw,1.6rem); line-height:1.15;}
.v4 .caro-body p{color:var(--ink-soft); font-size:.92rem; line-height:1.55; flex:1;}
.v4 .caro-arrow{position:absolute; top:calc(clamp(220px,24vw,300px) / 2 + .4rem); transform:translateY(-50%); z-index:2; width:46px; height:46px; border-radius:50%;
  border:1px solid var(--ink); background:var(--paper); color:var(--ink); display:flex; align-items:center; justify-content:center; cursor:pointer;
  box-shadow:0 10px 24px -14px rgba(21,20,15,.5); transition:background .25s ease, color .25s ease, opacity .25s ease;}
.v4 .caro-arrow .icon{width:16px; height:16px;}
.v4 .caro-arrow:hover{background:var(--ink); color:var(--paper);}
.v4 .caro-arrow:disabled{opacity:.25; cursor:default; background:var(--paper); color:var(--ink);}
.v4 .caro-prev{left:max(.6rem, calc((100% - var(--v4-max)) / 2 + var(--v4-gutter) - 23px));}
.v4 .caro-prev .icon{transform:rotate(180deg);}
.v4 .caro-next{right:max(.6rem, calc((100% - var(--v4-max)) / 2 + var(--v4-gutter) - 23px));}
@media (max-width:760px){ .v4 .caro-card{flex-basis:min(78vw, 320px);} .v4 .caro-arrow{display:none;} .v4 .caro-tabs{flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; margin-left:calc(-1 * var(--v4-gutter)); margin-right:calc(-1 * var(--v4-gutter)); padding:0 var(--v4-gutter);} .v4 .caro-tabs::-webkit-scrollbar{display:none;} .v4 .caro-tab{white-space:nowrap; flex:0 0 auto;} }

/* boutique intégrée à la page */
.v4 .shop{background:var(--paper);}
.v4 .shop-head h2{font-size:clamp(1.9rem,3.2vw,2.8rem);}

/* bon cadeau */
.v4 .voucher{display:flex; align-items:flex-start; gap:.9rem; margin-top:clamp(2rem,4vw,3rem); padding:1.1rem 1.3rem; background:var(--paper);
  border:1px solid var(--line); border-left:3px solid var(--gold);}
.v4 .voucher .icon{width:22px; height:22px; color:var(--gold-ink); flex-shrink:0; margin-top:.1rem;}
.v4 .voucher p{margin:0; font-size:.95rem; color:var(--ink); line-height:1.55;}
.v4 .voucher a{color:var(--ink); text-decoration:none; border-bottom:1px solid var(--gold); white-space:nowrap;}
.v4 .voucher-sm{margin-top:1.4rem; padding:.9rem 1rem; background:var(--paper-dim);}
.v4 .voucher-sm p{font-size:.86rem;}
.v4 .course-phone a + a{margin-top:.2rem;}

/* cave : 5 étapes */
.v4 .process-5{grid-template-columns:repeat(5,1fr);}
@media (max-width:1000px){ .v4 .process-5{grid-template-columns:repeat(3,1fr);} .v4 .process-5 .process-cell{border-bottom:1px solid var(--line); padding-bottom:1.4rem;} }
@media (max-width:640px){ .v4 .process-5{grid-template-columns:1fr;} }

/* visite : caveau + cours */
.v4 .visit4{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line);}
.v4 .visit4-card{background:var(--paper); padding:clamp(1.6rem,3vw,2.6rem);}
.v4 .visit4-course{background:var(--paper-dim);}
.v4 .visit4-card h3{font-family:'Fraunces',serif; font-weight:440; font-size:clamp(1.5rem,2.4vw,2.1rem); line-height:1.15; margin:.7rem 0 .8rem;}
.v4 .visit4-card > p{color:var(--ink-soft); max-width:48ch;}
.v4 .hours{margin:1.4rem 0; border:1px solid var(--line); background:var(--paper);}
.v4 .hours-days{font-family:'IBM Plex Mono',monospace; font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); padding:.8rem 1rem; border-bottom:1px solid var(--line);}
.v4 .hours-row{display:flex; justify-content:space-between; align-items:baseline; gap:1rem; padding:.7rem 1rem; border-bottom:1px solid var(--line-soft);}
.v4 .hours-row:last-child{border-bottom:0;}
.v4 .hours-row span{font-family:'IBM Plex Mono',monospace; font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft);}
.v4 .hours-row strong{font-family:'Fraunces',serif; font-weight:440; font-size:1.2rem;}
.v4 .visit4-cta-title{font-family:'IBM Plex Mono',monospace; font-size:.62rem; letter-spacing:.16em; text-transform:uppercase; color:var(--stone); margin:1.4rem 0 .7rem;}
.v4 .visit4 .hero4-ctas{margin-top:0;}
.v4 .visit4 .btn .icon:first-child{width:1em; height:1em;}
@media (max-width:860px){ .v4 .visit4{grid-template-columns:1fr;} }

/* journal (cartes du site principal dans la V4) */
.v4 .journal{background:var(--paper-dim);}
.v4 .journal-head h2{font-size:clamp(1.9rem,3.2vw,2.8rem); margin-top:1rem;}
.v4 .journal-filters{margin-top:0;}
.v4 .journal-filters .filter-btn{background:transparent;}
.v4 .journal-filters .filter-btn.active{background:var(--ink); color:var(--paper);}
.v4 .journal-grid{background:transparent; gap:1px;}
.v4 .journal-card{box-shadow:0 0 0 1px var(--line); margin:0;}
.v4 .journal-card h3{color:var(--ink);}
.v4 #journalMore{margin-top:2.2rem;}
.v4 #journalMore .tlink{background:none; border-top:0; border-left:0; border-right:0; cursor:pointer;}
@media (max-width:900px){ .v4 .journal-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:600px){ .v4 .journal-grid{grid-template-columns:1fr;} .v4 .journal-filters{flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none;} .v4 .journal-filters .filter-btn{white-space:nowrap; flex:0 0 auto;} }
.v4 .journal-reader-body .tlink{margin-top:.5rem;}

/* panier : livraison */
.v4 .cart-sub-row{display:flex; justify-content:space-between; align-items:baseline; font-size:.84rem; color:var(--ink-soft); padding:.3rem 0;}
.v4 .cart-sub-row span:last-child{font-family:'IBM Plex Mono',monospace; font-size:.78rem; color:var(--ink);}
.v4 .cart-shipping{border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:.6rem 0; margin:.4rem 0 .8rem;}
.v4 .cart-country{display:flex; align-items:center; justify-content:space-between; gap:1rem; font-size:.84rem; color:var(--ink-soft); padding:.3rem 0;}
.v4 .cart-country select{border:1px solid var(--ink); background:var(--paper); color:var(--ink); padding:.35rem 1.8rem .35rem .6rem; font-family:'Instrument Sans',sans-serif; font-size:.84rem; border-radius:0; -webkit-appearance:none; appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%); background-position:calc(100% - 14px) 55%, calc(100% - 9px) 55%; background-size:5px 5px; background-repeat:no-repeat; max-width:60%;}
.v4 .cart-total-row{margin-bottom:.9rem;}

/* en-tête : page unique */
.v4 .section-head{padding-bottom:clamp(2rem,4vw,3rem);}
