/*
Theme Name: Domaine Julien Gros
Theme URI:
Description: Thème personnalisé pour le Domaine Julien Gros — Vins de Bourgogne
Author: Domaine Julien Gros
Author URI:
Template: twentytwentyfive
Version: 1.0
Text Domain: domaine-julien-gros
Tags: woocommerce, custom
*/

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }

:root {
  --linen:      #EDE4D3;
  --linen-dark: #D9CCBA;
  --linen-deep: #C4B49E;
  --stone:      #9B8E7D;
  --stone-dark: #6B5E4F;
  --earth:      #4A3C2E;
  --earth-deep: #2C2218;
  --sage:       #5A7848;
  --sage-dark:  #3D5530;
  --clay:       #8B2020;
  --chalk:      #F5F0E8;
  --ink:        #1E1612;
}

body {
  background: var(--linen);
  color: var(--earth-deep);
  font-family: 'Lora', serif;
  overflow-x: hidden;
  cursor: none;
}
/* Curseur personnalisé — forcer partout sans exception */
* {
  cursor: none !important;
}
*:hover {
  cursor: none !important;
}
a, button, input, select, textarea, label,
nav, nav *,
.woocommerce-MyAccount-navigation,
.woocommerce-MyAccount-navigation * {
  cursor: none !important;
}
body.woocommerce-checkout #cd,
body.woocommerce-checkout #cc,
body.woocommerce-cart #cd,
body.woocommerce-cart #cc,
body.woocommerce-account #cd,
body.woocommerce-account #cc {
  display: block !important;
  opacity: 1 !important;
}
body::after {
  content: '';
  position: fixed; inset: 0; z-index: 9990; pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
}

.cur { position:fixed; z-index:999999; pointer-events:none; transform:translate(-50%,-50%); }
.cur-dot { width:6px; height:6px; background:var(--clay); border-radius:50%; transition:transform .15s; }
.cur-circle { width:34px; height:34px; border:1px solid rgba(139,32,32,0.4); border-radius:50%; transition:width .3s,height .3s; }

nav {
  position:fixed; top:0; left:0; right:0; z-index:1000;
  padding:26px 52px;
  display:flex; align-items:center; justify-content:space-between;
  background:rgba(237,228,211,0.96); backdrop-filter:blur(6px);
  border-bottom:1px solid var(--linen-dark);
}
.nav-wordmark {
  font-family:'Playfair Display', serif; font-size:1rem; font-weight:400;
  letter-spacing:0.1em; color:var(--earth-deep); text-decoration:none;
  display:flex; align-items:center; gap:12px; line-height:1.3;
}
.nav-wordmark small {
  display:block; font-family:'DM Mono', monospace; font-size:0.47rem;
  font-weight:300; letter-spacing:0.4em; text-transform:uppercase;
  color:var(--stone); margin-top:2px;
}
.nav-menu { display:flex; gap:36px; list-style:none; }
.nav-menu a {
  font-family:'DM Mono', monospace; font-size:0.56rem; letter-spacing:0.3em;
  text-transform:uppercase; color:var(--stone-dark); text-decoration:none; transition:color .25s;
}
.nav-menu a:hover { color:var(--earth-deep); }
.nav-end { display:flex; align-items:center; gap:20px; }
.lang { font-family:'DM Mono', monospace; font-size:0.52rem; letter-spacing:0.28em; color:var(--stone); }
.lang a { color:inherit; text-decoration:none; transition:color .25s; }
.lang a:hover, .lang a.on { color:var(--clay); }
.lang span { color:var(--linen-deep); margin:0 2px; }
.cart-btn {
  font-family:'DM Mono', monospace; font-size:0.54rem; letter-spacing:0.28em;
  text-transform:uppercase; color:var(--earth-deep); text-decoration:none;
  border-bottom:1px solid var(--linen-deep); padding-bottom:2px;
  transition:border-color .25s, color .25s;
}
.cart-btn:hover { border-color:var(--clay); color:var(--clay); }

/* ── HERO ── */
.hero { min-height:100vh; display:grid; grid-template-columns:1fr 1fr; padding-top:84px; }
.hero-left {
  padding:80px 60px 80px 52px;
  display:flex; flex-direction:column; justify-content:center; position:relative;
}
.hero-left::after {
  content:''; position:absolute; right:-1px; top:0; bottom:0; width:36px;
  background:var(--linen);
  clip-path:polygon(0 0,100% 2%,85% 8%,100% 15%,90% 22%,100% 30%,88% 38%,100% 46%,92% 54%,100% 62%,87% 70%,100% 78%,93% 86%,100% 94%,95% 100%,0 100%);
  z-index:2;
}
.hero-kicker {
  font-family:'DM Mono', monospace; font-size:0.54rem; letter-spacing:0.55em;
  text-transform:uppercase; color:var(--stone); margin-bottom:34px;
  opacity:0; animation:rise 1s 0.2s ease both;
}
.hero-title {
  font-family:'Playfair Display', serif; font-size:clamp(2.8rem,5vw,5rem);
  font-weight:400; line-height:1.1; color:var(--earth-deep); margin-bottom:34px;
  opacity:0; animation:rise 1s 0.4s ease both;
}
.hero-title i { font-style:italic; color:var(--clay); }
.hero-body {
  font-size:0.85rem; line-height:2.1; color:var(--stone-dark); max-width:380px; margin-bottom:48px;
  opacity:0; animation:rise 1s 0.6s ease both;
}
.hero-actions {
  display:flex; gap:16px; flex-wrap:wrap;
  opacity:0; animation:rise 1s 0.8s ease both;
}
.btn-earth {
  padding:13px 34px; background:var(--earth-deep); color:var(--linen);
  font-family:'DM Mono', monospace; font-size:0.57rem; letter-spacing:0.28em;
  text-transform:uppercase; text-decoration:none; transition:background .3s;
}
.btn-earth:hover { background:var(--earth); }
.btn-bare {
  padding:13px 0; font-family:'DM Mono', monospace; font-size:0.57rem;
  letter-spacing:0.28em; text-transform:uppercase; color:var(--stone-dark);
  text-decoration:none; border-bottom:1px solid var(--linen-deep);
  transition:color .25s, border-color .25s;
}
.btn-bare:hover { color:var(--clay); border-color:var(--clay); }
.vintage-tag {
  position:absolute; bottom:52px; left:52px;
  display:flex; align-items:center; gap:14px;
  font-family:'DM Mono', monospace; font-size:0.47rem; letter-spacing:0.35em;
  text-transform:uppercase; color:var(--linen-deep);
  opacity:0; animation:rise 1s 1s ease both;
}
.vintage-tag::before { content:''; width:22px; height:1px; background:var(--linen-deep); }

