/* V76: full public CSS bundle - source order V75 - edit originals and rebuild when patching */

/* === public.css === */
:root{
  --ink:#20221d;
  --muted:#6d7165;
  --paper:#f5f1e8;
  --paper-2:#ebe5d8;
  --khaki:#5f654b;
  --khaki-dark:#3f4533;
  --khaki-light:#8f9676;
  --clay:#9e654d;
  --clay-soft:#c7987a;
  --blue:#708e95;
  --ochre:#b99a51;
  --line:rgba(32,34,29,.18);
  --white:#fffdf8;
  --shadow:0 24px 70px rgba(35,36,30,.12);
  --serif:Georgia,"Times New Roman",serif;
  --sans:Arial,Helvetica,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --brand-serif:Georgia,"Times New Roman",serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button,input{font:inherit}
.site-shell{min-height:100vh;overflow:hidden}
.wrap{width:min(1180px,calc(100% - 40px));margin:auto}
.eyebrow{font-size:.73rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);font-weight:700}
.display{font-family:var(--serif);font-weight:500;letter-spacing:-.045em;line-height:.94;margin:0}
.title-xl{font-size:clamp(4rem,8vw,8.5rem)}
.title-lg{font-size:clamp(3rem,6vw,6.5rem)}
.title-md{font-size:clamp(2.25rem,4vw,4rem)}
.lead{font-family:var(--serif);font-size:clamp(1.25rem,2vw,1.7rem);line-height:1.35;color:#35382f}
.small{font-size:.9rem;color:var(--muted)}
.btn{display:inline-flex;align-items:center;gap:.8rem;padding:.9rem 1.15rem;border:1px solid var(--khaki-dark);text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:700;transition:.2s;background:transparent;color:var(--khaki-dark);cursor:pointer}
.btn:hover{transform:translateY(-2px);background:var(--khaki-dark);color:var(--white)}
.btn.fill{background:var(--khaki-dark);color:var(--white)}
.btn.fill:hover{background:var(--ink)}
.btn.light{border-color:rgba(255,255,255,.45);color:#fff}
.btn.light:hover{background:#fff;color:var(--ink)}
.header{position:sticky;top:0;z-index:50;background:rgba(245,241,232,.92);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.header-inner{height:92px;display:grid;grid-template-columns:230px 1fr auto;align-items:center;gap:2rem}
.brand img{width:178px;height:76px;object-fit:contain;object-position:left center;mix-blend-mode:multiply}
.nav{display:flex;align-items:center;justify-content:center;gap:1.65rem}
.nav a{font-size:.73rem;text-transform:uppercase;letter-spacing:.12em;font-weight:700;position:relative}
.nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-6px;height:1px;background:var(--khaki);transition:.2s}
.nav a:hover:after,.nav a.active:after{right:0}
.header-actions{display:flex;align-items:center;gap:.7rem}
.cart-count{display:inline-grid;place-items:center;min-width:22px;height:22px;border-radius:999px;background:var(--khaki-dark);color:white;font-size:.7rem;margin-left:.2rem}
.menu-toggle{display:none;border:0;background:transparent;font-size:1.3rem}
.hero{min-height:700px;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(380px,.95fr);position:relative;border-bottom:1px solid var(--line)}
.hero-copy{padding:9rem 7vw 6rem max(4vw,calc((100vw - 1180px)/2));display:flex;flex-direction:column;justify-content:center}
.hero-copy p{max-width:650px}
.hero-visual{position:relative;min-height:700px;background:
  radial-gradient(circle at 65% 18%,rgba(255,255,255,.65),transparent 30%),
  linear-gradient(165deg,#a2a48c 0%,#6c7459 48%,#3f4837 100%);overflow:hidden}
.hero-visual:before{
  content:"";
  position:absolute;
  inset:12% -10% -14% 10%;
  background:
    linear-gradient(12deg,transparent 44%,rgba(245,241,232,.22) 45% 46%,transparent 47%),
    linear-gradient(160deg,transparent 42%,rgba(245,241,232,.18) 43% 45%,transparent 46%);
  opacity:.9;
  transform:rotate(-5deg);
}
.hero-visual .landmark{position:absolute;left:10%;bottom:10%;font-family:var(--serif);font-size:clamp(2rem,4vw,4.5rem);line-height:.95;color:#f4efe4;max-width:440px}
.hero-visual .landmark span{display:block;font-family:var(--sans);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;margin-top:1.4rem;color:#e1ddcf}
.hero-note{position:absolute;right:2rem;top:2rem;writing-mode:vertical-rl;text-transform:uppercase;letter-spacing:.18em;font-size:.7rem;color:#f1ede2}
.section{padding:7.5rem 0}
.section.compact{padding:5rem 0}
.split-intro{display:grid;grid-template-columns:.72fr 1.28fr;gap:6rem;align-items:start}
.intro-stick{position:sticky;top:130px}
.intro-stick p{max-width:380px}
.map-panel{background:var(--white);border:1px solid var(--line);box-shadow:var(--shadow);padding:2rem;position:relative}
.map-heading{display:flex;justify-content:space-between;gap:2rem;align-items:end;margin-bottom:1rem}
.map-heading h3{font-family:var(--serif);font-size:2rem;font-weight:500;margin:.2rem 0 0}
.terroir-map{width:100%;height:auto;display:block}
.map-shape{cursor:pointer;transition:transform .2s,filter .2s,opacity .2s;transform-origin:center;transform-box:fill-box;outline:none}
.map-shape:hover,.map-shape:focus{transform:scale(1.035);filter:drop-shadow(0 8px 14px rgba(0,0,0,.15))}
.map-label{font-family:var(--sans);font-size:13px;fill:#fff;font-weight:700;letter-spacing:.03em;pointer-events:none}
.map-sub{font-size:9px;fill:rgba(255,255,255,.86);font-weight:500}
.map-key{display:flex;flex-wrap:wrap;gap:1rem 1.4rem;margin-top:1.2rem;font-size:.78rem;color:var(--muted)}
.key-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:.4rem}
.map-help{position:absolute;right:2rem;bottom:1.7rem;font-size:.73rem;color:var(--muted)}
.feature-strip{background:var(--khaki-dark);color:#f7f3e9}
.feature-grid{display:grid;grid-template-columns:1fr 1fr;min-height:610px}
.feature-image{min-height:610px;position:relative;background:
 linear-gradient(140deg,rgba(73,82,58,.1),rgba(0,0,0,.25)),
 linear-gradient(155deg,#8f9875,#646d51 44%,#3e4938);
 overflow:hidden}
.feature-image:after{content:"PHOTO DU CAUSSE\Aà remplacer";white-space:pre;position:absolute;left:2rem;bottom:2rem;border:1px solid rgba(255,255,255,.5);padding:.8rem 1rem;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase}
.feature-copy{padding:5rem clamp(2rem,6vw,6rem);display:flex;flex-direction:column;justify-content:center}
.feature-copy .lead{color:#eee9de}
.fact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem 2rem;margin:2.5rem 0}
.fact{padding-top:1rem;border-top:1px solid rgba(255,255,255,.25)}
.fact strong{display:block;font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;margin-bottom:.35rem}
.fact span{font-family:var(--serif);font-size:1.05rem;color:#ded8c8}
.wines{background:#efe9dd}
.wine-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:3rem}
.wine-card{background:var(--white);border:1px solid var(--line);min-height:470px;padding:2rem;display:flex;flex-direction:column;position:relative;overflow:hidden}
.wine-card:before{content:"";position:absolute;inset:auto -25% -18% 35%;height:180px;border-radius:50%;background:#d7d0bf;opacity:.45;filter:blur(2px)}
.bottle{width:86px;height:255px;margin:0 auto 1.5rem;position:relative;background:linear-gradient(90deg,#161a14,#2e3728 45%,#121610);border-radius:14px 14px 16px 16px;box-shadow:inset 10px 0 16px rgba(255,255,255,.07),0 18px 25px rgba(0,0,0,.18)}
.bottle:before{content:"";position:absolute;left:27px;top:-70px;width:32px;height:86px;background:#141812;border-radius:7px 7px 2px 2px}
.bottle:after{content:"CHÂTEAU\A COUPE-ROSES";white-space:pre;position:absolute;left:12px;right:12px;top:105px;height:72px;background:#f1ede3;color:#3d4236;display:grid;place-items:center;text-align:center;font-family:var(--serif);font-size:.66rem;line-height:1.1;border:1px solid #d8d1c2}
.wine-card h3{font-family:var(--serif);font-size:2.2rem;font-weight:500;margin:.2rem 0}
.wine-card .actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:auto;position:relative;z-index:2}
.wine-card p{position:relative;z-index:2}
.placeholder{border:1px dashed #9f9d94;background:rgba(255,255,255,.4);min-height:220px;display:grid;place-items:center;text-align:center;padding:2rem;color:#807e73;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase}
.footer{background:#303629;color:#e8e4da;padding:4rem 0 2rem}
.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr 1.3fr;gap:2.5rem}
.footer img{width:190px;filter:brightness(1.8) grayscale(.15);mix-blend-mode:screen}
.footer h4{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;margin:0 0 1rem}
.footer p,.footer a{font-size:.86rem;color:#c9c7bb}
.footer-bottom{display:flex;justify-content:space-between;gap:2rem;border-top:1px solid rgba(255,255,255,.16);padding-top:1.3rem;margin-top:2.5rem;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:#aaa99f}
/* terroir detail */
.page-hero{padding:7rem 0 4.5rem;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#f5f1e8,#ebe5d8)}
.page-hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:4rem;align-items:end}
.page-hero .meta{display:flex;gap:1rem;flex-wrap:wrap;margin-top:2rem}
.meta-chip{border:1px solid var(--line);padding:.55rem .8rem;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;background:rgba(255,255,255,.38)}
.quote-block{font-family:var(--serif);font-size:clamp(2rem,4vw,4.4rem);line-height:1.05;letter-spacing:-.03em;color:var(--khaki-dark);padding:5rem 0;border-bottom:1px solid var(--line)}
.story-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:start}
.story-grid.reverse .story-media{order:2}
.story-grid + .story-grid{margin-top:6rem}
.story-text h2{font-family:var(--serif);font-size:clamp(2.5rem,4vw,4.8rem);font-weight:500;line-height:1;margin:.3rem 0 1.5rem}
.story-text p{font-size:1.05rem;color:#3f4239}
.story-media{min-height:460px;background:linear-gradient(145deg,#9aa082,#586149);position:relative;box-shadow:var(--shadow)}
.story-media:after{content:attr(data-placeholder);position:absolute;inset:0;display:grid;place-items:center;color:rgba(255,255,255,.9);letter-spacing:.15em;text-transform:uppercase;font-size:.75rem;border:1px solid rgba(255,255,255,.35);margin:1.5rem}
.story-media.stone{background:linear-gradient(140deg,#d8d0bf,#8f8f7c 55%,#5c6350)}
.story-media.spring{background:linear-gradient(145deg,#7f8e62,#b2a76e 45%,#d6b76b)}
.story-media.vines{background:linear-gradient(145deg,#5c6a43,#7f8c58 45%,#b5aa78)}
.specs{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);margin:4rem 0}
.spec{padding:1.7rem;border-right:1px solid var(--line)}
.spec:last-child{border-right:0}
.spec .value{font-family:var(--serif);font-size:2rem;display:block}
.spec .label{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.linked-wines{background:var(--paper-2)}
.back-map{display:inline-flex;align-items:center;gap:.6rem;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--khaki-dark)}
/* wine page */
.wine-hero{display:grid;grid-template-columns:.85fr 1.15fr;min-height:620px;border-bottom:1px solid var(--line)}
.wine-hero-visual{display:grid;place-items:center;background:linear-gradient(145deg,#737b61,#3d4635)}
.wine-hero-visual .bottle{transform:scale(1.35);margin:0}
.wine-hero-copy{padding:7rem max(4vw,calc((100vw - 1180px)/2)) 5rem 5vw;display:flex;flex-direction:column;justify-content:center}
.wine-links{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:2rem}
.origins{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1rem}
.origin-chip{padding:.45rem .65rem;border-radius:999px;background:#e1dccf;font-size:.74rem}
/* boutique */
.shop-toolbar{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2.5rem}
.shop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.price{font-family:var(--serif);font-size:1.8rem}
.qty{width:70px;padding:.7rem;border:1px solid var(--line);background:white}
.promo-box{background:var(--white);border:1px solid var(--line);padding:1.2rem;display:flex;gap:.6rem;align-items:center}
.promo-box input{padding:.75rem;border:1px solid var(--line);min-width:220px;background:var(--paper)}
.cart-panel{margin-top:3rem;border-top:1px solid var(--line);padding-top:2rem}
.cart-line{display:flex;justify-content:space-between;gap:2rem;padding:.8rem 0;border-bottom:1px solid var(--line)}
.cart-total{font-family:var(--serif);font-size:2rem;text-align:right;margin-top:1rem}
.notice{padding:1rem 1.2rem;border-left:3px solid var(--khaki);background:#e6e1d5;margin:1rem 0;color:#55594d}
/* tech sheet */
.tech-sheet{background:#fffdf8;border:1px solid var(--line);box-shadow:var(--shadow);padding:clamp(2rem,5vw,5rem);margin:3rem auto;max-width:900px}
.tech-sheet h1{font-family:var(--serif);font-size:4rem;font-weight:500;margin:.2rem 0}
.tech-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-top:3rem}
.tech-item{border-top:1px solid var(--line);padding-top:.8rem}
.tech-item strong{display:block;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:.35rem}
@media (max-width:980px){
  .header-inner{grid-template-columns:1fr auto;height:82px}.brand img{width:150px}.nav{display:none;position:absolute;top:82px;left:0;right:0;background:var(--paper);padding:1.5rem 20px;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--line)}.nav.open{display:flex}.menu-toggle{display:block}.header-actions .btn{display:none}
  .hero{grid-template-columns:1fr}.hero-copy{padding:6rem 24px 4rem}.hero-visual{min-height:420px}.split-intro,.feature-grid,.story-grid,.page-hero-grid,.wine-hero{grid-template-columns:1fr}.intro-stick{position:static}.feature-copy{padding:4rem 24px}.feature-image{min-height:420px}.story-grid.reverse .story-media{order:0}.specs{grid-template-columns:1fr 1fr}.spec:nth-child(2){border-right:0}.spec:nth-child(-n+2){border-bottom:1px solid var(--line)}.wine-grid,.shop-grid{grid-template-columns:1fr 1fr}.footer-grid{grid-template-columns:1fr 1fr}.wine-hero-copy{padding:5rem 24px}.wine-hero-visual{min-height:460px}
}
@media (max-width:640px){
  .wrap{width:min(100% - 28px,1180px)}.title-xl{font-size:3.6rem}.section{padding:5rem 0}.map-panel{padding:1rem}.map-heading{align-items:start;flex-direction:column}.map-help{position:static;margin-top:1rem}.fact-grid{grid-template-columns:1fr}.wine-grid,.shop-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}.footer-bottom{flex-direction:column}.specs{grid-template-columns:1fr}.spec{border-right:0!important;border-bottom:1px solid var(--line)!important}.spec:last-child{border-bottom:0!important}.story-media{min-height:320px}.shop-toolbar{align-items:stretch;flex-direction:column}.promo-box{flex-wrap:wrap}.promo-box input{min-width:0;width:100%}.tech-grid{grid-template-columns:1fr}.page-hero{padding-top:4rem}
}
@media print{.header,.footer,.no-print{display:none!important}.tech-sheet{box-shadow:none;border:0;margin:0;max-width:none}.site-shell{background:white}}


/* ---- V0.4 : responsive viewport + carte territoriale ---- */
body{min-width:0}
.title-xl{font-size:clamp(3.9rem,5.7vw,6.9rem);line-height:.9;letter-spacing:-.052em}
.header-inner{height:84px}
.brand img{width:164px;height:68px}
.hero{
  min-height:calc(100svh - 84px);
  height:clamp(600px,calc(100svh - 84px),780px);
  grid-template-columns:minmax(0,.98fr) minmax(360px,1.02fr);
}
.hero-copy{padding:clamp(3.4rem,7vh,6rem) clamp(2.5rem,5vw,5rem) clamp(3rem,6vh,5rem) max(4vw,calc((100vw - 1180px)/2));justify-content:center}
.hero-copy .display{max-width:760px}
.hero-copy .lead{max-width:590px;font-size:clamp(1.08rem,1.55vw,1.45rem)}
.hero-visual{min-height:0;height:100%}
.hero-visual .landmark{font-size:clamp(2rem,3.3vw,4rem)}
.section{padding:clamp(5rem,8vw,7.5rem) 0}

/* Map becomes an illustrated territory rather than a legend-driven schematic */
.map-panel{padding:clamp(1rem,2.1vw,2rem);overflow:hidden;background:#f7f3e9}
.map-heading{margin-bottom:.4rem}
.map-heading .small{max-width:270px;text-align:right}
.terroir-map{aspect-ratio:10/6.7;width:100%;display:block}
.map-shape path{stroke:rgba(42,45,34,.55);stroke-width:2.2;vector-effect:non-scaling-stroke}
.map-shape:hover path,.map-shape:focus path{stroke:#25291f;stroke-width:3}
.map-label{font-family:var(--serif);font-size:19px;fill:#fff;font-weight:600;letter-spacing:.01em;text-shadow:0 1px 4px rgba(0,0,0,.25)}
.map-sub{font-family:var(--sans);font-size:9px;fill:rgba(255,255,255,.86);font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.map-road{fill:none;stroke:#c8bc9f;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;opacity:.82;vector-effect:non-scaling-stroke}
.map-road-core{fill:none;stroke:#f5efe1;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round;opacity:.95;vector-effect:non-scaling-stroke}
.map-path{fill:none;stroke:#a89f89;stroke-width:1.2;stroke-dasharray:5 8;opacity:.6;vector-effect:non-scaling-stroke}
.map-water{fill:none;stroke:#94abb0;stroke-width:7;stroke-linecap:round;stroke-linejoin:round;opacity:.55;vector-effect:non-scaling-stroke}
.map-water-core{fill:none;stroke:#dfe7e5;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.map-place{font-family:var(--serif);font-size:17px;fill:#32372d;font-weight:600;paint-order:stroke;stroke:#f7f3e9;stroke-width:5px;stroke-linejoin:round}
.map-place.secondary{font-size:14px;font-weight:500;fill:#5d6255}
.map-hydro-label{font-family:var(--serif);font-style:italic;font-size:13px;fill:#6e8990;paint-order:stroke;stroke:#f7f3e9;stroke-width:4px}
.map-dot{fill:#2f342a;stroke:#f7f3e9;stroke-width:3;vector-effect:non-scaling-stroke}
.map-contour{fill:none;stroke:#d7d0bf;stroke-width:1;opacity:.65;vector-effect:non-scaling-stroke}
.map-note{font-size:.72rem;color:var(--muted);margin:.65rem 0 0;text-align:right}

@media (max-width:1180px){
  .hero{grid-template-columns:minmax(0,1fr) minmax(330px,.85fr)}
  .title-xl{font-size:clamp(3.7rem,6.7vw,6rem)}
  .hero-copy{padding-left:clamp(24px,4vw,48px);padding-right:clamp(24px,4vw,48px)}
}
@media (max-width:980px){
  .header-inner{height:76px}.brand img{width:145px;height:60px}.nav{top:76px}
  .hero{height:auto;min-height:calc(100svh - 76px);grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) minmax(230px,38svh)}
  .hero-copy{padding:clamp(3rem,7vh,5rem) 24px clamp(2rem,4vh,3.5rem)}
  .hero-visual{height:auto;min-height:230px}
  .hero-note{right:1rem;top:1rem}
  .map-heading .small{text-align:left}
  .terroir-map{aspect-ratio:1.14/1}
}
@media (max-width:640px){
  .title-xl{font-size:clamp(3.35rem,15vw,4.9rem)}
  .hero{grid-template-rows:auto 34svh;min-height:0}
  .hero-copy{padding-top:3.2rem;padding-bottom:2.4rem}
  .hero-copy .lead{font-size:1.05rem}
  .hero-visual .landmark{left:7%;bottom:9%;font-size:2rem;max-width:280px}
  .hero-note{font-size:.58rem}
  .map-panel{margin-left:-14px;margin-right:-14px;border-left:0;border-right:0}
  .terroir-map{aspect-ratio:.86/1;max-height:none}
  .map-label{font-size:21px}.map-sub{font-size:10px}.map-place{font-size:18px}.map-place.secondary{font-size:15px}
  .map-heading h3{font-size:1.7rem}.map-note{text-align:left}
}
@media (max-height:760px) and (min-width:981px){
  .header-inner{height:72px}.brand img{height:58px;width:146px}
  .hero{height:calc(100svh - 72px);min-height:560px}
  .hero-copy{padding-top:2.5rem;padding-bottom:2.5rem}
  .title-xl{font-size:clamp(3.7rem,5.25vw,5.8rem)}
}


/* ---- V0.9 : carte raster aquarellée + zones cliquables SVG ---- */
.illustrated-map-v09{position:relative;aspect-ratio:4/3;width:100%;overflow:hidden;background:#f7f1e6}
.illustrated-map-v09>img{width:100%;height:100%;display:block;object-fit:cover}
.map-hotspots-v09{position:absolute;inset:0;width:100%;height:100%;display:block}
.map-hotspots-v09 a path{fill:rgba(255,255,255,0);stroke:rgba(0,0,0,0);stroke-width:10;cursor:pointer;transition:fill .18s ease,stroke .18s ease}
.map-hotspots-v09 a:hover path,.map-hotspots-v09 a:focus path{fill:rgba(255,255,255,.055);stroke:rgba(55,62,44,.35)}
.map-hotspots-v09 a:focus{outline:none}


/* ---- V0.10 : brand lockup + map corrections ---- */

.header-inner{grid-template-columns:minmax(290px,360px) 1fr auto;gap:1.6rem}
.brand-lockup{display:flex;align-items:center;gap:14px;min-width:0}
.brand-lockup img{width:188px;height:82px;object-fit:contain;object-position:left center;flex:0 0 auto;mix-blend-mode:multiply}
.brand-wording{display:flex;flex-direction:column;justify-content:center;min-width:0}
.brand-title{font-family:var(--serif);font-size:clamp(1.35rem,2.2vw,2.1rem);line-height:.92;letter-spacing:-.03em;color:var(--ink);white-space:nowrap}
.brand-subtitle{font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-top:.28rem}
.footer-brand-lockup{display:flex;align-items:center;gap:14px;margin-bottom:.7rem}
.footer-brand-lockup img{width:124px;filter:brightness(1.8) grayscale(.15);mix-blend-mode:screen}
.footer-brand-lockup span{display:flex;flex-direction:column}
.footer-brand-lockup strong{font-family:var(--serif);font-size:1.55rem;line-height:.94;font-weight:500;color:#f1ece1}
.footer-brand-lockup em{font-style:normal;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:#bdb9ac;margin-top:.35rem}
.illustrated-map-v09{background:#f7f1e6;border:1px solid rgba(47,50,39,.08)}
.map-hotspots-v09 a path{stroke-width:12}
.map-hotspots-v09 a:hover path,.map-hotspots-v09 a:focus path{fill:rgba(255,255,255,.07);stroke:rgba(55,62,44,.42)}
@media (max-width:1180px){
  .header-inner{grid-template-columns:minmax(250px,320px) 1fr auto}
  .brand-lockup img{width:166px;height:72px}
  .brand-title{font-size:1.75rem}
}
@media (max-width:980px){
  .header-inner{grid-template-columns:1fr auto;height:86px}
  .brand-lockup{gap:10px}
  .brand-lockup img{width:146px;height:62px}
  .brand-title{font-size:1.45rem}
  .brand-subtitle{font-size:.58rem;letter-spacing:.14em}
  .nav{top:86px}
}
@media (max-width:640px){
  .header-inner{height:78px}
  .brand-lockup img{width:124px;height:54px}
  .brand-title{font-size:1.18rem;white-space:normal}
  .brand-subtitle{display:none}
  .footer-brand-lockup{align-items:flex-start}
  .footer-brand-lockup img{width:110px}
  .footer-brand-lockup strong{font-size:1.35rem}
}


/* ---- V0.11 : corrected map + stronger brand lockup ---- */

.header-inner{grid-template-columns:minmax(360px,440px) 1fr auto;gap:1.8rem}
.brand-lockup{gap:18px}
.brand-lockup img{width:214px;height:92px}
.brand-wording{max-width:210px}
.brand-title{font-family:var(--brand-serif);font-size:clamp(1.55rem,2.35vw,2.55rem);line-height:.96;letter-spacing:.06em;text-transform:uppercase;white-space:normal}
.brand-subtitle{font-size:.63rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-top:.42rem}
.footer-brand-lockup strong{font-family:var(--brand-serif);font-size:1.68rem;letter-spacing:.08em;text-transform:uppercase;font-weight:500}
.illustrated-map-v09{border:1px solid rgba(47,50,39,.08);box-shadow:0 22px 40px rgba(41,43,35,.06)}
.map-hotspots-v09 a path{stroke-width:13}
@media (max-width:1180px){
  .header-inner{grid-template-columns:minmax(320px,390px) 1fr auto}
  .brand-lockup img{width:188px;height:80px}
  .brand-wording{max-width:190px}
  .brand-title{font-size:2.05rem}
}
@media (max-width:980px){
  .header-inner{grid-template-columns:1fr auto;height:90px}
  .brand-lockup img{width:162px;height:68px}
  .brand-wording{max-width:172px}
  .brand-title{font-size:1.55rem;letter-spacing:.05em}
  .brand-subtitle{font-size:.56rem;letter-spacing:.16em}
  .nav{top:90px}
}
@media (max-width:640px){
  .header-inner{height:82px}
  .brand-lockup{gap:10px}
  .brand-lockup img{width:134px;height:56px}
  .brand-wording{max-width:132px}
  .brand-title{font-size:1.14rem;letter-spacing:.045em}
  .brand-subtitle{display:none}
  .footer-brand-lockup strong{font-size:1.34rem}
}


/* ---- V0.12 : enlarged map + integrated brand plaque ---- */

.header{background:rgba(245,241,232,.94)}
.header-inner{grid-template-columns:minmax(360px,470px) 1fr auto;gap:1.6rem;height:104px}
.brand-lockup{
  position:relative;display:flex;align-items:center;gap:14px;min-width:0;width:fit-content;
  padding:12px 18px 12px 16px;background:rgba(255,253,248,.86);border:1px solid rgba(63,69,51,.18);
  box-shadow:0 14px 30px rgba(41,43,35,.08);border-radius:0 0 8px 8px;backdrop-filter:blur(6px)
}
.brand-lockup::before{content:"";position:absolute;left:-1px;top:-1px;width:86px;height:9px;background:var(--khaki-dark);border-radius:0 0 4px 0}
.brand-lockup::after{content:"";position:absolute;right:-1px;top:-1px;border-style:solid;border-width:0 26px 26px 0;border-color:transparent rgba(95,101,75,.14) transparent transparent}
.brand-lockup img{width:158px;height:69px;object-fit:contain;object-position:left center;mix-blend-mode:multiply;flex:0 0 auto}
.brand-wording{max-width:210px;padding-right:10px}
.brand-title{font-family:var(--brand-serif);font-size:clamp(1.42rem,2.15vw,2.2rem);line-height:.95;letter-spacing:.05em;text-transform:uppercase;white-space:normal}
.brand-subtitle{font-size:.58rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-top:.44rem}
.footer-brand-lockup strong{font-family:var(--brand-serif);font-size:1.6rem;letter-spacing:.08em;text-transform:uppercase;font-weight:500}

/* home terroirs section */
#terroirs .wrap.terroirs-layout{width:min(1360px,calc(100% - 36px));display:grid;grid-template-columns:minmax(280px,340px) minmax(0,1fr);gap:2.25rem;align-items:start}
#terroirs .intro-stick{position:sticky;top:126px}
#terroirs .intro-stick p{max-width:320px}
#terroirs .map-panel{padding:1.15rem 1.15rem .9rem;border-radius:10px;background:#fbf8f0}
#terroirs .map-heading{align-items:center;margin-bottom:.65rem}
#terroirs .map-heading h3{font-size:2.2rem}
#terroirs .map-cta{font-size:.82rem;letter-spacing:.04em;color:#565b50;text-align:right;max-width:280px}
#terroirs .illustrated-map-v09{aspect-ratio:4/3;border-radius:8px;box-shadow:0 24px 44px rgba(41,43,35,.08)}
#terroirs .map-note{font-size:.76rem;margin-top:.8rem}
.map-hotspots-v09 a path{stroke-width:14}
.map-hotspots-v09 a:hover path,.map-hotspots-v09 a:focus path{fill:rgba(255,255,255,.085);stroke:rgba(38,48,28,.45)}

@media (max-width:1180px){
  .header-inner{grid-template-columns:minmax(320px,410px) 1fr auto;height:98px}
  .brand-lockup img{width:146px;height:64px}
  .brand-wording{max-width:184px}
  .brand-title{font-size:1.9rem}
  #terroirs .wrap.terroirs-layout{width:min(100% - 28px,1260px);grid-template-columns:300px 1fr;gap:1.8rem}
}
@media (max-width:980px){
  .header-inner{grid-template-columns:1fr auto;height:88px}
  .brand-lockup{padding:9px 14px 9px 12px;gap:10px}
  .brand-lockup::before{height:7px;width:72px}
  .brand-lockup::after{border-width:0 20px 20px 0}
  .brand-lockup img{width:126px;height:54px}
  .brand-wording{max-width:150px;padding-right:4px}
  .brand-title{font-size:1.34rem;letter-spacing:.04em}
  .brand-subtitle{font-size:.52rem;letter-spacing:.14em;margin-top:.28rem}
  .nav{top:88px}
  #terroirs .wrap.terroirs-layout{grid-template-columns:1fr;gap:1.25rem}
  #terroirs .intro-stick{position:static}
  #terroirs .intro-stick p{max-width:none}
  #terroirs .map-heading{flex-direction:column;align-items:flex-start}
  #terroirs .map-cta{text-align:left;max-width:none}
}
@media (max-width:640px){
  .header-inner{height:82px}
  .brand-lockup{padding:8px 12px 8px 10px}
  .brand-lockup img{width:112px;height:48px}
  .brand-wording{max-width:120px}
  .brand-title{font-size:1.04rem}
  .brand-subtitle{display:none}
  #terroirs .wrap.terroirs-layout{width:min(100% - 18px,1360px)}
  #terroirs .map-panel{padding:.9rem .75rem .8rem}
  #terroirs .illustrated-map-v09{margin-left:0;margin-right:0}
  #terroirs .map-heading h3{font-size:1.7rem}
}


/* ---- V0.14 : simplified corner brand plaque ---- */

.header{position:sticky;top:0;z-index:50;overflow:visible;background:rgba(245,241,232,.95)}
.header-inner{position:static;grid-template-columns:1fr auto;height:84px;gap:1.4rem;padding-left:210px}
.brand-lockup{
  position:absolute;left:0;top:0;z-index:70;
  width:320px;height:216px;
  display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:8px;
  padding:18px 28px 28px;
  background:rgba(255,253,248,.98);
  border-right:1px solid rgba(63,69,51,.16);
  border-bottom:1px solid rgba(63,69,51,.16);
  border-radius:0;
  box-shadow:0 14px 28px rgba(41,43,35,.08);
  clip-path:polygon(0 0,100% 0,100% calc(100% - 42px),calc(100% - 42px) 100%,0 100%);
}
.brand-lockup::before,.brand-lockup::after{content:none!important}
.brand-lockup img{width:236px;height:130px;object-fit:contain;object-position:center center;mix-blend-mode:multiply;flex:0 0 auto;margin:0 auto}
.brand-wording{display:flex;align-items:center;justify-content:center;max-width:none;padding:0;width:100%}
.brand-title{font-family:var(--brand-serif);font-size:1.38rem;line-height:1;letter-spacing:.065em;text-transform:uppercase;white-space:nowrap;text-align:center;color:var(--ink)}
.brand-subtitle{display:none!important}
.nav{justify-self:center}
.header-actions{justify-self:end}
.hero-copy{padding-left:max(4vw,calc((100vw - 1180px)/2));}

@media (max-width:1180px){
  .header-inner{height:82px;padding-left:185px}
  .brand-lockup{width:286px;height:196px;padding:16px 24px 25px;clip-path:polygon(0 0,100% 0,100% calc(100% - 36px),calc(100% - 36px) 100%,0 100%)}
  .brand-lockup img{width:208px;height:116px}
  .brand-title{font-size:1.22rem}
}
@media (max-width:980px){
  .header-inner{height:78px;padding-left:190px;grid-template-columns:1fr auto}
  .brand-lockup{width:235px;height:160px;padding:12px 17px 18px;clip-path:polygon(0 0,100% 0,100% calc(100% - 28px),calc(100% - 28px) 100%,0 100%)}
  .brand-lockup img{width:168px;height:91px}
  .brand-title{font-size:.96rem;letter-spacing:.05em}
  .nav{top:78px}
}
@media (max-width:640px){
  .header-inner{height:72px;padding-left:152px}
  .brand-lockup{width:184px;height:126px;padding:9px 12px 14px;gap:3px;clip-path:polygon(0 0,100% 0,100% calc(100% - 22px),calc(100% - 22px) 100%,0 100%)}
  .brand-lockup img{width:130px;height:72px}
  .brand-title{font-size:.72rem;letter-spacing:.04em;white-space:normal;line-height:1.05}
}


/* ---- V0.16 : square logo card + pixel-aligned terroir hotspots ---- */
.brand-lockup{
  clip-path:none !important;
  border-radius:0 !important;
}
.brand-lockup::before,
.brand-lockup::after{
  content:none !important;
  display:none !important;
}

/* Hotspots now follow the coloured terroir shapes extracted from the map itself. */
.map-hotspots-v09 a path{
  stroke-width:8;
}
.map-hotspots-v09 a:hover path,
.map-hotspots-v09 a:focus path{
  fill:rgba(255,255,255,.06);
  stroke:rgba(47,55,37,.48);
}


/* v17 dynamic site */
.header-inner{position:static;grid-template-columns:1fr auto;height:84px;gap:1.4rem;padding-left:210px}
.brand-lockup{position:absolute;left:0;top:0;z-index:70;width:320px;height:216px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:8px;padding:18px 28px 28px;background:rgba(255,253,248,.98);border-right:1px solid rgba(63,69,51,.16);border-bottom:1px solid rgba(63,69,51,.16);box-shadow:0 14px 28px rgba(41,43,35,.08);clip-path:none!important}
.brand-lockup::before,.brand-lockup::after{display:none!important;content:none!important}
.brand-lockup img{width:236px;height:130px;object-fit:contain;object-position:center;mix-blend-mode:multiply;margin:0 auto}
.brand-wording{display:flex;align-items:center;justify-content:center;width:100%}
.brand-title{font-family:var(--brand-serif);font-size:1.38rem;line-height:1;letter-spacing:.065em;text-transform:uppercase;white-space:nowrap;text-align:center}
.brand-subtitle{display:none!important}
.nav{justify-self:center}.header-actions{justify-self:end}
.hero-copy{padding-left:max(4vw,calc((100vw - 1180px)/2))}
#terroirs .wrap.terroirs-layout{width:min(1360px,calc(100% - 36px));display:grid;grid-template-columns:minmax(280px,340px) minmax(0,1fr);gap:2.25rem;align-items:start}
#terroirs .intro-stick{position:sticky;top:126px}
#terroirs .intro-stick p{max-width:320px}
#terroirs .map-panel{padding:1.15rem 1.15rem .9rem;border-radius:10px;background:#fbf8f0}
#terroirs .illustrated-map{position:relative;aspect-ratio:4/3;width:100%;overflow:hidden;border-radius:8px;background:#f7f1e6;box-shadow:0 24px 44px rgba(41,43,35,.08)}
#terroirs .illustrated-map>img{width:100%;height:100%;object-fit:cover}
.map-hotspots{position:absolute;inset:0;width:100%;height:100%}.map-hotspots a path{fill:transparent;stroke:transparent;stroke-width:8;cursor:pointer;transition:.18s}.map-hotspots a:hover path,.map-hotspots a:focus path{fill:rgba(255,255,255,.06);stroke:rgba(47,55,37,.48)}
.newsletter-section{background:#e8e2d5}.newsletter-card{display:grid;grid-template-columns:1fr .9fr;gap:4rem;align-items:center;padding:3rem;border:1px solid var(--line);background:var(--white)}.newsletter-form{display:flex;gap:.7rem;flex-wrap:wrap}.newsletter-form input{min-width:270px;flex:1;padding:1rem;border:1px solid var(--line);background:var(--paper)}
.history-list{display:grid;gap:4rem;margin-top:3rem}.history-entry{display:grid;grid-template-columns:.35fr 1fr 1fr;gap:2rem;border-top:1px solid var(--line);padding-top:2rem}.history-entry .period{font-family:var(--serif);font-size:2rem}.history-entry .media{min-height:240px;background:#ded7c8;overflow:hidden}.history-entry .media img{width:100%;height:100%;object-fit:cover}
.admin-link{font-size:.65rem;opacity:.55}
@media(max-width:980px){.header-inner{height:78px;padding-left:190px;grid-template-columns:1fr auto}.brand-lockup{width:235px;height:160px;padding:12px 17px 18px}.brand-lockup img{width:168px;height:91px}.brand-title{font-size:.96rem}.nav{top:78px}#terroirs .wrap.terroirs-layout{grid-template-columns:1fr;gap:1.25rem}#terroirs .intro-stick{position:static}#terroirs .intro-stick p{max-width:none}.newsletter-card{grid-template-columns:1fr}.history-entry{grid-template-columns:1fr}}
@media(max-width:640px){.header-inner{height:72px;padding-left:152px}.brand-lockup{width:184px;height:126px;padding:9px 12px 14px}.brand-lockup img{width:130px;height:72px}.brand-title{font-size:.72rem;white-space:normal}.newsletter-card{padding:1.4rem}.newsletter-form input{min-width:0;width:100%}}

/* V18 — photos d'accueil administrables */
.hero-visual.has-photo{
  background-image:
    linear-gradient(165deg,rgba(28,34,24,.08),rgba(24,30,21,.24)),
    var(--hero-photo);
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}
.hero-visual.has-photo::before{opacity:.14}
.hero-visual.has-photo .hero-note:empty{display:none}

.feature-image.has-photo{
  background-image:
    linear-gradient(145deg,rgba(38,45,31,.08),rgba(22,28,19,.22)),
    var(--feature-photo);
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}
.feature-image.has-photo::after{display:none}


/* V19 — tous les emplacements visuels de contenu sont reliés à la médiathèque */
.wine-card-media,
.product-card-media{
  min-height:255px;
  display:grid;
  place-items:center;
  margin:0 0 1.4rem;
  background:rgba(235,229,216,.48);
  overflow:hidden;
  position:relative;
  z-index:2;
}
.wine-card-media img{
  width:100%;
  height:255px;
  object-fit:cover;
  display:block;
}
.product-card-media img{
  width:100%;
  height:255px;
  object-fit:contain;
  padding:12px;
  display:block;
}
.wine-card-media .bottle,
.product-card-media .bottle{margin:72px auto 18px}


/* === home-brand-patch.css === */
/*
 * Patch V20 — identité du domaine intégrée dans la slide d'accueil.
 * Ce fichier est volontairement séparé de public.css afin de ne pas
 * écraser les ajustements CSS déjà faits sur le serveur.
 */

/* Sur l'accueil, le grand cartouche d'angle disparaît. */
.page-domaine .brand-lockup{
  display:none !important;
}

/* Le header redevient une barre de navigation légère. */
.page-domaine .header-inner{
  padding-left:0 !important;
  grid-template-columns:1fr auto !important;
  height:84px;
}
.page-domaine .nav{
  justify-self:center;
}
.page-domaine .header-actions{
  justify-self:end;
}

/* On récupère l'espace de la colonne gauche sans empiéter sur la photo.
   La marge gauche reprend celle de la grande section Terroirs (1360px),
   afin que le hero et le texte placé à côté de la carte soient alignés. */
.page-domaine .hero-copy{
  padding-top:clamp(2.2rem,4.5vh,4rem);
  padding-bottom:clamp(2.4rem,5vh,4.5rem);
}

@media (min-width:981px){
  .page-domaine .hero-copy{
    padding-left:max(18px,calc((100vw - 1360px)/2)) !important;
  }
}

/* Signature de marque intégrée au hero. */
.hero-brand-block{
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  margin:0 0 clamp(1.55rem,3vh,2.4rem);
}

.hero-brand-logo{
  width:clamp(230px,22vw,305px);
  max-width:72%;
  height:auto;
  object-fit:contain;
  display:block;
  margin:0 auto .65rem;
  mix-blend-mode:multiply;
}

.hero-brand-name{
  font-family:var(--brand-serif);
  font-size:clamp(1.32rem,1.75vw,1.85rem);
  line-height:1.05;
  letter-spacing:.065em;
  text-transform:uppercase;
  color:var(--ink);
  margin:0 0 .55rem;
}

.hero-brand-origin{
  display:block;
  margin:0;
}

/* La composition du titre reste éditoriale et alignée à gauche. */
.page-domaine .hero-copy > .title-xl,
.page-domaine .hero-copy > .lead,
.page-domaine .hero-copy > div:last-child{
  align-self:stretch;
}

/* Ecrans un peu plus bas : on compresse le bloc plutôt que la photo. */
@media (max-height:820px) and (min-width:981px){
  .page-domaine .hero-copy{
    padding-top:1.6rem;
    padding-bottom:2rem;
  }
  .hero-brand-block{
    margin-bottom:1.25rem;
  }
  .hero-brand-logo{
    width:clamp(205px,19vw,265px);
    margin-bottom:.45rem;
  }
  .hero-brand-name{
    font-size:clamp(1.15rem,1.5vw,1.55rem);
    margin-bottom:.38rem;
  }
  .page-domaine .title-xl{
    font-size:clamp(3.55rem,5vw,5.55rem);
  }
}

@media (max-width:980px){
  .page-domaine .header-inner{
    height:78px;
    padding-left:0 !important;
    grid-template-columns:1fr auto !important;
  }
  .page-domaine .nav{top:78px}
  .hero-brand-block{
    margin-bottom:1.6rem;
  }
  .hero-brand-logo{
    width:min(270px,62vw);
    max-width:none;
  }
}

@media (max-width:640px){
  .page-domaine .header-inner{
    height:72px;
    padding-left:0 !important;
  }
  .hero-brand-block{
    margin-bottom:1.35rem;
  }
  .hero-brand-logo{
    width:min(235px,68vw);
  }
  .hero-brand-name{
    font-size:1.15rem;
    letter-spacing:.05em;
  }
}


/* === map-hover-patch.css === */
/* PATCH V22 — survol arrondi des terroirs
   Les zones de clic restent les contours précis de la carte.
   Seul le dessin affiché au survol devient une forme arrondie, serrée autour de l'îlot. */

.map-hotspots .map-hotspot-link .map-hit-area{
  fill:rgba(255,255,255,.001) !important;
  stroke:transparent !important;
  stroke-width:0 !important;
  pointer-events:all;
  cursor:pointer;
}

.map-hotspots .map-hotspot-link:hover .map-hit-area,
.map-hotspots .map-hotspot-link:focus .map-hit-area{
  fill:rgba(255,255,255,.001) !important;
  stroke:transparent !important;
  stroke-width:0 !important;
}

.map-hotspots .map-hover-ring{
  fill:rgba(247,243,233,.035);
  stroke:rgba(54,63,42,.72);
  stroke-width:4;
  vector-effect:non-scaling-stroke;
  opacity:0;
  pointer-events:none;
  transition:opacity .16s ease, fill .16s ease, stroke .16s ease, stroke-width .16s ease;
}

.map-hotspots .map-hotspot-link:hover .map-hover-ring,
.map-hotspots .map-hotspot-link:focus .map-hover-ring{
  opacity:1;
  fill:rgba(247,243,233,.08);
  stroke:rgba(54,63,42,.82);
  stroke-width:4.5;
}

.map-hotspots .map-hotspot-link:focus{
  outline:none;
}

@media (hover:none){
  .map-hotspots .map-hover-ring{
    display:none;
  }
}


/* === page-layout-patch.css === */
/*
 * PATCH V26 — fiches terroirs + en-tête des cuvées
 *
 * - Fiches terroirs : hero pleine largeur en deux moitiés, photo 50 %, identité
 *   du domaine intégrée à gauche comme sur l'accueil.
 * - Fiches cuvées : suppression du grand cartouche d'angle ; seul le dessin
 *   de la rose est conservé, petit, dans la barre de navigation.
 */

/* ==========================================================
   FICHES TERROIRS
   ========================================================== */

/* Le cartouche d'angle disparaît : l'identité est dans la slide. */
.page-terroirs .brand-lockup{
  display:none !important;
}

.page-terroirs .header-inner{
  padding-left:0 !important;
  grid-template-columns:1fr auto !important;
  height:84px !important;
}

.page-terroirs .nav{
  justify-self:center;
}

.page-terroirs .header-actions{
  justify-self:end;
}

/* Hero en deux vraies moitiés, à la manière de l'accueil. */
.terroir-hero{
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:620px;
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,#f5f1e8,#ebe5d8);
}

.terroir-hero-copy{
  position:relative;
  min-width:0;
  padding:
    clamp(2.1rem,4.5vh,3.7rem)
    clamp(2rem,5vw,5.5rem)
    clamp(2.8rem,5.5vh,4.8rem)
    max(18px,calc((100vw - 1360px)/2));
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.terroir-hero-copy .back-map{
  position:absolute;
  top:clamp(1.6rem,3vh,2.5rem);
  left:max(18px,calc((100vw - 1360px)/2));
  z-index:2;
}

/* Même logique visuelle que la signature de l'accueil. */
.terroir-brand-block{
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  margin:clamp(1.2rem,2.6vh,2rem) 0 clamp(1.6rem,3vh,2.5rem);
}

.terroir-brand-logo{
  width:clamp(220px,21vw,300px);
  max-width:72%;
  height:auto;
  display:block;
  object-fit:contain;
  margin:0 auto .6rem;
  mix-blend-mode:multiply;
}

.terroir-brand-name{
  font-family:var(--brand-serif);
  font-size:clamp(1.25rem,1.65vw,1.78rem);
  line-height:1.05;
  letter-spacing:.065em;
  text-transform:uppercase;
  color:var(--ink);
}

.terroir-hero-content{
  width:min(100%,620px);
}

.terroir-hero-content .title-lg{
  margin-top:.25rem;
}

.terroir-hero-content .lead{
  max-width:620px;
}

.terroir-hero-content .meta{
  display:flex;
  gap:1rem;
  flex-wrap:wrap;
  margin-top:2rem;
}

/* La photo devient réellement la moitié droite de la slide. */
.terroir-hero-visual{
  min-width:0;
  min-height:620px;
  position:relative;
  overflow:hidden;
  background:linear-gradient(145deg,#939b80,#505a45);
}

.terroir-hero-visual img{
  width:100%;
  height:100%;
  min-height:620px;
  display:block;
  object-fit:cover;
  object-position:center;
}

.terroir-hero-visual.placeholder{
  display:grid;
  place-items:center;
}


/* ==========================================================
   FICHES CUVÉES
   ========================================================== */

/* On transforme l'ancien grand cartouche en simple logo de navigation. */
.page-vins .header-inner{
  position:relative !important;
  padding-left:0 !important;
  grid-template-columns:118px 1fr auto !important;
  gap:1.7rem !important;
  height:84px !important;
}

.page-vins .brand-lockup{
  position:static !important;
  z-index:auto !important;
  width:112px !important;
  height:68px !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  clip-path:none !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:0 !important;
  overflow:visible !important;
}

.page-vins .brand-lockup::before,
.page-vins .brand-lockup::after{
  display:none !important;
  content:none !important;
}

.page-vins .brand-lockup img{
  width:108px !important;
  height:62px !important;
  max-width:100% !important;
  margin:0 !important;
  object-fit:contain !important;
  object-position:center !important;
  mix-blend-mode:multiply;
}

.page-vins .brand-wording{
  display:none !important;
}

.page-vins .nav{
  justify-self:center;
}

.page-vins .header-actions{
  justify-self:end;
}

/* Le visuel de cuvée commence donc sous la barre, sans être recouvert. */
.page-vins .wine-hero{
  position:relative;
}


/* ==========================================================
   RESPONSIVE
   ========================================================== */

@media (max-width:980px){
  .page-terroirs .header-inner{
    height:78px !important;
    padding-left:0 !important;
    grid-template-columns:1fr auto !important;
  }
  .page-terroirs .nav{top:78px}

  .terroir-hero{
    grid-template-columns:1fr;
    min-height:0;
  }

  .terroir-hero-copy{
    padding:4.8rem 24px 3.8rem;
  }

  .terroir-hero-copy .back-map{
    left:24px;
    top:1.6rem;
  }

  .terroir-brand-block{
    margin:1rem 0 1.7rem;
  }

  .terroir-brand-logo{
    width:min(270px,62vw);
    max-width:none;
  }

  .terroir-hero-content{
    width:100%;
  }

  .terroir-hero-visual,
  .terroir-hero-visual img{
    min-height:460px;
  }

  .page-vins .header-inner{
    grid-template-columns:92px 1fr auto !important;
    height:78px !important;
    padding-left:0 !important;
  }

  .page-vins .brand-lockup{
    width:88px !important;
    height:58px !important;
  }

  .page-vins .brand-lockup img{
    width:86px !important;
    height:52px !important;
  }

  .page-vins .nav{top:78px}
}

@media (max-width:640px){
  .page-terroirs .header-inner{
    height:72px !important;
  }

  .terroir-hero-copy{
    padding:4.4rem 18px 3rem;
  }

  .terroir-hero-copy .back-map{
    left:18px;
    top:1.35rem;
  }

  .terroir-brand-logo{
    width:min(235px,68vw);
  }

  .terroir-brand-name{
    font-size:1.12rem;
    letter-spacing:.05em;
  }

  .terroir-hero-visual,
  .terroir-hero-visual img{
    min-height:340px;
  }

  .page-vins .header-inner{
    grid-template-columns:72px 1fr auto !important;
    height:72px !important;
    gap:.6rem !important;
  }

  .page-vins .brand-lockup{
    width:68px !important;
    height:50px !important;
  }

  .page-vins .brand-lockup img{
    width:66px !important;
    height:46px !important;
  }

  .page-vins .nav{top:72px}
}


/* ==========================================================
   V27 — HISTOIRE / BOUTIQUE
   ========================================================== */

/* Sur ces deux pages, le cartouche d'angle disparaît comme sur les terroirs. */
.page-histoire .brand-lockup,
.page-boutique .brand-lockup{
  display:none !important;
}

.page-histoire .header-inner,
.page-boutique .header-inner{
  padding-left:0 !important;
  grid-template-columns:1fr auto !important;
  height:84px !important;
}

.page-histoire .nav,
.page-boutique .nav{
  justify-self:center;
}

.page-histoire .header-actions,
.page-boutique .header-actions{
  justify-self:end;
}

/* Logo à gauche, titre à droite dans la slide. */
.editorial-brand-hero{
  padding:0 !important;
}

.editorial-brand-grid{
  min-height:425px;
  display:grid;
  grid-template-columns:minmax(300px,.78fr) minmax(0,1.45fr);
  gap:clamp(3rem,7vw,8rem);
  align-items:center;
  padding-top:clamp(3.5rem,7vh,6rem);
  padding-bottom:clamp(3.5rem,7vh,6rem);
}

.editorial-brand-block{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
}

.editorial-brand-block img{
  width:clamp(220px,22vw,315px);
  max-width:100%;
  height:auto;
  display:block;
  margin:0 auto .75rem;
  object-fit:contain;
  mix-blend-mode:multiply;
}

.editorial-brand-name{
  font-family:var(--brand-serif);
  font-size:clamp(1.25rem,1.65vw,1.78rem);
  line-height:1.05;
  letter-spacing:.065em;
  text-transform:uppercase;
  color:var(--ink);
}

.editorial-hero-copy{
  min-width:0;
  max-width:820px;
}

.editorial-hero-copy .title-lg{
  margin-top:.3rem;
}

.editorial-hero-copy .lead{
  max-width:780px;
}

/* Le footer public n'affiche plus de colonne Administration. */
.footer-grid{
  grid-template-columns:1.35fr .8fr 1fr !important;
}

/* ==========================================================
   V27 — IMAGES RESPONSIVES
   ========================================================== */

.terroir-hero-visual img,
.wine-hero-visual img,
.story-media img,
.history-entry .media img,
.wine-card-media img,
.product-card-media img{
  image-rendering:auto;
  backface-visibility:hidden;
}

@media (max-width:980px){
  .page-histoire .header-inner,
  .page-boutique .header-inner{
    height:78px !important;
    padding-left:0 !important;
    grid-template-columns:1fr auto !important;
  }

  .page-histoire .nav,
  .page-boutique .nav{
    top:78px;
  }

  .editorial-brand-grid{
    grid-template-columns:1fr;
    gap:2rem;
    min-height:0;
    padding-top:3.2rem;
    padding-bottom:3.6rem;
  }

  .editorial-brand-block img{
    width:min(270px,62vw);
  }

  .editorial-hero-copy{
    max-width:none;
  }

  .footer-grid{
    grid-template-columns:1fr 1fr !important;
  }
}

@media (max-width:640px){
  .page-histoire .header-inner,
  .page-boutique .header-inner{
    height:72px !important;
  }

  .page-histoire .nav,
  .page-boutique .nav{
    top:72px;
  }

  .editorial-brand-grid{
    padding-top:2.7rem;
    padding-bottom:3rem;
    gap:1.5rem;
  }

  .editorial-brand-block img{
    width:min(235px,68vw);
  }

  .editorial-brand-name{
    font-size:1.12rem;
    letter-spacing:.05em;
  }

  .footer-grid{
    grid-template-columns:1fr !important;
  }
}


/* === wines-index-patch.css === */
/* PATCH V28 — page Toutes les cuvées */

/* La page catalogue suit la logique Histoire/Boutique :
   identité dans la slide, pas de gros cartouche en angle. */
.page-vins-index .brand-lockup{
  display:none !important;
}

.page-vins-index .header-inner{
  padding-left:0 !important;
  grid-template-columns:1fr auto !important;
  height:84px !important;
}

.page-vins-index .nav{
  justify-self:center;
}

.page-vins-index .header-actions{
  justify-self:end;
}

.home-all-wines{
  display:flex;
  justify-content:center;
  margin-top:2.4rem;
}

.wines-catalog-section{
  background:#efe9dd;
}

.wines-catalog-heading{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,.7fr);
  gap:3rem;
  align-items:end;
  margin-bottom:3rem;
}

.wines-catalog-heading .lead{
  max-width:520px;
  justify-self:end;
  margin-bottom:.35rem;
}

.wines-catalog-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1.4rem;
}

.wine-catalog-card{
  min-width:0;
  background:var(--white);
  border:1px solid var(--line);
  overflow:hidden;
  display:flex;
  flex-direction:column;
}

.wine-catalog-media{
  display:flex;
  align-items:center;
  justify-content:center;
  height:clamp(390px,42vw,560px);
  overflow:hidden;
  padding:clamp(1.4rem,2.5vw,2.6rem);
  position:relative;
  isolation:isolate;
  background:
    radial-gradient(ellipse at 50% 48%,rgba(255,255,255,.28) 0 18%,rgba(255,255,255,.10) 42%,transparent 70%),
    linear-gradient(145deg,#818a72 0%,#68725c 48%,#525b49 100%);
}

/* Halo discret pour détacher les bouteilles détourées du fond. */
.wine-catalog-media::before{
  content:"";
  position:absolute;
  z-index:-1;
  width:58%;
  height:78%;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:radial-gradient(ellipse,rgba(249,246,236,.18),transparent 72%);
  filter:blur(10px);
  pointer-events:none;
}

/* Les bouteilles verticales doivent toujours être visibles en entier. */
.wine-catalog-media img{
  display:block;
  width:auto;
  height:100%;
  max-width:82%;
  max-height:100%;
  object-fit:contain;
  object-position:center;
  image-rendering:auto;
  filter:drop-shadow(0 18px 20px rgba(23,27,20,.18));
  transition:transform .3s ease;
}

@media (hover:hover) and (pointer:fine){
  .wine-catalog-card:hover .wine-catalog-media img{
    transform:scale(1.025);
  }
}

.wine-catalog-placeholder{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
}

.wine-catalog-placeholder .bottle{
  margin:0;
  transform:scale(.82);
}

.wine-catalog-body{
  padding:clamp(1.4rem,2.3vw,2rem);
  display:flex;
  flex-direction:column;
  flex:1;
}

.wine-catalog-body h2{
  font-family:var(--serif);
  font-size:clamp(2.1rem,3vw,3.2rem);
  font-weight:500;
  line-height:.98;
  margin:.25rem 0 1rem;
}

.wine-catalog-body h2 a{
  color:var(--ink);
}

.wine-catalog-body > p{
  color:#4a4d43;
  font-size:1rem;
  max-width:620px;
}

.wine-catalog-origins{
  display:flex;
  flex-wrap:wrap;
  gap:.55rem;
  margin-top:1.15rem;
}

.wine-catalog-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
  margin-top:auto;
  padding-top:1.7rem;
}

@media (max-width:980px){
  .page-vins-index .header-inner{
    height:78px !important;
    padding-left:0 !important;
    grid-template-columns:1fr auto !important;
  }

  .page-vins-index .nav{
    top:78px;
  }

  .wines-catalog-heading{
    grid-template-columns:1fr;
    gap:1rem;
  }

  .wines-catalog-heading .lead{
    justify-self:start;
    max-width:700px;
  }
}


@media (max-width:980px){
  .wine-catalog-media{
    height:clamp(360px,56vw,520px);
  }

  .wine-catalog-media img{
    max-width:78%;
  }
}

@media (max-width:760px){
  .wines-catalog-grid{
    grid-template-columns:1fr;
  }

  .wine-catalog-media{
    height:min(68svh,520px);
    min-height:360px;
    padding:1.4rem;
  }

  .wine-catalog-media img{
    max-width:86%;
  }
}

@media (max-width:640px){
  .page-vins-index .header-inner{
    height:72px !important;
  }

  .page-vins-index .nav{
    top:72px;
  }

  .home-all-wines{
    justify-content:flex-start;
    margin-top:1.7rem;
  }
}


/* === wine-detail-patch.css === */
/*
 * PATCH V41 — fiche cuvée réorganisée
 * - la description longue sort du hero et passe dans le corps de page ;
 * - la description courte reste seule dans la slide ;
 * - le corps est mis en page en rubriques aérées ;
 * - les blocs type CULTURE / VINIFICATION / ÉLEVAGE sont valorisés.
 */

.page-vins{
  --wine-header-h:84px;
}

.page-vins .wine-hero{
  min-height:calc(100svh - var(--wine-header-h));
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  border-bottom:1px solid var(--line);
  background:var(--paper);
  overflow:hidden;
}

.page-vins .wine-hero-visual{
  position:relative;
  min-width:0;
  min-height:0;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  padding:clamp(1.4rem,3vw,3rem);
  isolation:isolate;
  background:
    radial-gradient(ellipse at 50% 46%, rgba(255,255,255,.38) 0 18%, rgba(255,255,255,.16) 38%, transparent 67%),
    linear-gradient(145deg,#89927a 0%,#727c66 46%,#5b6553 100%);
}

.page-vins .wine-hero-visual::before{
  content:"";
  position:absolute;
  z-index:-1;
  width:min(70%,520px);
  height:82%;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:radial-gradient(ellipse,rgba(250,247,238,.22) 0%,rgba(250,247,238,.09) 48%,transparent 73%);
  filter:blur(12px);
  pointer-events:none;
}

.page-vins .wine-bottle-image{
  display:block;
  width:auto;
  height:min(78svh,780px);
  max-height:calc(100% - 2.4rem);
  max-width:min(88%,520px);
  object-fit:contain;
  object-position:center;
  filter:drop-shadow(0 24px 28px rgba(25,29,22,.20));
}

.page-vins .wine-hero-visual .bottle{
  margin:0;
  transform:scale(1.25);
}

.page-vins .wine-hero-copy{
  min-width:0;
  padding:
    clamp(2rem,5vh,4.6rem)
    max(4vw,calc((100vw - 1180px)/2))
    clamp(2rem,5vh,4.6rem)
    clamp(2.3rem,5vw,5.4rem);
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
}

.page-vins .wine-hero-copy .title-lg{
  margin:.2rem 0 1.15rem;
  font-size:clamp(3.6rem,6.2vw,6.6rem);
  line-height:.9;
}

.page-vins .wine-hero-copy .lead{
  max-width:36ch;
  font-size:clamp(1.15rem,1.55vw,1.6rem);
  line-height:1.32;
  margin-bottom:1.35rem;
}

.page-vins .origins{
  margin-top:.2rem;
}

.page-vins .wine-links{
  margin-top:1.45rem;
}

.page-vins .wine-detail-section{
  background:#f7f4ec;
}

.page-vins .wine-detail-wrap{
  max-width:1120px;
}

.page-vins .wine-detail-heading{
  max-width:720px;
  margin-bottom:2rem;
}

.page-vins .wine-detail-heading h2{
  margin:.2rem 0 0;
  font-size:clamp(2.7rem,5vw,4.4rem);
  line-height:.95;
}

.page-vins .wine-detail-body{
  display:grid;
  gap:0;
}

.page-vins .wine-rich-paragraph p{
  max-width:860px;
  margin:0 0 1rem;
  font-size:1.06rem;
  line-height:1.82;
}

.page-vins .wine-detail-block{
  display:grid;
  grid-template-columns:minmax(180px,230px) minmax(0,1fr);
  gap:1.2rem 2rem;
  padding:1.5rem 0;
  border-top:1px solid var(--line);
}

.page-vins .wine-detail-block:last-child{
  border-bottom:1px solid var(--line);
}

.page-vins .wine-detail-block h2{
  margin:0;
  font-size:.84rem;
  line-height:1.4;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#5d664e;
}

.page-vins .wine-detail-content{
  min-width:0;
}

.page-vins .wine-detail-content p{
  max-width:760px;
  margin:0 0 .9rem;
  line-height:1.82;
}

.page-vins .wine-detail-content p:last-child{
  margin-bottom:0;
}

.page-vins .wine-detail-list{
  margin:.2rem 0 0 1.1rem;
  padding:0;
  display:grid;
  gap:.4rem;
}

.page-vins .wine-detail-list li{
  line-height:1.7;
}

@media (min-width:981px) and (max-height:720px){
  .page-vins .wine-bottle-image{
    height:min(72svh,620px);
    max-height:calc(100% - 1.5rem);
  }

  .page-vins .wine-hero-copy{
    padding-top:1.6rem;
    padding-bottom:1.6rem;
  }

  .page-vins .wine-hero-copy .title-lg{
    font-size:clamp(3rem,5vw,5rem);
    margin-bottom:.75rem;
  }

  .page-vins .wine-hero-copy .lead{
    font-size:1.08rem;
    margin-bottom:.75rem;
  }
}

@media (max-width:980px){
  .page-vins{
    --wine-header-h:78px;
  }

  .page-vins .wine-hero{
    min-height:calc(100svh - var(--wine-header-h));
    grid-template-columns:1fr;
    grid-template-rows:minmax(360px,46svh) auto;
    overflow:visible;
  }

  .page-vins .wine-hero-visual{
    min-height:0;
    padding:1.4rem 1rem;
  }

  .page-vins .wine-bottle-image{
    height:min(42svh,520px);
    max-height:calc(100% - 1rem);
    max-width:min(84vw,430px);
  }

  .page-vins .wine-hero-copy{
    padding:2.6rem 24px 3.2rem;
  }

  .page-vins .wine-hero-copy .title-lg{
    font-size:clamp(3.4rem,10vw,5.5rem);
  }

  .page-vins .wine-detail-heading{
    margin-bottom:1.5rem;
  }

  .page-vins .wine-detail-block{
    grid-template-columns:1fr;
    gap:.7rem;
    padding:1.2rem 0;
  }
}

@media (max-width:640px){
  .page-vins{
    --wine-header-h:72px;
  }

  .page-vins .wine-hero{
    grid-template-rows:minmax(300px,42svh) auto;
  }

  .page-vins .wine-hero-visual{
    padding:1rem .8rem;
  }

  .page-vins .wine-bottle-image{
    height:min(38svh,430px);
    max-width:88vw;
  }

  .page-vins .wine-hero-copy{
    padding:2rem 18px 2.7rem;
  }

  .page-vins .wine-hero-copy .title-lg{
    font-size:clamp(3rem,14vw,4.5rem);
  }

  .page-vins .wine-hero-copy .lead{
    font-size:1.08rem;
  }

  .page-vins .wine-detail-heading h2{
    font-size:clamp(2.2rem,12vw,3.4rem);
  }
}

@media (max-width:640px) and (max-height:700px){
  .page-vins .wine-hero{
    grid-template-rows:270px auto;
  }

  .page-vins .wine-bottle-image{
    height:245px;
  }
}


/* === terroir-wines-patch.css === */
/*
 * PATCH V31 — cuvées liées sur les fiches terroirs
 *
 * 1. Les photos proviennent désormais de la même source que /vins.php.
 * 2. Les bouteilles sont affichées en entier : plus de recadrage object-fit:cover.
 */

.linked-wines .wine-grid{
  align-items:stretch;
}

.linked-wines .wine-card{
  min-height:560px;
  padding:1.55rem;
}

.linked-wines .wine-card-media{
  height:330px;
  min-height:330px;
  margin:0 0 1.5rem;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  overflow:hidden;
  padding:1.15rem;
  background:
    radial-gradient(ellipse at 50% 48%,rgba(255,255,255,.27) 0 18%,rgba(255,255,255,.10) 42%,transparent 70%),
    linear-gradient(145deg,#818a72 0%,#68725c 48%,#525b49 100%);
}

.linked-wines .wine-card-media::before{
  content:"";
  position:absolute;
  width:58%;
  height:78%;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:radial-gradient(ellipse,rgba(249,246,236,.18),transparent 72%);
  filter:blur(10px);
  pointer-events:none;
}

.linked-wines .wine-card-media img{
  position:relative;
  z-index:1;
  display:block;
  width:auto !important;
  height:100% !important;
  max-width:82%;
  max-height:100%;
  padding:0 !important;
  object-fit:contain !important;
  object-position:center;
  image-rendering:auto;
  filter:drop-shadow(0 16px 18px rgba(23,27,20,.18));
}

.linked-wines .wine-card-media .bottle{
  position:relative;
  z-index:1;
  margin:0 auto;
  transform:scale(.92);
}

.linked-wines .wine-card h3{
  margin-top:.15rem;
}

.linked-wines .wine-card .actions{
  padding-top:1.2rem;
}

@media (max-width:980px){
  .linked-wines .wine-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .linked-wines .wine-card-media{
    height:340px;
    min-height:340px;
  }
}

@media (max-width:680px){
  .linked-wines .wine-grid{
    grid-template-columns:1fr;
  }

  .linked-wines .wine-card{
    min-height:0;
  }

  .linked-wines .wine-card-media{
    height:min(58svh,460px);
    min-height:340px;
  }

  .linked-wines .wine-card-media img{
    max-width:86%;
  }
}

/* ==========================================================
   V46 — photos éditoriales au format de l'original
   ========================================================== */

/* Le hero conserve son recadrage plein écran et son point focal. */
.page-terroirs .terroir-hero-visual img{
  object-position:var(--focus-x,50%) var(--focus-y,50%) !important;
}

/*
 * Les photos placées dans le corps de la fiche reprennent désormais
 * le ratio du fichier original. Une image 3:2 reste donc 3:2, une
 * image carrée reste carrée et une image portrait reste verticale.
 */
.page-terroirs .story-media{
  position:relative;
  width:100%;
  height:auto !important;
  min-height:0 !important;
  aspect-ratio:var(--media-ratio,4 / 3);
  overflow:hidden;
  align-self:center;
}

.page-terroirs .story-media > img{
  position:absolute;
  inset:0;
  display:block;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  max-height:none !important;
  object-fit:cover !important;
  object-position:var(--focus-x,50%) var(--focus-y,50%) !important;
}

.page-terroirs .story-media > .placeholder{
  position:absolute;
  inset:0;
  width:100%;
  height:100% !important;
  min-height:0;
}

/*
 * Une photo horizontale reçoit davantage de largeur dans la composition.
 * Cela renforce précisément les paysages et vues lointaines sans modifier
 * les images plus carrées ou verticales.
 */
@media(min-width:981px){
  .page-terroirs .story-grid.media-landscape:not(.reverse){
    grid-template-columns:minmax(0,1.28fr) minmax(300px,.72fr);
    gap:clamp(2.7rem,4.5vw,5rem);
    align-items:center;
  }

  .page-terroirs .story-grid.media-landscape.reverse{
    grid-template-columns:minmax(300px,.72fr) minmax(0,1.28fr);
    gap:clamp(2.7rem,4.5vw,5rem);
    align-items:center;
  }

  .page-terroirs .story-grid.media-panoramic:not(.reverse){
    grid-template-columns:minmax(0,1.42fr) minmax(280px,.58fr);
    gap:clamp(2.4rem,4vw,4.5rem);
    align-items:center;
  }

  .page-terroirs .story-grid.media-panoramic.reverse{
    grid-template-columns:minmax(280px,.58fr) minmax(0,1.42fr);
    gap:clamp(2.4rem,4vw,4.5rem);
    align-items:center;
  }

  .page-terroirs .story-grid.media-portrait:not(.reverse){
    grid-template-columns:minmax(260px,.78fr) minmax(0,1.22fr);
    align-items:center;
  }

  .page-terroirs .story-grid.media-portrait.reverse{
    grid-template-columns:minmax(0,1.22fr) minmax(260px,.78fr);
    align-items:center;
  }
}

/* Sur tablette/mobile, la photo prend toute la largeur et conserve son ratio. */
@media(max-width:980px){
  .page-terroirs .story-media{
    width:100%;
    aspect-ratio:var(--media-ratio,4 / 3);
  }
}

/* Une très haute image portrait ne doit toutefois pas monopoliser l'écran mobile. */
@media(max-width:640px){
  .page-terroirs .story-grid.media-portrait .story-media{
    width:min(86vw,460px);
    justify-self:center;
  }
}

/* V54 — vrai format naturel ; seule une selection explicite provoque un recadrage. */
.page-terroirs .story-media.media-fit-natural{
  aspect-ratio:auto !important;
  height:auto !important;
  overflow:visible;
}
.page-terroirs .story-media.media-fit-natural > img{
  position:static !important;
  inset:auto !important;
  width:100% !important;
  height:auto !important;
  max-width:100% !important;
  object-fit:contain !important;
  object-position:center !important;
}


/* === commerce-patch.css === */
/* V33 — panier, checkout et paiement */
.cart-head{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--ink);white-space:nowrap}.cart-head span{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 5px;border-radius:999px;background:var(--khaki-dark);color:#fff;margin-left:.3rem}.cart-mini-hero{padding:5rem 0 4rem}.commerce-section{padding-top:4rem}.commerce-grid,.checkout-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.7fr);gap:2rem;align-items:start}.commerce-card{background:#fffdf8;border:1px solid var(--line);padding:clamp(1.2rem,2.5vw,2rem)}.commerce-card h2{font-family:var(--serif);font-size:2rem;font-weight:500;margin:0 0 1.2rem}.cart-product{display:grid;grid-template-columns:minmax(0,1fr) 90px 120px;gap:1rem;align-items:center;padding:1rem 0;border-bottom:1px solid var(--line)}.cart-product span{display:block;color:var(--muted);font-size:.82rem}.cart-product input,.shop-qty input{width:70px;padding:.55rem;border:1px solid var(--line)}.commerce-promo{margin-top:1rem}.order-summary{position:sticky;top:110px}.order-summary>div{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0}.order-summary .summary-total{border-top:1px solid var(--line);margin-top:.5rem;padding-top:1rem;font-family:var(--serif);font-size:1.4rem}.wide{width:100%;margin-top:.7rem}.commerce-error{border-left-color:#9a4138;background:#efe0db}.shop-add-form{display:flex;align-items:end;gap:.65rem;flex-wrap:wrap}.shop-qty{display:grid;gap:.2rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}.checkout-form{display:grid;gap:1rem}.checkout-form h2{margin-top:1.2rem}.checkout-form label{display:grid;gap:.4rem;font-size:.82rem;font-weight:700}.checkout-form input,.checkout-form select{width:100%;padding:.82rem;border:1px solid var(--line);background:#fff;font:inherit}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.delivery-options,.payment-options{display:grid;gap:.7rem}.delivery-options label,.check-line{display:flex!important;align-items:center;gap:.65rem;font-weight:500!important}.delivery-options input,.check-line input,.payment-choice input{width:auto}.payment-choice{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;gap:.8rem!important;border:1px solid var(--line);padding:1rem;background:#fff}.payment-choice span{display:grid;gap:.15rem}.payment-choice small{font-weight:400;color:var(--muted)}.payment-choice.disabled{opacity:.48}.payment-result{min-height:60vh;display:flex;align-items:center}.result-card{max-width:760px;margin:auto;text-align:center;padding:clamp(2rem,5vw,5rem)}.result-total{font-family:var(--serif);font-size:2.4rem}.small{font-size:.82rem;color:var(--muted)}@media(max-width:980px){.commerce-grid,.checkout-grid{grid-template-columns:1fr}.order-summary{position:static}.header-actions{gap:.75rem}.cart-head{font-size:.68rem}}@media(max-width:640px){.form-row{grid-template-columns:1fr}.cart-product{grid-template-columns:1fr 70px;}.cart-product>strong{grid-column:2}.commerce-promo{display:grid!important}.commerce-promo input{width:100%}.cart-mini-hero{padding:3.5rem 0 2.5rem}}


/* ==========================================================
   V34 — PANIER : identité intégrée dans la slide
   ========================================================== */

/* Le grand cartouche d'angle disparaît sur la page panier. */
.page-cart .brand-lockup{
  display:none !important;
}

.page-cart .header-inner{
  padding-left:0 !important;
  grid-template-columns:1fr auto !important;
  height:84px !important;
}

.page-cart .nav{
  justify-self:center;
}

.page-cart .header-actions{
  justify-self:end;
}

/* La slide reprend exactement la logique Histoire / Boutique. */
.page-cart .cart-brand-hero{
  padding:0 !important;
}

.page-cart .cart-brand-hero .editorial-brand-grid{
  min-height:390px;
}

/* L'ancienne mini-hero n'est plus utilisée, mais on neutralise sa hauteur
   au cas où une ancienne version resterait momentanément en cache. */
.page-cart .cart-mini-hero{
  padding:0;
}

@media(max-width:980px){
  .page-cart .header-inner{
    height:78px !important;
    padding-left:0 !important;
    grid-template-columns:1fr auto !important;
  }

  .page-cart .nav{
    top:78px;
  }

  .page-cart .cart-brand-hero .editorial-brand-grid{
    min-height:0;
  }
}

@media(max-width:640px){
  .page-cart .header-inner{
    height:72px !important;
  }

  .page-cart .nav{
    top:72px;
  }
}


/* ==========================================================
   V35 — logo du footer
   ==========================================================
   Le CSS historique utilisait brightness(1.8) + mix-blend-mode:screen,
   ce qui créait un halo/blanchiment autour du dessin sur le fond sombre.
   Le PNG est déjà transparent : aucun mode de fusion n'est nécessaire.
*/
.footer-brand-lockup img{
  filter:brightness(1.08) saturate(.95) !important;
  mix-blend-mode:normal !important;
  opacity:.96;
}


/* V36 — le PNG est maintenant réellement transparent :
   plus aucun filtre ni mode de fusion n'est nécessaire. */
.footer-brand-lockup img{
  filter:none !important;
  mix-blend-mode:normal !important;
  opacity:1 !important;
}


/* ==========================================================
   V37 — BOUTIQUE : cartes produits / cuvées
   ========================================================== */

.shop-products-section{
  background:#f1ecdf;
}

.shop-product-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.35rem;
  align-items:stretch;
}

.shop-product-card{
  background:#fffdf8;
  border:1px solid var(--line);
  display:flex;
  flex-direction:column;
  min-width:0;
  overflow:hidden;
  position:relative;
  transition:border-color .18s ease, transform .18s ease;
}

@media (hover:hover) and (pointer:fine){
  .shop-product-card:hover{
    border-color:#b6b09f;
    transform:translateY(-2px);
  }
}

.shop-product-media{
  height:360px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  padding:1.45rem;
  position:relative;
  isolation:isolate;
  background:
    radial-gradient(ellipse at 50% 46%,rgba(255,255,255,.34) 0 18%,rgba(255,255,255,.10) 44%,transparent 70%),
    linear-gradient(145deg,#858e76 0%,#6a745e 48%,#555f4c 100%);
}

.shop-product-media::before{
  content:"";
  position:absolute;
  z-index:-1;
  width:60%;
  height:78%;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:radial-gradient(ellipse,rgba(250,247,238,.19),transparent 72%);
  filter:blur(10px);
  pointer-events:none;
}

.shop-product-media img{
  display:block;
  width:auto !important;
  height:100% !important;
  max-width:84%;
  max-height:100%;
  padding:0 !important;
  object-fit:contain !important;
  object-position:center;
  filter:drop-shadow(0 18px 20px rgba(24,28,21,.18));
}

.shop-product-media .bottle{
  margin:0 auto;
  transform:scale(.95);
}

.shop-product-body{
  flex:1;
  display:flex;
  flex-direction:column;
  padding:1.55rem 1.6rem 1.6rem;
}

.shop-product-topline{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:.55rem;
}

.shop-product-topline .eyebrow{
  margin:0;
}

.shop-stock{
  display:inline-flex;
  align-items:center;
  gap:.42rem;
  font-size:.68rem;
  letter-spacing:.07em;
  text-transform:uppercase;
  font-weight:700;
  color:#58604f;
  white-space:nowrap;
}

.shop-stock::before{
  content:"";
  width:7px;
  height:7px;
  border-radius:50%;
  background:#71805f;
  flex:0 0 auto;
}

.shop-stock.out-of-stock{
  color:#8b625c;
}

.shop-stock.out-of-stock::before{
  background:#9a665c;
}

.shop-product-title{
  font-family:var(--serif);
  font-size:clamp(2rem,2.5vw,2.65rem);
  font-weight:500;
  line-height:1;
  margin:.2rem 0 .55rem;
}

.shop-wine-name{
  margin:0 0 .45rem;
  color:var(--muted);
  font-size:.86rem;
}

.shop-product-price{
  font-family:var(--serif);
  font-size:1.65rem;
  line-height:1;
  margin:1rem 0 1.05rem;
  color:var(--ink);
}

.shop-wine-detail-link{
  align-self:flex-start;
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  margin-bottom:1.45rem;
  padding-bottom:.2rem;
  border-bottom:1px solid #7f836f;
  color:#4d5545;
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.075em;
  text-transform:uppercase;
}

.shop-wine-detail-link span{
  transition:transform .16s ease;
}

@media (hover:hover) and (pointer:fine){
  .shop-wine-detail-link:hover span{
    transform:translateX(3px);
  }
}

.shop-product-buy{
  margin-top:auto;
  padding-top:1rem;
  border-top:1px solid var(--line);
}

.shop-add-form-card{
  display:grid;
  grid-template-columns:72px minmax(0,1fr);
  gap:.7rem;
  align-items:end;
}

.shop-add-form-card .shop-qty{
  width:72px;
}

.shop-add-form-card .shop-qty input{
  width:100%;
  height:44px;
  padding:.55rem .65rem;
  background:#fff;
}

.shop-cart-btn{
  min-height:44px;
  width:100%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

/* Les anciens effets décoratifs des .wine-card ne doivent pas contaminer la boutique. */
.shop-product-card::before{
  display:none !important;
}

@media(max-width:1100px){
  .shop-product-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .shop-product-media{
    height:390px;
  }
}

@media(max-width:680px){
  .shop-product-grid{
    grid-template-columns:1fr;
  }

  .shop-product-media{
    height:min(62svh,500px);
    min-height:360px;
  }

  .shop-product-body{
    padding:1.35rem;
  }
}

@media(max-width:420px){
  .shop-add-form-card{
    grid-template-columns:64px minmax(0,1fr);
  }

  .shop-add-form-card .shop-qty{
    width:64px;
  }

  .shop-cart-btn{
    padding-left:.75rem;
    padding-right:.75rem;
    font-size:.68rem;
  }
}


/* ==========================================================
   V39 — majorité, mentions légales et confirmation panier
   ========================================================== */

.age-gate{
  position:fixed;
  inset:0;
  z-index:10000;
  display:grid;
  place-items:center;
  padding:24px;
  background:rgba(31,35,27,.88);
  backdrop-filter:blur(7px);
}

.age-gate-card{
  width:min(560px,100%);
  padding:clamp(2rem,5vw,3.4rem);
  background:#f7f2e8;
  border:1px solid rgba(255,255,255,.3);
  box-shadow:0 30px 90px rgba(0,0,0,.28);
  text-align:center;
}

.age-gate-card img{
  width:min(260px,65%);
  height:auto;
  display:block;
  margin:0 auto 1.4rem;
  mix-blend-mode:multiply;
}

.age-gate-card h1{
  font-family:var(--serif);
  font-weight:500;
  font-size:clamp(2.5rem,6vw,4.5rem);
  line-height:.95;
  margin:.55rem 0 1.1rem;
}

.age-gate-card p{
  max-width:440px;
  margin:0 auto 1.6rem;
  color:#4b4d43;
  line-height:1.55;
}

.age-gate-actions{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:.7rem;
}

.age-gate-card small{
  display:block;
  margin-top:1.2rem;
  color:#77776d;
  font-size:.72rem;
}

.age-refused-page{
  min-height:100svh;
  display:grid;
  place-items:center;
  background:#2d3528;
  color:#f5f0e6;
}

.age-refused-wrap{
  width:min(620px,calc(100% - 36px));
  text-align:center;
}

.age-refused-wrap img{
  width:min(280px,65%);
  filter:none;
}

.age-refused-wrap h1{
  font-family:Georgia,serif;
  font-size:clamp(2.2rem,6vw,4.5rem);
  font-weight:400;
}

/* Bandeau réglementaire : plein écran, min. 60 px, fond blanc, filet noir. */
.alcohol-legal-banner{
  min-height:60px;
  width:100%;
  box-sizing:border-box;
  border:4px solid #000;
  background:#fff;
  color:#000;
  padding:7px 18px 6px;
  display:grid;
  align-content:center;
  justify-items:center;
  font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;
  line-height:1.05;
}

.alcohol-legal-banner strong{
  font-size:clamp(.86rem,1.2vw,1.02rem);
  text-transform:uppercase;
  text-align:center;
  font-weight:700;
}

.alcohol-legal-banner span{
  font-size:clamp(.72rem,1vw,.88rem);
  text-align:center;
  margin-top:3px;
}

.alcohol-legal-banner small{
  width:min(100%,980px);
  text-align:right;
  font-size:.62rem;
  margin-top:3px;
  font-weight:500;
}

/* Modal après ajout au panier */
.cart-choice-modal{
  position:fixed;
  inset:0;
  z-index:9000;
  display:grid;
  place-items:center;
  padding:22px;
  background:rgba(34,39,29,.56);
  backdrop-filter:blur(5px);
}

.cart-choice-card{
  position:relative;
  width:min(540px,100%);
  padding:clamp(1.8rem,4vw,3rem);
  background:#f7f2e8;
  border:1px solid #d4cec0;
  box-shadow:0 28px 80px rgba(0,0,0,.22);
}

.cart-choice-card h2{
  font-family:var(--serif);
  font-weight:500;
  font-size:clamp(2.2rem,5vw,3.7rem);
  line-height:1;
  margin:.4rem 0 .9rem;
}

.cart-choice-card p{
  color:#55564d;
  line-height:1.5;
}

.cart-choice-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.7rem;
  margin-top:1.6rem;
}

.cart-choice-close{
  position:absolute;
  top:12px;
  right:14px;
  border:0;
  background:none;
  color:#4b5142;
  font:300 1.8rem/1 Arial,sans-serif;
  cursor:pointer;
}

/* Pages légales */
.page-legal .brand-lockup{
  display:none !important;
}

.page-legal .header-inner{
  padding-left:0 !important;
  grid-template-columns:1fr auto !important;
  height:84px !important;
}

.page-legal .nav{justify-self:center}
.page-legal .header-actions{justify-self:end}

.legal-section{
  background:#f2ede2;
}

.legal-layout{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1.2rem;
}

.legal-card{
  padding:clamp(1.5rem,3vw,2.4rem);
  background:#fffdf8;
  border:1px solid var(--line);
}

.legal-card-wide{
  grid-column:1/-1;
}

.legal-card h2,
.legal-prose h2{
  font-family:var(--serif);
  font-weight:500;
  font-size:clamp(1.8rem,3vw,2.6rem);
  line-height:1.05;
  margin:1.8rem 0 .8rem;
}

.legal-card h2:first-child,
.legal-prose h2:first-of-type{
  margin-top:0;
}

.legal-data{
  display:grid;
  grid-template-columns:minmax(140px,.38fr) 1fr;
  gap:.7rem 1.2rem;
  margin:0;
}

.legal-data dt{
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#6a6c61;
}

.legal-data dd{
  margin:0;
  overflow-wrap:anywhere;
}

.legal-prose{
  max-width:980px;
}

.legal-prose p,
.legal-prose li{
  line-height:1.65;
}

.legal-prose a{
  text-decoration:underline;
  text-underline-offset:3px;
}

.legal-updated,
.legal-small{
  color:#74766b;
  font-size:.82rem;
}

.withdrawal-form{
  margin:1.5rem 0;
  padding:clamp(1.4rem,3vw,2.2rem);
  background:#fffdf8;
  border:1px solid var(--line);
}

.footer-legal-links{
  display:flex;
  flex-wrap:wrap;
  gap:.3rem .8rem;
  justify-content:flex-end;
}

.footer-legal-links a{
  color:inherit;
}

.footer-legal-links a:hover{
  text-decoration:underline;
}

@media(max-width:980px){
  .page-legal .header-inner{
    height:78px !important;
    grid-template-columns:1fr auto !important;
  }
  .page-legal .nav{top:78px}
}

@media(max-width:720px){
  .legal-layout{
    grid-template-columns:1fr;
  }

  .legal-card-wide{grid-column:auto}

  .legal-data{
    grid-template-columns:1fr;
    gap:.2rem;
  }

  .legal-data dd{
    margin-bottom:.8rem;
  }

  .footer-legal-links{
    justify-content:flex-start;
  }
}

@media(max-width:640px){
  .page-legal .header-inner{height:72px !important}
  .page-legal .nav{top:72px}

  .age-gate-actions{
    flex-direction:column;
  }

  .age-gate-actions .btn{
    width:100%;
  }

  .cart-choice-actions{
    flex-direction:column;
  }

  .cart-choice-actions .btn{
    width:100%;
    text-align:center;
  }

  .alcohol-legal-banner{
    padding-left:10px;
    padding-right:10px;
  }
}


/* V75 — Suppression individuelle des lignes du panier (desktop et mobile). */
.page-cart .cart-product {
  grid-template-columns:minmax(0,1fr) 84px minmax(93px,max-content) 36px;
  gap:clamp(.5rem,1vw,1rem);
}
.page-cart .cart-product > strong {
  text-align:right;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.page-cart .cart-remove-button {
  appearance:none;
  width:36px;
  height:36px;
  padding:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid transparent;
  border-radius:3px;
  background:transparent;
  color:#6b6d61;
  cursor:pointer;
  transition:color .15s ease,background-color .15s ease,border-color .15s ease;
}
.page-cart .cart-remove-button:hover {
  color:#8b3e34;
  border-color:rgba(139,62,52,.22);
  background:rgba(139,62,52,.06);
}
.page-cart .cart-remove-button:focus-visible {
  outline:2px solid #8b3e34;
  outline-offset:2px;
}
.page-cart .cart-remove-button svg {display:block;flex:none}
.page-cart .cart-remove-form {display:none}
@media(max-width:640px) {
  .page-cart .cart-product {
    grid-template-columns:minmax(0,1fr) 70px minmax(87px,max-content) 36px;
    gap:.5rem;
  }
  .page-cart .cart-product > strong {grid-column:auto}
}
@media(max-width:480px) {
  .page-cart .cart-product {
    grid-template-columns:minmax(0,1fr) auto 36px;
    row-gap:.55rem;
  }
  .page-cart .cart-product > div:first-child {grid-column:1 / -1}
  .page-cart .cart-product > label {grid-column:1;grid-row:2}
  .page-cart .cart-product > strong {grid-column:2;grid-row:2}
  .page-cart .cart-product > .cart-remove-button {grid-column:3;grid-row:2}
}


/* === vinification-patch.css === */
/* PATCH V47 — page Vinification */

/* Même identité de navigation que les fiches terroirs. */
.page-vinification .brand-lockup{
  display:none !important;
}

.page-vinification .header-inner{
  padding-left:0 !important;
  grid-template-columns:1fr auto !important;
  height:84px !important;
}

.page-vinification .nav{justify-self:center}
.page-vinification .header-actions{justify-self:end}

.vinification-hero{
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:620px;
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,#f5f1e8,#ebe5d8);
}

.vinification-hero-copy{
  min-width:0;
  padding:
    clamp(2.1rem,4.5vh,3.7rem)
    clamp(2rem,5vw,5.5rem)
    clamp(2.8rem,5.5vh,4.8rem)
    max(18px,calc((100vw - 1360px)/2));
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.vinification-brand-block{
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  margin:clamp(1rem,2vh,1.6rem) 0 clamp(1.7rem,3vh,2.5rem);
}

.vinification-brand-logo{
  width:clamp(220px,21vw,300px);
  max-width:72%;
  height:auto;
  display:block;
  object-fit:contain;
  margin:0 auto .6rem;
  mix-blend-mode:multiply;
}

.vinification-brand-name{
  font-family:var(--brand-serif);
  font-size:clamp(1.25rem,1.65vw,1.78rem);
  line-height:1.05;
  letter-spacing:.065em;
  text-transform:uppercase;
  color:var(--ink);
}

.vinification-hero-content{
  width:min(100%,620px);
}

.vinification-hero-content .title-lg{
  margin-top:.25rem;
}

.vinification-hero-content .lead{
  max-width:620px;
}

.vinification-hero-visual{
  min-width:0;
  min-height:620px;
  position:relative;
  overflow:hidden;
  background:linear-gradient(145deg,#939b80,#505a45);
}

.vinification-hero-visual img{
  width:100%;
  height:100%;
  min-height:620px;
  display:block;
  object-fit:cover;
  object-position:var(--focus-x,50%) var(--focus-y,50%);
}

.vinification-hero-visual.placeholder{
  display:grid;
  place-items:center;
}

.vinification-intro{
  background:#f2ede2;
}

.vinification-sections{
  background:#f7f4ec;
}

.vinification-story-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(3rem,6vw,7rem);
  align-items:center;
  padding:clamp(3rem,6vw,6rem) 0;
  border-bottom:1px solid var(--line);
}

.vinification-story-grid:first-child{
  padding-top:0;
}

.vinification-story-grid:last-child{
  border-bottom:0;
  padding-bottom:0;
}

.vinification-story-grid.reverse .vinification-story-media{
  order:2;
}

.vinification-story-grid.reverse .vinification-story-text{
  order:1;
}

.vinification-story-media{
  position:relative;
  width:100%;
  height:auto;
  min-height:0;
  aspect-ratio:var(--media-ratio,4 / 3);
  overflow:hidden;
  align-self:center;
  background:linear-gradient(145deg,#939b80,#59634e);
}

.vinification-story-media > img{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:var(--focus-x,50%) var(--focus-y,50%);
}

.vinification-story-media > .placeholder{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
}

.vinification-story-text{
  max-width:580px;
}

.vinification-story-text h2{
  font-family:var(--serif);
  font-size:clamp(2.6rem,4.3vw,4.7rem);
  font-weight:500;
  line-height:.96;
  letter-spacing:-.035em;
  margin:.25rem 0 1.25rem;
}

.vinification-story-text p{
  line-height:1.72;
  margin:0 0 1rem;
}

@media(min-width:981px){
  .vinification-story-grid.media-landscape:not(.reverse){
    grid-template-columns:minmax(0,1.28fr) minmax(300px,.72fr);
  }
  .vinification-story-grid.media-landscape.reverse{
    grid-template-columns:minmax(300px,.72fr) minmax(0,1.28fr);
  }
  .vinification-story-grid.media-panoramic:not(.reverse){
    grid-template-columns:minmax(0,1.42fr) minmax(280px,.58fr);
  }
  .vinification-story-grid.media-panoramic.reverse{
    grid-template-columns:minmax(280px,.58fr) minmax(0,1.42fr);
  }
  .vinification-story-grid.media-portrait:not(.reverse){
    grid-template-columns:minmax(260px,.78fr) minmax(0,1.22fr);
  }
  .vinification-story-grid.media-portrait.reverse{
    grid-template-columns:minmax(0,1.22fr) minmax(260px,.78fr);
  }
}

@media(max-width:1180px) and (min-width:981px){
  /* Le menu gagne une entrée : on resserre légèrement l'espacement sans changer son style. */
  .page-vinification .nav,
  body:not(.page-vinification) .nav{
    gap:1.25rem;
  }
}

@media(max-width:980px){
  .page-vinification .header-inner{
    height:78px !important;
    padding-left:0 !important;
    grid-template-columns:1fr auto !important;
  }
  .page-vinification .nav{top:78px}

  .vinification-hero{
    grid-template-columns:1fr;
    min-height:0;
  }

  .vinification-hero-copy{
    padding:3.6rem 24px 3.8rem;
  }

  .vinification-brand-block{
    margin:.5rem 0 1.7rem;
  }

  .vinification-brand-logo{
    width:min(270px,62vw);
    max-width:none;
  }

  .vinification-hero-content{width:100%}

  .vinification-hero-visual,
  .vinification-hero-visual img{
    min-height:460px;
  }

  .vinification-story-grid,
  .vinification-story-grid.reverse{
    grid-template-columns:1fr;
    gap:2rem;
    padding:3.5rem 0;
  }

  .vinification-story-grid.reverse .vinification-story-media,
  .vinification-story-grid.reverse .vinification-story-text{
    order:initial;
  }

  .vinification-story-text{
    max-width:720px;
  }
}

@media(max-width:640px){
  .page-vinification .header-inner{height:72px !important}
  .page-vinification .nav{top:72px}

  .vinification-hero-copy{
    padding:3rem 18px;
  }

  .vinification-brand-logo{
    width:min(235px,68vw);
  }

  .vinification-brand-name{
    font-size:1.12rem;
    letter-spacing:.05em;
  }

  .vinification-hero-visual,
  .vinification-hero-visual img{
    min-height:340px;
  }

  .vinification-story-text h2{
    font-size:clamp(2.35rem,12vw,3.7rem);
  }
}

/* V54 — format naturel sans recadrage, aussi dans les sections Vinification. */
.page-vinification .vinification-story-media.media-fit-natural{
  aspect-ratio:auto !important;
  height:auto !important;
  overflow:visible;
}
.page-vinification .vinification-story-media.media-fit-natural > img{
  position:static !important;
  inset:auto !important;
  width:100% !important;
  height:auto !important;
  max-width:100% !important;
  object-fit:contain !important;
  object-position:center !important;
}


/* === contact-v58.css === */
/* Château Coupe-Roses • Contact V59 — en-tête cohérent avec Vinification V47. */
/* Le logo est dans l’en-tête éditorial et non plus dans le bandeau de navigation. */
.page-contact .brand-lockup{display:none!important}
.page-contact .header-inner{padding-left:0!important;grid-template-columns:1fr auto!important;height:84px!important}
.page-contact .nav{justify-self:center}
.page-contact .header-actions{justify-self:end}

/* Hérite du dessin et du comportement responsive des blocs vinification-hero,
   vinification-hero-copy, vinification-brand-block et vinification-hero-visual. */
.contact-hero.vinification-hero{padding:0;background:linear-gradient(180deg,#f5f1e8,#ebe5d8)}
.contact-hero .vinification-hero-content .title-lg{margin:.25rem 0 1.2rem}
.contact-hero .vinification-hero-content .lead{max-width:620px;margin:0}
.contact-hero-visual{--focus-x:50%;--focus-y:50%}
.contact-hero-visual.placeholder{background:linear-gradient(155deg,#515f47 0%,#364732 70%,#252f29 100%)}
.contact-visual-no-photo{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#e9e6d8;text-align:center;letter-spacing:.15em;text-transform:uppercase;gap:1.3rem;padding:3rem}
.contact-visual-no-photo:before{content:"";display:block;width:1px;height:100px;background:#e9e6d855}
.contact-visual-no-photo span{font-size:.72rem}
.contact-visual-no-photo strong{font-family:var(--serif);font-size:clamp(2.5rem,5vw,5rem);font-weight:400;letter-spacing:.02em;text-transform:none}
.contact-section{padding:clamp(4rem,7vw,6rem) 0}
.contact-grid{display:grid;grid-template-columns:minmax(250px,.78fr) minmax(0,1.22fr);gap:clamp(2.5rem,7vw,7rem);align-items:start}
.contact-aside{padding:1rem 0}
.contact-aside h2{font-family:var(--serif);font-size:clamp(2rem,3.5vw,3.3rem);font-weight:400;line-height:1.1;letter-spacing:-.04em;margin:1rem 0 1.5rem}
.contact-aside p{color:#53574b;font-size:1rem;line-height:1.85}
.contact-aside-rule{height:1px;background:var(--line);margin:2rem 0}
.contact-form-shell{background:var(--white);border:1px solid var(--line);padding:clamp(1.5rem,4vw,3.2rem);box-shadow:var(--shadow)}
.contact-form-shell h2{font-family:var(--serif);font-size:clamp(2rem,3vw,3.2rem);font-weight:400;line-height:1.12;margin:0 0 .6rem;letter-spacing:-.035em}
.contact-intro{color:var(--muted);font-size:.91rem;margin:0 0 2rem}
.contact-form{display:grid;gap:1.2rem}
.contact-duo{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
.contact-form label:not(.contact-consent){display:grid;gap:.45rem;color:var(--khaki-dark);font-size:.79rem;font-weight:700;letter-spacing:.025em}
.contact-form input[type=text],.contact-form input[type=email],.contact-form textarea{display:block;width:100%;padding:.92rem 1rem;font:inherit;font-size:1rem;font-weight:400;letter-spacing:0;color:var(--ink);background:#fbfaf6;border:1px solid #ccc8ba;outline:none;transition:border-color .15s,box-shadow .15s;border-radius:0}
.contact-form input:focus,.contact-form textarea:focus{border-color:var(--khaki-dark);box-shadow:0 0 0 2px rgba(95,101,75,.13)}
.contact-form textarea{resize:vertical;min-height:175px}
.contact-consent{display:flex;align-items:flex-start;gap:.8rem;color:#53574b;font-size:.86rem;line-height:1.6}
.contact-consent input{width:18px;height:18px;flex:none;margin:.14rem 0 0;accent-color:var(--khaki-dark)}
.contact-consent a{text-decoration:underline;text-underline-offset:3px}
.contact-submit{justify-self:start;margin-top:.5rem}
.contact-alert{padding:1.2rem 1.5rem;margin:0 0 2rem;border-left:3px solid var(--khaki-dark);background:#edf0e7}
.contact-alert.contact-error{background:#f7e9e4;border-color:#aa6b5c}
.contact-alert ul{margin:.5rem 0 0;padding-left:1.25rem}
.contact-ok{padding:2rem}
.contact-ok .btn{margin-top:1.3rem}
.contact-bot-trap{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
@media(max-width:860px){.contact-grid{grid-template-columns:1fr}.contact-aside{padding:0}.contact-section{padding-top:3.5rem}}
@media(max-width:980px){.page-contact .header-inner{height:78px!important;padding-left:0!important;grid-template-columns:1fr auto!important}.page-contact .nav{top:78px}}
@media(max-width:640px){.page-contact .header-inner{height:72px!important}.page-contact .nav{top:72px}}
@media(max-width:560px){.contact-duo{grid-template-columns:1fr}}


/* === photos-gallery-v62.css === */
/* Galerie photo publique V62 — proportions originales, sans crop automatique. */
.page-photos .header-inner{padding-left:0!important;grid-template-columns:1fr auto!important;height:84px!important}
.page-photos .nav{justify-self:center}
.page-photos .header-actions{justify-self:end}
/* L'ajout de Photos ne doit pas faire déborder les liens sur écran moyen. */
.header .nav{gap:clamp(.55rem,1.15vw,1.65rem)}
.photos-hero .vinification-hero-content .title-lg{margin:.25rem 0 1rem}
.photos-hero .vinification-hero-content .lead{margin:0}
.photos-hero-visual{background:linear-gradient(145deg,#626950,#3f473b)}
.photos-empty-hero{display:grid;place-content:center;gap:1.25rem;padding:3rem;text-align:center;color:#f2eee4}
.photos-empty-hero span{font-size:.8rem;letter-spacing:.2em;text-transform:uppercase}
.photos-empty-hero strong{font-family:var(--serif);font-size:clamp(2rem,4vw,3.6rem);font-weight:400}
.photos-section{background:#f7f4ec;padding:clamp(3rem,6vw,6rem) 0 clamp(4rem,8vw,8rem)}
.photos-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:2.8rem}
.photos-section-heading h2{font:400 clamp(2.5rem,4.6vw,4.7rem)/1.04 var(--serif);letter-spacing:-.04em;margin:.55rem 0 1rem}
.photos-section-heading p{max-width:680px;color:#5c5f53;line-height:1.7;margin:0}
.photos-total{color:var(--muted);white-space:nowrap;font-size:.8rem}
.photos-masonry{column-count:3;column-gap:clamp(.8rem,1.5vw,1.5rem)}
.photos-tile{display:block;break-inside:avoid;page-break-inside:avoid;margin:0 0 clamp(.9rem,1.5vw,1.5rem);background:#e7e2d7;overflow:hidden}
.photos-open{display:block;width:100%;height:auto;border:0;padding:0;margin:0;background:transparent;position:relative;cursor:zoom-in;color:#fff}
.photos-open img{width:100%;height:auto;display:block;transition:transform .4s ease;object-fit:contain}
.photos-open:hover img,.photos-open:focus-visible img{transform:scale(1.025)}
.photos-open:focus-visible{outline:3px solid #777a60;outline-offset:2px}
.photos-zoom{position:absolute;right:1rem;bottom:1rem;background:rgba(26,30,23,.7);padding:.5rem .7rem;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;opacity:0;transition:opacity .15s}
.photos-open:hover .photos-zoom,.photos-open:focus-visible .photos-zoom{opacity:1}
.photos-tile figcaption{padding:.75rem 1rem;font-size:.86rem;color:#50564a;background:#eeebe3}
.photos-coming{padding:5rem 2rem;text-align:center;border:1px solid var(--line);background:var(--white)}
.photos-coming p{font-family:var(--serif);font-size:1.5rem;max-width:480px;margin:1rem auto 0}
.photos-lightbox[hidden]{display:none!important}
.photos-lightbox{position:fixed;inset:0;z-index:900;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff}
.photos-lightbox-shade{position:absolute;inset:0;background:rgba(12,15,13,.96);z-index:-1}
.photos-lightbox-toolbar{position:absolute;top:1.1rem;left:2rem;right:2rem;display:flex;align-items:center;justify-content:space-between;font-size:.85rem;z-index:2}
.photos-lightbox-close{border:1px solid #888;background:rgba(25,30,25,.6);color:#fff;border-radius:50%;width:46px;height:46px;font-size:2rem;line-height:1;cursor:pointer}
.photos-lightbox-stage{display:flex;align-items:center;justify-content:space-between;gap:clamp(.5rem,2vw,2rem);width:min(100%,1600px);padding:5rem 1.5rem 1rem;height:min(100dvh,100vh);max-height:100%;min-height:0}
.photos-lightbox-stage img{object-fit:contain;max-height:calc(100% - 2.5rem);width:auto;max-width:calc(100% - 150px);min-width:0;min-height:0}
.photos-lightbox-prev,.photos-lightbox-next{flex:0 0 auto;border:0;background:rgba(255,255,255,.12);color:#fff;width:50px;height:58px;font-size:2.4rem;cursor:pointer}
.photos-lightbox-prev:hover,.photos-lightbox-next:hover{background:rgba(255,255,255,.25)}
.photos-lightbox-caption{position:absolute;bottom:.6rem;left:15%;right:15%;text-align:center;font-size:.91rem;color:#e6e3db;margin:0;max-height:3.8rem;overflow:hidden;pointer-events:none}
@media(max-width:980px){.page-photos .header-inner{height:78px!important;padding-left:0!important;grid-template-columns:1fr auto!important}.page-photos .nav{top:78px}.photos-masonry{column-count:2}}
@media(max-width:640px){.page-photos .header-inner{height:72px!important}.page-photos .nav{top:72px}.photos-masonry{column-count:2;column-gap:.65rem}.photos-tile{margin-bottom:.65rem}.photos-section-heading{display:block}.photos-total{display:inline-block;margin-top:1rem}.photos-zoom{display:none}.photos-lightbox-toolbar{left:1rem;right:1rem;top:.5rem}.photos-lightbox-stage{padding:4.6rem .4rem 3.2rem;gap:.25rem}.photos-lightbox-stage img{max-width:calc(100% - 74px);max-height:100%}.photos-lightbox-prev,.photos-lightbox-next{width:32px;height:44px;font-size:1.9rem}.photos-lightbox-caption{left:5%;right:5%;bottom:.6rem;font-size:.82rem}}
@media(max-width:420px){.photos-masonry{column-count:1}.photos-tile{margin-bottom:.9rem}}
@media(prefers-reduced-motion:reduce){.photos-open img,.photos-zoom{transition:none}}


/* === i18n-v73.css === */
/* V73 — public navigation + compact FR/EN selector (loaded after public.css) */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.ccr-lang-form{position:relative;flex:0 0 auto;display:flex;align-items:center;margin:0}
.ccr-language-select{appearance:none;-webkit-appearance:none;min-width:54px;padding:8px 20px 8px 9px;border:1px solid rgba(63,69,51,.24);border-radius:2px;background-color:transparent;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' stroke='%233f4533' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 7px center;background-size:9px;color:var(--khaki-dark);font:700 11px/1.5 var(--sans);letter-spacing:.08em;cursor:pointer}
.ccr-language-select:hover{background-color:rgba(63,69,51,.05)}
.ccr-language-select:focus-visible,.ccr-language-submit:focus-visible{outline:2px solid var(--khaki);outline-offset:3px}
.ccr-language-submit{border:1px solid var(--khaki-dark);background:var(--paper);color:var(--khaki-dark);margin-left:4px;font-size:11px;padding:5px}
.nav .nav-shop-mobile{display:none}
/* Reduce duplicate navigation controls, keep the shop as the highlighted action. */
.header-inner{gap:12px!important}
.header-actions{gap:10px!important;align-self:center;min-width:0;flex-wrap:nowrap}
.nav{gap:clamp(8px,1vw,16px)!important;min-width:0;justify-self:end!important}
.nav a{font-size:clamp(10px,.7vw,11px);letter-spacing:.07em;white-space:normal;line-height:1.35}
.header-actions .btn.fill{white-space:nowrap;padding:12px 13px}
.cart-head{white-space:nowrap}
/* Use the hamburger BEFORE text starts overlapping or being compressed. */
@media(max-width:1450px){
  .header-inner{grid-template-columns:minmax(0,1fr) auto!important}
  .nav{display:none!important;position:absolute!important;top:100%!important;left:auto!important;right:0!important;width:min(410px,calc(100vw - 20px));max-height:calc(100vh - 75px);overflow:auto;align-items:stretch!important;justify-self:stretch!important;flex-direction:column!important;gap:0!important;padding:16px 24px 22px!important;background:var(--paper)!important;border-bottom:1px solid var(--line);box-shadow:0 14px 20px rgba(0,0,0,.08)}
  .nav.open{display:flex!important}
  .nav a{font-size:12px!important;letter-spacing:.1em;padding:11px 0;border-bottom:1px solid var(--line)}
  .nav .nav-shop-mobile{display:block}
  .menu-toggle{display:block!important;cursor:pointer;flex:0 0 auto}
  .header-actions .btn.fill{display:none!important}
}
@media(min-width:1451px){
  .header-inner{padding-left:clamp(190px,14vw,225px)!important}
  .nav{justify-content:flex-end!important}
}
@media(max-width:640px){
  .header-actions{gap:7px!important}
  .ccr-language-select{min-width:51px;padding-left:7px;padding-right:18px}
  .cart-head{font-size:11px;letter-spacing:0}
  .nav{padding:70px 20px 22px!important}
}


/* === i18n-v74.css === */
/* V74 — Barre de navigation centree et mieux espacee.
   Charge apres i18n-v73.css. Les pages avec un grand cartouche de logo
   conservent leur placement propre afin de ne pas le recouvrir. */
@media (min-width:1451px) {
  /* Ces pages integrent le logo dans leur contenu ou ont un petit logo
     dans l'en-tete : la navigation + les actions peuvent etre centrees. */
  body:is(.page-domaine,.page-terroirs,.page-vins,.page-vins-index,.page-vinification,.page-boutique,.page-histoire,.page-photos,.page-contact) .header-inner {
    display:flex !important;
    align-items:center;
    justify-content:center !important;
    padding-left:0 !important;
    gap:clamp(20px,1.7vw,28px) !important;
  }
  .header-inner .nav {
    flex:0 1 auto;
    align-items:center;
    justify-self:auto !important;
    justify-content:center !important;
    gap:clamp(18px,1.35vw,23px) !important;
    margin:0;
  }
  .header-inner .nav a {
    white-space:nowrap;
    font-size:11px;
    letter-spacing:.075em;
    line-height:1.4;
  }
  .header-inner .header-actions {
    flex:0 0 auto;
    justify-self:auto !important;
    gap:clamp(10px,.95vw,15px) !important;
  }
  /* Fiches vin : le petit logo reste a gauche sans decentrer le menu. */
  .page-vins .brand-lockup {
    position:absolute !important;
    top:50%;left:0;
    transform:translateY(-50%);
  }
}
/* Menu repliable : controles visibles, alignes a droite. */
@media (max-width:1450px) {
  .header-actions {margin-left:auto;}
}


/* V76 - raster hero as real responsive image; keep visual overlay and exact crop */
.hero-visual.ccr-perf-photo,
.feature-image.ccr-perf-photo {
  background-image: none;
}
.hero-visual.ccr-perf-photo .ccr-perf-image,
.feature-image.ccr-perf-photo .ccr-perf-image {
  display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;
}
.hero-visual.ccr-perf-photo::before {z-index:1;pointer-events:none}
.hero-visual.ccr-perf-photo::after {
  content:"";pointer-events:none;position:absolute;inset:0;z-index:1;
  background:linear-gradient(165deg,rgba(28,34,24,.08),rgba(24,30,21,.24));
}
.hero-visual.ccr-perf-photo .hero-note,
.hero-visual.ccr-perf-photo .landmark {z-index:2}
.feature-image.ccr-perf-photo::before {
  content:"";pointer-events:none;position:absolute;inset:0;z-index:1;
  background:linear-gradient(145deg,rgba(38,45,31,.08),rgba(22,28,19,.22));
}
/* New WebP/Picture element maintains original map geometry/hotspot accuracy. */
#terroirs .illustrated-map > picture{display:block;width:100%;height:100%}
#terroirs .illustrated-map > picture > img{display:block;width:100%;height:100%;object-fit:cover}
