/* v1.4.0 - Nicole feedback pass: live-accurate product lists on every collection/type/shop page,
   client collection imagery, slim-line cans removed, About/Alcohol-removal layout aligned to house rule,
   process graphic added, new Mocktails blog + 6 recipe pages
   ============================================================ */
/* ============================================================
   Edenvale - shared site styles (refined design system)
   Homepage "Refined (v2)" promoted site-wide. All templates
   inherit the same chrome, typography, colour and components.
   Fonts loaded per-page: Tinos (Times-compatible) + Open Sans.
   ============================================================ */

:root{
  --bg:#ffffff; --warm:#fdf6f0; --tint:#f7efe8; --card:#fffaf6;
  --gold:#cc8257; --gold-hi:#bb6f45; --ink:#241d1f; --ink-2:#5a4c44; --ink-3:#8f8079; --line:#ece4dc;
  --maxw:1280px; --pad:40px;
  --secpad:clamp(52px,6vw,86px);
}
*{box-sizing:border-box;}
body{margin:0;background:var(--bg);color:var(--ink);font-family:'Open Sans',sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
img{max-width:100%;display:block;}
a{text-decoration:none;color:inherit;}
h1,h2,h3{font-family:'Tinos','Times New Roman',serif;font-weight:400;margin:0;color:var(--ink);letter-spacing:-0.005em;}
p{margin:0;line-height:1.7;color:var(--ink-2);}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad);}
.section{padding:var(--secpad) 0;}
.eyebrow{display:inline-flex;align-items:center;gap:12px;color:var(--gold);font-size:12px;font-weight:700;letter-spacing:0.2em;text-transform:uppercase;}
.eyebrow::before{content:"";width:26px;height:1px;background:var(--gold);}
.center{text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px;}
.center .eyebrow{justify-content:center;}