.hero-right { position:relative; overflow:hidden; background:var(--earth-deep); }
.hero-right-bg {
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse at 30% 40%, rgba(139,32,32,0.18) 0%, transparent 55%),
    radial-gradient(ellipse at 75% 75%, rgba(90,120,72,0.12) 0%, transparent 50%),
    var(--earth-deep);
}
.hero-right-num {
  position:absolute; bottom:-40px; right:-20px;
  font-family:'Playfair Display', serif; font-size:clamp(180px,24vw,340px);
  font-weight:700; font-style:italic; color:rgba(255,255,255,0.025);
  line-height:1; pointer-events:none; user-select:none;
}
.hero-blason {
  position:absolute; top:0; left:0; right:0; bottom:0;
  display:flex; align-items:center; justify-content:center; z-index:1;
}
.hero-right-content {
  position:relative; z-index:2; height:100%;
  display:flex; flex-direction:column; justify-content:flex-end; padding:52px;
}
.type-pills { display:flex; flex-direction:column; gap:3px; margin-bottom:44px; }
.pill {
  display:flex; align-items:center; gap:20px; padding:15px 22px;
  border:1px solid rgba(255,255,255,0.07); text-decoration:none;
  transition:background .3s, border-color .3s;
}
.pill:hover { background:rgba(255,255,255,0.05); border-color:rgba(255,255,255,0.14); }
.pill-dot { width:9px; height:9px; border-radius:50%; flex-shrink:0; }
.pill-dot.r { background:var(--clay); }
.pill-dot.b { background:var(--sage); }
.pill-name { font-family:'Playfair Display', serif; font-size:1.15rem; font-style:italic; color:var(--linen); }
.pill-sub { font-family:'DM Mono', monospace; font-size:0.47rem; letter-spacing:0.35em; text-transform:uppercase; color:var(--stone); margin-left:auto; }
.hero-right-foot {
  border-top:1px solid rgba(255,255,255,0.06); padding-top:26px;
  display:flex; justify-content:space-between; align-items:center;
}
.foot-stat { text-align:center; }
.foot-stat-n { font-family:'Playfair Display', serif; font-size:1.9rem; font-weight:400; color:var(--linen); line-height:1; }
.foot-stat-l { font-family:'DM Mono', monospace; font-size:0.43rem; letter-spacing:0.35em; text-transform:uppercase; color:var(--stone); margin-top:6px; }
.foot-divider { width:1px; height:42px; background:rgba(255,255,255,0.06); }

/* ── COMMONS ── */
.section-label {
  font-family:'DM Mono', monospace; font-size:0.51rem; letter-spacing:0.5em;
  text-transform:uppercase; color:var(--stone); margin-bottom:26px;
  display:flex; align-items:center; gap:12px;
}
.section-label::after { content:''; flex:1; height:1px; background:var(--linen-deep); }

/* ── ABOUT ── */
.about-sec { padding:110px 52px; background:var(--chalk); }
.about-inner { max-width:1200px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:100px; align-items:start; }
.about-visual { position:relative; }
.about-frame {
  position:relative; padding-bottom:115%;
  background:var(--linen); overflow:hidden; border:1px solid var(--linen-deep);
}
.about-frame::before {
  content:''; position:absolute; inset:0;
  background:
    radial-gradient(ellipse at 40% 30%, rgba(139,32,32,0.06) 0%, transparent 55%),
    radial-gradient(ellipse at 70% 80%, rgba(90,120,72,0.05) 0%, transparent 50%),
    linear-gradient(160deg, var(--linen) 0%, var(--linen-dark) 100%);
}
.about-frame-inner { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; }
.corner { position:absolute; width:48px; height:48px; }
.corner-tl { top:-12px; left:-12px; border-top:2px solid var(--stone); border-left:2px solid var(--stone); opacity:0.45; }
.corner-br { bottom:-12px; right:-12px; border-bottom:2px solid var(--stone); border-right:2px solid var(--stone); opacity:0.45; }
.about-frame-label {
  position:absolute; bottom:18px; left:18px;
  font-family:'DM Mono', monospace; font-size:0.46rem; letter-spacing:0.38em;
  text-transform:uppercase; color:var(--stone);
}
.about-title {
  font-family:'Playfair Display', serif; font-size:clamp(1.8rem,3vw,2.8rem);
  font-weight:400; color:var(--earth-deep); line-height:1.2; margin-bottom:26px;
}
.about-title i { font-style:italic; color:var(--clay); }
.about-body { font-size:0.82rem; line-height:2.2; color:var(--stone-dark); margin-bottom:16px; letter-spacing:0.02em; }
.about-address {
  margin-top:32px; padding-top:26px; border-top:1px solid var(--linen-deep);
  font-family:'DM Mono', monospace; font-size:0.54rem; letter-spacing:0.22em;
  line-height:2.1; color:var(--stone); text-transform:uppercase;
}