/* ---- Buttons ---- */
.btn{display:inline-flex;align-items:center;gap:9px;font-weight:700;font-size:14px;letter-spacing:0.02em;padding:15px 30px;border-radius:2px;cursor:pointer;transition:.22s;border:none;font-family:'Open Sans',sans-serif;}
.btn-gold{background:var(--gold);color:#fff;}
.btn-gold:hover{background:var(--gold-hi);}
.btn-ink{background:var(--ink);color:#fff;}
.btn-ink:hover{background:#000;}
.btn-line{border:1px solid var(--ink);color:var(--ink);background:transparent;}
.btn-line:hover{background:var(--ink);color:#fff;}
.btn .ar{transition:transform .2s;}
.btn:hover .ar{transform:translateX(4px);}

/* ---- Promo bar ---- */
.promo{background:#000;color:#f4ead9;text-align:center;font-size:12.5px;letter-spacing:0.12em;padding:11px 20px;font-weight:600;}
.promo b{color:var(--gold);font-weight:700;}

/* ---- Header ---- */
header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,0.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);}
.hdr{display:flex;align-items:center;justify-content:space-between;padding:20px var(--pad);max-width:var(--maxw);margin:0 auto;}
.hdr__logo img{height:24px;}
nav.mainnav{display:flex;gap:6px;}
.navitem{position:relative;}
.navitem>a{display:inline-flex;align-items:center;gap:6px;padding:14px 14px;font-size:12.5px;font-weight:600;letter-spacing:0.11em;text-transform:uppercase;color:var(--ink);}
.navitem>a:hover{color:var(--gold);}
.navtop.current{color:var(--gold);}
.navitem>a .caret{width:8px;height:8px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-top:-3px;transition:.2s;}
.drop{position:absolute;top:100%;left:0;min-width:230px;background:#fff;border:1px solid var(--line);border-top:2px solid var(--gold);box-shadow:0 18px 40px rgba(60,35,20,0.12);padding:10px;opacity:0;visibility:hidden;transform:translateY(6px);transition:.18s;z-index:70;}
.navitem::after{content:"";position:absolute;left:0;right:0;top:100%;height:14px;}
.navitem:hover .drop{opacity:1;visibility:visible;transform:translateY(0);}
.navitem:hover>a .caret{transform:rotate(225deg);margin-top:2px;}
.drop a{display:block;padding:10px 14px;font-size:13.5px;color:var(--ink-2);border-radius:2px;letter-spacing:0.02em;}
.drop a:hover{background:var(--tint);color:var(--gold);}
.hactions{display:flex;align-items:center;gap:20px;}
.hactions a{display:inline-flex;align-items:center;color:var(--ink);cursor:pointer;}
.hactions a:hover{color:var(--gold);}
.hactions svg{width:21px;height:21px;display:block;}
.cartlink{position:relative;}
.cartlink .count{position:absolute;top:-7px;right:-9px;background:var(--gold);color:#fff;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:99px;display:flex;align-items:center;justify-content:center;padding:0 4px;}
.nav-toggle{display:none;background:none;border:none;color:var(--ink);cursor:pointer;padding:4px;}

/* ---- Footer ---- */
footer{background:var(--ink);color:#c7b6a8;}
.foot{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1.3fr;gap:40px;padding:56px var(--pad) 28px;max-width:var(--maxw);margin:0 auto;}
.foot img{height:22px;margin-bottom:14px;}
.foot p{color:#c7b6a8;font-size:14px;}
.foot h4{color:#fff;font-size:12px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;margin:0 0 14px;font-family:'Open Sans',sans-serif;}
.foot a{display:block;color:#c7b6a8;font-size:14px;margin-bottom:9px;}
.foot a:hover{color:var(--gold);}
.foot__social{margin-top:12px;}
.foot__social a{display:inline;color:var(--gold);font-size:13px;font-weight:700;margin:0;}
.foot__news{display:flex;flex-direction:column;gap:10px;}
.foot__news .fn{display:flex;gap:8px;}
.foot__news input{flex:1;min-width:0;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.05);color:#fff;padding:12px 12px;border-radius:2px;font-family:inherit;font-size:13px;}
.foot__news input::placeholder{color:#a4917f;}
.foot__news button{background:var(--gold);color:#fff;border:none;padding:12px 16px;border-radius:2px;font-weight:700;font-size:13px;cursor:pointer;font-family:inherit;}
.foot__news button:hover{background:var(--gold-hi);}
.legal{border-top:1px solid rgba(255,255,255,.12);}
.legal .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:20px var(--pad);font-size:12px;}

/* ============================================================
   HOMEPAGE SECTIONS
   ============================================================ */
/* HERO */
.hero{position:relative;min-height:82vh;display:flex;align-items:center;overflow:hidden;background:var(--warm);}
.hero__img{position:absolute;inset:0;}
.hero__img img{width:100%;height:100%;object-fit:cover;object-position:center;}
.hero__img::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(28,16,10,0.52) 0%,rgba(28,16,10,0.22) 40%,rgba(28,16,10,0) 66%);}
.hero__copy{position:relative;z-index:2;width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--pad);}
.hero__inner{max-width:560px;display:flex;flex-direction:column;align-items:flex-start;gap:20px;}
.hero h1{font-size:clamp(44px,4.8vw,68px);line-height:1.05;color:#fff;text-wrap:balance;}
.hero__support{font-family:'Tinos',serif;font-style:italic;font-size:clamp(20px,2.1vw,26px);color:#ffe6d6;}
.hero .btn{margin-top:6px;}

/* BENEFITS / TRUST */
.trust{background:var(--warm);border-bottom:1px solid var(--line);}
.trust .wrap{display:grid;grid-template-columns:1fr 1fr 1fr;}
.tcell{padding:42px 36px;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:8px;}
.tcell:first-child{border-left:0;}
.tcell .k{font-family:'Tinos',serif;font-size:15px;color:var(--gold);letter-spacing:0.14em;text-transform:uppercase;}
.tcell h3{font-size:21px;}
.tcell p{font-size:14px;}
.tcell--medal{text-align:center;align-items:center;}
.tcell--medal .tmedals{display:flex;gap:14px;justify-content:center;margin-top:16px;}
.tcell--medal .tmedals img{height:66px;}

/* COLLECTIONS */
.colhead{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:38px;}
.colhead h2{font-size:clamp(32px,3.4vw,46px);}
.colhead a{font-size:13px;font-weight:700;color:var(--gold);}
.cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;}
.col{display:flex;flex-direction:column;}
.col__arch{--bh:240px;position:relative;border:1px solid var(--line);border-radius:200px 200px 4px 4px;padding:46px 20px 36px;display:flex;align-items:flex-end;justify-content:center;min-height:420px;overflow:hidden;transition:.3s;}
.col__arch::before{content:"";position:absolute;left:50%;bottom:32px;transform:translateX(-50%);width:58%;height:16px;background:radial-gradient(ellipse,rgba(60,35,20,0.24),transparent 72%);}
.col__arch img{position:relative;z-index:1;width:auto;max-width:none;height:calc(var(--bh) * 1.288);margin-bottom:calc(var(--bh) * -0.144);filter:drop-shadow(0 18px 20px rgba(60,35,20,0.30));transition:.45s;}
.col__arch--tight img{height:calc(var(--bh) * 1.108);margin-bottom:calc(var(--bh) * -0.057);}
.col:hover .col__arch{transform:translateY(-5px);box-shadow:0 22px 46px rgba(60,35,20,0.14);}
.col:hover .col__arch img{transform:translateY(-4px) scale(1.03);}
.col__body{padding:18px 4px 0;text-align:center;}
.col__body h3{font-size:21px;}
.col__count{display:inline-flex;align-items:center;gap:7px;color:var(--gold);font-size:13px;font-weight:700;margin-top:5px;}
.col:hover .col__count .ar{transform:translateX(4px);}

/* LIFESTYLE */
.life .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(36px,4.5vw,72px);align-items:center;}
.life__img{border-radius:3px;overflow:hidden;aspect-ratio:5/4;}
.life__img img{width:100%;height:100%;object-fit:cover;}
.life__body{display:flex;flex-direction:column;gap:18px;}
.life__body h2{font-size:clamp(30px,3.4vw,44px);line-height:1.1;}

/* FEATURED */
.feat{background:var(--warm);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.feat .wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,4.5vw,72px);align-items:center;}
.feat__media{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:1/1;}
.feat__media::before{content:"";position:absolute;width:62%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(204,130,87,0.14),transparent 68%);}
.feat__media img{position:relative;max-height:80%;filter:drop-shadow(0 26px 40px rgba(60,30,15,0.18));}
.feat__badge{position:absolute;top:0;left:0;background:var(--ink);color:#fff;font-size:11px;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;padding:8px 14px;}
.feat__body{display:flex;flex-direction:column;gap:16px;}
.feat__body h2{font-size:clamp(30px,3.2vw,44px);line-height:1.1;}
.feat__meta{font-size:13px;color:var(--ink-3);letter-spacing:0.04em;text-transform:uppercase;}
.feat__price{font-family:'Tinos',serif;font-size:30px;color:var(--ink);}
.feat__price span{font-family:'Open Sans',sans-serif;font-size:13px;color:var(--ink-3);}

/* OCCASIONS */
.occ{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.ocard{position:relative;height:400px;border-radius:3px;overflow:hidden;display:block;}
.ocard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:.5s;}
.ocard:hover img{transform:scale(1.05);}
.ocard::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(35,20,12,0.7),rgba(35,20,12,0.03) 55%);}
.ocard__c{position:absolute;inset:auto 0 0 0;padding:24px;z-index:2;}
.ocard__c h3{color:#fff;font-size:24px;margin-bottom:5px;}
.ocard__c span{color:#ffe0cb;font-size:12px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;}

/* TESTIMONIALS */
.tst{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.tcard{border:1px solid var(--line);border-radius:3px;padding:30px;display:flex;flex-direction:column;gap:12px;background:#fff;}
.tcard .stars{color:var(--gold);letter-spacing:3px;}
.tcard p{font-size:15px;color:var(--ink-2);}
.tcard cite{margin-top:auto;font-style:normal;font-weight:700;font-size:13px;color:var(--ink);}

/* JOURNAL */
.journal{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.post{display:flex;flex-direction:column;gap:12px;}
.post .pic{aspect-ratio:3/2;border-radius:3px;overflow:hidden;}
.post img{width:100%;height:100%;object-fit:cover;transition:.5s;}
.post:hover img{transform:scale(1.04);}
.post .k{color:var(--gold);font-size:11px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;}
.post h3{font-size:21px;}

/* NEWSLETTER */
.news{background:var(--warm);border-top:1px solid var(--line);}
.news .wrap{display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;}
.news h2{font-size:clamp(28px,3.2vw,40px);}
.news p{max-width:46ch;}
.news form{display:flex;gap:10px;width:min(500px,100%);margin-top:6px;}
.news input{flex:1;border:1px solid var(--ink);background:#fff;padding:15px 16px;border-radius:2px;font-family:inherit;}

/* ============================================================
   INNER-PAGE SHARED COMPONENTS
   ============================================================ */
/* Breadcrumb */
.breadcrumb{max-width:var(--maxw);margin:0 auto;padding:22px var(--pad) 0;font-size:12.5px;letter-spacing:0.02em;color:var(--ink-3);display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.breadcrumb a{color:var(--ink-3);}
.breadcrumb a:hover{color:var(--gold);}
.breadcrumb .sep{color:var(--line);}
.breadcrumb strong{color:var(--ink);font-weight:700;}

/* Page head (H1 intro used by shop toolbar, wine-types hero) */
.phead{max-width:var(--maxw);margin:0 auto;padding:26px var(--pad) 0;}
.phead h1{font-size:clamp(34px,4vw,52px);line-height:1.06;}
.phead p{margin-top:14px;font-size:16px;}
.phead--center{text-align:center;}
.phead--center p{margin-left:auto;margin-right:auto;}

/* Section heading (shared) */
.shead{margin-bottom:30px;}
.shead h2{font-size:clamp(28px,3vw,40px);}
.shead p{margin-top:8px;color:var(--ink-3);}
.shead--center{text-align:center;}
.shead--center p{margin-left:auto;margin-right:auto;max-width:60ch;}

/* Enquiry line */
.enquiry{border:1px solid var(--line);background:var(--warm);border-radius:3px;padding:18px 22px;font-size:14px;color:var(--ink-2);}
.enquiry a{color:var(--gold);font-weight:700;}

/* ---- SHOP ---- */
.shop-toolbar{max-width:var(--maxw);margin:0 auto;padding:26px var(--pad) 0;display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;}
.shop-toolbar h1{font-size:clamp(34px,4vw,52px);line-height:1.06;}
.shop-toolbar p{margin-top:12px;font-size:16px;}
.filters-btn{display:none;align-items:center;gap:8px;border:1px solid var(--ink);background:#fff;color:var(--ink);padding:12px 18px;border-radius:2px;font-weight:700;font-size:13px;letter-spacing:0.06em;text-transform:uppercase;cursor:pointer;font-family:inherit;}
.filters-btn .count{background:var(--gold);color:#fff;border-radius:99px;min-width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;padding:0 5px;}
.signpost-wrap{max-width:var(--maxw);margin:16px auto 0;padding:0 var(--pad);}
.signpost{display:inline-block;color:var(--gold);font-weight:700;font-size:13px;}
.signpost:hover{color:var(--gold-hi);}

.shop-layout{max-width:var(--maxw);margin:26px auto 0;padding:0 var(--pad);display:grid;grid-template-columns:250px 1fr;gap:40px;align-items:start;}
.filters-backdrop{display:none;}
.filters{position:sticky;top:100px;display:flex;flex-direction:column;gap:22px;}
.filters__header{display:flex;justify-content:space-between;align-items:center;}
.filters__title{font-family:'Tinos',serif;font-size:22px;}
.filters__close{display:none;background:none;border:none;font-size:20px;cursor:pointer;color:var(--ink);}
.filter-group{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--line);padding-top:16px;}
.filter-group:first-of-type{border-top:0;padding-top:0;}
.filter-group__label{font-size:11px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink-3);}
.filter-row{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--ink-2);cursor:pointer;}
.filter-row .box{width:16px;height:16px;border:1px solid var(--ink-3);border-radius:2px;flex:none;}
.filter-row:hover{color:var(--ink);}
.filters__apply{width:100%;justify-content:center;}

.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px 22px;}
.product{display:flex;flex-direction:column;}
.product__link{display:flex;flex-direction:column;flex:1;color:inherit;text-decoration:none;}
.product__media{background:linear-gradient(180deg,var(--warm),#fff);border:1px solid var(--line);border-radius:3px;height:300px;display:flex;align-items:flex-end;justify-content:center;padding:26px 20px;overflow:hidden;transition:.3s;}
.product__media img{max-height:100%;width:auto;object-fit:contain;filter:drop-shadow(0 14px 16px rgba(60,35,20,0.22));transition:.4s;}
.product:hover .product__media{box-shadow:0 18px 36px rgba(60,35,20,0.12);}
.product:hover .product__media img{transform:translateY(-4px) scale(1.03);}
.product__name{font-family:'Tinos',serif;font-size:19px;color:var(--ink);margin-top:16px;}
.product__price{font-size:13.5px;color:var(--ink-3);margin-top:4px;margin-bottom:14px;}
.product .btn{margin-top:auto;justify-content:center;}

/* SEO block */
.seo-block .wrap{max-width:var(--maxw);}
.seo-block__card{background:var(--warm);border:1px solid var(--line);border-radius:3px;display:grid;grid-template-columns:1fr 1fr;gap:40px;padding:clamp(28px,4vw,52px);}
.seo-block__item h2{font-size:24px;margin-bottom:12px;}
.seo-block__item p{font-size:15px;}

/* ---- FAQ accordion ---- */
.faq-section{max-width:var(--maxw);margin:0 auto;padding:var(--secpad) var(--pad);}
.faq-section>h2{font-size:clamp(26px,3vw,36px);margin-bottom:24px;text-align:center;}
.faq{border-top:1px solid var(--line);}
.faq:last-child{border-bottom:1px solid var(--line);}
.faq__q{width:100%;background:none;border:none;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 4px;cursor:pointer;font-family:'Tinos',serif;font-size:19px;color:var(--ink);text-align:left;}
.faq__icon{color:var(--gold);font-size:22px;flex:none;line-height:1;}
.faq__a{max-height:0;overflow:hidden;padding:0 4px;color:var(--ink-2);font-size:15px;transition:max-height .3s ease,padding .3s ease;}
.faq.is-open .faq__a{max-height:320px;padding:0 4px 22px;}

/* ---- Articles module / posts grid ---- */
.articles-module{max-width:var(--maxw);margin:0 auto;padding:var(--secpad) var(--pad);}
.articles-module>h2{font-size:clamp(26px,3vw,38px);}
.articles-module>p{margin-top:6px;color:var(--ink-3);margin-bottom:30px;}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.post__tag{color:var(--gold);font-size:11px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;}
.post__title{font-family:'Tinos',serif;font-size:20px;color:var(--ink);}
.post--sm img{aspect-ratio:3/2;object-fit:cover;border-radius:3px;width:100%;margin-bottom:12px;transition:.5s;}
.post--sm{display:flex;flex-direction:column;gap:8px;}
.post--sm:hover img{transform:scale(1.03);}

/* ---- WINE TYPES ---- */
.jump-nav{position:sticky;top:73px;z-index:40;background:rgba(255,255,255,0.95);backdrop-filter:blur(8px);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.jump-nav__inner{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad);display:flex;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
.jump-nav__inner::-webkit-scrollbar{display:none;}
.jump-nav__inner a{white-space:nowrap;padding:15px 14px;font-size:12px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-3);border-bottom:2px solid transparent;}
.jump-nav__inner a:hover{color:var(--ink);}
.jump-nav__inner a.is-active{color:var(--gold);border-bottom-color:var(--gold);}

.mixmatch-wrap{max-width:var(--maxw);margin:0 auto;padding:26px var(--pad) 0;}
.mixmatch{background:var(--ink);color:#fff;border-radius:3px;padding:clamp(24px,3vw,38px);display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;}
.mixmatch h2{color:#fff;font-size:clamp(22px,2.4vw,30px);}
.mixmatch p{color:#e3d3c6;margin-top:6px;font-size:15px;}

.wine-type{max-width:var(--maxw);margin:0 auto;padding:var(--secpad) var(--pad);border-top:1px solid var(--line);scroll-margin-top:130px;}
.wine-type>h2{font-size:clamp(26px,3vw,38px);}
.wine-type>p{margin-top:8px;color:var(--ink-2);margin-bottom:28px;}
.wine-type>.btn{margin-top:30px;}
.bottle-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;}
.bottle-card{display:flex;flex-direction:column;}
.bottle-card__media{background:linear-gradient(180deg,var(--warm),#fff);border:1px solid var(--line);border-radius:3px;height:280px;display:flex;align-items:flex-end;justify-content:center;padding:24px 18px;overflow:hidden;transition:.3s;}
.bottle-card__media img{max-height:100%;width:auto;object-fit:contain;filter:drop-shadow(0 14px 16px rgba(60,35,20,0.22));transition:.4s;}
.bottle-card:hover .bottle-card__media{box-shadow:0 16px 32px rgba(60,35,20,0.12);}
.bottle-card:hover .bottle-card__media img{transform:translateY(-4px) scale(1.03);}
.bottle-card__name{font-family:'Tinos',serif;font-size:17px;color:var(--ink);margin-top:14px;text-align:center;}

.guide-copy{max-width:var(--maxw);margin:0 auto;padding:var(--secpad) var(--pad) 0;}
.guide-copy h2{font-size:clamp(24px,2.6vw,34px);margin-bottom:12px;}

/* ---- PRODUCT (PDP) ---- */
.pdp{max-width:var(--maxw);margin:26px auto 0;padding:0 var(--pad);display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,4vw,64px);align-items:start;}
.pdp__gallery{position:sticky;top:100px;display:flex;flex-direction:column;gap:14px;}
.pdp__main{background:linear-gradient(180deg,var(--warm),#fff);border:1px solid var(--line);border-radius:3px;height:min(560px,60vh);display:flex;align-items:center;justify-content:center;padding:34px;overflow:hidden;}
.pdp__main img{height:100%;max-height:100%;max-width:100%;width:auto;object-fit:contain;filter:drop-shadow(0 22px 26px rgba(60,35,20,0.24));}
.pdp__thumbs{display:flex;gap:12px;}
.pdp__thumb{flex:1;background:var(--warm);border:1px solid var(--line);border-radius:3px;height:84px;display:flex;align-items:center;justify-content:center;padding:8px;cursor:pointer;overflow:hidden;}
.pdp__thumb img{max-height:100%;width:auto;object-fit:contain;}
.pdp__thumb.is-active{border-color:var(--gold);}
.pdp__buy{display:flex;flex-direction:column;gap:16px;}
.pdp__buy h1{font-size:clamp(28px,3.2vw,42px);line-height:1.1;}
.pdp__rating{display:flex;align-items:center;gap:10px;font-size:13px;}
.pdp__rating .stars{color:var(--gold);letter-spacing:2px;}
.pdp__rating a{color:var(--ink-3);}
.pdp__rating a:hover{color:var(--gold);}
.pdp__price{font-family:'Tinos',serif;font-size:32px;color:var(--ink);}
.pdp__price .unit{font-family:'Open Sans',sans-serif;font-size:13px;color:var(--ink-3);}
.pdp__desc{font-size:16px;}
.pdp__buy>.btn{align-self:flex-start;}
.pdp__stock{font-size:13px;color:var(--ink-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0;}
.pdp__tabs{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px;}
.pdp__tab{background:none;border:none;border-bottom:2px solid transparent;padding:10px 4px;margin-right:14px;font-family:inherit;font-size:12.5px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink-3);cursor:pointer;}
.pdp__tab.is-active{color:var(--gold);border-bottom-color:var(--gold);}
.pdp__tabpanel{font-size:15px;color:var(--ink-2);}

.crosssell{display:flex;flex-direction:column;}
.crosssell__media{background:linear-gradient(180deg,var(--warm),#fff);border:1px solid var(--line);border-radius:3px;height:260px;display:flex;align-items:flex-end;justify-content:center;padding:22px 16px;overflow:hidden;transition:.3s;}
.crosssell__media img{max-height:100%;width:auto;object-fit:contain;filter:drop-shadow(0 12px 14px rgba(60,35,20,0.2));transition:.4s;}
.crosssell:hover .crosssell__media{box-shadow:0 16px 30px rgba(60,35,20,0.12);}
.crosssell:hover .crosssell__media img{transform:translateY(-4px) scale(1.03);}
.crosssell__name{font-family:'Tinos',serif;font-size:17px;color:var(--ink);margin-top:12px;text-align:center;}
.crosssell__price{font-size:13px;color:var(--ink-3);margin-top:3px;text-align:center;}
.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;}

.reviews-empty{border:1px solid var(--line);background:var(--warm);border-radius:3px;padding:40px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px;}
.reviews-empty .stars{color:var(--gold);letter-spacing:3px;font-size:20px;}
.reviews-empty p{font-size:15px;}

/* ---- ARTICLE ---- */
.article{max-width:760px;margin:0 auto;padding:26px var(--pad) 0;}
.article h1{font-size:clamp(30px,3.6vw,48px);line-height:1.08;}
.article__byline{margin-top:16px;font-size:13px;color:var(--ink-3);letter-spacing:0.02em;}
.article__byline strong{color:var(--ink);}
.article__cover{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:3px;margin:26px 0;}
.article__callout{background:var(--warm);border-left:3px solid var(--gold);border-radius:2px;padding:18px 22px;font-size:14px;color:var(--ink-2);margin-bottom:26px;}
.article__callout strong{color:var(--ink);}
.article p{font-size:17px;margin-bottom:20px;}
.article h2{font-size:clamp(22px,2.4vw,30px);margin:34px 0 12px;}
.article ul,.article ol{margin:0 0 20px;padding-left:20px;color:var(--ink-2);font-size:17px;line-height:1.7;}
.article li{margin-bottom:8px;}
.article h3{font-size:20px;margin:26px 0 8px;}
.article blockquote{margin:24px 0;padding:14px 20px;border-left:3px solid var(--gold);background:var(--warm);border-radius:2px;font-family:'Tinos',serif;font-style:italic;font-size:19px;color:var(--ink);}
.article a:not(.btn){color:var(--gold);font-weight:600;}
.article a:not(.btn):hover{text-decoration:underline;}
.tablewrap{overflow-x:auto;margin:20px 0;}
.article table,.prose table,.policy__body table{width:100%;border-collapse:collapse;font-size:14px;}
.article th,.article td,.prose th,.prose td,.policy__body th,.policy__body td{border:1px solid var(--line);padding:10px 12px;text-align:left;vertical-align:top;}
.article th,.prose th,.policy__body th{background:var(--warm);font-weight:700;color:var(--ink);}
.cmp thead th{background:var(--ink);color:#fff;border-color:var(--ink);}
.cmp tbody tr:nth-child(even){background:var(--warm);}
.cmp td:first-child{color:var(--ink);font-weight:600;}
.cmp td{color:var(--ink-2);}
.article__cta{background:var(--warm);border:1px solid var(--line);border-radius:3px;padding:22px 24px;margin:26px 0;display:flex;flex-direction:column;gap:12px;}
.article__cta > strong{font-family:'Tinos',serif;font-size:19px;color:var(--ink);}
.article__cta .btn{align-self:flex-start;}
.article__author{border-top:1px solid var(--line);margin-top:32px;padding-top:20px;font-size:14px;color:var(--ink-2);}
.article__author strong{color:var(--ink);}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:1000px){
  .nav-toggle{display:inline-flex;order:3;}
  nav.mainnav{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);flex-direction:column;gap:0;padding:8px var(--pad) 16px;}
  nav.mainnav.open{display:flex;}
  .navitem>a{padding:14px 0;justify-content:space-between;width:100%;}
  .drop{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:none;border-top:none;min-width:0;max-height:0;overflow:hidden;padding:0 0 0 12px;transition:max-height .28s ease;}
  .navitem.open .drop{max-height:680px;padding:0 0 10px 12px;}
  .navitem.open>a .caret{transform:rotate(225deg);margin-top:2px;}
  .navitem::after{display:none;}
  .hdr{position:relative;}
  .hactions{order:2;gap:16px;}
  .hero{min-height:72vh;align-items:flex-end;padding-bottom:clamp(36px,6vh,56px);}
  .hero__img::after{background:linear-gradient(0deg,rgba(28,16,10,0.82),rgba(28,16,10,0.16) 62%);}
  .trust .wrap{grid-template-columns:1fr;}
  .tcell{border-left:0;border-top:1px solid var(--line);text-align:center;align-items:center;}
  .tcell:first-child{border-top:0;}
  .cols{grid-template-columns:repeat(2,minmax(0,1fr));}
  .life .wrap,.feat .wrap{grid-template-columns:1fr;gap:28px;}
  .life__img,.feat__media{order:-1;}
  .occ,.tst,.journal,.grid-3{grid-template-columns:1fr 1fr;}
  .foot{grid-template-columns:1fr 1fr;gap:26px;}
  /* shop: filters become drawer */
  .shop-layout{grid-template-columns:1fr;}
  .filters-btn{display:inline-flex;}
  .filters{position:fixed;top:0;right:0;bottom:0;width:min(340px,86vw);background:#fff;z-index:120;padding:24px;overflow-y:auto;transform:translateX(100%);transition:transform .3s;box-shadow:-16px 0 40px rgba(60,35,20,0.14);}
  .filters.open{transform:translateX(0);}
  .filters__close{display:inline-flex;}
  .filters-backdrop{display:block;position:fixed;inset:0;background:rgba(20,12,8,0.4);opacity:0;visibility:hidden;transition:.3s;z-index:110;}
  .filters-backdrop.open{opacity:1;visibility:visible;}
  /* pdp */
  .pdp{grid-template-columns:1fr;gap:28px;}
  .pdp__gallery{position:static;}
  .pdp__main{height:min(440px,54vh);}
  .grid-4{grid-template-columns:repeat(2,minmax(0,1fr));}
  .bottle-row{grid-template-columns:repeat(2,minmax(0,1fr));}
  .jump-nav{top:65px;}
}
@media(max-width:560px){
  :root{--pad:20px;}
  .hero h1{font-size:38px;}
  .hero__inner{width:100%;}
  .hero .btn{width:100%;justify-content:center;}
  .occ,.tst,.journal,.grid-3{grid-template-columns:1fr;}
  .cols{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
  .col__arch{--bh:150px;min-height:280px;padding:30px 12px 22px;border-radius:150px 150px 4px 4px;}
  .col__body h3{font-size:18px;}
  .news form{flex-direction:column;}
  .foot{grid-template-columns:1fr;}
  .product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 14px;}
  .product__media{height:220px;}
  .seo-block__card{grid-template-columns:1fr;gap:24px;}
  .grid-4{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
  .bottle-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
  .bottle-card__media{height:210px;}
  .crosssell__media{height:200px;}
  .mixmatch{flex-direction:column;align-items:flex-start;}
  .shop-toolbar{align-items:flex-start;}
}

/* ============================================================
   ADDED PAGE TYPES (content, contact, policy, stockists, blog, hub, stubs)
   ============================================================ */
/* content page hero */
.page-hero{background:var(--warm);border-bottom:1px solid var(--line);}
.page-hero__in{max-width:920px;margin:0 auto;padding:var(--secpad) var(--pad);text-align:center;display:flex;flex-direction:column;gap:16px;align-items:center;}
.page-hero .eyebrow{justify-content:center;}
.page-hero h1{font-size:clamp(34px,4.4vw,56px);line-height:1.05;}
.page-hero p{max-width:64ch;font-size:17px;}

/* content hero with image */
.hero-img{position:relative;min-height:clamp(320px,44vh,520px);display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--warm);}
.hero-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.hero-img::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(28,16,10,0.62),rgba(28,16,10,0.28) 60%,rgba(28,16,10,0.35));}
.hero-img__in{position:relative;z-index:2;text-align:center;max-width:900px;padding:48px var(--pad);display:flex;flex-direction:column;gap:14px;align-items:center;}
.hero-img__in h1{color:#fff;font-size:clamp(34px,4.4vw,56px);line-height:1.05;}
.hero-img__in p{color:#f6e8dc;font-size:clamp(16px,1.6vw,19px);max-width:60ch;}
.hero-img .eyebrow{color:#f0c9ad;}
.hero-img .eyebrow::before{background:#f0c9ad;}

/* prose */
.prose{max-width:var(--maxw);margin:0 auto;padding:var(--secpad) var(--pad);}
/* two-column body for text-heavy content pages */
.prose--2col{max-width:var(--maxw);}
@media(min-width:900px){
  .prose--2col{column-count:2;column-gap:56px;}
  .prose--2col>h2,.prose--2col>h3{column-span:all;}
  .prose--2col>h2:first-child,.prose--2col>*:first-child{margin-top:0;}
  .prose--2col>p,.prose--2col>ul{break-inside:avoid;}
}
.prose>*:first-child{margin-top:0;}
.prose h2{font-size:clamp(24px,2.6vw,34px);margin:38px 0 12px;}
.prose h3{font-size:20px;margin:26px 0 8px;}
.prose p{font-size:17px;margin:0 0 18px;}
.prose ul,.prose ol{font-size:17px;color:var(--ink-2);line-height:1.7;margin:0 0 18px;padding-left:22px;}
.prose li{margin-bottom:8px;}
.prose a{color:var(--gold);font-weight:600;}
.prose a:hover{text-decoration:underline;}
.prose img{border-radius:3px;margin:26px 0;width:100%;}
.prose--wide{max-width:var(--maxw);}
.prose blockquote{margin:24px 0;padding:16px 22px;border-left:3px solid var(--gold);background:var(--warm);border-radius:2px;font-family:'Tinos',serif;font-size:20px;color:var(--ink);}

/* draft/confirm note */
.doc-note{max-width:760px;margin:0 auto;padding:0 var(--pad);}
.doc-note__in{background:#fff7ef;border:1px solid var(--gold);border-radius:3px;padding:14px 18px;font-size:13px;color:var(--ink-2);}
.doc-note__in strong{color:var(--gold);}

/* warm band wrapper for split sections */
.band{background:var(--warm);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}

/* contact */
.contact{max-width:var(--maxw);margin:0 auto;padding:var(--secpad) var(--pad);display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,72px);align-items:start;}
.contact__details{display:flex;flex-direction:column;gap:18px;}
.contact__row .k{display:block;font-size:12px;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--ink-3);margin-bottom:4px;}
.contact__row a,.contact__row p{font-size:16px;color:var(--ink);}
.contact__row a:hover{color:var(--gold);}

/* forms */
.form{display:flex;flex-direction:column;gap:16px;}
.field{display:flex;flex-direction:column;gap:6px;}
.field label{font-size:13px;font-weight:600;color:var(--ink-2);}
.field input,.field textarea,.field select{border:1px solid var(--line);border-radius:2px;padding:13px 14px;font-family:inherit;font-size:15px;background:#fff;color:var(--ink);width:100%;}
.field textarea{min-height:130px;resize:vertical;}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--gold);}
.form .btn{align-self:flex-start;justify-content:center;}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}

/* policy */
.policy{max-width:var(--maxw);margin:0 auto;padding:var(--secpad) var(--pad);display:grid;grid-template-columns:230px 1fr;gap:48px;align-items:start;}
.policy__nav{position:sticky;top:100px;display:flex;flex-direction:column;}
.policy__nav a{font-size:14px;color:var(--ink-2);padding:11px 0;border-bottom:1px solid var(--line);}
.policy__nav a:first-child{border-top:1px solid var(--line);}
.policy__nav a:hover,.policy__nav a.current{color:var(--gold);}
.policy__body{min-width:0;}
.policy__body h2{font-size:22px;margin:30px 0 10px;}
.policy__body h2:first-child{margin-top:0;}
.policy__body h3{font-size:17px;margin:20px 0 8px;}
.policy__body p,.policy__body li{font-size:15px;color:var(--ink-2);line-height:1.7;}
.policy__body p{margin:0 0 14px;}
.policy__body ul{padding-left:20px;margin:0 0 14px;}
.policy__body a{color:var(--gold);font-weight:600;}

/* stockists */
.logos{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:22px 26px;align-items:center;margin-top:8px;}
.logos img{max-height:52px;width:auto;margin:0 auto;object-fit:contain;}
.stockist-map{width:100%;border:1px solid var(--line);border-radius:3px;margin-top:20px;display:block;}
.pairing{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin:12px 0 4px;}
.pairing img{height:34px;width:auto;}
.pairing .lbl{font-size:13px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink-3);}
@media(max-width:700px){ .logos{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;} }
.stockist-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
.stockist{border:1px solid var(--line);border-radius:3px;padding:22px;background:#fff;}
.stockist h3{font-size:18px;margin-bottom:8px;}
.stockist p{font-size:14px;}
.region{margin-top:8px;}
.region h2{font-size:clamp(22px,2.4vw,30px);margin-bottom:8px;}
.region>p{margin-bottom:22px;}
.chips{display:flex;flex-wrap:wrap;gap:10px;}
.chip{border:1px solid var(--line);background:var(--warm);border-radius:99px;padding:9px 16px;font-size:13px;font-weight:600;color:var(--ink);}

/* blog index */
.blog-feature{max-width:var(--maxw);margin:0 auto;padding:26px var(--pad) 0;}
.blog-feature__card{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(24px,4vw,56px);align-items:center;border:1px solid var(--line);border-radius:3px;overflow:hidden;background:#fff;}
.blog-feature__img{aspect-ratio:4/3;overflow:hidden;}
.blog-feature__img img{width:100%;height:100%;object-fit:cover;}
.blog-feature__body{padding:clamp(24px,3vw,44px);display:flex;flex-direction:column;gap:14px;}
.blog-feature__body h2{font-size:clamp(26px,3vw,38px);line-height:1.1;}

/* collection hub */
.colhub{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;}
.colhub__card{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:3px;overflow:hidden;background:#fff;transition:.3s;}
.colhub__card:hover{transform:translateY(-4px);box-shadow:0 20px 40px rgba(60,35,20,0.12);}
.colhub__img{aspect-ratio:4/3;overflow:hidden;background:var(--warm);}
.colhub__img img{width:100%;height:100%;object-fit:cover;transition:.5s;}
.colhub__card:hover .colhub__img img{transform:scale(1.05);}
.colhub__body{padding:20px 22px 24px;display:flex;flex-direction:column;gap:6px;}
.colhub__body h3{font-size:22px;}
.colhub__body p{font-size:14px;}
.colhub__body .col__count{margin-top:8px;}

/* stub pages (account/cart/search) */
.stub{max-width:520px;margin:0 auto;padding:var(--secpad) var(--pad);text-align:center;display:flex;flex-direction:column;gap:16px;align-items:center;}
.stub h1{font-size:clamp(28px,3.4vw,42px);}
.stub p{font-size:16px;}
.stub .form{width:100%;text-align:left;}
.stub__links{display:flex;gap:16px;justify-content:center;font-size:13px;}
.stub__links a{color:var(--gold);font-weight:600;}

/* ---- Long-form collection / content modules ---- */
.quote-band{background:var(--warm);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.quote-band .wrap{padding:clamp(34px,5vw,60px) var(--pad);text-align:center;display:flex;flex-direction:column;gap:12px;align-items:center;}
.quote-band p{font-family:'Tinos',serif;font-style:italic;font-size:clamp(19px,2.2vw,26px);color:var(--ink);max-width:62ch;line-height:1.4;}
.quote-band cite{font-style:normal;font-weight:700;font-size:13px;letter-spacing:0.08em;text-transform:uppercase;color:var(--gold);}
.quote-band .qgrid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,56px);width:100%;align-items:start;}
.quote-band .qcell{display:flex;flex-direction:column;gap:10px;align-items:center;text-align:center;}
.quote-band .qcell p{font-family:'Tinos',serif;font-style:italic;font-size:clamp(17px,1.7vw,21px);color:var(--ink);line-height:1.45;}
@media(max-width:760px){ .quote-band .qgrid{grid-template-columns:1fr;gap:28px;} }

.life__body ul{margin:0;padding-left:20px;color:var(--ink-2);font-size:16px;line-height:1.7;display:flex;flex-direction:column;gap:8px;}
.life__body ul li{margin:0;}
.life__body .readmore{color:var(--gold);font-weight:700;font-size:14px;align-self:flex-start;}
.life__body .readmore:hover{text-decoration:underline;}

.reasons .wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,64px);align-items:center;}
.reasons__img{border-radius:3px;overflow:hidden;aspect-ratio:4/5;}
.reasons__img img{width:100%;height:100%;object-fit:cover;}
.reasons__body h2{font-size:clamp(28px,3vw,40px);line-height:1.1;margin-bottom:22px;}
.reasons ol{margin:0;padding:0;list-style:none;counter-reset:r;display:flex;flex-direction:column;gap:18px;}
.reasons ol li{counter-increment:r;position:relative;padding-left:52px;color:var(--ink-2);font-size:15px;line-height:1.6;}
.reasons ol li::before{content:counter(r,decimal-leading-zero);position:absolute;left:0;top:0;font-family:'Tinos',serif;font-size:22px;color:var(--gold);}
.reasons ol li strong{display:block;color:var(--ink);font-size:16px;margin-bottom:2px;}

.otherwines{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;}
.owcard{display:flex;flex-direction:column;text-align:center;}
.owcard__img{aspect-ratio:4/3;border-radius:3px;overflow:hidden;background:var(--warm);}
.owcard__img img{width:100%;height:100%;object-fit:cover;transition:.5s;}
.owcard:hover .owcard__img img{transform:scale(1.05);}
.owcard span{font-family:'Tinos',serif;font-size:16px;color:var(--ink);margin-top:12px;}

.sortbar{display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:24px;font-size:13px;color:var(--ink-3);}
.sortbar label{display:inline-flex;align-items:center;gap:8px;}
.sortbar select{border:1px solid var(--line);border-radius:2px;padding:8px 10px;font-family:inherit;font-size:13px;background:#fff;color:var(--ink);}

@media(max-width:1000px){
  .reasons .wrap{grid-template-columns:1fr;gap:28px;}
  .reasons__img{order:-1;aspect-ratio:16/9;}
  .otherwines{grid-template-columns:repeat(2,minmax(0,1fr));}
  .contact{grid-template-columns:1fr;}
  .policy{grid-template-columns:1fr;}
  .policy__nav{position:static;flex-direction:row;flex-wrap:wrap;gap:8px;}
  .policy__nav a{border:1px solid var(--line);border-radius:99px;padding:8px 14px;}
  .policy__nav a:first-child{border-top:1px solid var(--line);}
  .stockist-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .colhub{grid-template-columns:repeat(2,minmax(0,1fr));}
  .blog-feature__card{grid-template-columns:1fr;}
  .blog-feature__img{order:-1;aspect-ratio:16/9;}
}
@media(max-width:560px){
  .form__row{grid-template-columns:1fr;}
  .stockist-grid{grid-template-columns:1fr;}
  .colhub{grid-template-columns:1fr;}
}

/* ============================================================
   v1.4.1 - Campaign pages (Celebrate / Summer): feature cards, banners, two-image hero
   ============================================================ */
.hero-duo{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);background:var(--warm);}
.hero-duo__copy{padding:clamp(40px,6vw,88px) var(--pad);display:flex;flex-direction:column;justify-content:center;gap:18px;max-width:640px;margin-left:auto;}
.hero-duo__copy h1{font-size:clamp(34px,4vw,54px);line-height:1.06;}
.hero-duo__imgs{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
.hero-duo__imgs img{display:block;width:100%;height:100%;min-height:440px;object-fit:cover;}
.cta-row{display:flex;gap:12px;flex-wrap:wrap;}
.camp-intro{max-width:none;margin:0 auto;text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px;}
.camp-intro h2{font-size:clamp(28px,3vw,40px);}
.camp-intro .lede{font-family:'Tinos',serif;font-style:italic;font-size:20px;color:var(--ink);}
.picks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:34px;}
.picks--4{grid-template-columns:repeat(4,minmax(0,1fr));}
.pick{position:relative;display:flex;gap:22px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:3px;padding:24px;}
.band .pick{background:#fff;}
.pick__img{flex:0 0 92px;display:flex;justify-content:center;}
.pick__img img{height:250px;width:auto;max-width:100%;object-fit:contain;}
.pick__body{display:flex;flex-direction:column;gap:9px;min-width:0;}
.pick__pre{font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:var(--gold);font-weight:700;}
.pick__body h3{font-size:21px;line-height:1.2;}
.pick__body h3 a{color:inherit;text-decoration:none;}
.pick__body p{font-size:14.5px;line-height:1.65;}
.pick__type{font-size:12px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-3);}
.pick__type a{color:var(--gold);text-decoration:none;}
.pick__badge{position:absolute;top:14px;right:14px;width:58px;height:58px;object-fit:contain;}
.pick .btn{align-self:flex-start;margin-top:6px;}
.picks--4 .pick{flex-direction:column;align-items:center;text-align:center;}
.picks--4 .pick__img{flex:none;}
.picks--4 .pick__img img{height:230px;}
.picks--4 .pick .btn{align-self:center;}
.banner-img img{display:block;width:100%;height:clamp(260px,40vw,560px);object-fit:cover;}
@media(max-width:1099px){.picks--4{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:899px){
  .hero-duo{grid-template-columns:minmax(0,1fr);}
  .hero-duo__copy{margin:0;max-width:none;}
  .hero-duo__imgs img{min-height:240px;}
}
@media(max-width:699px){
  .picks{grid-template-columns:minmax(0,1fr);}
  .pick{padding:20px;gap:16px;}
  .pick__img{flex-basis:70px;}
  .pick__img img{height:200px;}
}

/* ============================================================
   v1.4.4 - Discover mosaic tiles, stockists country links, PDP video + review form
   ============================================================ */
.dtiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;}
.dtile{position:relative;display:flex;align-items:flex-end;min-height:320px;overflow:hidden;border-radius:3px;background:var(--ink);color:#fff;}
.dtile--wide{grid-column:span 2;}
.dtile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s ease;}
.dtile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,12,8,0.05) 25%,rgba(20,12,8,0.62));}
.dtile--solid::after{display:none;}
.dtile__c{position:relative;z-index:1;padding:28px;display:flex;flex-direction:column;gap:8px;}
.dtile__c h3{color:#fff;font-size:clamp(22px,2vw,29px);line-height:1.15;}
.dtile__c p{color:rgba(255,255,255,0.92);font-size:14.5px;line-height:1.6;}
.dtile__more{margin-top:6px;font-size:12px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:#fff;display:inline-flex;gap:8px;align-items:center;}
.dtile:hover img{transform:scale(1.04);}
.dtile:hover .dtile__more .ar{transform:translateX(4px);}
.dtile__more .ar{transition:transform .2s;}
@media(max-width:899px){.dtiles{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:560px){.dtiles{grid-template-columns:minmax(0,1fr);}.dtile--wide{grid-column:auto;}.dtile{min-height:250px;}}

/* stockists: make clickable countries obvious */
.intl-cols .country-link{display:inline-flex;align-items:center;gap:8px;color:var(--gold);font-weight:600;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px;}
.intl-cols .country-link:hover{color:var(--gold-hi);text-decoration-thickness:2px;}
.intl-cols .country-link .ar{transition:transform .2s;font-weight:400;}
.intl-cols .country-link:hover .ar{transform:translateX(4px);}
.intl-cols__label{font-size:11px;font-weight:700;letter-spacing:0.16em;text-transform:uppercase;color:var(--ink-3);margin-bottom:6px;display:block;}
.region .logos{margin:40px 0 44px;}

/* PDP tasting video + review form */
.pdp-video{max-width:var(--maxw);margin:0 auto;padding:var(--secpad) var(--pad) 0;}
.pdp-video__frame{position:relative;width:100%;aspect-ratio:16/9;background:#000;border-radius:3px;overflow:hidden;margin-top:22px;}
.pdp-video__frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.review-form{width:100%;max-width:640px;margin:26px auto 0;text-align:left;display:flex;flex-direction:column;gap:14px;}
.review-form[hidden]{display:none;}
.review-form .rf-stars{display:flex;gap:6px;font-size:26px;color:var(--gold);}
.review-form .rf-stars button{background:none;border:0;cursor:pointer;font-size:26px;color:var(--line);padding:0;line-height:1;}
.review-form .rf-stars button.on{color:var(--gold);}
.review-form .rf-note{font-size:12.5px;color:var(--ink-3);}
@media(max-width:560px){.reviews-empty{padding:26px 18px;}}
/* v1.4.5 - QC: comfortable tap targets on phones */
.hactions{gap:2px;}
.hactions a{min-width:40px;min-height:40px;justify-content:center;}
.cartlink .count{top:2px;right:0;}
.nav-toggle{min-width:40px;min-height:40px;align-items:center;justify-content:center;}
.pdp__types a{display:inline-flex;align-items:center;min-height:32px;padding:0 12px;margin:6px 6px 0 0;border:1px solid var(--line);border-radius:99px;background:#fff;}
.pdp__types a:hover{border-color:var(--gold);}
@media(max-width:999px){.hactions{gap:0;}}

/* v1.4.9 - image framing restored to the pre-v1.4.6 look. Kept: whole images for the Discover product
   line-up (was cutting off a bottle) and for product-page content sections (nutrition panels, pairing shots). */
.life__img--whole,.pdp-sec .life__img{aspect-ratio:auto;}
.life__img--whole img,.pdp-sec .life__img img{height:auto;object-fit:contain;}

/* ============================================================
   v1.4.7 - Award medals on product cards + PDPs, full live PDP content, stock status
   ============================================================ */
.product__media,.bottle-card__media,.crosssell__media,.pdp__main{position:relative;}
.card-medals{position:absolute;top:10px;right:10px;display:flex;flex-direction:column;gap:6px;z-index:2;pointer-events:none;}
.product__media .card-medals img,.bottle-card__media .card-medals img,.crosssell__media .card-medals img{width:44px;height:44px;max-height:none;object-fit:contain;filter:none;transform:none !important;}
.pdp__medals{position:absolute;top:22px;right:22px;display:flex;flex-direction:column;gap:14px;z-index:2;pointer-events:none;transition:opacity .2s;}
.pdp__main .pdp__medals img{width:86px;height:86px;max-height:none;max-width:none;object-fit:contain;filter:none;}
.pdp__medals.is-hidden{opacity:0;}
.medal-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:2px;}
.medal-row img{width:40px;height:40px;object-fit:contain;}
.pdp__soldout{display:inline-block;vertical-align:middle;margin-left:10px;background:var(--ink);color:#fff;font-family:'Open Sans',sans-serif;font-size:12px;font-weight:700;letter-spacing:.06em;padding:4px 10px;border-radius:2px;}
.pdp__variants{margin:18px 0 6px;}
.pdp__variants-label{display:block;font-size:13px;font-weight:600;color:var(--ink);margin-bottom:8px;}
.pdp__sizes{display:flex;gap:10px;flex-wrap:wrap;}
.pdp__size{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 16px;border:1px solid var(--line);border-radius:2px;background:#fff;font-size:14px;color:var(--ink);}
.pdp__size:first-child{border-color:var(--ink);}
.pdp__size em{font-style:normal;color:var(--ink-3);font-size:13px;}
.pdp__size.is-out{color:var(--ink-3);text-decoration:line-through;background:var(--tint);}
.pdp__cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px;}
.pdp__cta .btn{margin-left:0 !important;}
.pdp-sec .life__body ul{margin:0;}
.pdp-sec .note{font-size:13px;color:var(--ink-3);}
.pdp-video__blurb{max-width:none;margin-top:10px;}
.pdp-sec .pairing{margin-top:6px;}
@media(max-width:560px){
  .card-medals{top:6px;right:6px;gap:4px;}
  .product__media .card-medals img,.bottle-card__media .card-medals img,.crosssell__media .card-medals img{width:30px;height:30px;}
  .pdp__medals{top:12px;right:12px;gap:8px;}
  .pdp__main .pdp__medals img{width:54px;height:54px;}
}
.pdp-sec__more{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px;margin-top:8px;}
.pdp-sec__more img{width:100%;height:auto;border-radius:3px;}
.card-soldout{position:absolute;left:10px;bottom:10px;z-index:2;background:var(--ink);color:#fff;font-size:12px;font-weight:700;letter-spacing:.04em;padding:4px 10px;border-radius:2px;}

/* v1.5.0 - testimonial carousel (full width, one quote at a time) */
.quote-carousel .wrap{max-width:var(--maxw);gap:18px;}
.qc__track{display:grid;width:100%;max-width:980px;margin:0 auto;touch-action:pan-y;overflow:hidden;padding:0 4px;}
.qc__slide{grid-area:1/1;margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;opacity:0;visibility:hidden;transform:translateX(24px);transition:opacity .5s ease,transform .5s ease,visibility 0s linear .5s;}
.qc__slide.is-active{opacity:1;visibility:visible;transform:none;transition:opacity .5s ease,transform .5s ease,visibility 0s;}
.qc__slide blockquote{margin:0;}
.qc__slide blockquote p{font-family:'Tinos',serif;font-style:italic;font-size:clamp(20px,2.3vw,30px);line-height:1.45;color:var(--ink);max-width:none;}
.qc__slide figcaption{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);}
.qc__nav{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:10px;}
.qc__arrow{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:18px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:.2s;}
.qc__arrow:hover{border-color:var(--gold);color:var(--gold);}
.qc__dots{display:flex;gap:4px;flex-wrap:wrap;justify-content:center;}
.qc__dot{width:28px;height:28px;border:0;background:none;cursor:pointer;position:relative;padding:0;}
.qc__dot::after{content:"";position:absolute;left:50%;top:50%;width:9px;height:9px;margin:-4.5px 0 0 -4.5px;border-radius:50%;background:var(--line);transition:.2s;}
.qc__dot.is-active::after{background:var(--gold);transform:scale(1.25);}
@media(prefers-reduced-motion:reduce){.qc__slide,.qc__slide.is-active{transition:none;transform:none;}}

/* v1.5.2 - ingredients: numbered editorial list + key-fact badges */
.ingr{display:flex;flex-direction:column;gap:22px;margin-top:4px;}
.ingr__list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px;border-top:1px solid var(--line);}
.ingr__list li{display:flex;align-items:baseline;gap:14px;padding:15px 2px;border-bottom:1px solid var(--line);font-size:16px;color:var(--ink);line-height:1.4;}
.ingr__n{font-family:'Tinos',serif;font-size:15px;color:var(--gold);letter-spacing:.04em;flex:0 0 auto;}
.ingr__facts{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px;}
.ingr__facts li{display:inline-flex;align-items:center;gap:8px;padding:9px 14px 9px 12px;border:1px solid var(--line);border-radius:99px;background:var(--warm);font-size:13.5px;font-weight:600;color:var(--ink);line-height:1.3;}
.band .ingr__facts li{background:#fff;}
.ingr__facts li::before{content:"";flex:0 0 16px;width:16px;height:16px;border-radius:50%;background:var(--gold) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 8.2l2.3 2.3 4.7-4.9' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/16px no-repeat;}
@media(max-width:560px){.ingr__list{grid-template-columns:minmax(0,1fr);}.ingr__list li{padding:13px 2px;font-size:15px;}}

/* v1.5.3 - ingredients as one numbered list; ingredients + nutrition side by side (as on live) */
.ingr__list{grid-template-columns:minmax(0,1fr);max-width:560px;}
.ingr-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(28px,4.5vw,72px);align-items:start;margin-top:24px;}
.ingr-grid__col h3{margin:0 0 12px;}
.ingr-grid__nutri .tablewrap{margin:0;}
.ingr-grid__nutri .note{margin-top:10px;}
@media(max-width:899px){.ingr-grid{grid-template-columns:minmax(0,1fr);}}

/* v1.5.4 - nutrition table styled like the live nutrition panel: copper rules and column dividers, no row lines */
table.nutri{width:100%;border-collapse:collapse;font-size:14px;line-height:1.4;color:var(--ink);margin:0;border-bottom:1.5px solid var(--gold);}
table.nutri caption{caption-side:top;text-align:left;padding:14px 0 12px;border-top:1.5px solid var(--gold);font-family:'Open Sans',sans-serif;font-size:12.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ink);}
table.nutri th,table.nutri td{border:0;padding:5px 14px;text-align:left;vertical-align:top;font-weight:400;background:none;color:var(--ink);}
table.nutri tr > *:first-child{padding-left:0;}
table.nutri tr > * + *{border-left:1.5px solid var(--gold);}
table.nutri thead th{border-top:1.5px solid var(--gold);border-bottom:1.5px solid var(--gold);padding-top:11px;padding-bottom:11px;font-weight:400;}
table.nutri thead th + th{border-left:1.5px solid var(--gold);}
table.nutri tbody tr:first-child > *{padding-top:12px;}
table.nutri tbody tr:last-child > *{padding-bottom:12px;}
table.nutri tbody th.sub{padding-left:14px;}
@media(max-width:560px){table.nutri{font-size:13px;}table.nutri th,table.nutri td{padding:5px 8px;}table.nutri caption{font-size:12px;}}

/* v1.5.5 - ORAC score row: its own copper-ruled band under the nutrition rows, value spans both columns (as on live) */
table.nutri tbody + tbody{border-top:1.5px solid var(--gold);}
table.nutri tbody.nutri__orac > tr > *{padding-top:12px;padding-bottom:12px;}

/* v1.5.6 - old v1.4.7 dark table header removed (it was overriding the live-style panel); first column and
   caption inset from the edge; tighter cells on phones so all three columns fit */
table.nutri caption{padding-left:12px;padding-right:12px;}
table.nutri tr > *:first-child{padding-left:12px;}
table.nutri tbody th.sub{padding-left:26px;}
@media(max-width:560px){
  table.nutri{font-size:13px;}
  table.nutri th,table.nutri td{padding-left:8px;padding-right:8px;}
  table.nutri tr > *:first-child{padding-left:8px;}
  table.nutri tbody th.sub{padding-left:18px;}
  table.nutri caption{padding-left:8px;padding-right:8px;}
}
@media(max-width:374px){
  table.nutri{font-size:12px;}
  table.nutri th,table.nutri td{padding-left:6px;padding-right:6px;}
  table.nutri tr > *:first-child{padding-left:6px;}
  table.nutri tbody th.sub{padding-left:14px;}
}

/* numbers stay with their units in nutrition cells */
table.nutri .nw{white-space:nowrap;}

/* v1.5.8 - ingredients and nutrition start on the same line: no offset above the list, and a column subheading
   ("Ingredients") takes the same copper rule + label treatment as the table caption so both columns line up */
.ingr-grid .ingr{margin-top:0;}
.ingr-grid__col > h3:first-child{margin:0;padding:14px 12px 12px;border-top:1.5px solid var(--gold);font-family:'Open Sans',sans-serif;font-size:12.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;line-height:1.4;color:var(--ink);}
@media(max-width:560px){.ingr-grid__col > h3:first-child{font-size:12px;padding-left:8px;padding-right:8px;}}

/* ================================================================
   v1.6.0 - Penny staging feedback (dev brief 28 Sep 2026). Numbers = brief item.
   ================================================================ */
/* #6 brand colours (Edenvale-Website-Brand-Colours: accent #cc8257, backgrounds #fff5f0 / #000000 / #ffffff) */
:root{--warm:#fff5f0;--black:#000;
  --h1:clamp(36px,4.2vw,56px);--h2:clamp(28px,3vw,40px);--h3:clamp(20px,1.8vw,24px);}
footer{background:var(--black);color:#cfc6c0;}
.foot p,.foot a{color:#cfc6c0;}
footer .legal{border-top-color:rgba(255,255,255,.12);}

/* #5 no hairline where the background colour changes */
.trust,.feat,.news,.page-hero,.band,.quote-band,.hero-img{border-top:0 !important;border-bottom:0 !important;}

/* #1 uniform section spacing: every section keeps one spacing unit inside; when two neighbours share a
   background the second drops its top padding, so the gap is always one unit (never two) */
:is(.section,.faq-section,.articles-module,.prose,.wine-type,.guide-copy,.pdp-video,.seo-block):not(.band):not(.quote-band)
  + :is(.section,.faq-section,.articles-module,.prose,.wine-type,.guide-copy,.pdp-video,.seo-block):not(.band):not(.quote-band){padding-top:0;}
:is(.band,.quote-band) + :is(.band,.quote-band){padding-top:0;}
:is(.band,.quote-band) + :is(.band,.quote-band) > .wrap{padding-top:0 !important;}
.quote-band .wrap{padding-top:var(--secpad);padding-bottom:var(--secpad);}
.pdp-video{padding-bottom:var(--secpad);}
.pdp-video + .quote-band,.pdp + .quote-band{margin-top:0;}
.feat > .wrap{padding-top:var(--secpad) !important;padding-bottom:var(--secpad) !important;}
.trust + .section{padding-top:var(--secpad);}

/* #4 one type hierarchy sitewide (H1 page title, H2 section, H3 sub-section); card titles keep their own size */
main h1:not(.hero h1){font-size:var(--h1) !important;line-height:1.06;}
main h2{font-size:var(--h2) !important;line-height:1.12;}
.life__body h3,.prose h3,.region h3,.faq-section h3,.pdp-sec h3:not(:first-child){font-size:var(--h3) !important;line-height:1.25;}
.pdp__info h1,.pdp h1{font-size:clamp(30px,3vw,42px) !important;}
.qc blockquote p,.quote-band p{font-size:clamp(19px,2vw,24px);}
.ingr-grid__col > h3:first-child{font-size:12.5px !important;}

/* #11 #12 homepage trust strip: all three panels left-aligned; the middle one wider so its heading sits on one line */
.trust .wrap{grid-template-columns:1fr 1.45fr 1fr;}
.tcell--medal{text-align:left;align-items:flex-start;}
.tcell--medal .tmedals{justify-content:flex-start;}
@media(min-width:1101px){.tcell--medal h3{white-space:nowrap;}}
@media(max-width:1000px){.trust .wrap{grid-template-columns:1fr;}.tcell,.tcell--medal{text-align:left;align-items:flex-start;}}

/* #3 homepage hero: sized to the photo's own shape so it is never enlarged (it was stretched ~1.5x and looked soft) */
.hero{min-height:0;aspect-ratio:1920/720;max-height:calc(100vh - 110px);}
@media(max-width:1000px){.hero{aspect-ratio:auto;min-height:clamp(420px,70vh,620px);max-height:none;}}

/* #13 one bottle size everywhere: card photos have transparent padding (bottle = 78% of the square, 11% top/bottom),
   so every card sizes the bottle itself (--bh) rather than the image box */
.product__media,.bottle-card__media,.crosssell__media{--bh:250px;height:310px;padding:0 16px;align-items:flex-end;}
.product__media > img,.bottle-card__media > img,.crosssell__media > img{height:calc(var(--bh) / .78);max-height:none;max-width:none;width:auto;margin-bottom:calc(14px - var(--bh) * .141);}
.col__arch{--bh:250px;}
@media(max-width:700px){
  .product__media,.bottle-card__media,.crosssell__media{--bh:180px;height:230px;}
  .col__arch{--bh:160px;}
}

/* #8 #17 related-content cards: same image shape and title size on every page */
.owcard__img,.post .pic,.post--sm img{aspect-ratio:4/3;}
.owcard span,.post h3,.post--sm .post__title{font-family:'Tinos',serif;font-size:19px;line-height:1.3;color:var(--ink);}
.otherwines{gap:24px;}

/* #15 breadcrumb gets breathing room above a banner / title block */
.breadcrumb{padding-top:18px;padding-bottom:18px;}

/* #24 #25 page title blocks (collections, ranges, types, hub and utility pages): brand colour, left-aligned, like the homepage */
.page-hero{background:var(--warm);}
.page-hero__in{max-width:var(--maxw);text-align:left;align-items:flex-start;padding:clamp(44px,5vw,72px) var(--pad);}
.page-hero .eyebrow{justify-content:flex-start;}
.page-hero h1{max-width:22ch;}
.page-hero p{max-width:70ch;}
.shop-toolbar{padding-top:22px;justify-content:flex-end;}
.shop-toolbar > div:empty{display:none;}

/* #23 photo banners on content pages: full-colour photo (no dark wash), title left-aligned over the same
   soft left-side shade the homepage hero uses */
.hero-img{justify-content:flex-start;}
.hero-img::after{background:linear-gradient(90deg,rgba(28,16,10,.55) 0%,rgba(28,16,10,.26) 42%,rgba(28,16,10,0) 70%);}
.hero-img__in{text-align:left;align-items:flex-start;max-width:var(--maxw);width:100%;margin:0 auto;}
.hero-img__in > *{max-width:600px;}
.hero-img .eyebrow{justify-content:flex-start;}
@media(max-width:700px){.hero-img::after{background:linear-gradient(0deg,rgba(28,16,10,.72),rgba(28,16,10,.12) 70%);}.hero-img{align-items:flex-end;}}

/* #27 GoLo process graphic */
.process-fig figure{margin:0;text-align:center;}
.process-fig img{width:100%;max-width:1100px;height:auto;margin:0 auto;}
.process-fig figcaption{margin:14px auto 0;font-size:14px;color:var(--ink-2);max-width:60ch;}

/* #28 #29 #30 stockists: more room round the retailer logos, rest of the world in its own colour block, no arrows */
.stk-au .region .logos{margin:48px 0 8px;}
.stk-world .region{margin-top:0;}
.intl-cols .country-link .ar{display:none;}
.ar{display:none;}

/* #7 contact block: the same everywhere */
.contact-band .form{max-width:640px;margin:0 auto;}

/* #14 add to cart confirmation */
.cart-toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);background:var(--black);color:#fff;padding:14px 18px;border-radius:3px;display:flex;gap:18px;align-items:center;font-size:14px;box-shadow:0 14px 34px rgba(0,0,0,.25);opacity:0;visibility:hidden;transition:.25s;z-index:90;max-width:calc(100vw - 32px);}
.cart-toast.is-on{opacity:1;visibility:visible;transform:translate(-50%,0);}
.cart-toast a{color:var(--gold);font-weight:700;white-space:nowrap;}
.btn.is-added{background:var(--gold);}
.cartlink .count.bump{animation:bump .4s ease;}
@keyframes bump{50%{transform:scale(1.35);}}

/* nav: 8 items now (Wholesale, Contact added) - tighten spacing on mid-size screens */
@media(min-width:1001px) and (max-width:1260px){.navitem>a{padding:14px 9px;letter-spacing:.08em;font-size:12px;}.hactions{gap:14px;}}

/* #33 wholesale: login gate + trade page (placeholders until the gated content is supplied) */
.ws-gate{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(32px,5vw,72px);align-items:start;}
.ws-gate__copy{display:flex;flex-direction:column;gap:16px;}
.ws-gate__copy a,.ws-small a,.ws-card a{color:var(--gold);text-decoration:underline;text-underline-offset:3px;}
.ws-login{border:1px solid var(--line);border-radius:3px;padding:28px;background:#fff;display:flex;flex-direction:column;gap:14px;}
.ws-forgot{font-size:13px;color:var(--ink-2);text-decoration:underline;align-self:flex-start;}
.ws-small{font-size:13px;}
.ws-trade .eyebrow{margin-bottom:10px;}
.ws-trade .doc-note{max-width:none;padding:0;margin:18px 0 26px;}
.ws-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;}
.ws-card{background:#fff;border:1px solid var(--line);border-radius:3px;padding:22px;display:flex;flex-direction:column;gap:10px;}
.ws-h{margin:34px 0 12px;}
.ws-table{width:100%;border-collapse:collapse;background:#fff;font-size:14px;}
.ws-table th,.ws-table td{border:1px solid var(--line);padding:11px 14px;text-align:left;}
.ws-table thead th{background:var(--black);color:#fff;font-weight:600;border-color:var(--black);}
.ws-todo{font-size:13.5px;color:var(--ink-3);}
.ws-todo strong{color:var(--gold);}
@media(max-width:900px){.ws-gate,.ws-grid{grid-template-columns:minmax(0,1fr);}}

/* Discover (Nicole 28 Sep): equal-sized cards in place of the mosaic */
.dcards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px;}
.dcard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:3px;overflow:hidden;transition:box-shadow .3s;}
.dcard:hover{box-shadow:0 16px 32px rgba(60,35,20,.12);}
.dcard__img{aspect-ratio:4/3;overflow:hidden;background:var(--warm);}
.dcard__img img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease;}
.dcard:hover .dcard__img img{transform:scale(1.04);}
.dcard__body{display:flex;flex-direction:column;gap:8px;padding:18px 18px 20px;flex:1;}
.dcard__body h3{font-size:19px;line-height:1.25;}
.dcard__body p{font-size:14px;line-height:1.6;}
.dcard__more{margin-top:auto;padding-top:6px;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);}
@media(max-width:1199px){.dcards{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(max-width:899px){.dcards{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:560px){.dcards{grid-template-columns:minmax(0,1fr);}}

/* #22 #21 product pages: image/copy blocks stack - photo across the content column at its own shape (never cropped
   or stretched to the copy length), copy underneath; colour changes between blocks carry the spacing */
.pdp-sec.life .wrap{display:flex;flex-direction:column;align-items:stretch;gap:30px;max-width:calc(880px + 2 * var(--pad));}
.pdp-sec.life .life__img{order:-1;width:100%;aspect-ratio:auto;}
.pdp-sec.life .life__img img{width:100%;height:auto;object-fit:contain;}
.pdp-sec.life .life__body{gap:16px;}

/* #1 spacing follow-ups found by the sitewide gap measurement */
.blog-feature + .contact-band,main > .wrap + .contact-band{margin-top:var(--secpad);}
.article + .contact-band{margin-top:calc(var(--secpad) - 23px);}
.guide-copy{padding-bottom:var(--secpad);}
.hero-img + .doc-note,.page-hero + .doc-note{margin-top:28px;}
.contact-band > .wrap{padding-top:var(--secpad);padding-bottom:var(--secpad);}

/* v1.6.1 - QC follow-ups against Penny's brief */
/* #8 #17 blog cards: an older rule forced image height to 100% and stretched them (1.23:1) - back to the shared 4:3 */
.post--sm img{height:auto;}
/* #13 homepage "Premium Selection" card had an old size override - same bottle size as the other cards */
.col__arch--tight img{height:calc(var(--bh) * 1.288);margin-bottom:calc(var(--bh) * -0.144);}
/* #5 no hairline under the header where it meets a coloured block; a soft rule appears only once the page scrolls */
header{border-bottom-color:transparent;transition:box-shadow .2s;}
header.is-scrolled{box-shadow:0 1px 0 var(--line);}

/* v1.6.2 - bottles the same size everywhere (Steve, 1 Oct). Each packshot carries its measured bottle height
   (--fill) and the space under it (--fb) as inline variables (bottle_fit.py -> postprocess.py), so the BOTTLE is
   sized, not the image box. Packs, cartons and 200mL piccolos keep their own proportions. */
.product__media > img,.bottle-card__media > img,.crosssell__media > img{height:calc(var(--bh) / var(--fill,.78));margin-bottom:calc(14px - var(--bh) * var(--fb,.11) / var(--fill,.78));}
.col__arch img,.col__arch--tight img{height:calc(var(--bh) / var(--fill,.776));margin-bottom:calc(var(--bh) * var(--fb,.112) / var(--fill,.776) * -1);}
.feat__media img{max-height:none;height:auto;width:calc(80% * .78 / var(--fill,.78));}
.pick__img{--ph:250px;}
.picks--4 .pick__img{--ph:230px;}
.pick__img img{height:calc(var(--ph) * .78 / var(--fill,.78));}
.pdp__main img{height:calc(100% * .78 / var(--fill,.78));max-height:none;}
@media(max-width:700px){.pick__img{--ph:200px;}}
/* campaign picks: same bottle as every product card (250px desktop, 180px phones) */
.pick__img,.picks--4 .pick__img{--ph:320.5px;}
@media(max-width:700px){.pick__img,.picks--4 .pick__img{--ph:230.8px;}}
.pick__img img,.picks--4 .pick__img img{height:calc(var(--ph) * .78 / var(--fill,.78));width:auto;max-width:none;object-fit:initial;}
.pick__img{overflow:visible;}

/* v1.6.3 - Staging Review 30 Sep: navigation (nav design layout v5). Shop = three-column mega panel; the four
   group headings are links (small uppercase label, copper + underline on hover); "Shop by Wine Style" is a plain
   label until it has a page. Same dropdown styling as before. */
.navitem--mega{position:static;}
.hdr{position:relative;}
.drop--mega{left:50%;right:auto;transform:translate(-50%,6px);display:grid;grid-template-columns:repeat(3,minmax(220px,auto));padding:18px 0 20px;width:max-content;max-width:calc(100vw - 40px);}
.navitem--mega:hover .drop--mega{transform:translate(-50%,0);}
.mega__col{padding:0 10px;}
.mega__col + .mega__col{border-left:1px solid var(--line);}
.mega__group + .mega__group{margin-top:16px;}
.mega__head{display:block;padding:6px 14px 8px;font-size:11.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);}
a.mega__head:hover{color:var(--gold);background:none;text-decoration:underline;text-underline-offset:4px;}
.mega__head--label{color:var(--ink-3);}
.drop a.mega__lead{font-weight:600;color:var(--ink);}
/* eight top-level items: keep the header on one line on laptop widths */
@media(min-width:1001px) and (max-width:1360px){.navitem>a{padding:14px 9px;letter-spacing:.07em;font-size:12px;}.hdr{gap:12px;}.hactions{gap:14px;}}
@media(min-width:1001px) and (max-width:1120px){.navitem>a{padding:14px 6px;letter-spacing:.04em;font-size:11.5px;}}
@media(max-width:1000px){
  .drop--mega{transform:none !important;display:block;width:auto;max-width:none;padding:0 0 0 12px;}
  .navitem.open .drop--mega{padding:0 0 10px 12px;max-height:1400px;}
  .mega__col{padding:0;}
  .mega__col + .mega__col{border-left:0;}
  .mega__group{margin-top:8px;}
  .mega__head{padding:10px 14px 4px;}
}

/* Staging Review item 3: collection LANDING pages (collections.html, wine-types.html) - visibly not a product grid */
.hero-img--landing{min-height:clamp(380px,52vh,560px);}
.hero-img--landing .hero-img__in{gap:16px;}
.hero-img--landing .btn{margin-top:6px;}
.land-intro__in{max-width:820px;}
.land-intro__in p{font-size:18px;line-height:1.75;color:var(--ink-2);}
.land-h2{margin-bottom:28px;}
.ltiles{display:grid;gap:24px;}
.ltiles--3{grid-template-columns:repeat(3,minmax(0,1fr));}
.ltiles--4{grid-template-columns:repeat(4,minmax(0,1fr));}
.ltile{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:3px;overflow:hidden;transition:box-shadow .3s;}
.ltile:hover{box-shadow:0 18px 36px rgba(60,35,20,.12);}
.ltile__img{aspect-ratio:4/3;overflow:hidden;background:var(--warm);}
.ltiles--4 .ltile__img{aspect-ratio:4/5;}
.ltile__img img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease;}
.ltile:hover .ltile__img img{transform:scale(1.04);}
.ltile__body{display:flex;flex-direction:column;gap:8px;padding:20px 22px 24px;flex:1;}
.ltile__body h3{font-size:22px;line-height:1.2;}
.ltile__body p{font-size:14.5px;line-height:1.6;}
.ltile__more{margin-top:auto;padding-top:8px;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);}
.land-story .life__body ul{margin:0;padding-left:18px;}
.pairs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;}
.pair{border:1px solid var(--line);border-radius:3px;padding:22px;background:#fff;}
.pair h3{font-size:20px;}
.pair__mood{font-size:13px;color:var(--gold);font-weight:600;margin:4px 0 12px;}
.pair dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:6px 12px;font-size:14px;}
.pair dt{font-weight:700;color:var(--ink);}
.pair dd{margin:0;color:var(--ink-2);}
.land-bottles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;}
.land-cta{display:flex;justify-content:center;margin-top:30px;}
@media(max-width:1000px){.ltiles--4{grid-template-columns:repeat(2,minmax(0,1fr));}.ltiles--3,.pairs{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:600px){.ltiles--3,.ltiles--4,.pairs,.land-bottles{grid-template-columns:minmax(0,1fr);}}

/* Staging Review item 5: real checkboxes, styled as before; filters apply on select */
.filter-row input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none;}
.filter-row input:checked + .box{background:var(--gold) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.3l2.6 2.5 5.4-5.6' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat;border-color:var(--gold);}
.filter-row input:focus-visible + .box{outline:2px solid var(--gold);outline-offset:2px;}
.filter-row:has(input:checked){color:var(--ink);font-weight:600;}
.product[hidden]{display:none !important;}
.filters-empty{padding:30px 0;font-size:15px;color:var(--ink-2);}
.filters-clear{background:none;border:0;padding:0;color:var(--gold);font-weight:700;text-decoration:underline;cursor:pointer;font-family:inherit;font-size:inherit;}
.filters-btn .count[hidden]{display:none;}

.pdp-video__link{margin-top:12px;font-size:14px;}
.pdp-video__link a{color:var(--gold);text-decoration:underline;text-underline-offset:3px;}

/* Staging Review item 8: featured post - the title is the link (no "Read the article"); blog posts use the full
   content container, left-aligned (was a centred 760px column) */
.blog-feature__body h2 a{color:inherit;text-decoration:none;background-image:linear-gradient(currentColor,currentColor);background-size:0 1px;background-position:0 100%;background-repeat:no-repeat;transition:background-size .3s;}
.blog-feature__body h2 a:hover,.blog-feature__body h2 a:focus-visible{background-size:100% 1px;color:var(--gold);}
.blog-feature__img{display:block;}
.article{max-width:var(--maxw);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad);text-align:left;}
.article > *{margin-left:0;margin-right:0;}
.article__cover{aspect-ratio:21/9;}

/* Staging Review item 10: text-to-image balance. A copy-heavy image section (copy > 1.5x the image, flagged by
   site.js) gets an equal split, a taller portrait image that stays in view while reading, and long sentence-style
   headings are set smaller so the copy column doesn't run away from the image. */
.life.life--long .wrap{grid-template-columns:1fr 1fr;align-items:start;}
.life.life--long .life__img{aspect-ratio:4/5;position:sticky;top:110px;}
.life.life--long .life__img img{height:100%;object-fit:cover;}
.life h2.h2--long{font-size:clamp(24px,2.4vw,32px) !important;line-height:1.2;}
@media(max-width:899px){.life.life--long .life__img{position:static;aspect-ratio:5/4;}}
/* pick images: keep the measured bottle size without the square packshot widening its column (it overflowed on phones/tablets) */
.pick__img{min-width:0;}
.picks--4 .pick__img{width:100%;}
.pick__img img,.picks--4 .pick__img img{flex:none;margin:0 calc((100% - var(--ph) * .78 / var(--fill,.78)) / 2);}

/* Steve 1 Oct: collection cards (Discover, landing "Customer favourites") - the BOTTLE is centred both ways in its
   card and sized like every other bottle. Packshots carry their measured padding (--ft/--fb/--fl/--fr), so the
   offset moves the visible bottle, not the image box, to the centre. */
.bottle-card__media{align-items:center;justify-content:center;padding:0;}
.bottle-card__media > img{margin:0;translate:calc(var(--bh) / var(--fill,.78) * (var(--fr,0) - var(--fl,0)) / 2) calc(var(--bh) / var(--fill,.78) * (var(--fb,.11) - var(--ft,.11)) / 2);}
/* landing-page intro runs the full content width (Steve) */
.land-intro__in{max-width:none;}
/* Shop page keeps its title in the toolbar: left-aligned like every other page (the flex-end rule is only for
   toolbars that hold just the mobile Filters button) */
.shop-toolbar:has(h1){justify-content:space-between;}

/* Steve 1 Oct: every bottle is centred both ways in its product card (750mL bottles, 200mL minis and packs). The
   measured padding of each packshot (--ft/--fb/--fl/--fr) moves the visible bottle, not the image box, to the centre;
   750mL bottles stay 250px tall, minis keep their true smaller scale. */
.product__media,.crosssell__media{align-items:center;justify-content:center;padding:0;}
.product__media > img,.crosssell__media > img{margin:0;translate:calc(var(--bh) / var(--fill,.78) * (var(--fr,0) - var(--fl,0)) / 2) calc(var(--bh) / var(--fill,.78) * (var(--fb,.11) - var(--ft,.11)) / 2);}
/* packs, cartons and minis (no --fill): never wider than the card on small screens - size = the smaller of the card
   width and the standard box, and the centring offset uses that same drawn size */
.product__media,.crosssell__media,.bottle-card__media{container-type:inline-size;}
.product__media > img:not([style*="--fill"]),.crosssell__media > img:not([style*="--fill"]),.bottle-card__media > img:not([style*="--fill"]){
  --H:min(100cqw, calc(var(--bh) / .78));height:var(--H);width:auto;max-width:none;
  translate:calc(var(--H) * (var(--fr,0) - var(--fl,0)) / 2) calc(var(--H) * (var(--fb,.11) - var(--ft,.11)) / 2);}
/* sticky treatment also for the numbered "reasons" sections */
.reasons.life--long .wrap{align-items:start;}
.reasons.life--long .reasons__img{position:sticky;top:110px;}
@media(max-width:899px){.reasons.life--long .reasons__img{position:static;}}
/* image shape for text-heavy sections is now set per section by site.js (balanced to the copy) */
.life.life--long .life__img{aspect-ratio:auto;}

/* cut-out images (transparent collages, bottle shots, line-ups) are shown whole - never cropped to a frame */
.life__img--whole,.life.life--long .life__img--whole{aspect-ratio:auto !important;background:none;}
.life__img--whole img,.life.life--long .life__img--whole img{height:auto !important;width:100%;object-fit:contain !important;}
/* homepage: the Contact block follows the warm newsletter band - white so the two sections alternate (Steve) */
.news + .contact-band{background:#fff;}
.news ~ .contact-band{background:#fff;}
/* homepage newsletter is a warm band - it keeps its full top padding (the same-background collapse rule doesn't apply) */
.news{padding-top:var(--secpad) !important;padding-bottom:var(--secpad) !important;}

/* Nicole / Sneha 2 Oct: four-column Shop menu, plain headings, "View all options" per column (as Sans) */
.drop--mega{grid-template-columns:repeat(4,minmax(190px,auto));}
.mega__head--label{color:var(--ink);}
.drop a.mega__all{margin-top:6px;color:var(--gold);font-weight:600;}
.drop a.mega__all:hover{text-decoration:underline;text-underline-offset:3px;}
@media(max-width:1000px){.navitem.open .drop--mega{max-height:2400px;}}

/* food pairing icons as on live (Steve 6 Oct): 100px icons, side by side, 20px under the copy, no label */
.pdp-sec .pairing,.pairing{gap:0;margin:20px 0 0;}
.pairing img{height:100px;width:100px;object-fit:contain;}
@media(max-width:560px){.pairing img{height:80px;width:80px;}}
.pdp-sec .pairing,.pairing{margin-top:4px;}   /* + the 16px column gap = 20px under the copy, as on live */

/* Steve 6 Oct: Food Pairing on product pages - compact side-by-side layout (photo | copy + icons). Short copy, so it
   doesn't need the stacked full-width treatment used for long blocks (Penny #22). Photo is a fixed 4:3 frame. */
.pdp-sec.life:has(.pairing) .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,4vw,56px);align-items:center;max-width:var(--maxw);}
.pdp-sec.life:has(.pairing) .life__img{order:-1;aspect-ratio:4/3;width:100%;}
.pdp-sec.life:has(.pairing) .life__img img{width:100%;height:100%;object-fit:cover;}
.pdp-sec.life:has(.pairing) .life__body{gap:14px;}
.pdp-sec.life:has(.pairing) .pairing img{height:84px;width:84px;}
.pdp-sec.life:has(.pairing) .pdp-sec__more{grid-column:1 / -1;}
@media(max-width:899px){
  .pdp-sec.life:has(.pairing) .wrap{grid-template-columns:minmax(0,1fr);gap:22px;}
  .pdp-sec.life:has(.pairing) .life__img{aspect-ratio:16/9;}
  .pdp-sec.life:has(.pairing) .pairing img{height:64px;width:64px;}
}
/* pairing section with no photo (e.g. Sparkling Rose): long food list in two columns */
.pdp-sec:not(.life):has(.pairing) .prose ul{columns:2;column-gap:48px;}
.pdp-sec:not(.life):has(.pairing) .prose ul li{break-inside:avoid;}
@media(max-width:700px){.pdp-sec:not(.life):has(.pairing) .prose ul{columns:1;}.pdp-sec:not(.life):has(.pairing) .pairing img{height:64px;width:64px;}}
.pdp-sec:has(.pairing) ul{margin-bottom:0;}
.pdp-sec .prose .pairing{margin-top:20px;}

/* ============================================================
   v1.8.0 - Edenvale website feedback 07 Oct 2026 (Penny / Nicole)
   ============================================================ */
/* Banners (parent + child pages): no tint over the photo. The heading sits on a solid panel so it stays legible
   on any image - the photo itself is shown clean and crisp, as on the homepage. */
.hero-img::after{display:none !important;}
.hero-img{align-items:flex-end;}
.hero-img__in{padding:clamp(28px,4vw,56px) var(--pad);}
.hero-img__panel{background:rgba(255,255,255,.95);padding:clamp(22px,2.6vw,34px) clamp(22px,2.8vw,38px);border-radius:4px;
  display:flex;flex-direction:column;gap:12px;align-items:flex-start;max-width:600px;box-shadow:0 10px 30px rgba(36,29,31,.10);}
.hero-img__panel h1{color:var(--ink) !important;}
.hero-img__panel p{color:var(--ink-2) !important;}
.hero-img__panel .eyebrow{color:var(--gold) !important;}
.hero-img__panel .eyebrow::before{background:var(--gold) !important;}
@media(max-width:700px){
  .hero-img{flex-direction:column;align-items:stretch;min-height:0;}
  .hero-img img{position:relative;height:clamp(220px,56vw,340px);}
  .hero-img__in{padding:0;}
  .hero-img__panel{max-width:none;border-radius:0;box-shadow:none;padding:24px var(--pad) 28px;background:var(--warm);}
}

/* "Take a look at our other wines" - one component everywhere: four cards in view, the rest one swipe/arrow away */
.ow{position:relative;}
.ow__track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 3 * 24px) / 4);gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;
  scrollbar-width:none;padding-bottom:4px;}
.ow__track::-webkit-scrollbar{display:none;}
.ow__track .owcard{scroll-snap-align:start;}
.ow__nav{display:flex;gap:10px;justify-content:flex-end;margin-top:18px;}
.ow__btn{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:18px;cursor:pointer;display:grid;place-items:center;}
.ow__btn:disabled{opacity:.35;cursor:default;}
.ow__btn:not(:disabled):hover{border-color:var(--gold);color:var(--gold);}
@media(max-width:1000px){.ow__track{grid-auto-columns:calc((100% - 2 * 18px) / 2.4);gap:18px;}}
@media(max-width:560px){.ow__track{grid-auto-columns:78%;}}


/* reviews carousel - more room above long reviews (Sparkling Cuvee benchmark note): the band's own padding plus
   breathing space inside the track, so a long review never sits hard against the top edge */
.quote-carousel .qc__track{padding-top:clamp(18px,2.4vw,32px);padding-bottom:6px;}
.quote-carousel .qc__slide blockquote p{font-size:clamp(19px,2vw,26px);}


/* Shop mega menu - each list shows its first four links; "View more" opens the rest */
.drop a.mega__more{display:none !important;}
/* HEADS UP tasting videos are hosted files (not YouTube) - keep their own proportions */
.pdp-video__frame--file{aspect-ratio:auto;background:var(--warm);max-width:min(100%,520px);margin-left:auto;margin-right:auto;}
.pdp-video__frame--file video{display:block;width:100%;height:auto;max-height:78vh;background:#000;}
/* blog posts carry the live article body verbatim (07 Oct) - inline images, tables and h3/h4 */
.article__fig{margin:26px 0;}
.article__fig img{width:100%;height:auto;border-radius:3px;}
.article h3{font-size:clamp(19px,1.9vw,23px);margin:26px 0 10px;}
.article h4{font-family:'Open Sans',sans-serif;font-size:16px;font-weight:700;margin:20px 0 8px;color:var(--ink);}
.article table{width:100%;border-collapse:collapse;margin:20px 0;font-size:15px;}
.article th,.article td{border:1px solid var(--line);padding:10px 12px;text-align:left;vertical-align:top;}
.article th{background:var(--warm);font-weight:600;color:var(--ink);}
.article ul,.article ol{padding-left:22px;}
.article li{margin:6px 0;line-height:1.7;color:var(--ink-2);}
.mega__group .mega__toggle{display:block;background:none;border:0;padding:10px 14px;margin:0;font:inherit;font-size:13.5px;font-weight:600;color:var(--gold);cursor:pointer;text-align:left;}
.mega__group .mega__toggle:hover{text-decoration:underline;text-underline-offset:3px;}
.drop .mega__group.is-open a.mega__more{display:block !important;}
.ow--static .ow__nav{display:none;}
/* banner panel kept compact so it doesn't cover the subject of the photo */
.hero-img__panel{max-width:440px;}
.hero-img__panel h1{font-size:clamp(30px,3.3vw,46px) !important;}
.hero-img__panel p{font-size:16px;}
/* in-copy links read as links (Shop intro / live sections, collection copy) */
.land-intro__in p + p{margin-top:14px;}
.land-intro__in a,.life__body p a,.prose p a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px;}
.land-intro__in a:hover,.life__body p a:hover,.prose p a:hover{color:var(--gold);}
.shop-intro{padding-bottom:12px !important;}
/* Shop banner (Steve 8 Oct): frame lower in the photo so the bottles on the table are in view */
.shop-hero img{object-position:center 82%;}

/* Steve 8 Oct: Food Pairing photo matches the height of the copy beside it (was a short 4:3 frame centred on it) */
@media(min-width:900px){
  .pdp-sec.life:has(.pairing) .wrap{align-items:stretch;}
  .pdp-sec.life:has(.pairing) .life__img{aspect-ratio:auto;height:auto;min-height:420px;position:relative;}
  .pdp-sec.life:has(.pairing) .life__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
}

/* ============================================================
   08 Oct consistency audit (Steve): one value per role, sitewide. Measured on every page with consistency_qc.py.
   Headings: H1 var(--h1), H2 var(--h2), H3 var(--h3) for section sub-heads, 20px for card titles; Tinos, weight 400.
   Copy: body 16px/1.7, intro (lead) 18px/1.75, card copy 14px. Overrides one-off sizes left by earlier passes.
   ============================================================ */
main h1,main h2,main h3{font-weight:400 !important;}
main h1:not(.hero h1){line-height:1.06 !important;}
main h2{line-height:1.12 !important;}
.life__body h3,.prose h3,.region h3,.faq-section h3,.pdp-sec h3:not(:first-child),.article h3,.policy__body h3,
.ws-login h3,main section.section > .wrap > h3{font-family:'Tinos','Times New Roman',serif;font-size:var(--h3) !important;line-height:1.25 !important;}
.dcard__body h3,.ltile__body h3,.pick__body h3,.pair h3,.post h3,.tcard h3,.ws-card h3,.tcell h3,.recipe_related__card h3,.colhub__body h3{
  font-family:'Tinos','Times New Roman',serif;font-size:20px !important;line-height:1.25 !important;}
/* label-style sub-heads stay as labels (Ingredients / Nutrition caps label, recipe card "Ingredients" / "Method") */
.ingr-grid__col > h3:first-child{font-family:'Open Sans',sans-serif;}
/* body copy */
.prose p,.prose ul,.prose ol,.article p,.article li,.policy__body p,.policy__body li,.reviews-empty p,.life__body p,.life__body li,
.reasons__body p,.reasons__body li,.pdp__desc p,.camp-intro p:not(.lede){font-size:16px !important;line-height:1.7 !important;}
/* intro / lead copy directly under a page title */
.page-hero p,.land-intro__in p,.camp-intro .lede{font-size:18px !important;line-height:1.75 !important;}
.camp-intro .lede{font-family:'Open Sans',sans-serif;font-style:normal;color:var(--ink-2);}
/* card copy */
.dcard__body p,.pick__body p,.tcard p,.ws-card p,.tcell p{font-size:14px !important;line-height:1.65 !important;}

/* Product reviews (08 Oct, Steve): real reviews of this product only, as cards - long reviews get room to breathe */
.pdp-reviews .rv-head{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;margin-bottom:36px;}
.rv-summary{display:flex;align-items:center;gap:8px;font-size:15px;color:var(--ink-2);}
.rv-summary strong{color:var(--ink);}
.pdp-reviews .stars,.pdp__rating .stars{color:var(--gold);letter-spacing:2px;font-size:16px;}
.rv-grid{display:grid;gap:24px;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;}
.rv-grid--1{grid-template-columns:minmax(0,640px);justify-content:center;}
.rv-grid--2{grid-template-columns:repeat(2,minmax(0,1fr));max-width:980px;margin:0 auto;}
.rv-card{margin:0;background:#fff;border:1px solid var(--line);border-radius:4px;padding:30px 30px 26px;display:flex;flex-direction:column;gap:16px;}
.band .rv-card,.pdp-reviews[style*="255, 245"] .rv-card{background:#fff;}
.rv-card blockquote{margin:0;flex:1;}
.rv-card blockquote p{font-family:'Tinos','Times New Roman',serif;font-style:italic;font-size:19px !important;line-height:1.55 !important;color:var(--ink);}
.rv-card figcaption{font-size:13px;color:var(--ink-3);display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;border-top:1px solid var(--line);padding-top:14px;}
.rv-card figcaption strong{color:var(--ink);font-size:14px;}
.rv-verified{color:var(--gold);font-weight:600;}
.rv-card--critic figcaption{font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--gold);font-size:12px;}
.pdp__rating{display:flex;align-items:center;gap:10px;}
.pdp__rating a{font-size:14px;color:var(--ink-2);text-decoration:underline;text-underline-offset:3px;}
@media(max-width:899px){.rv-grid,.rv-grid--2{grid-template-columns:minmax(0,1fr);}}
/* Steve 8 Oct: page titles run the full width of the section - no forced line breaks */
.page-hero h1{max-width:none !important;}
.page-hero p{max-width:none !important;}
.hero-img__panel{max-width:min(720px,100%);}
.hero-img__panel{width:fit-content;max-width:100% !important;}
/* mega menu stays open after "View more / View less" (see initNav) */
@media(min-width:1001px){.navitem.is-held .drop{opacity:1;visibility:visible;transform:translateY(0);}.navitem.is-held>a .caret{transform:rotate(225deg);margin-top:2px;}}
@media(min-width:1001px){.navitem--mega.is-held .drop--mega{transform:translate(-50%,0);}}
/* blog in-article components from live (08 Oct): CTA strip, button, product row, author */
.article__cta .btn{margin-top:4px;}
.article__btn{margin:24px 0 28px !important;}
.article__shop{margin:34px 0;padding:28px;background:var(--warm);border-radius:4px;}
.article__shop h2{margin:0 0 20px !important;text-align:center;}
.article__shopgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;}
.article__prod{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;background:#fff;border:1px solid var(--line);border-radius:4px;padding:18px 14px;}
.article__prodimg{height:220px;display:flex;align-items:center;justify-content:center;}
.article__prodimg img{max-height:100%;width:auto;object-fit:contain;filter:drop-shadow(0 12px 14px rgba(60,35,20,.2));}
.article__prodname{font-family:'Tinos',serif;font-size:19px;color:var(--ink);}
.article__prodprice{font-size:14px;color:var(--ink-3);}
.article__author{margin-top:34px;padding-top:22px;border-top:1px solid var(--line);}
.article__author p{font-size:14px !important;color:var(--ink-3);margin-bottom:6px !important;}
@media(max-width:700px){.article__shopgrid{grid-template-columns:minmax(0,1fr);}}

/* "INGREDIENTS" / "NUTRITIONAL INFORMATION" labels stay bold caps labels (the 08 Oct heading-weight rule had flattened them) */
main .ingr-grid__col > h3:first-child{font-weight:700 !important;}
/* HEADS UP (Steve 8 Oct): tasting video left, ingredients + nutritional information right - same components as the PDPs */
.hu-tasting .wrap{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:clamp(32px,4vw,64px);align-items:start;}
.hu-tasting__video{margin:0 !important;max-width:none !important;width:100%;}
.hu-tasting__info > h2{margin:0 0 22px;}
.hu-tasting .ingr-grid{grid-template-columns:minmax(0,1fr) !important;gap:32px;}
@media(min-width:1180px){.hu-tasting .ingr-grid{grid-template-columns:minmax(0,0.85fr) minmax(0,1.15fr) !important;}}
@media(max-width:899px){.hu-tasting .wrap{grid-template-columns:minmax(0,1fr);}.hu-tasting__video{max-width:420px !important;margin:0 auto !important;}}
.hu-tasting .ingr-grid{grid-template-columns:minmax(0,1fr) !important;gap:30px;margin-top:0;}
.hu-tasting .ingr__list{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none;}
@media(max-width:560px){.hu-tasting .ingr__list{grid-template-columns:minmax(0,1fr);}}

/* ============================================================
   Tables (Steve 8 Oct): one standard for every table and the ingredients list beside the nutrition panel.
   Text 15px everywhere (13px on phones); every label, heading and cell starts the same 12px in from the table edge;
   header cells 600 weight; caption / list labels 12.5px bold caps.
   ============================================================ */
main table{font-size:15px !important;line-height:1.45;}
main table th,main table td{font-size:15px !important;padding-left:12px !important;padding-right:12px !important;}
main table thead th{font-weight:600 !important;}
main table tbody th{font-weight:400;}
main table tbody th.sub{padding-left:26px !important;}
table.nutri caption{padding-left:12px !important;padding-right:12px !important;}
.ingr-grid__col > h3:first-child{padding-left:12px !important;padding-right:12px !important;}
.ingr__list li{padding-left:12px !important;padding-right:12px !important;font-size:15px !important;}
.ingr__list li span{font-size:15px !important;}
@media(max-width:560px){
  main table,main table th,main table td,.ingr__list li,.ingr__list li span{font-size:13px !important;}
  main table th,main table td,table.nutri caption,.ingr-grid__col > h3:first-child,.ingr__list li{padding-left:8px !important;padding-right:8px !important;}
  main table tbody th.sub{padding-left:18px !important;}
}

/* Product pick cards, 4 across (Summer, Celebrate) - Steve 8 Oct: centred like the rest of the card, and the medal row and
   button sit on the same line in every card in the row (copy length no longer moves them) */
.picks--4 .pick__body{flex:1;width:100%;align-items:center;}
.picks--4 .pick__body > p{flex:1 0 auto;}            /* the copy takes up the slack, so what follows lines up */
.picks--4 .medal-row{justify-content:center;min-height:40px;margin-top:6px;}
.picks--4 .pick__body > .btn{margin-top:14px;}
main table thead th{text-align:left !important;}   /* header cells line up with the cells below (comparison table was centred) */

/* Steve 8 Oct: one gap from a section heading to its cards / tiles, sitewide - 36px (You may also like and From the journal
   had none; Latest, tiles, pairings, other wines, reviews ranged 28-63px) */
.articles-module > h2{margin-bottom:36px !important;}
.articles-module > h2 + p{margin:-22px auto 36px !important;}
.articles-module > .colhead,.land-featured .colhead{margin-bottom:36px !important;}
.land-h2{margin-bottom:36px !important;}
.wrap > .center:has(+ .ow){margin-bottom:36px !important;}
.pdp-reviews .rv-head{margin-bottom:36px !important;}
@media(max-width:700px){
  .articles-module > h2,.articles-module > .colhead,.land-featured .colhead,.land-h2,.wrap > .center:has(+ .ow),.pdp-reviews .rv-head{margin-bottom:26px !important;}
  .articles-module > h2 + p{margin:-16px auto 26px !important;}
}
/* footer social icons (official marks, white) */
.foot__social{display:flex;gap:16px;align-items:center;}
.foot__social a{display:inline-flex;width:22px;height:22px;opacity:.9;transition:opacity .2s;}
.foot__social a:hover{opacity:1;}
.foot__social svg{width:22px;height:22px;display:block;}

/* Steve 8 Oct: banners - no white box; white text with a soft black glow so the wording stands out on the clean photo.
   The smaller line and the button get a stronger glow. Same on phones (text over the photo). */
.hero-img__panel{background:none !important;box-shadow:none !important;border-radius:0 !important;padding:0 !important;max-width:min(900px,100%) !important;}
.hero-img__panel h1{color:#fff !important;text-shadow:0 0 2px rgba(0,0,0,.7),0 0 8px rgba(0,0,0,.6),0 0 18px rgba(0,0,0,.45),0 0 34px rgba(0,0,0,.3) !important;}
.hero-img__panel p,.hero-img__panel .eyebrow{color:#fff !important;text-shadow:0 0 2px rgba(0,0,0,.85),0 0 6px rgba(0,0,0,.75),0 0 14px rgba(0,0,0,.6),0 0 26px rgba(0,0,0,.45) !important;}
.hero-img__panel .eyebrow::before{background:#fff !important;}
.hero-img__panel .btn{box-shadow:0 0 18px rgba(0,0,0,.35);}
@media(max-width:700px){
  .hero-img{flex-direction:row !important;align-items:flex-end !important;min-height:clamp(260px,72vw,380px) !important;}
  .hero-img img{position:absolute !important;inset:0;height:100% !important;}
  .hero-img__in{padding:22px var(--pad) 24px !important;}
  .hero-img__panel{background:none !important;padding:0 !important;}
}
.hero-img__panel{max-width:100% !important;width:auto !important;}

/* Steve 8 Oct: every image + copy section on a product page uses the Sparkling Cuvee layout (photo | copy side by side,
   photo fills the height of the copy, sides alternate down the page). Replaces the stacked full-width treatment (Penny #22). */
@media(min-width:900px){
  .pdp-sec.life .wrap{display:grid !important;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,4vw,56px);align-items:stretch;max-width:var(--maxw) !important;}
  .pdp-sec.life .life__img{order:0;aspect-ratio:auto;height:auto;min-height:420px;position:relative;width:100%;align-self:stretch;}
  .pdp-sec.life .life__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:3px;}
  .pdp-sec.life .life__body{gap:14px;align-self:center;}
  .pdp-sec.life .pdp-sec__more{grid-column:1 / -1;}
}
@media(max-width:899px){
  .pdp-sec.life .wrap{display:flex;flex-direction:column;gap:22px;}
  .pdp-sec.life .life__img{order:-1;aspect-ratio:16/9;width:100%;}
  .pdp-sec.life .life__img img{width:100%;height:100%;object-fit:cover;}
}

/* ============================================================
   Penny 9 Oct: ONE standard image size beside copy, sitewide - 4:3 in an equal two-column split (about 574 x 430 at
   desktop, which fits three-quarters of the copy blocks). Shorter copy centres beside the image; longer copy keeps the
   same image size and the image travels with the text (sticky). Cut-outs (bottle line-ups) stay whole.
   ============================================================ */
@media(min-width:900px){
  main section.life > .wrap,main section.reasons > .wrap{display:grid !important;grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
    gap:clamp(32px,4.5vw,64px) !important;align-items:center !important;max-width:var(--maxw) !important;}
  main section.life > .wrap > .life__img:not(.life__img--whole),main section.reasons > .wrap > .reasons__img{
    aspect-ratio:4/3 !important;height:auto !important;min-height:0 !important;width:100% !important;position:relative;align-self:center !important;overflow:hidden;border-radius:3px;}
  main section.life > .wrap > .life__img:not(.life__img--whole) img,main section.reasons > .wrap > .reasons__img img{
    position:absolute !important;inset:0 !important;width:100% !important;height:100% !important;object-fit:cover !important;}
  main section.life > .wrap > .life__body,main section.reasons > .wrap > .reasons__body{align-self:center !important;}
  main section.life--long > .wrap,main section.reasons.life--long > .wrap{align-items:start !important;}
  main section.life--long > .wrap > .life__img:not(.life__img--whole),main section.reasons.life--long > .wrap > .reasons__img{position:sticky !important;align-self:start !important;}
  main section.life--long > .wrap > .life__body{align-self:start !important;}
}
@media(max-width:899px){
  main section.life > .wrap > .life__img:not(.life__img--whole),main section.reasons > .wrap > .reasons__img{aspect-ratio:4/3 !important;height:auto !important;min-height:0 !important;position:relative;overflow:hidden;}
  main section.life > .wrap > .life__img:not(.life__img--whole) img,main section.reasons > .wrap > .reasons__img img{position:absolute !important;inset:0;width:100% !important;height:100% !important;object-fit:cover !important;}
}

/* Nicole / Penny 9 Oct: every banner identical - same height, heading and sub heading in the same place (lower left of
   the content width), sub heading in italics on a single line, button underneath where there is one */
.hero-img,.hero-img--landing{min-height:clamp(340px,40vw,520px) !important;align-items:flex-end !important;justify-content:flex-start !important;}
.hero-img__in{max-width:var(--maxw) !important;width:100%;margin:0 auto !important;padding:0 var(--pad) clamp(30px,4vw,56px) !important;}
.hero-img__panel{gap:10px !important;}
.hero-img__panel .hero-sub{font-family:'Tinos','Times New Roman',serif !important;font-style:italic !important;font-size:clamp(18px,1.7vw,22px) !important;line-height:1.35 !important;margin:0;}
@media(min-width:900px){.hero-img__panel .hero-sub{white-space:nowrap;}}
.hero-img__panel .btn{margin-top:8px !important;}
/* plain title blocks (collection / type / style pages, HEADS UP) - same italic sub heading */
.page-hero .hero-sub,.page-hero__in > p{font-family:'Tinos','Times New Roman',serif !important;font-style:italic !important;font-size:clamp(18px,1.7vw,22px) !important;line-height:1.4 !important;}
@media(max-width:700px){.hero-img,.hero-img--landing{min-height:clamp(280px,78vw,380px) !important;}.hero-img__in{padding:0 var(--pad) 26px !important;}}
/* Discover: collections row scrolls (Penny 9 Oct) - bottle cards in the shared carousel */
.ow--bottles .ow__track .bottle-card{scroll-snap-align:start;}
.drop a.mega__head--link{padding:0 14px 8px;font-size:11.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);background:none !important;}
.drop a.mega__head--link:hover{color:var(--gold);}
/* Penny 9 Oct: Shop / Wine Types / Collections intro copy the same size as the intro copy on every other page, and links
   the same colour as the text (underlined), not a different colour */
.land-intro__in p{font-size:16px !important;line-height:1.7 !important;color:var(--ink-2) !important;}
.land-intro__in a,.land-intro__in a strong,.life__body p a,.prose p a{color:inherit !important;font-weight:inherit;text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px;}
.land-intro__in strong{color:inherit;}
/* Penny 9 Oct: homepage Drop of the Month block less tall - less padding top and bottom, smaller bottle stage */
.feat > .wrap{padding-top:clamp(36px,4vw,56px) !important;padding-bottom:clamp(36px,4vw,56px) !important;}
@media(min-width:900px){.feat__media{width:100%;max-width:440px;margin:0 auto;}}

/* ============================================================
   Celebrate + Summer landing pages (9 Oct) - Mindful July structure in the site design system
   ============================================================ */
.camp-h2{text-align:center;max-width:none;margin:0 auto 14px;}
.camp-lede{text-align:center;max-width:62ch;margin:0 auto 36px;font-size:16px;}
.camp-hero .hero-sub.camp-hero__sub{white-space:normal !important;max-width:58ch;}
.camp-hero .hero-img__panel{max-width:min(760px,100%) !important;}
.camp-trophies{position:absolute;z-index:3;right:clamp(16px,4vw,64px);bottom:clamp(20px,3vw,44px);display:flex;gap:12px;}
.camp-trophies img{width:clamp(70px,8vw,110px);height:auto;filter:drop-shadow(0 6px 14px rgba(0,0,0,.35));}
@media(max-width:700px){.camp-trophies{top:14px;bottom:auto;right:14px;}.camp-trophies img{width:62px;}}
/* 3-column features */
.camp-feat__cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,4vw,56px);margin-top:36px;text-align:center;}
.camp-feat__icon{display:inline-flex;color:var(--gold);margin-bottom:12px;}
.camp-feat__col h3{margin-bottom:10px;}
.camp-feat__col p{font-size:15px;max-width:34ch;margin:0 auto;}
@media(max-width:899px){.camp-feat__cols{grid-template-columns:minmax(0,1fr);}}
/* mixed carton feature */
.camp-carton .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,4.5vw,64px);align-items:center;}
.camp-carton__img img{width:100%;height:auto;}
.camp-carton__body{display:flex;flex-direction:column;gap:14px;}
.camp-carton__body a{color:inherit;text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px;}
.camp-carton__price{font-family:'Tinos',serif;font-size:24px;color:var(--ink);margin-top:4px;}
/* 12 Oct (Steve): the carton button looks like every other Add to cart (no fade) - it stays inactive until the carton exists in Shopify */
.camp-carton__body .btn[disabled]{opacity:1;cursor:pointer;}
.camp-carton__ship{font-size:13px;color:var(--ink-3);}
.camp-carton__close{font-family:'Tinos',serif;font-style:italic;font-size:18px;color:var(--ink);}
@media(max-width:899px){.camp-carton .wrap{grid-template-columns:minmax(0,1fr);}}
/* tiles: titles under the photo, same as the Collections / Wine Types tiles */
.camp-tiles .ltile__img{aspect-ratio:4/5;}
.camp-tiles .land-cta{margin-top:30px;text-align:center;}
/* guide narrative */
.camp-guide__in{max-width:820px;margin:0 auto;text-align:center;}
.camp-guide__in h2{margin-bottom:18px;}
.camp-guide__in p{font-size:16px;margin-bottom:14px;}
.camp-guide__in a{color:inherit;text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px;}
/* numbered tips (12 Oct, Steve): three cards in a row - the Discover / occasion tile card - with large gold numerals */
.camp-tips__intro{font-family:'Tinos',serif;font-style:italic;font-size:22px;color:var(--ink);text-align:center;margin-bottom:36px;}
.camp-tips__list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;}
.camp-tip{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:3px;overflow:hidden;}
.camp-tip__img{aspect-ratio:4/3;overflow:hidden;background:var(--warm);}
.camp-tip__img img{width:100%;height:100%;object-fit:cover;}
.camp-tip__body{display:flex;flex-direction:column;gap:8px;padding:20px 22px 24px;flex:1;}
.camp-tip__n{font-family:'Tinos',serif;font-style:italic;font-size:64px;line-height:1;color:var(--gold);display:block;margin-bottom:4px;}
.camp-tip__body h3{font-size:22px;line-height:1.2;margin:0;}
.camp-tip__body p{font-size:14.5px;line-height:1.6;margin:0;}
.camp-tip__body a{color:inherit;text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px;}
.camp-close{font-family:'Tinos',serif;font-style:italic;font-size:clamp(26px,3vw,38px);color:var(--ink);text-align:center;margin-top:46px;line-height:1.25;}
.camp-close em{display:block;color:var(--gold);}
@media(max-width:760px){.camp-tips__list{grid-template-columns:minmax(0,1fr);gap:20px;}.camp-tips__intro{margin-bottom:26px;}}
/* mid-page banner (Christmas Mocktails) */
.camp-banner h2{color:#fff !important;text-shadow:0 0 2px rgba(0,0,0,.7),0 0 8px rgba(0,0,0,.6),0 0 18px rgba(0,0,0,.45),0 0 34px rgba(0,0,0,.3);}
.camp-banner .hero-img__panel p{white-space:normal !important;max-width:60ch;font-style:normal !important;font-family:'Open Sans',sans-serif !important;font-size:16px !important;}
/* FAQ title without a heading tag (per outline) styled as the section heading */
.faq-section__title{font-family:'Tinos','Times New Roman',serif;font-size:var(--h2);line-height:1.12;color:var(--ink);text-align:center;margin:0 0 26px;}
.camp-reviews .rv-grid{margin-top:0;}
.camp-grid .land-cta{margin-top:34px;text-align:center;}
.hero-img .camp-trophies img{position:static !important;inset:auto !important;width:clamp(70px,8vw,110px) !important;height:auto !important;object-fit:contain !important;}
.camp-hero .hero-img__panel{max-width:min(980px,100%) !important;}
.camp-banner .hero-img__panel p{text-shadow:0 0 3px rgba(0,0,0,.9),0 0 8px rgba(0,0,0,.8),0 0 18px rgba(0,0,0,.65),0 0 30px rgba(0,0,0,.5) !important;}
.rv-card .stars{color:var(--gold);letter-spacing:2px;font-size:16px;}

/* 12 Oct (Steve): post buttons sit side by side; they stack only on mobile */
.article__btns{display:flex;flex-wrap:wrap;gap:14px;margin:24px 0 28px;}
@media (max-width:640px){.article__btns{flex-direction:column;align-items:flex-start;}}
.article__cta p{margin:0;}

/* 12 Oct (Penny): tasting videos are square - a square frame (no black bars) beside the heading and copy, in the
   same equal two-column split as the image + copy sections; one poster frame style on every video; plays on click */
.pdp-video__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(36px,4.5vw,72px);align-items:center;}
.pdp-video__frame{aspect-ratio:1/1;margin-top:0;background:#000;}
.pdp-video__play{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:#000;cursor:pointer;display:block;}
.pdp-video__play img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease,opacity .3s;}
.pdp-video__play:hover img{transform:scale(1.03);opacity:.92;}
.pdp-video__icon{position:absolute;left:50%;top:50%;width:76px;height:76px;margin:-38px 0 0 -38px;border-radius:50%;background:rgba(255,255,255,.92);box-shadow:0 8px 24px rgba(0,0,0,.25);transition:transform .25s,background .25s;}
.pdp-video__icon::after{content:"";position:absolute;left:31px;top:24px;border-style:solid;border-width:14px 0 14px 22px;border-color:transparent transparent transparent var(--gold);}
.pdp-video__play:hover .pdp-video__icon,.pdp-video__play:focus-visible .pdp-video__icon{transform:scale(1.08);background:#fff;}
.pdp-video__play:focus-visible{outline:3px solid var(--gold);outline-offset:3px;}
.pdp-video__body h2{margin:0;}
.pdp-video__blurb{margin-top:14px;}
@media(max-width:899px){.pdp-video__grid{grid-template-columns:minmax(0,1fr);gap:24px;}}

/* 12 Oct (Penny - 200ml crops): packshots with lots of empty canvas (minis, packs - no measured --fill) are scaled on
   the product page so the visible product, not the canvas, fills the frame: 78% of the frame height, never wider than
   90% of it, centred with the packshot's measured padding (--ft/--fb/--fl/--fr). Same in the thumbnails. */
.pdp__main{container-type:size;}
.pdp__main > img:not([style*="--fill"]){flex:none;max-width:none;max-height:none;width:auto;
  --H:min(calc(78cqh / (1 - var(--ft,.11) - var(--fb,.11))), calc(90cqw / (1 - var(--fl,0) - var(--fr,0))));height:var(--H);
  translate:calc(var(--H) * (var(--fr,0) - var(--fl,0)) / 2) calc(var(--H) * (var(--fb,.11) - var(--ft,.11)) / 2);}
.pdp__thumb{container-type:size;}
.pdp__thumb img[style*="--ft"]:not([style*="--fill"]){flex:none;max-width:none;max-height:none;width:auto;
  --H:min(calc(80cqh / (1 - var(--ft,.11) - var(--fb,.11))), calc(80cqw / (1 - var(--fl,0) - var(--fr,0))));height:var(--H);
  translate:calc(var(--H) * (var(--fr,0) - var(--fl,0)) / 2) calc(var(--H) * (var(--fb,.11) - var(--ft,.11)) / 2);}

/* 12 Oct (Penny): pickup notice under the stock line, as on live */
.pdp__pickup{margin-top:14px;font-size:14px;color:var(--ink-2);}
.pdp__pickup p{margin:0;}
.pdp__pickup-tick{color:var(--gold);font-weight:700;margin-right:4px;}
.pdp__pickup-time{font-size:13px;color:var(--ink-3);margin-top:2px !important;}
.pdp__pickup-info{margin-top:6px;font-size:13px;}
.pdp__pickup-info summary{cursor:pointer;color:var(--ink);text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px;width:max-content;}
.pdp__pickup-info p{margin-top:8px !important;line-height:1.6;}

/* 15 Oct (Penny): the home page has no <main>, so it missed the sitewide heading size (main h2 = var(--h2)). Every section
   heading on the home page now uses the same size as the rest of the site; "Made for the moment" and "In good taste" sit
   on the left like the other home headings */
body > :is(section, div):not(.hero) h2{font-size:var(--h2) !important;line-height:1.12;}
.home-shead{text-align:left;align-items:flex-start;}
.home-shead .eyebrow{justify-content:flex-start;}
/* 15 Oct (Penny): the Search button sits centred under the search box */
.stub .form > .btn{align-self:center;}

/* 15 Oct: Shop by Wine Style hub - four bottle cards per row (two on tablets and phones), each with the style's line */
.land-bottles--styles{grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 24px;}
.style-card{text-decoration:none;}
.style-card__line{display:block;text-align:center;font-size:14px;line-height:1.5;color:var(--ink-2);margin-top:6px;padding:0 6px;}
.style-card:hover .bottle-card__name{color:var(--gold);}
@media(max-width:900px){.land-bottles--styles{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:600px){.land-bottles--styles{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 14px;}}

/* 15 Oct: wholesale pages (built from the live pages) - register form card and the trade order form */
.ws-register h3{margin:0;}
.ws-phone{display:grid;grid-template-columns:110px minmax(0,1fr);gap:8px;}
.ws-thanks{color:var(--ink-3);}
.ws-register:not(.is-sent) .ws-thanks{opacity:.85;}
.ws-access{font-size:14px;color:var(--ink-2);border:1px solid var(--line);background:var(--warm);border-radius:3px;padding:12px 16px;margin-bottom:28px;}
.ws-access a,.ws-copy a{color:var(--gold);text-decoration:underline;text-underline-offset:3px;}
.ws-copy{max-width:none;display:flex;flex-direction:column;gap:14px;}
.ws-copy h2{margin-bottom:4px;}
.ws-copy h3{font-family:'Open Sans',sans-serif;font-size:16px;font-weight:700;margin-top:6px;}
.ws-copy ul{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px;}
.ws-order h2{margin-bottom:22px;}
.ws-bar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;margin-bottom:18px;}
.ws-bar select,.ws-bar input{height:46px;border:1px solid var(--line);border-radius:3px;background:#fff;padding:0 14px;font:inherit;font-size:15px;color:var(--ink);width:100%;}
.ws-cart{height:46px;min-width:64px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);border-radius:3px;background:#fff;font-weight:700;padding:0 14px;}
.ws-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}
.ws-item{display:grid;grid-template-columns:64px minmax(0,1fr) 170px 128px 140px;gap:18px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:3px;padding:12px 16px;}
.ws-item[hidden]{display:none;}
.ws-item img{width:64px;height:64px;object-fit:contain;}
.ws-item__info{display:flex;flex-direction:column;gap:3px;min-width:0;}
.ws-item__name{font-family:'Tinos',serif;font-size:18px;color:var(--ink);text-decoration:none;}
.ws-item__name:hover{color:var(--gold);}
.ws-item__meta{font-size:13px;color:var(--ink-3);}
.ws-item__price{font-size:13px;color:var(--ink-3);}
.ws-qty{display:grid;grid-template-columns:36px minmax(0,1fr) 36px;border:1px solid var(--line);border-radius:3px;height:42px;overflow:hidden;}
.ws-qty__btn{border:0;background:var(--warm);font-size:18px;cursor:pointer;color:var(--ink);}
.ws-qty__btn:hover{background:var(--line);}
.ws-qty input{border:0;text-align:center;font:inherit;font-weight:700;width:100%;-moz-appearance:textfield;}
.ws-qty input::-webkit-outer-spin-button,.ws-qty input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.ws-add{justify-content:center;padding:12px 16px;}
.ws-empty{text-align:center;color:var(--ink-3);padding:40px 0;}
.ws-note{margin-top:16px;color:var(--ink-3);}
@media(max-width:899px){
  .ws-item{grid-template-columns:56px minmax(0,1fr) 128px;row-gap:10px;}
  .ws-item img{width:56px;height:56px;}
  .ws-item__price{grid-column:2 / 3;}
  .ws-qty{grid-column:2 / 3;max-width:150px;}
  .ws-add{grid-column:3 / 4;grid-row:2 / 4;align-self:center;}
}
@media(max-width:560px){
  .ws-bar{grid-template-columns:minmax(0,1fr) auto;}
  .ws-sort{grid-column:1 / -1;}
  .ws-item{grid-template-columns:48px minmax(0,1fr);}
  .ws-item img{width:48px;height:48px;}
  .ws-item__price,.ws-qty{grid-column:2 / 3;}
  .ws-add{grid-column:1 / -1;grid-row:auto;}
}
/* 15 Oct (Steve's screenshots of the live form): a plain table - Image | Product name | Price | quantity + Add to cart,
   rows divided by lines (no cards) */
.ws-head,.ws-item{display:grid;grid-template-columns:150px minmax(0,1fr) 180px 90px 124px;gap:16px;align-items:center;}
.ws-head{font-size:14px;font-weight:700;color:var(--ink-3);padding:0 0 12px;border-bottom:1px solid var(--line);margin-top:8px;}
.ws-list{gap:0;}
.ws-item{background:none;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:16px 0;}
.ws-item img{width:56px;height:72px;}
.ws-item__name{font-family:'Open Sans',sans-serif;font-size:15px;color:var(--ink-2);}
.ws-item__price{font-size:15px;color:var(--ink-2);}
.ws-item__tbc{font-size:13px;color:var(--ink-3);}
.ws-qty{width:90px;height:44px;grid-template-columns:26px minmax(0,1fr) 26px;background:#fff;}
.ws-qty__btn{background:#fff;}
.ws-add{min-width:118px;}
.ws-results{font-weight:700;color:var(--ink-2);margin:4px 0 14px;}
.ws-end{text-align:center;color:var(--ink-2);margin-top:26px;font-size:15px;}
.ws-end a{color:var(--gold);text-decoration:underline;text-underline-offset:3px;}
@media(max-width:899px){
  .ws-head{display:none;}
  .ws-item{grid-template-columns:64px minmax(0,1fr) auto;row-gap:8px;}
  .ws-item img{grid-row:1 / 3;}
  .ws-item__price{grid-column:2 / 3;}
  .ws-qty{grid-column:2 / 3;grid-row:auto;max-width:none;}
  .ws-add{grid-column:3 / 4;grid-row:1 / 3;}
}
@media(max-width:560px){
  .ws-item{grid-template-columns:56px minmax(0,1fr);}
  .ws-add{grid-column:1 / -1;grid-row:auto;}
}

/* 16 Oct (Nicole: "WAY TOO BIG"): the mid-page mocktail banner on Celebrate is a shorter band than the page banners */
.hero-img.camp-banner{min-height:clamp(260px,26vw,360px) !important;}
.camp-banner img{object-position:50% 30%;}
/* 16 Oct (Nicole): award / trophy logo graphics inside posts at a sensible size, centred (the IWSC trophy was 1200px) */
.article__fig img:is([src*="Trophy" i],[src*="Medal" i],[src*="Logo" i],[src*="Award" i]){max-width:320px;margin:0 auto;display:block;}

/* 19 Oct (Celebrate + Summer amends): campaign announcement link, Mixed Six pack price/card, grid star ratings, exit popup */
.promo a{color:var(--gold);text-decoration:none;margin-left:6px;white-space:nowrap;}
.promo a:hover{text-decoration:underline;}
.camp-carton__save{font-family:'Open Sans',sans-serif;font-size:14px;font-weight:700;color:var(--gold-hi);letter-spacing:.04em;margin-left:4px;}
.camp-carton__was{font-size:13.5px;color:var(--ink-3);margin-top:-6px;}
.product__price + .product__rating{margin-top:-8px;margin-bottom:14px;}
.product__rating{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-3);}
.product__rating .stars{color:var(--gold);letter-spacing:2px;font-size:15px;}
.product--pack .product__media{position:relative;align-items:center;padding:14px;}
.product--pack .product__media img{max-height:118%;filter:none;}
.product__tag{position:absolute;top:12px;left:12px;background:var(--gold);color:#fff;font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:5px 10px;border-radius:2px;}
.exit-pop{position:fixed;inset:0;z-index:300;background:rgba(36,29,31,.55);display:flex;align-items:center;justify-content:center;padding:16px;}
.exit-pop[hidden]{display:none;}
.exit-pop__box{position:relative;background:#fff;border-radius:4px;max-width:760px;width:100%;display:grid;grid-template-columns:1fr 1.15fr;overflow:hidden;box-shadow:0 30px 60px rgba(0,0,0,.25);}
.exit-pop__img{background:linear-gradient(180deg,var(--warm),#fff);display:flex;align-items:center;justify-content:center;padding:18px;}
.exit-pop__img img{width:100%;height:auto;max-width:320px;}
.exit-pop__body{padding:clamp(26px,4vw,44px);display:flex;flex-direction:column;align-items:flex-start;gap:14px;}
.exit-pop__body h2{font-size:clamp(26px,3vw,32px);margin:0;}
.exit-pop__body p{font-size:15px;margin:0;}
.exit-pop__keep{background:none;border:0;padding:4px 0;font:inherit;font-size:14px;color:var(--ink-2);text-decoration:underline;cursor:pointer;}
.exit-pop__x{position:absolute;top:8px;right:10px;background:none;border:0;font-size:28px;line-height:1;color:var(--ink-2);cursor:pointer;padding:6px 10px;}
body.exit-pop-open{overflow:hidden;}
@media (max-width:640px){
  .exit-pop__box{grid-template-columns:1fr;}
  .exit-pop__img{padding:12px 12px 0;}
  .exit-pop__img img{max-width:200px;}
  .promo a{display:inline-block;margin-left:0;}
}
/* 19 Oct: Spiced Apple Fizz banner - the glass sits on the right of a plain wall: keep it in frame on phones, and give the white copy a soft tint to sit on */
.camp-banner img[src*="spiced-apple-fizz"]{object-position:50% 55%;}
.camp-banner:has(img[src*="spiced-apple-fizz"])::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(36,29,31,.38),rgba(36,29,31,.18) 55%,rgba(36,29,31,0) 75%);}
.camp-banner:has(img[src*="spiced-apple-fizz"]) .hero-img__in{position:relative;z-index:2;}
@media (max-width:767px){
  .camp-banner img[src*="spiced-apple-fizz"]{object-position:86% 55%;}
  .camp-banner:has(img[src*="spiced-apple-fizz"])::before{background:rgba(36,29,31,.32);}
}

/* 20 Oct (L4): pack price with the individual price struck through, as Shopify shows a compare-at price (Mindful July) */
.camp-carton__compare{font-family:'Open Sans',sans-serif;font-size:17px;color:var(--ink-3);margin-left:8px;text-decoration-thickness:1px;}
.product__compare{color:var(--ink-3);margin-left:6px;}
/* 20 Oct (L5): review cards - name and "Verified buyer" on the first line, the product on its own line below, on every card */
.rv-card figcaption{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;align-items:baseline;}
.rv-card figcaption .rv-verified{justify-self:start;}
.rv-card figcaption .rv-date{grid-column:1 / -1;}
/* 20 Oct (P1): Piccolos Mix & Match - pick your own six */
.pick6{border:1px solid var(--line);border-radius:3px;padding:18px 20px 12px;margin:22px 0 18px;background:#fff;}
.pick6 legend{font-family:'Tinos','Times New Roman',serif;font-size:19px;color:var(--ink);padding:0 6px;margin-left:-6px;}
.pick6__row{display:grid;grid-template-columns:90px minmax(0,1fr);align-items:center;gap:12px;margin-bottom:10px;}
.pick6__row label{font-size:14px;font-weight:600;color:var(--ink-2);}
.pick6__row select{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:2px;background:#fff;font:inherit;font-size:14px;color:var(--ink);}
.pick6__row select:focus{outline:2px solid var(--gold);outline-offset:1px;}
.pick6__row select.is-missing{border-color:#b3261e;}
.pick6__msg{font-size:13.5px;color:#b3261e;margin:4px 0 0;min-height:1em;}

/* ===== 20 Oct (Nicole T2, M2-M14): ONE recipe template, on the site's own tokens - no page-level styling =====
   Headings in the heading font, charcoal (--ink), standard spacing; body 16px warm grey (--ink-2), not italic;
   standard page banner (hero-img, 520px max); site buttons; square images at fixed ratios; tips to the right of the image. */
.recipe-hero{min-height:clamp(320px,44vh,520px);}
.recipe__layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:clamp(32px,4vw,64px);align-items:start;padding-top:clamp(30px,4vw,48px);padding-bottom:var(--secpad);}
.recipe__main{max-width:760px;}
.recipe__byline{font-size:13.5px;color:var(--ink-3);margin-bottom:22px;}
.recipe__main p,.recipe__main li{font-size:16px;line-height:1.7;color:var(--ink-2);font-style:normal;}
.recipe__main h2{font-size:clamp(26px,2.6vw,34px);line-height:1.2;color:var(--ink);margin:0 0 14px;}
.recipe__main h3,.recipe__main h4{font-family:'Tinos','Times New Roman',serif;font-weight:400;color:var(--ink);}
.recipe__main a:not(.btn){color:var(--ink);text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px;}
.recipe__main ul,.recipe__main ol{padding-left:22px;margin:10px 0 0;}
.recipe__main li+li{margin-top:6px;}
.recipe__main p+p{margin-top:14px;}
/* 22 Oct (Penny): the opening paragraph is body size, like every other page (was 18px) */
.recipe__sec,.recipe-card,.recipe-tips,.recipe-cta{margin-top:clamp(36px,4vw,52px);}
.recipe__fig{margin:22px 0 0;}
.recipe__fig img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:0;}
.recipe-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:clamp(24px,3vw,40px);background:var(--warm);border:1px solid var(--line);padding:clamp(24px,3vw,36px);}
.recipe-card h3{font-size:26px;margin-bottom:6px;}
.recipe-card__prep{font-size:13.5px !important;color:var(--ink-3) !important;margin-bottom:10px;}
.recipe-card ol{counter-reset:step;list-style:none;padding:0;}
.recipe-card ol>li{counter-increment:step;position:relative;padding-left:42px;margin-top:16px;}
.recipe-card ol>li::before{content:counter(step);position:absolute;left:0;top:1px;width:28px;height:28px;border-radius:50%;background:var(--gold);color:#fff;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;}
.recipe-card ol h4{font-size:19px;margin:0 0 4px;}
.recipe-tips__pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:clamp(22px,3vw,36px);align-items:start;margin-top:8px;}
.recipe-tips__img img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;}
.recipe-tips__list ul{margin-top:0;}
.recipe-cta{background:var(--warm);border:1px solid var(--line);padding:clamp(26px,3vw,40px);text-align:center;}
.recipe-cta__kicker{font-size:13px !important;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold) !important;margin-bottom:8px;}
.recipe-cta h2{margin-bottom:20px !important;}
.recipe-cta__btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}
.recipe-side{position:sticky;top:110px;display:flex;flex-direction:column;gap:18px;}
.recipe-side__box{border:1px solid var(--line);padding:22px;background:#fff;}
.recipe-side__head{font-family:'Tinos','Times New Roman',serif;font-size:20px;color:var(--ink);margin-bottom:12px;}
.recipe-wine__link{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;color:inherit;text-decoration:none;}
.recipe-wine__link img{height:220px;width:auto;object-fit:contain;margin-bottom:8px;}
.recipe-wine__name{font-family:'Tinos','Times New Roman',serif;font-size:19px;color:var(--ink);}
.recipe-wine__coll,.recipe-wine__ship{font-size:13px;color:var(--ink-3);}
.recipe-wine__price{font-size:14px;color:var(--ink-2);margin-bottom:12px;}
.recipe-wine .btn{width:100%;justify-content:center;}
.recipe-wine__ship{margin-top:10px;text-align:center;}
.recipe-facts{margin:0;}
.recipe-facts div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line);font-size:14px;}
.recipe-facts div:first-child{border-top:0;}
.recipe-facts dt{color:var(--ink-3);}
.recipe-facts dd{margin:0;color:var(--ink);text-align:right;}
.recipe-share{display:flex;gap:10px;}
.recipe-share .btn{flex:1;justify-content:center;padding:12px 10px;}
.recipe-news p{font-size:14px;color:var(--ink-2);margin-bottom:12px;}
.recipe-news form{display:flex;flex-direction:column;gap:10px;}
.recipe-news input{padding:13px 14px;border:1px solid var(--line);border-radius:2px;font:inherit;font-size:14px;}
.recipe-news .btn{justify-content:center;}
.recipe-more{border-top:1px solid var(--line);}
@media(max-width:989px){
  .recipe__layout{grid-template-columns:minmax(0,1fr);}
  .recipe-side{position:static;}
}
@media(max-width:640px){
  .recipe-card,.recipe-tips__pair{grid-template-columns:minmax(0,1fr);}
  .recipe-tips__img img{aspect-ratio:3/2;}
}

/* ===== 20 Oct (Nicole T1, B1-B8): ONE blog post template, on site.css only =====
   B3: the article column is 760px, as the copy blocks on the main pages (was the full 1280px wrap).
   B2 / B4: images square like the main pages, at fixed ratios - cover 21:9, inline photos 3:2; award graphics
   and product packshots keep their own shape. */
.article{max-width:calc(760px + 2 * var(--pad));margin-left:auto;margin-right:auto;}
.article__cover{aspect-ratio:21/9;border-radius:0;}
.article img:not(.article__cover){border-radius:0;}
.article img:not(.article__cover):not(.article__prodimg img):not([src*="Trophy" i]):not([src*="Medal" i]):not([src*="Logo" i]):not([src*="Award" i]){display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;}
.post--sm img{border-radius:0;}
.articles-module--more>h2,.articles-module--more>p{text-align:center;}
/* B1 mock-up: the post opening on the standard image banner */
.article-hero{min-height:clamp(320px,44vh,520px);}
.article--banner{padding-top:clamp(26px,3vw,40px);}
.article--banner .article__byline{margin-top:0;margin-bottom:26px;}
/* 20 Oct (L1): the H1 now runs to two lines - on phones the IWSC trophies sit in their own row above the copy
   instead of over the heading */
@media(max-width:700px){
  .hero-img.camp-hero{flex-wrap:wrap;align-content:flex-start;}
  .camp-hero .camp-trophies{position:relative;top:auto;right:auto;bottom:auto;order:-1;width:100%;justify-content:flex-end;padding:14px 14px 0;}
  .hero-img .camp-trophies img{width:56px !important;}
}
/* on phones the forced break left a one-word line ("Enjoy") - the heading wraps naturally there */
@media(max-width:480px){.camp-hero h1 br{display:none;}}
/* 20 Oct (P3): empty cart - centred in the page column like the other utility pages (it had no styles) */
.cart-empty{max-width:640px;margin:0 auto;padding:var(--secpad) var(--pad);text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px;}
.cart-empty h1{font-size:clamp(32px,4vw,48px);}
.cart-empty p{font-size:16px;}
.cart-empty .btn{margin-top:8px;}