/* ── BLASON ── */
.blason-sec { padding:110px 52px; background:var(--earth-deep); }
.blason-inner { max-width:1200px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:100px; align-items:center; }
.blason-sec .section-label { color:rgba(200,185,138,0.42); }
.blason-sec .section-label::after { background:rgba(255,255,255,0.06); }
.blason-title {
  font-family:'Playfair Display', serif; font-size:clamp(1.8rem,3vw,2.8rem);
  font-weight:400; color:var(--linen); line-height:1.2; margin-bottom:26px;
}
.blason-title i { font-style:italic; color:#C8A030; }
.blason-body { font-size:0.8rem; line-height:2.2; letter-spacing:0.03em; color:rgba(200,185,138,0.52); margin-bottom:16px; }
.blason-symbols { margin-top:34px; display:flex; flex-direction:column; gap:18px; }
.symbol-row {
  display:flex; align-items:flex-start; gap:16px;
  padding-bottom:18px; border-bottom:1px solid rgba(255,255,255,0.05);
}
.symbol-row:last-child { border-bottom:none; }
.symbol-icon { flex-shrink:0; width:34px; padding-top:2px; }
.symbol-text { font-size:0.74rem; line-height:1.9; color:rgba(200,185,138,0.48); }
.symbol-name {
  font-family:'DM Mono', monospace; font-size:0.48rem; letter-spacing:0.4em;
  text-transform:uppercase; color:rgba(200,185,138,0.7); display:block; margin-bottom:4px;
}
.blason-visual { display:flex; justify-content:center; align-items:center; flex-direction:column; gap:20px; }
.blason-img-pair { display:flex; gap:24px; align-items:center; }
.blason-img-pair img { width:120px; height:auto; opacity:0.85; }

/* ── CAVES ── */
.caves-sec { background:var(--linen-dark); padding:100px 52px; }
.caves-head {
  max-width:1200px; margin:0 auto 54px;
  display:flex; align-items:flex-end; justify-content:space-between;
  padding-bottom:26px; border-bottom:1px solid var(--linen-deep);
}
.caves-title {
  font-family:'Playfair Display', serif; font-size:clamp(1.8rem,3vw,2.6rem);
  font-weight:400; color:var(--earth-deep); line-height:1.2;
}
.caves-title i { font-style:italic; color:var(--clay); }
.caves-voir {
  font-family:'DM Mono', monospace; font-size:0.53rem; letter-spacing:0.28em;
  text-transform:uppercase; color:var(--stone-dark); text-decoration:none;
  border-bottom:1px solid var(--linen-deep); padding-bottom:2px; white-space:nowrap;
  transition:color .25s, border-color .25s;
}
.caves-voir:hover { color:var(--clay); border-color:var(--clay); }
.caves-filter { max-width:1200px; margin:0 auto 44px; display:flex; gap:2px; }
.f-btn {
  padding:10px 26px; background:transparent; color:var(--stone); cursor:pointer;
  border:1px solid var(--linen-deep);
  font-family:'DM Mono', monospace; font-size:0.53rem; letter-spacing:0.28em;
  text-transform:uppercase; transition:all .25s;
}
.f-btn.on, .f-btn:hover { background:var(--earth-deep); color:var(--linen); border-color:var(--earth-deep); }
.wines-grid {
  max-width:1200px; margin:0 auto;
  display:grid; grid-template-columns:repeat(2,1fr); gap:2px;
  background:var(--linen-deep);
}
.wcard { background:var(--linen-dark); overflow:hidden; transition:background .3s,transform .5s cubic-bezier(.16,1,.3,1); }
.wcard:hover { background:var(--linen); transform:translateY(-5px); }
.wcard.full { grid-column:span 2; }
.wcard-img {
  height:240px; position:relative;
  display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.wcard.r .wcard-img { background:linear-gradient(150deg,#1A0808 0%,#0F0404 100%); }
.wcard.b .wcard-img { background:linear-gradient(150deg,#060C04 0%,#0A1206 100%); }
.wcard-img::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(to top,rgba(26,22,18,0.5) 0%,transparent 60%);
}
.wcard-badge {
  position:absolute; top:16px; left:16px; z-index:2;
  font-family:'DM Mono', monospace; font-size:0.45rem; letter-spacing:0.38em;
  text-transform:uppercase; color:var(--stone); background:rgba(26,22,18,0.82);
  padding:5px 10px; backdrop-filter:blur(4px);
}
.wcard-dot { position:absolute; top:16px; right:16px; z-index:2; width:9px; height:9px; border-radius:50%; }
.wcard.r .wcard-dot { background:var(--clay); box-shadow:0 0 10px rgba(139,32,32,.5); }
.wcard.b .wcard-dot { background:var(--sage); box-shadow:0 0 10px rgba(90,120,72,.5); }
.wcard-body { padding:24px 28px 28px; }
.wcard-app {
  font-family:'DM Mono', monospace; font-size:0.47rem; letter-spacing:0.4em;
  text-transform:uppercase; margin-bottom:8px;
}
.wcard.r .wcard-app { color:var(--clay); }
.wcard.b .wcard-app { color:var(--sage-dark); }
.wcard-name { font-family:'Playfair Display', serif; font-size:1.25rem; color:var(--earth-deep); line-height:1.2; margin-bottom:3px; }
.wcard-year { font-family:'Lora', serif; font-size:0.82rem; font-style:italic; color:var(--stone); margin-bottom:14px; }
.wcard-desc { font-size:0.7rem; line-height:2; color:var(--stone-dark); margin-bottom:22px; letter-spacing:0.02em; }
.wcard-foot { display:flex; align-items:center; justify-content:flex-end; padding-top:16px; border-top:1px solid var(--linen-deep); }
.wcard-meta {
  display:flex; flex-wrap:wrap; gap:10px; margin-bottom:18px;
  font-family:'DM Mono', monospace; font-size:0.46rem; letter-spacing:0.18em;
  color:var(--stone);
}
.add-btn {
  font-family:'DM Mono', monospace; font-size:0.51rem; letter-spacing:0.26em;
  text-transform:uppercase; color:var(--linen); border:none; padding:10px 20px;
  text-decoration:none; display:inline-block; transition:background .3s;
}
.wcard.r .add-btn { background:var(--clay); }
.wcard.r .add-btn:hover { background:#6B1010; }
.wcard.b .add-btn { background:var(--sage-dark); }
.wcard.b .add-btn:hover { background:#2D4022; }

/* Philosophie card */
.philo-card {
  grid-column:span 2; background:var(--earth-deep);
  padding:48px 52px; display:flex; align-items:center; gap:60px;
}
.philo-text-quote {
  font-family:'Playfair Display', serif; font-size:1.15rem; font-style:italic;
  color:var(--linen); line-height:1.8; opacity:0.88; margin-bottom:14px;
}
.philo-text-body { font-size:0.72rem; line-height:2; color:rgba(200,185,138,0.45); }
.philo-label {
  font-family:'DM Mono', monospace; font-size:0.48rem; letter-spacing:0.48em;
  text-transform:uppercase; color:rgba(200,185,138,0.4); margin-bottom:14px;
}

/* ── PARCOURS ── */
.parcours-sec { padding:110px 52px; background:var(--chalk); }
.parcours-inner { max-width:1200px; margin:0 auto; }
.parcours-top { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:end; margin-bottom:72px; }
.parcours-title { font-family:'Playfair Display', serif; font-size:clamp(1.8rem,3vw,2.8rem); font-weight:400; color:var(--earth-deep); line-height:1.2; }
.parcours-title i { font-style:italic; color:var(--clay); }
.parcours-body { font-size:0.82rem; line-height:2.1; color:var(--stone-dark); }
.timeline { position:relative; padding-left:28px; border-left:1px solid var(--linen-deep); }
.tl-item { margin-bottom:40px; position:relative; }
.tl-item::before {
  content:''; position:absolute; left:-33px; top:6px;
  width:10px; height:10px; border-radius:50%;
  background:var(--chalk); border:1px solid var(--stone);
  transition:background .3s, border-color .3s;
}
.tl-item:hover::before { background:var(--clay); border-color:var(--clay); }
.tl-month { font-family:'DM Mono', monospace; font-size:0.49rem; letter-spacing:0.4em; text-transform:uppercase; color:var(--stone); margin-bottom:6px; }
.tl-event { font-family:'Playfair Display', serif; font-size:1.05rem; color:var(--earth-deep); margin-bottom:6px; }
.tl-desc { font-size:0.74rem; line-height:1.9; color:var(--stone-dark); }

/* ── CTA ── */
.cta-sec { background:var(--earth); padding:100px 52px; position:relative; overflow:hidden; }
.cta-sec::before {
  content:'RÉCOLTE'; position:absolute; right:-60px; bottom:-60px;
  font-family:'Playfair Display', serif; font-size:240px; font-weight:700;
  font-style:italic; color:rgba(255,255,255,0.025); line-height:1;
  pointer-events:none; user-select:none; white-space:nowrap;
}
.cta-inner { max-width:560px; position:relative; z-index:1; }
.cta-sec .section-label { color:rgba(200,185,138,0.42); }
.cta-sec .section-label::after { background:rgba(255,255,255,0.06); }
.cta-t { font-family:'Playfair Display', serif; font-size:clamp(1.8rem,3vw,2.8rem); font-weight:400; color:var(--linen); margin-bottom:16px; line-height:1.25; }
.cta-t i { font-style:italic; color:#C8A030; }
.cta-sub { font-size:0.8rem; line-height:2.1; color:rgba(200,185,138,0.5); margin-bottom:40px; }
.cta-form { display:flex; max-width:420px; }
.cta-in {
  flex:1; padding:14px 20px; background:rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.1); border-right:none;
  color:var(--linen); font-family:'Lora', serif; font-size:0.8rem;
  outline:none; transition:border-color .3s;
}
.cta-in::placeholder { color:rgba(200,185,138,0.3); }
.cta-in:focus { border-color:rgba(200,185,138,0.45); }
.cta-go {
  padding:14px 26px; background:var(--clay); color:var(--linen); border:none; cursor:pointer;
  font-family:'DM Mono', monospace; font-size:0.54rem; letter-spacing:0.26em;
  text-transform:uppercase; transition:background .3s; white-space:nowrap;
}
.cta-go:hover { background:#6B1010; }
.cta-fine { margin-top:14px; font-family:'DM Mono', monospace; font-size:0.47rem; letter-spacing:0.2em; color:rgba(200,185,138,0.2); }

/* ── FOOTER ── */
footer { background:var(--ink); padding:38px 52px; display:flex; align-items:center; justify-content:space-between; }
.foot-left { display:flex; align-items:center; gap:12px; }
.foot-logo { font-family:'Playfair Display', serif; font-size:0.9rem; color:rgba(237,228,211,0.42); text-decoration:none; letter-spacing:0.1em; transition:color .25s; }
.foot-logo:hover { color:var(--linen); }
.foot-links { display:flex; gap:26px; list-style:none; }
.foot-links a { font-family:'DM Mono', monospace; font-size:0.49rem; letter-spacing:0.28em; text-transform:uppercase; color:rgba(237,228,211,0.24); text-decoration:none; transition:color .25s; }
.foot-links a:hover { color:var(--clay); }
.foot-legal { font-family:'DM Mono', monospace; font-size:0.43rem; letter-spacing:0.16em; color:rgba(237,228,211,0.17); }

@keyframes rise { from{opacity:0;transform:translateY(18px)} to{opacity:1;transform:translateY(0)} }

/* ── BLASON — suppression du halo blanc ── */
img[src*="blason-rouge"],
img[src*="blason-vert"] { mix-blend-mode: multiply; }

/* ── WOOCOMMERCE — typographie ── */
.woocommerce,
.woocommerce-page,
.woocommerce p,
.woocommerce h1,
.woocommerce h2,
.woocommerce h3,
.woocommerce ul,
.woocommerce table,
.woocommerce .product_title,
.woocommerce .price,
.woocommerce .button,
.wc-block-components-title,
.wc-block-cart,
.wc-block-checkout {
  font-family: 'Lora', serif !important;
  font-size: 0.85rem !important;
  line-height: 1.8 !important;
}
.woocommerce h1.product_title {
  font-family: 'Playfair Display', serif !important;
  font-size: 2rem !important;
}

/* ── WOOCOMMERCE — bouton message panier ── */
.woocommerce-message .button,
.woocommerce-message a.button {
  background: #8B2020 !important;
  color: #F5F0E8 !important;
  font-family: 'DM Mono', monospace !important;
  font-size: 0.55rem !important;
  letter-spacing: 0.28em !important;
  text-transform: uppercase !important;
  padding: 10px 20px !important;
  border: none !important;
}

/* ── WOOCOMMERCE — image produit (fiche) ── */
.woocommerce div.product div.images {
  float: none !important;
  width: 100% !important;
  max-width: 320px !important;
  margin: 0 auto 40px !important;
}
.woocommerce div.product div.images img {
  max-height: 420px !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
  display: block !important;
  margin: 0 auto !important;
  pointer-events: none !important;
}
.woocommerce-product-gallery__trigger {
  display: none !important;
}

/* ── WOOCOMMERCE — produits reliés ── */
/* Note : notre single-product.php n'a pas les wrappers .woocommerce/.product */
section.related.products {
  clear: both;
  margin-top: 60px;
}
section.related.products ul.products {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 2px !important;
  background: #C4B49E !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
section.related.products ul.products li.product {
  display: flex !important;
  flex-direction: column !important;
  background: #D9CCBA !important;
  margin: 0 !important;
  float: none !important;
  width: 100% !important;
  padding-bottom: 16px !important;
}
section.related.products ul.products li.product a.woocommerce-loop-product__link {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: center !important;
  width: 100% !important;
}
section.related.products ul.products li.product a.woocommerce-loop-product__link img {
  display: block !important;
  width: auto !important;
  height: 160px !important;
  max-width: 120px !important;
  object-fit: contain !important;
  object-position: center !important;
  margin: 16px auto !important;
}
section.related.products ul.products li.product h2.woocommerce-loop-product__title {
  text-align: center !important;
  width: 100% !important;
  display: block !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
section.related.products ul.products li.product span.price {
  display: block !important;
  text-align: center !important;
}
section.related.products ul.products li.product img {
  max-height: 160px !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
  display: block !important;
  margin: 16px auto !important;
  transform: none !important;
}
section.related.products ul.products li.product .woocommerce-loop-product__title {
  font-family: 'Playfair Display', serif !important;
  font-size: 0.82rem !important;
  color: #2C2218 !important;
  min-height: 0 !important;
  padding: 0 12px 12px !important;
  text-align: center !important;
  padding: 0 20px !important;
  line-height: 1.4 !important;
}
section.related.products ul.products li.product .price {
  padding: 0 20px !important;
  font-family: 'Playfair Display', serif !important;
  color: #2C2218 !important;
  margin-top: auto !important;
}
section.related.products ul.products li.product .button {
  margin: 12px 20px 20px !important;
  font-family: 'DM Mono', monospace !important;
  font-size: 0.51rem !important;
  letter-spacing: 0.26em !important;
  text-transform: uppercase !important;
  background: #2C2218 !important;
  color: #EDE4D3 !important;
  padding: 10px 20px !important;
  border-radius: 0 !important;
  text-align: center !important;
  display: block !important;
}
section.related.products ul.products li.product .button:hover {
  background: #4A3C2E !important;
}
section.related.products ul.products li.product {
  text-align: center !important;
}
section.related.products ul.products li.product .woocommerce-loop-product__title {
  text-align: center !important;
}
section.related.products ul.products li.product .price {
  text-align: center !important;
  display: block !important;
}
section.related.products ul.products li.product .button {
  display: inline-block !important;
  width: auto !important;
  margin: 8px auto 16px !important;
  text-align: center !important;
}

/* ── WOOCOMMERCE — bouton add to cart aligné quantité (produit variable) ── */
/* Markup réel : form.variations_form.cart > div.single_variation_wrap >
   div.woocommerce-variation-add-to-cart > div.quantity + button */
.woocommerce-variation-add-to-cart {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 12px !important;
  flex-wrap: wrap !important;
}
.woocommerce-variation-add-to-cart .quantity {
  flex-shrink: 0 !important;
  margin: 0 !important;
}
.woocommerce-variation-add-to-cart .single_add_to_cart_button {
  flex-shrink: 0 !important;
  margin: 0 !important;
}
form.variations_form table.variations {
  width: 100% !important;
  margin-bottom: 12px !important;
}

/* ── WOOCOMMERCE — image produit (liste/archive) ── */
.woocommerce ul.products li.product img,
.wc-block-grid__product-image img {
  max-width: 280px !important;
  max-height: 400px !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
  margin: 0 auto !important;
  display: block !important;
}

/* ── WOOCOMMERCE — produits reliés, boutons alignés ── */
.woocommerce ul.products li.product {
  display: flex !important;
  flex-direction: column !important;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: 'Playfair Display', serif !important;
  font-size: 1rem !important;
  color: #2C2218 !important;
  min-height: 3em !important;
  display: flex !important;
  align-items: flex-start !important;
  line-height: 1.4 !important;
  margin-bottom: 12px !important;
}
.woocommerce ul.products li.product .price {
  margin-top: auto !important;
  margin-bottom: 12px !important;
}
.woocommerce ul.products li.product .button {
  margin-top: auto !important;
  width: 100% !important;
  text-align: center !important;
  font-family: 'DM Mono', monospace !important;
  font-size: 0.51rem !important;
  letter-spacing: 0.26em !important;
  text-transform: uppercase !important;
  background: #2C2218 !important;
  color: #EDE4D3 !important;
  padding: 10px 20px !important;
  border-radius: 0 !important;
}
.woocommerce ul.products li.product .button:hover {
  background: #4A3C2E !important;
}

/* ── WOOCOMMERCE — espace sous nav fixe ── */
.woocommerce div.product,
.woocommerce ul.products,
.wc-block-grid,
.woocommerce-page .site-main,
body.woocommerce .entry-content,
body.woocommerce-page .entry-content {
  padding-top: 100px !important;
  margin-top: 0 !important;
}

/* ── PANIER VIDE — annuler contraintes contentSize du thème parent ── */
/* Twenty Twenty-Five génère max-width:645px via theme.json contentSize */
/* On doit tout annuler pour la page panier afin d'avoir la pleine largeur */
.woocommerce-cart main,
.woocommerce-cart .woocommerce,
.woocommerce-cart .entry-content,
.woocommerce-cart .is-layout-constrained > .woocommerce,
.woocommerce-cart .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
  max-width: none !important;
  width: 100% !important;
  margin-inline: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box !important;
}

/* ── NAV — z-index et curseur ── */
nav {
  z-index: 99999 !important;
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
}
nav, nav * {
  cursor: none !important;
}

/* ── MON COMPTE ── */
.woocommerce-account .woocommerce {
  display: flex !important;
  flex-direction: row !important;
  gap: 60px !important;
  align-items: flex-start !important;
  padding-top: 84px !important;
}
.woocommerce-MyAccount-navigation {
  width: 200px !important;
  flex-shrink: 0 !important;
  padding-top: 0 !important;
  margin-top: 0 !important;
  position: sticky !important;
  top: 100px !important;
}
.woocommerce-MyAccount-content {
  flex: 1 !important;
  min-width: 0 !important;
}
.woocommerce-MyAccount-navigation ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  border-right: 1px solid #C4B49E !important;
  padding-right: 32px !important;
}
.woocommerce-MyAccount-navigation ul li a {
  font-family: 'DM Mono', monospace !important;
  font-size: 0.55rem !important;
  letter-spacing: 0.35em !important;
  text-transform: uppercase !important;
  color: #9B8E7D !important;
  text-decoration: none !important;
  display: block !important;
  padding: 10px 0 !important;
  border-bottom: 1px solid #D9CCBA !important;
  transition: color 0.25s !important;
}
.woocommerce-MyAccount-navigation ul li a:hover,
.woocommerce-MyAccount-navigation ul li.is-active a {
  color: #8B2020 !important;
}

/* ── MON COMPTE — typographie et formulaires ── */
.woocommerce-MyAccount-content,
.woocommerce-account .woocommerce {
  font-family: 'Lora', serif !important;
  font-size: 0.85rem !important;
  color: #2C2218 !important;
}
.woocommerce form .form-row {
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
  margin-bottom: 20px !important;
}
.woocommerce form .form-row label {
  font-family: 'DM Mono', monospace !important;
  font-size: 0.52rem !important;
  letter-spacing: 0.35em !important;
  text-transform: uppercase !important;
  color: #9B8E7D !important;
}
.woocommerce form .form-row input,
.woocommerce form .form-row textarea {
  font-family: 'Lora', serif !important;
  font-size: 0.82rem !important;
  border: 1px solid #C4B49E !important;
  background: #F5F0E8 !important;
  color: #2C2218 !important;
  padding: 12px 16px !important;
  width: 100% !important;
  outline: none !important;
}
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button {
  font-family: 'DM Mono', monospace !important;
  font-size: 0.55rem !important;
  letter-spacing: 0.28em !important;
  text-transform: uppercase !important;
  background: #2C2218 !important;
  color: #EDE4D3 !important;
  padding: 13px 34px !important;
  border: none !important;
  border-radius: 0 !important;
  transition: background 0.3s !important;
}
.woocommerce button.button:hover {
  background: #4A3C2E !important;
}

/* ── WOOCOMMERCE — masquer bouton Clear/Reset ── */
.woocommerce button.woocommerce-form-login__submit ~ a,
.wc-block-components-filter-reset-button,
.woocommerce .widget_price_filter .price_slider_amount .button,
button.wc-block-product-categories__button,
.wc-block-active-filters__clear-all,
.woocommerce a.reset_variations,
.woocommerce button[name="reset"] {
  display: none !important;
}

/* ── ADRESSES MON COMPTE ── */
.woocommerce-Address-title h2 {
  font-family: 'Playfair Display', serif !important;
  font-size: 1.2rem !important;
  font-weight: 400 !important;
  color: #2C2218 !important;
  margin-bottom: 16px !important;
  padding-bottom: 10px !important;
  border-bottom: 1px solid #C4B49E !important;
}
.woocommerce-Addresses {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 40px !important;
}
.woocommerce-Address address {
  font-style: normal !important;
  font-family: 'Lora', serif !important;
  font-size: 0.82rem !important;
  line-height: 2 !important;
  color: #6B5E4F !important;
  display: block !important;
  margin-bottom: 16px !important;
}
.edit-address-link {
  font-family: 'DM Mono', monospace !important;
  font-size: 0.52rem !important;
  letter-spacing: 0.35em !important;
  text-transform: uppercase !important;
  color: #8B2020 !important;
  text-decoration: none !important;
  border-bottom: 1px solid rgba(139,32,32,0.3) !important;
  padding-bottom: 2px !important;
  display: inline-block !important;
}

/* ── FORMULAIRE COMPTE — espacement ── */
.woocommerce-form-row,
.woocommerce form .form-row {
  margin-bottom: 12px !important;
  padding-bottom: 0 !important;
}
.woocommerce form p {
  margin-bottom: 12px !important;
}
.woocommerce form label {
  margin-bottom: 4px !important;
  display: block !important;
}
.woocommerce-Input,
.woocommerce form input[type="password"],
.woocommerce form input[type="text"],
.woocommerce form input[type="email"] {
  margin-bottom: 0 !important;
  padding: 10px 14px !important;
}
.woocommerce form fieldset {
  border: 1px solid #C4B49E !important;
  padding: 24px !important;
  margin-top: 24px !important;
  margin-bottom: 0 !important;
}
.woocommerce form fieldset legend {
  font-family: 'DM Mono', monospace !important;
  font-size: 0.52rem !important;
  letter-spacing: 0.4em !important;
  text-transform: uppercase !important;
  color: #9B8E7D !important;
  padding: 0 12px !important;
}

/* ── DASHBOARD MON COMPTE ── */
.jg-account-dashboard { font-family:'Lora',serif; color:#2C2218; max-width:800px; margin:0 auto; padding:0 0 60px; }
.jg-account-welcome { font-family:'Playfair Display',serif; font-size:2rem; font-style:italic; color:#2C2218; margin-bottom:48px; line-height:1.2; }
.jg-account-section { margin-bottom:48px; padding-bottom:40px; border-bottom:1px solid #C4B49E; }
.jg-account-section-label { font-family:'DM Mono',monospace; font-size:0.52rem; letter-spacing:0.5em; text-transform:uppercase; color:#9B8E7D; margin-bottom:20px; display:flex; align-items:center; gap:12px; }
.jg-account-section-label::after { content:''; flex:1; height:1px; background:#C4B49E; }
.jg-orders-table { width:100%; border-collapse:collapse; font-size:0.78rem; }
.jg-orders-table th { font-family:'DM Mono',monospace; font-size:0.48rem; letter-spacing:0.35em; text-transform:uppercase; color:#9B8E7D; padding:8px 12px; text-align:left; border-bottom:1px solid #C4B49E; }
.jg-orders-table td { padding:12px; border-bottom:1px solid #D9CCBA; color:#2C2218; vertical-align:middle; }
.jg-btn-small { font-family:'DM Mono',monospace; font-size:0.48rem; letter-spacing:0.28em; text-transform:uppercase; color:#EDE4D3; background:#2C2218; padding:8px 16px; text-decoration:none; transition:background .3s; display:inline-block; }
.jg-btn-small:hover { background:#4A3C2E; }
.jg-address { font-style:normal; font-size:0.82rem; line-height:2; color:#6B5E4F; }
.jg-account-empty { font-size:0.78rem; color:#9B8E7D; }
.jg-account-empty a { color:#8B2020; text-decoration:none; border-bottom:1px solid rgba(139,32,32,0.3); }

/* ── SELECT — texte non tronqué ── */
select,
.woocommerce select,
.woocommerce-page select,
.woocommerce div.product .variations select {
  line-height: 1.5 !important;
  height: auto !important;
  padding-top: 8px !important;
  padding-bottom: 8px !important;
  -webkit-appearance: menulist !important;
  appearance: menulist !important;
}

/* ══════════════════════════════════════════════════════════════
   RESPONSIVE MOBILE — Media Queries
   Ajoutées en fin de fichier pour priorité maximale
   ══════════════════════════════════════════════════════════════ */

/* ── B) Curseur désactivé sur appareils tactiles ── */
@media (hover: none) {
  .cur { display: none !important; }
  * { cursor: auto !important; }
}

/* ── Items menu hamburger masqués sur desktop ── */
.nav-menu-mobile-only { display: none !important; }

/* ══════════════════════════════════════════════
   TABLETTE — max-width: 1024px
   ══════════════════════════════════════════════ */
@media (max-width: 1024px) {

  /* Navigation */
  nav { padding: 20px 32px; }

  /* D) Grille vins — 2 colonnes tablette */
  .wines-grid { grid-template-columns: repeat(2, 1fr); }
  .wcard.full { grid-column: span 2; }

  /* F) Boutique archive — 2 colonnes tablette */
  .woocommerce-shop-grid,
  .wc-block-grid__products,
  ul.products { grid-template-columns: repeat(2, 1fr) !important; }

  /* I) Panier vide — 3 colonnes tablette */
  .cart-empty-wines-grid { grid-template-columns: repeat(3, 1fr); }

}

/* ══════════════════════════════════════════════
   MOBILE — max-width: 768px
   ══════════════════════════════════════════════ */
@media (max-width: 768px) {

  /* ── A) Navigation hamburger ── */
  #nav-toggle {
    display: block !important;
    background: transparent;
    border: 1px solid var(--linen-deep);
    color: var(--earth-deep);
    font-size: 1.2rem;
    padding: 6px 12px;
    line-height: 1;
    order: 3;
    flex-shrink: 0;
  }

  nav {
    padding: 16px 20px;
    flex-wrap: wrap;
    gap: 0;
    position: fixed;
  }

  .nav-wordmark { order: 1; flex: 1; }
  .nav-end      { order: 2; gap: 12px; }
  #nav-toggle   { order: 3; }

  .nav-menu {
    display: none;
    order: 4;
    width: 100%;
    flex-direction: column;
    gap: 0;
    background: rgba(237,228,211,0.98);
    padding: 12px 0;
    margin-top: 12px;
    border-top: 1px solid var(--linen-deep);
  }
  .nav-menu.open { display: flex; }
  .nav-menu li { width: 100%; }
  .nav-menu a {
    display: block;
    padding: 12px 20px;
    font-size: 0.6rem;
    letter-spacing: 0.28em;
    border-bottom: 1px solid rgba(196,180,158,0.3);
  }
  .nav-menu li:last-child a { border-bottom: none; }

  /* Panier et compte — taille réduite sur mobile */
  .cart-btn { font-size: 0.48rem; letter-spacing: 0.2em; }
  .lang { font-size: 0.48rem; letter-spacing: 0.22em; }

  /* Général — padding réduit */
  main { padding-top: 80px !important; }

  /* ── C) Hero — 1 colonne ── */
  .hero {
    grid-template-columns: 1fr;
    min-height: auto;
    padding-top: 72px;
  }
  .hero-left {
    padding: 52px 20px 48px;
    order: 1;
  }
  .hero-left::after { display: none; }
  .hero-right {
    order: 2;
    min-height: 320px;
  }
  .hero-right-num { font-size: clamp(100px, 40vw, 200px); }
  .hero-title { font-size: clamp(2rem, 8vw, 3.2rem); margin-bottom: 24px; }
  .hero-body  { font-size: 0.82rem; max-width: 100%; margin-bottom: 32px; }
  .hero-actions { flex-direction: column; gap: 12px; align-items: flex-start; }
  .vintage-tag { position: relative; bottom: auto; left: auto; margin-top: 28px; }

  /* ── D) Grille vins — 1 colonne mobile ── */
  .wines-grid {
    grid-template-columns: 1fr !important;
    background: transparent;
    gap: 2px;
  }
  .wcard.full { grid-column: span 1 !important; }
  .wcard.full .wcard-img { min-height: 220px !important; }

  .wcard-body { padding: 20px; }
  .wcard-name { font-size: 1.1rem; }
  .wcard-img  { height: 200px; }

  .philo-card {
    grid-column: span 1 !important;
    flex-direction: column;
    gap: 20px;
    padding: 32px 20px;
  }
  .philo-text-quote { font-size: 0.95rem; }

  /* ── E) About/Domaine — 1 colonne ── */
  .about-sec { padding: 64px 20px; }
  .about-inner {
    grid-template-columns: 1fr !important;
    gap: 40px;
  }
  .about-visual { order: 2; }
  .about-title { font-size: clamp(1.6rem, 6vw, 2.4rem); }

  /* ── Blason — 1 colonne ── */
  .blason-sec { padding: 64px 20px; }
  .blason-inner {
    grid-template-columns: 1fr !important;
    gap: 48px;
  }
  .blason-visual { order: 2; }
  .blason-title { font-size: clamp(1.6rem, 6vw, 2.4rem); }

  /* ── Caves section ── */
  .caves-sec { padding: 64px 20px; }
  .caves-head {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 32px;
  }
  .caves-voir { display: none; }
  .caves-filter { flex-wrap: wrap; gap: 4px; margin-bottom: 28px; }
  .caves-title { font-size: clamp(1.6rem, 6vw, 2.4rem); }

  /* ── J) Timeline — padding réduit ── */
  .parcours-sec { padding: 64px 20px; }
  .parcours-top {
    grid-template-columns: 1fr !important;
    gap: 24px;
    margin-bottom: 48px;
  }
  .parcours-title { font-size: clamp(1.6rem, 6vw, 2.4rem); }
  .timeline { padding-left: 20px; }
  .tl-item { margin-bottom: 28px; }
  .tl-item::before { left: -25px; }
  .tl-event { font-size: 0.95rem; }

  /* ── CTA ── */
  .cta-sec { padding: 64px 20px; }
  .cta-form { flex-direction: column; max-width: 100%; }
  .cta-in { border-right: 1px solid rgba(255,255,255,0.1); border-bottom: none; }
  .cta-go { width: 100%; text-align: center; }

  /* ── Footer ── */
  footer {
    flex-direction: column;
    gap: 24px;
    padding: 36px 20px;
    text-align: center;
  }
  .foot-links { flex-wrap: wrap; justify-content: center; gap: 16px; }

  /* ── F) Boutique archive — 1 colonne ── */
  .woocommerce main > div,
  .woocommerce-shop main > div { padding: 0 16px !important; }

  /* ── G) Fiche produit — 1 colonne, image au-dessus ── */
  .woocommerce div.product,
  .single-product main > div > div:first-child {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
  .single-product .woocommerce div.product div.images,
  .single-product main div[style*="grid-template-columns:1fr 1fr"] {
    grid-template-columns: 1fr !important;
  }
  /* Override inline style pour single-product.php */
  .single-product main .woocommerce > div[style*="grid"] {
    display: block !important;
  }

  /* ── H) Mon compte — 1 colonne ── */
  .woocommerce-MyAccount-content,
  .woocommerce-account .woocommerce {
    display: block !important;
  }
  .woocommerce-Addresses {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
  .jg-account-dashboard { padding: 0 0 40px; }
  .jg-account-welcome   { font-size: 1.5rem; margin-bottom: 32px; }
  .jg-orders-table      { font-size: 0.7rem; }
  .jg-orders-table th, .jg-orders-table td { padding: 8px 6px; }

  /* ── I) Panier vide — 1 colonne alternée image/description ── */
  .cart-empty-wines-grid { grid-template-columns: repeat(2, 1fr); }
  .djg-empty-cart-grid   { grid-template-columns: 1fr !important; }

  .djg-empty-cart-item {
    display: grid !important;
    grid-template-columns: 80px 1fr !important;
    grid-template-rows: auto auto auto !important;
    align-items: start !important;
    flex-direction: unset !important;
    padding: 12px !important;
    text-align: left !important;
    gap: 0 !important;
  }
  /* Image — colonne 1, couvre toutes les rangées */
  .djg-empty-cart-item > div:first-child {
    grid-column: 1 !important;
    grid-row: 1 / 4 !important;
    height: auto !important;
    width: 80px !important;
    margin: 0 !important;
    align-self: center !important;
  }
  .djg-empty-cart-item > div:first-child img {
    max-height: 110px !important;
    max-width: 70px !important;
    width: auto !important;
    margin: 0 auto !important;
  }
  /* Nom — colonne 2, rangée 1 */
  .djg-empty-cart-item > div:nth-child(2) {
    grid-column: 2 !important;
    grid-row: 1 !important;
    height: auto !important;
    justify-content: flex-start !important;
    align-items: flex-start !important;
    padding: 8px 8px 2px !important;
    text-align: left !important;
    font-size: 0.78rem !important;
  }
  /* Prix — colonne 2, rangée 2 */
  .djg-empty-cart-item > div:nth-child(3) {
    grid-column: 2 !important;
    grid-row: 2 !important;
    height: auto !important;
    justify-content: flex-start !important;
    align-items: flex-start !important;
    padding: 0 8px 4px !important;
    font-size: 0.72rem !important;
  }
  /* Bouton — colonne 2, rangée 3 */
  .djg-empty-cart-item > a {
    grid-column: 2 !important;
    grid-row: 3 !important;
    margin: 4px 8px 8px !important;
    align-self: start !important;
    white-space: nowrap !important;
  }
  /* Pairs : image à droite */
  .djg-empty-cart-item--even {
    grid-template-columns: 1fr 80px !important;
  }
  .djg-empty-cart-item--even > div:first-child {
    grid-column: 2 !important;
  }
  .djg-empty-cart-item--even > div:nth-child(2),
  .djg-empty-cart-item--even > div:nth-child(3) {
    grid-column: 1 !important;
    text-align: right !important;
    justify-content: flex-end !important;
  }
  .djg-empty-cart-item--even > a {
    grid-column: 1 !important;
    margin: 4px 8px 8px auto !important;
    text-align: right !important;
  }

  /* ── K) Typographie — clamp + réduction mobile ── */
  h1 { font-size: clamp(1.8rem, 7vw, 3.5rem); }
  h2 { font-size: clamp(1.4rem, 5vw, 2.8rem); }
  h3 { font-size: clamp(1.1rem, 4vw, 1.8rem); }

  .section-label { font-size: 0.48rem; letter-spacing: 0.4em; }

  /* Single product — override inline grid */
  .single-product main > div > div[style*="display:grid"] {
    display: flex !important;
    flex-direction: column !important;
    gap: 32px !important;
  }

  /* ── Items panier/compte dans le menu hamburger ── */
  .nav-menu-mobile-only { display: list-item !important; }

  /* ── Single product : image non-sticky + description réduite ── */
  .single-product main div[style*="position:sticky"] {
    position: relative !important;
    top: 0 !important;
  }
  .woocommerce-product-details__short-description,
  .single-product .woocommerce-product-details__short-description p,
  .single-product main div[style*="font-family:'Lora'"] {
    font-size: 0.72rem !important;
    line-height: 1.9 !important;
  }

  /* ── Single product : étiquette à la place de la bouteille ── */
  .single-product .djg-bottle-img { display: none !important; }
  .single-product .djg-label-img  { display: inline-block !important; }

  /* ── Single product : titre = même taille que le prix ── */
  .single-product h1.product_title {
    font-size: 0.9rem !important;
    line-height: 1.5 !important;
    margin-bottom: 6px !important;
  }

  /* ── Single product : formulaire variations — pas de débordement ── */
  .single-product .variations_form,
  .single-product table.variations {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
  }
  .single-product table.variations td,
  .single-product table.variations th {
    display: block !important;
    width: 100% !important;
    padding: 4px 0 !important;
    box-sizing: border-box !important;
  }
  .single-product table.variations select {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
  .single-product .woocommerce-variation-add-to-cart {
    flex-wrap: wrap !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }
  .single-product .quantity,
  .single-product .single_add_to_cart_button {
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  /* ── B2) Nav hamburger sur la droite — boutique / panier / compte ── */
  .woocommerce-shop .nav-end,
  .woocommerce-cart .nav-end,
  .woocommerce-account .nav-end { display: none !important; }

  .woocommerce-shop #nav-toggle,
  .woocommerce-cart #nav-toggle,
  .woocommerce-account #nav-toggle {
    order: 2;
    margin-left: auto;
  }

  /* ── Boutique archive : grille 1 colonne + layout alterné ── */
  /* Grille externe 1 colonne (chaque carte pleine largeur) */
  .djg-shop-grid {
    grid-template-columns: 1fr !important;
  }
  .djg-wine-card:not(.djg-wine-card--full) {
    grid-column: span 1 !important;
  }
  /* Inner : flex-row (image gauche, description droite) */
  .djg-wine-inner {
    flex-direction: row !important;
    align-items: stretch;
    min-height: 180px;
    height: auto !important;
  }
  /* Impairs : image à gauche */
  .djg-wine-card--odd .djg-wine-inner {
    flex-direction: row !important;
  }
  /* Pairs : image à droite (description à gauche) */
  .djg-wine-card--even .djg-wine-inner {
    flex-direction: row-reverse !important;
  }
  /* Zone image : 42% de largeur, hauteur auto */
  .djg-wine-inner > div:first-child {
    width: 42% !important;
    height: auto !important;
    min-height: 160px !important;
    flex-shrink: 0;
  }
  /* Zone info : reste de la largeur */
  .djg-wine-inner > div:last-child {
    flex: 1 !important;
    width: auto !important;
    padding: 14px 14px !important;
    font-size: 0.7rem;
  }
  .djg-wine-inner > div:last-child h2 {
    font-size: 0.95rem !important;
    margin-bottom: 4px !important;
  }
  .djg-wine-inner > div:last-child p {
    font-size: 0.62rem !important;
    line-height: 1.7 !important;
    margin-bottom: 8px !important;
  }
  .djg-wine-inner > div:last-child a {
    padding: 7px 12px !important;
    font-size: 0.42rem !important;
  }
  /* ── Produits reliés — 1 colonne alternée gauche/droite ── */
  section.related.products ul.products {
    grid-template-columns: 1fr !important;
  }
  section.related.products ul.products li.product {
    display: grid !important;
    grid-template-columns: 110px 1fr !important;
    grid-template-rows: auto auto auto !important;
    align-items: start !important;
    flex-direction: unset !important;
  }
  section.related.products ul.products li.product a.woocommerce-loop-product__link {
    display: contents !important;
    text-align: left !important;
  }
  section.related.products ul.products li.product a.woocommerce-loop-product__link img,
  section.related.products ul.products li.product img {
    grid-column: 1 !important;
    grid-row: 1 / 4 !important;
    height: 130px !important;
    width: auto !important;
    max-width: 90px !important;
    margin: 16px auto !important;
    object-fit: contain !important;
    align-self: center !important;
  }
  section.related.products ul.products li.product h2.woocommerce-loop-product__title {
    grid-column: 2 !important;
    grid-row: 1 !important;
    text-align: left !important;
    padding: 16px 12px 4px !important;
  }
  section.related.products ul.products li.product .price {
    grid-column: 2 !important;
    grid-row: 2 !important;
    text-align: left !important;
    padding: 0 12px !important;
    margin: 0 !important;
  }
  section.related.products ul.products li.product .button {
    grid-column: 2 !important;
    grid-row: 3 !important;
    margin: 8px 12px 16px !important;
    width: auto !important;
    display: inline-block !important;
    text-align: center !important;
  }
  /* Pairs : image à droite */
  section.related.products ul.products li.product:nth-child(even) {
    grid-template-columns: 1fr 110px !important;
  }
  section.related.products ul.products li.product:nth-child(even) a.woocommerce-loop-product__link img,
  section.related.products ul.products li.product:nth-child(even) img {
    grid-column: 2 !important;
  }
  section.related.products ul.products li.product:nth-child(even) h2.woocommerce-loop-product__title {
    grid-column: 1 !important;
    text-align: right !important;
  }
  section.related.products ul.products li.product:nth-child(even) .price {
    grid-column: 1 !important;
    text-align: right !important;
    padding: 0 12px !important;
  }
  section.related.products ul.products li.product:nth-child(even) .button {
    grid-column: 1 !important;
    margin: 8px 12px 16px !important;
    display: inline-block !important;
    text-align: center !important;
    width: auto !important;
  }

  /* Corton-Charlemagne : même format côte-à-côte que les autres cartes */
  .djg-wine-card--full {
    grid-column: span 1 !important;
  }
  .djg-wine-card--full > div[style*="grid-template-columns"] {
    grid-template-columns: 42% 1fr !important;
    min-height: 180px !important;
  }
  .djg-wine-card--full > div > div:first-child {
    min-height: 160px !important;
  }
  .djg-wine-card--full > div > div:last-child {
    padding: 14px 14px !important;
  }
  .djg-wine-card--full > div > div:last-child h2 {
    font-size: 0.95rem !important;
  }
  .djg-wine-card--full > div > div:last-child p {
    font-size: 0.62rem !important;
    line-height: 1.7 !important;
    margin-bottom: 8px !important;
  }
  .djg-wine-card--full > div > div:last-child a {
    padding: 7px 12px !important;
    font-size: 0.42rem !important;
  }

}

/* ══════════════════════════════════════════════
   TRÈS PETIT MOBILE — max-width: 480px
   ══════════════════════════════════════════════ */
@media (max-width: 480px) {

  nav { padding: 14px 16px; }
  .nav-wordmark { font-size: 0.85rem; }
  .nav-wordmark img { width: 22px; }
  .nav-wordmark small { display: none; }

  .cart-btn { display: none; }
  .lang { display: flex; }

  /* ── I) Panier vide — 1 colonne sur très petit écran ── */
  .cart-empty-wines-grid { grid-template-columns: 1fr; }
  .djg-empty-cart-grid   { grid-template-columns: 1fr !important; }

  .hero-title { font-size: clamp(1.7rem, 10vw, 2.8rem); }
  .hero-right { min-height: 260px; }
  .type-pills { display: none; }

  .wcard-img  { height: 160px; }
  .blason-img-pair img { width: 80px; }

  .cta-t { font-size: clamp(1.5rem, 7vw, 2.2rem); }

}
