/* ==========================================================================
   Cellar Key, house design system
   Brand fonts, built in natively: Broadsheet (display + text), Poppins (labels).
   Palette: deep maroon, antique gold, fresh cream, the live Cellar Key brand.
   ========================================================================== */

@font-face{
  font-family:"Broadsheet";
  src:url("../assets/fonts/Broadsheet-Regular.ttf") format("truetype");
  font-weight:400; font-style:normal; font-display:swap;
}

:root{
  --maroon:#540818;
  --maroon-deep:#3a0710;
  --maroon-ink:#2a0a10;
  --ink:#2c161a;
  --gold:#c2a35a;
  --gold-soft:#d8c089;
  --gold-deep:#9c7a30;
  --cream:#fbf6ee;
  --cream-2:#f3ebdb;
  --cream-card:#f7f0e4;
  --paper:#ffffff;
  --muted:#7c6a5e;

  --line:rgba(84,8,24,.13);
  --line-gold:rgba(194,163,90,.42);
  --shadow:0 1px 2px rgba(42,10,16,.04), 0 18px 48px -26px rgba(42,10,16,.24);
  --shadow-lift:0 1px 2px rgba(42,10,16,.06), 0 42px 84px -40px rgba(42,10,16,.46);

  --broadsheet:"Broadsheet", "Cormorant Garamond", Georgia, serif;
  --sans:"Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --display:var(--broadsheet);

  --wrap:1220px;
  --wrap-narrow:860px;
  --gutter:clamp(20px, 5vw, 64px);
  --section:clamp(66px, 9vw, 132px);
  --ease:cubic-bezier(.2,.6,.2,1);
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth; overflow-x:hidden}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:var(--broadsheet);
  font-size:19px;
  line-height:1.66;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{max-width:100%; display:block}
a{color:inherit; text-decoration:none}
::selection{background:var(--gold); color:var(--maroon-deep)}

/* ---------- Typography ---------- */
h1,h2,h3,h4{font-family:var(--broadsheet); font-weight:400; line-height:1.05; margin:0; letter-spacing:.004em}
.display{font-family:var(--broadsheet); font-weight:400; font-size:clamp(46px, 7.4vw, 104px); line-height:1.0; letter-spacing:.005em}
.h-xl{font-size:clamp(36px,5.2vw,66px); line-height:1.04}
.h-lg{font-size:clamp(30px,3.6vw,50px)}
.h-md{font-size:clamp(24px,2.5vw,33px)}
.lead{font-family:var(--broadsheet); font-size:clamp(21px,2.3vw,28px); line-height:1.46; font-weight:400}
.prose p{margin:0 0 1.05em; color:#4a3a33}
.prose p:last-child{margin-bottom:0}

/* Labels / UI type = Poppins */
.eyebrow, .nav a, .btn, .link-gold, .topstrip, .winecard .region, .winecard .note,
.winecard .cta, .region-tile .rcount, .step .n, .stat .l, .site-footer h5,
.site-footer .fnav a, .icon-link, .kicker, .signup input, .signup .btn{
  font-family:var(--sans);
}

.eyebrow{
  font-size:11.5px; font-weight:600; letter-spacing:.3em; text-transform:uppercase;
  color:var(--gold-deep); margin:0; display:inline-flex; align-items:center; gap:.9em;
}
.eyebrow::before{content:""; width:26px; height:1px; background:var(--gold); display:inline-block; opacity:.85}
.eyebrow.centered{justify-content:center}
.eyebrow.centered::after{content:""; width:26px; height:1px; background:var(--gold); display:inline-block; opacity:.85}
.eyebrow.on-dark{color:var(--gold-soft)}
.eyebrow.on-dark::before,.eyebrow.on-dark::after{background:var(--gold-soft)}

.muted{color:var(--muted)}
.italic{font-style:italic}

/* ---------- Layout ---------- */
.wrap{max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gutter)}
.wrap-narrow{max-width:var(--wrap-narrow); margin-inline:auto; padding-inline:var(--gutter)}
.section{padding-block:var(--section)}
.center{text-align:center}
.rule-gold{height:1px; width:58px; background:var(--gold); border:0; margin:24px 0 0}
.center .rule-gold{margin-inline:auto}

.dark{background:var(--maroon); color:var(--cream)}
.dark .prose p{color:#f5ecdc}
#story .prose p{color:#f5ecdc}
.dark .muted{color:#c6ad99}
.dark h1,.dark h2,.dark h3{color:#fff}
.deep{background:var(--maroon-deep); color:var(--cream)}
.paper{background:var(--paper)}
.oncream{background:var(--cream-2)}

/* ---------- Buttons ---------- */
.btn{
  --b:var(--maroon);
  display:inline-flex; align-items:center; justify-content:center; gap:.7em;
  font-size:12px; font-weight:600; letter-spacing:.2em; text-transform:uppercase;
  padding:17px 36px; border:1px solid var(--b); background:var(--b); color:#fff;
  cursor:pointer; transition:all .45s var(--ease);
}
.btn:hover{background:transparent; color:var(--b)}
.btn-gold{--b:var(--gold-deep); background:var(--gold); border-color:var(--gold); color:var(--maroon-deep)}
.btn-gold:hover{background:transparent; color:var(--gold)}
.dark .btn-gold:hover, .deep .btn-gold:hover{color:var(--gold-soft)}
.btn-ghost{background:transparent; color:currentColor; border-color:currentColor}
.btn-ghost:hover{background:var(--gold); border-color:var(--gold); color:var(--maroon-deep)}
.link-gold{
  font-size:12px; font-weight:600; letter-spacing:.18em; text-transform:uppercase;
  color:var(--gold-deep); display:inline-flex; align-items:center; gap:.6em;
}
.dark .link-gold, .deep .link-gold{color:var(--gold-soft)}
.link-gold .arw{transition:transform .4s var(--ease)}
.link-gold:hover .arw{transform:translateX(6px)}

/* ---------- Top strip ---------- */
.topstrip{
  background:var(--maroon-ink); color:var(--gold-soft);
  font-size:10.5px; letter-spacing:.16em; text-transform:uppercase;
  text-align:center; padding:9px 16px; font-weight:500;
}
.topstrip b{color:#fff; font-weight:600}

/* ---------- Header (deep maroon, real logo) ---------- */
.site-header{
  position:sticky; top:0; z-index:60;
  background:var(--maroon-deep);
  border-bottom:1px solid rgba(194,163,90,.26);
}
.site-header .bar{
  display:grid; grid-template-columns:1fr auto 1fr; align-items:center;
  gap:20px; padding:15px var(--gutter); max-width:1320px; margin-inline:auto;
}
.nav{display:flex; gap:30px; align-items:center}
.nav.left{justify-content:flex-start}
.nav.right{justify-content:flex-end}
.nav a{
  font-size:12px; letter-spacing:.16em; text-transform:uppercase; font-weight:500; color:#eaddcb;
  position:relative; padding:5px 0; white-space:nowrap; transition:color .3s;
}
.nav a:hover{color:#fff}
.nav a::after{content:""; position:absolute; left:0; bottom:-1px; height:1px; width:0; background:var(--gold); transition:width .4s var(--ease)}
.nav a:hover::after{width:100%}
.nav a.hunter{color:var(--gold-soft)}
.brand{display:flex; justify-content:center; align-items:center}
.brand img{height:92px; width:auto}
.header-cta{display:inline-flex; align-items:center; gap:20px; justify-content:flex-end}
.icon-link{font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:#eaddcb; display:inline-flex; align-items:center; gap:7px; transition:color .3s}
.icon-link:hover{color:var(--gold-soft)}
.burger{display:none; flex-direction:column; gap:5px; background:none; border:0; cursor:pointer; padding:8px}
.burger span{width:24px; height:1.5px; background:var(--gold-soft); display:block; transition:.3s}

/* ---------- Hero ---------- */
.hero{position:relative; min-height:94vh; display:flex; align-items:flex-end; color:var(--cream); overflow:hidden; background:var(--maroon-deep)}
.hero-media{position:absolute; inset:0; z-index:0}
.hero-media img{width:100%; height:100%; object-fit:cover; opacity:.64}
.hero-media::after{content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(42,7,16,.34) 0%, rgba(42,7,16,.08) 36%, rgba(42,7,16,.88) 100%),
             radial-gradient(130% 90% at 50% 125%, rgba(42,7,16,.9), transparent 60%)}
.hero-inner{position:relative; z-index:1; width:100%; max-width:var(--wrap); margin-inline:auto; padding:0 var(--gutter) clamp(58px,8vw,116px)}
.hero h1{color:#fff; margin:22px 0 0; max-width:15ch; text-wrap:balance}
.hero .lead{color:#f0e3d3; max-width:48ch; margin-top:26px}
.nowrap{white-space:nowrap}
.hero-actions{display:flex; flex-wrap:wrap; gap:16px; margin-top:38px}
.scrollcue{position:absolute; left:50%; bottom:24px; transform:translateX(-50%); z-index:1; color:var(--gold-soft); font-family:var(--sans); font-size:10px; letter-spacing:.3em; text-transform:uppercase; opacity:.85; display:flex; flex-direction:column; align-items:center; gap:8px}
.scrollcue .dash{width:1px; height:32px; background:linear-gradient(var(--gold-soft), transparent); animation:cue 2.4s var(--ease) infinite}
@keyframes cue{0%{transform:scaleY(0); transform-origin:top}45%{transform:scaleY(1); transform-origin:top}55%{transform:scaleY(1); transform-origin:bottom}100%{transform:scaleY(0); transform-origin:bottom}}

/* ---------- Wine Hunter feature band (front & centre) ---------- */
.hunter-band{position:relative; background:var(--maroon); color:var(--cream); overflow:hidden}
.hunter-band .mark{position:absolute; left:-70px; bottom:-90px; width:420px; opacity:.05; filter:none; z-index:0; pointer-events:none}
.hunter-band .wrap{position:relative; z-index:1; display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(30px,5vw,70px); align-items:center; padding-block:clamp(56px,7vw,96px)}
.hunter-band h2{color:#fff; margin:16px 0 0}
.hunter-steps{display:flex; flex-direction:column; gap:22px}
.hunter-steps .s{display:flex; gap:18px; align-items:flex-start; padding-bottom:20px; border-bottom:1px solid rgba(194,163,90,.26)}
.hunter-steps .s:last-child{border-bottom:0; padding-bottom:0}
.hunter-steps .s .num{font-family:var(--broadsheet); font-size:30px; color:var(--gold-soft); line-height:1; min-width:46px}
.hunter-steps .s h4{font-size:22px; color:#fff; margin:0 0 4px}
.hunter-steps .s p{margin:0; color:#d9c6b4; font-size:17px; line-height:1.5}

/* ---------- Grids / wine cards ---------- */
.grid{display:grid; gap:34px}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
.grid-2{grid-template-columns:repeat(2,1fr)}

.winecard{background:var(--cream-card); border:1px solid var(--line); display:flex; flex-direction:column;
  transition:transform .5s var(--ease), box-shadow .5s var(--ease), border-color .5s var(--ease)}
.winecard:hover{transform:translateY(-6px); box-shadow:var(--shadow-lift); border-color:var(--line-gold)}
/* Photo area matches the cream so product white backgrounds melt away and the
   bottle floats. mix-blend-mode:multiply drops the white into the card tone. */
.winecard .ph{aspect-ratio:4/5; background:var(--cream-card); overflow:hidden; position:relative; display:flex; align-items:center; justify-content:center}
.winecard .ph::after{content:""; position:absolute; left:50%; bottom:22px; width:46%; height:14px; transform:translateX(-50%); background:radial-gradient(ellipse at center, rgba(42,10,16,.16), transparent 70%); filter:blur(2px)}
.winecard .ph img{max-width:76%; max-height:82%; width:auto; height:auto; object-fit:contain; mix-blend-mode:multiply; transition:transform .8s var(--ease)}
.winecard:hover .ph img{transform:scale(1.05)}
.winecard .meta{padding:24px 26px 28px; display:flex; flex-direction:column; gap:9px; flex:1}
.winecard .region{font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-deep); font-weight:600}
.winecard .title{font-family:var(--broadsheet); font-size:25px; line-height:1.12; color:var(--maroon)}
.winecard .note{font-size:12.5px; color:var(--muted); letter-spacing:.02em}
.winecard .foot{margin-top:auto; padding-top:16px; border-top:1px solid var(--line); display:flex; align-items:baseline; justify-content:space-between; gap:12px}
.winecard .price{font-family:var(--broadsheet); font-size:24px; color:var(--ink)}
.winecard .cta{font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; font-weight:600; color:var(--gold-deep)}

/* ---------- Region tiles ---------- */
.regions{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line-gold); border:1px solid var(--line-gold)}
.region-tile{background:var(--maroon); color:var(--cream); padding:40px 34px; min-height:188px; display:flex; flex-direction:column; justify-content:space-between; position:relative; overflow:hidden; transition:background .5s var(--ease)}
.region-tile:nth-child(even){background:var(--maroon-deep)}
.region-tile:hover{background:var(--gold)}
.region-tile:hover *{color:var(--maroon-deep) !important}
.region-tile .rname{font-family:var(--broadsheet); font-size:31px; line-height:1; color:#fff}
.region-tile .rcount{font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-soft)}
.region-tile .rgo{font-size:22px; color:var(--gold-soft); align-self:flex-end; transition:transform .45s var(--ease)}
.region-tile .rgo svg{width:22px; height:22px; display:block}
.region-tile:hover .rgo{transform:translate(4px,-4px)}

/* ---------- Split blocks ---------- */
.split{display:grid; grid-template-columns:1fr 1fr; align-items:stretch}
.split .media{min-height:440px; background:var(--cream-2); position:relative; overflow:hidden}
.split .media img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover}
.split .body{padding:clamp(40px,6vw,92px); display:flex; flex-direction:column; justify-content:center}
.split.reverse .media{order:2}

/* ---------- Catalogue ---------- */
.catalogue{background:var(--maroon-deep); color:var(--cream); position:relative; overflow:hidden}
.catalogue .wrap{display:flex; align-items:center; justify-content:space-between; gap:40px; flex-wrap:wrap; position:relative; z-index:1}
.catalogue .mark{position:absolute; right:-40px; top:50%; transform:translateY(-50%); width:360px; opacity:.055; z-index:0; pointer-events:none}

/* ---------- Stats ---------- */
.stats{display:grid; grid-template-columns:repeat(4,1fr); gap:30px; text-align:center}
.stat .n{font-family:var(--broadsheet); font-size:clamp(40px,5vw,62px); color:var(--gold-deep); line-height:1}
.dark .stat .n{color:var(--gold)}
.stat .l{font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); margin-top:8px}
.dark .stat .l{color:#c6ad99}

/* ---------- Newsletter ---------- */
.signup{display:flex; gap:12px; max-width:480px; flex-wrap:wrap}
.signup input{flex:1; min-width:220px; padding:15px 18px; border:1px solid var(--line-gold); background:transparent; color:inherit; font-size:14px}
.signup input::placeholder{color:#b9a695}
.signup input:focus{outline:none; border-color:var(--gold)}

/* ---------- Footer ---------- */
.site-footer{background:var(--maroon-deep); color:#ead9c6; padding-block:clamp(56px,7vw,88px) 0; border-top:1px solid rgba(194,163,90,.26)}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1.1fr; gap:46px}
.site-footer h5{font-size:10.5px; letter-spacing:.24em; text-transform:uppercase; color:var(--gold); margin:0 0 20px; font-weight:600}
.site-footer a{color:#ead9c6}
.site-footer .fnav{display:flex; flex-direction:column; gap:12px}
.site-footer .fnav a{font-size:14px; transition:color .3s}
.site-footer .fnav a:hover{color:var(--gold-soft)}
.site-footer .fbrand img{height:74px; width:auto; margin-bottom:18px}
.site-footer .contact{font-family:var(--sans); font-size:14px; line-height:1.95}
.footer-base{border-top:1px solid rgba(194,163,90,.2); margin-top:clamp(44px,6vw,70px); padding:26px 0; display:flex; justify-content:space-between; gap:18px; flex-wrap:wrap; font-size:11.5px; letter-spacing:.04em; color:#c6ad99; font-family:var(--sans)}
.footer-base a{color:var(--gold-soft)}

/* ---------- Scroll reveal ---------- */
.reveal{opacity:0; transform:translateY(22px); transition:opacity 1s var(--ease), transform 1s var(--ease)}
.reveal.in{opacity:1; transform:none}
@media (prefers-reduced-motion:reduce){ .reveal{opacity:1; transform:none; transition:none} .scrollcue .dash{animation:none} html{scroll-behavior:auto} }

/* ---------- Responsive ---------- */
@media (max-width:1040px){ .footer-grid{grid-template-columns:1fr 1fr; gap:38px} .grid-4{grid-template-columns:repeat(2,1fr)} }
@media (max-width:860px){
  .nav{display:none}
  .burger{display:flex}
  .site-header .bar{display:flex; justify-content:space-between; align-items:center}
  .brand{justify-content:flex-start}
  .brand img{height:66px}
  .hunter-band .wrap{grid-template-columns:1fr}
  .split{grid-template-columns:1fr}
  .split .media{min-height:300px; order:0 !important}
  .regions{grid-template-columns:1fr 1fr}
  .region-tile{padding:24px 24px; min-height:120px}
  .region-tile .rname{font-size:26px}
  .stats{grid-template-columns:1fr 1fr; gap:34px}
}
@media (max-width:620px){
  body{font-size:18px}
  .grid-3,.grid-4,.grid-2{grid-template-columns:1fr; gap:22px}
  .regions{grid-template-columns:1fr}
  .hero{min-height:90vh}
  .catalogue .wrap{flex-direction:column; align-items:flex-start}
  .scrollcue{display:none}
  .shop-tools .inner{gap:10px}
  .shop-tools .count{flex:1 1 100%; margin:0 0 2px}
  .field{flex:1 1 100%}
  .field select, .field input{width:100%; min-width:0}
}

/* ---------- Mobile drawer ---------- */
.drawer{position:fixed; inset:0; z-index:90; background:var(--maroon-deep); color:var(--cream); transform:translateX(100%); transition:transform .5s var(--ease); display:flex; flex-direction:column; padding:26px var(--gutter)}
.drawer.open{transform:none}
.drawer .x{align-self:flex-end; background:none; border:0; color:var(--gold-soft); font-size:30px; cursor:pointer; line-height:1}
.drawer nav{display:flex; flex-direction:column; gap:2px; margin-top:16px}
.drawer nav a{font-family:var(--broadsheet); font-size:30px; color:#fff; padding:11px 0; border-bottom:1px solid rgba(194,163,90,.16)}
.drawer nav a.hunter{color:var(--gold-soft)}
.drawer .d-cta{margin-top:auto; display:flex; flex-direction:column; gap:14px}

/* ---------- Accessibility ---------- */
.skip-link{
  position:absolute; left:16px; top:-56px; z-index:200;
  background:var(--gold); color:var(--maroon-deep);
  padding:11px 18px; font-family:var(--sans); font-size:12px; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; transition:top .2s var(--ease);
}
.skip-link:focus{top:12px}
:focus-visible{outline:2px solid var(--gold); outline-offset:3px}
.dark :focus-visible, .deep :focus-visible, .hero :focus-visible,
.hunter-band :focus-visible, .catalogue :focus-visible, .site-footer :focus-visible, .site-header :focus-visible{
  outline-color:var(--gold-soft);
}

/* ==========================================================================
   Page templates: shop, finder, faq, journal, about, services, contact
   ========================================================================== */

/* Slim page hero (interior pages) */
.page-hero{position:relative; background:var(--maroon-deep); color:var(--cream); overflow:hidden; padding-block:clamp(54px,8vw,104px) clamp(40px,6vw,72px)}
.page-hero::after{content:""; position:absolute; inset:0; background:radial-gradient(120% 120% at 80% -10%, rgba(194,163,90,.1), transparent 55%); pointer-events:none}
.page-hero .wrap{position:relative; z-index:1}
.page-hero h1{color:#fff; margin:16px 0 0; font-size:clamp(40px,6vw,78px)}
.page-hero .lead{color:#f0e3d3; margin-top:18px; max-width:52ch}
.crumbs{font-family:var(--sans); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-soft)}
.crumbs a{color:var(--gold-soft)} .crumbs a:hover{color:#fff}

/* Currency switcher pill */
.cur-switch{display:inline-flex; align-items:center; gap:0; border:1px solid var(--line-gold); border-radius:2px; overflow:hidden}
.cur-switch button{font-family:var(--sans); font-size:11px; letter-spacing:.1em; font-weight:600; padding:7px 12px; background:transparent; color:inherit; border:0; cursor:pointer; transition:.25s}
.cur-switch button + button{border-left:1px solid var(--line-gold)}
.cur-switch button[aria-pressed="true"]{background:var(--gold); color:var(--maroon-deep)}
.topstrip .cur-switch{vertical-align:middle; margin-left:10px; border-color:rgba(194,163,90,.4)}
.topstrip .cur-switch button{color:var(--gold-soft); padding:4px 9px; font-size:10px}
.topstrip .cur-switch button[aria-pressed="true"]{background:var(--gold); color:var(--maroon-deep)}

/* Shop toolbar + filters */
.shop-tools{position:sticky; top:0; z-index:40; background:var(--cream); border-bottom:1px solid var(--line); padding:16px var(--gutter)}
.shop-tools .inner{max-width:var(--wrap); margin-inline:auto; display:flex; gap:14px; align-items:center; flex-wrap:wrap}
.shop-tools .count{font-family:var(--sans); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-right:auto}
.field{position:relative}
.field label{display:block; font-family:var(--sans); font-size:9.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-deep); margin-bottom:5px; font-weight:600}
.field select, .field input{font-family:var(--sans); font-size:13px; padding:10px 34px 10px 14px; border:1px solid var(--line-gold); background:var(--paper); color:var(--ink); -webkit-appearance:none; appearance:none; cursor:pointer; min-width:150px;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6'><path d='M1 1l4 4 4-4' stroke='%239c7a30' stroke-width='1.4' fill='none'/></svg>"); background-repeat:no-repeat; background-position:right 14px center}
.field input{background-image:none; padding-right:14px; cursor:text; min-width:200px}
.field select:focus, .field input:focus{outline:none; border-color:var(--gold)}
.chipbar{display:flex; gap:8px; flex-wrap:wrap; padding:18px var(--gutter) 0; max-width:var(--wrap); margin-inline:auto}
.chip{font-family:var(--sans); font-size:11px; letter-spacing:.1em; text-transform:uppercase; padding:8px 16px; border:1px solid var(--line-gold); background:transparent; color:var(--maroon); cursor:pointer; transition:.25s}
.chip:hover{border-color:var(--gold)}
.chip[aria-pressed="true"]{background:var(--maroon); color:#fff; border-color:var(--maroon)}

.shop-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:28px}
@media(max-width:1040px){.shop-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:820px){.shop-grid{grid-template-columns:repeat(2,1fr); gap:18px}}
@media(max-width:480px){.shop-grid{grid-template-columns:1fr 1fr; gap:14px}}
.badge-enq{position:absolute; top:12px; left:12px; z-index:2; font-family:var(--sans); font-size:9px; letter-spacing:.16em; text-transform:uppercase; font-weight:600; color:var(--maroon-deep); background:var(--gold-soft); padding:4px 9px}
.winecard .ph{position:relative}
.empty{text-align:center; padding:80px 20px; color:var(--muted); font-family:var(--broadsheet); font-size:24px}
.shop-hunter{text-align:center; max-width:620px; margin:40px auto; padding:48px 32px; background:var(--cream); border:1px solid var(--line-gold, #e6dcc8); border-radius:2px}
.shop-hunter h3{font-family:var(--broadsheet); color:var(--maroon); font-size:clamp(26px,3.4vw,36px); line-height:1.18; margin:12px 0 14px}
.shop-hunter .prose{color:var(--ink); max-width:46ch; margin:0 auto 26px}
.loadmore{display:flex; justify-content:center; margin-top:56px}

/* FAQ accordion */
.faq-list{max-width:var(--wrap-narrow); margin-inline:auto}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item summary{list-style:none; cursor:pointer; padding:26px 44px 26px 0; position:relative; font-family:var(--broadsheet); font-size:clamp(20px,2.3vw,26px); color:var(--maroon); transition:color .3s}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+"; position:absolute; right:6px; top:50%; transform:translateY(-50%); font-family:var(--sans); font-weight:400; font-size:26px; color:var(--gold-deep); transition:transform .3s}
.faq-item[open] summary::after{content:"–"}
.faq-item summary:hover{color:var(--gold-deep)}
.faq-item .a{padding:0 44px 28px 0; color:#4a3a33; max-width:70ch}
.faq-item .a p{margin:0 0 .8em}

/* Journal / blog */
.journal-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:34px}
@media(max-width:900px){.journal-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.journal-grid{grid-template-columns:1fr}}
.post-card{display:flex; flex-direction:column; background:var(--paper); border:1px solid var(--line); transition:transform .5s var(--ease), box-shadow .5s var(--ease), border-color .5s}
.post-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-lift); border-color:var(--line-gold)}
.post-card .img{aspect-ratio:3/2; overflow:hidden; background:var(--cream-2)}
.post-card .img img{width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease)}
.post-card:hover .img img{transform:scale(1.05)}
.post-card .body{padding:26px 26px 30px; display:flex; flex-direction:column; gap:10px; flex:1}
.post-card .cat{font-family:var(--sans); font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-deep); font-weight:600}
.post-card h3{font-size:25px; line-height:1.14; color:var(--maroon)}
.post-card .ex{color:#4a3a33; font-size:16px; line-height:1.5}
.post-card .date{margin-top:auto; padding-top:14px; font-family:var(--sans); font-size:11px; letter-spacing:.08em; color:var(--muted)}
/* Article */
.article{max-width:740px; margin-inline:auto}
.article p{font-size:19px; line-height:1.75; margin:0 0 1.2em; color:#3b2d27}
.article h2{color:var(--maroon); font-size:clamp(26px,3vw,36px); margin:1.4em 0 .5em}
.article blockquote{border-left:2px solid var(--gold); padding:4px 0 4px 26px; margin:1.4em 0; font-size:24px; line-height:1.5; color:var(--maroon)}
.article .dropcap::first-letter{font-size:4.2em; float:left; line-height:.72; padding:6px 14px 0 0; color:var(--gold-deep)}

/* Feature list (services / about) */
.flist{list-style:none; padding:0; margin:0; display:grid; gap:0}
.flist li{display:grid; grid-template-columns:auto 1fr; gap:22px; padding:28px 0; border-top:1px solid var(--line); align-items:start}
.flist li .ic{font-family:var(--broadsheet); font-size:30px; color:var(--gold-deep); line-height:1}
.flist li h3{font-size:25px; color:var(--maroon); margin:0 0 6px}
.flist li p{margin:0; color:#4a3a33}

/* Contact */
.contact-wrap{display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,6vw,80px); align-items:start}
@media(max-width:820px){.contact-wrap{grid-template-columns:1fr}}
.cform{display:grid; gap:16px}
.cform label{font-family:var(--sans); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-deep); font-weight:600; margin-bottom:6px; display:block}
.cform input, .cform textarea{width:100%; font-family:var(--sans); font-size:15px; padding:13px 15px; border:1px solid var(--line-gold); background:var(--paper); color:var(--ink)}
.cform input:focus, .cform textarea:focus{outline:none; border-color:var(--gold)}
.contact-lines a{color:var(--maroon)} .dark .contact-lines a{color:var(--gold-soft)}

/* About portrait */
.about-hero{display:grid; grid-template-columns:.9fr 1.1fr; gap:0; align-items:stretch}
@media(max-width:860px){.about-hero{grid-template-columns:1fr}}
.about-hero .portrait{min-height:520px; position:relative; overflow:hidden; background:var(--cream-2)}
.about-hero .portrait img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 28%; filter:sepia(.14) saturate(1.06) contrast(1.02)}
.about-hero .intro{padding:clamp(40px,6vw,96px); display:flex; flex-direction:column; justify-content:center; background:var(--maroon); color:var(--cream)}

/* Catalogue download */
.cat-cover{position:relative; aspect-ratio:3/4; background:var(--maroon); border:1px solid var(--line-gold); display:flex; flex-direction:column; justify-content:space-between; padding:40px; overflow:hidden; box-shadow:var(--shadow-lift)}
.cat-cover .mk{position:absolute; right:-40px; bottom:-40px; width:300px; opacity:.08}
.cat-cover h3{position:relative; color:#fff; font-size:38px; line-height:1}
.cat-cover .sub{position:relative; font-family:var(--sans); font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-soft)}

/* Wine Hunter finder */
.wh-wrap{max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gutter); min-height:52vh}
.wh-intro{display:grid; grid-template-columns:1fr 1fr; gap:26px}
@media(max-width:720px){.wh-intro{grid-template-columns:1fr}}
.wh-opt{text-align:left; background:var(--cream-card); border:1px solid var(--line-gold); padding:40px 36px; cursor:pointer; transition:transform .5s var(--ease), box-shadow .5s var(--ease), background .5s}
.wh-opt:hover{transform:translateY(-6px); box-shadow:var(--shadow-lift); background:var(--paper)}
.wh-opt .n{font-family:var(--broadsheet); font-size:26px; color:var(--gold-deep)}
.wh-opt h3{font-size:30px; color:var(--maroon); margin:10px 0 10px}
.wh-opt p{margin:0; color:#4a3a33}
.wh-step{max-width:880px; margin-inline:auto}
.wh-search{display:flex; gap:12px; flex-wrap:wrap}
.wh-search input{flex:1; min-width:260px; font-family:var(--broadsheet); font-size:20px; padding:16px 18px; border:1px solid var(--line-gold); background:var(--paper); color:var(--ink)}
.wh-search input:focus{outline:none; border-color:var(--gold)}
.wh-chips{display:flex; gap:12px; flex-wrap:wrap}
.wh-chips .chip{font-family:var(--broadsheet); text-transform:none; letter-spacing:0; font-size:20px; padding:14px 26px}
.wh-back{margin-top:26px}
.wh-none{max-width:620px; margin:10px auto 0; text-align:center}
.wh-none .prose{margin-bottom:26px}
#wh-results .shop-grid, .wh-step .shop-grid{margin-top:30px}

/* ==========================================================================
   Storefront: product page, basket, checkout, toast
   ========================================================================== */
.cart-count{display:none; align-items:center; justify-content:center; min-width:18px; height:18px; padding:0 5px; margin-left:6px; background:var(--gold); color:var(--maroon-deep); border-radius:10px; font-family:var(--sans); font-size:10.5px; font-weight:700; line-height:1}

/* Product page */
.product-layout{display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,5vw,72px); align-items:start}
@media(max-width:820px){.product-layout{grid-template-columns:1fr; gap:30px}}
.product-media{position:relative; background:var(--cream-card); border:1px solid var(--line); aspect-ratio:4/5; display:flex; align-items:center; justify-content:center; overflow:hidden}
.product-media img{max-width:78%; max-height:84%; width:auto; height:auto; object-fit:contain; mix-blend-mode:multiply}
.product-facts{display:grid; grid-template-columns:1fr 1fr; gap:14px 24px; margin:6px 0 24px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:20px 0}
.product-facts span{display:flex; flex-direction:column; gap:3px}
.product-facts b{font-family:var(--sans); font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-deep); font-weight:600}
.product-facts span{font-family:var(--broadsheet); font-size:18px; color:var(--ink)}
.product-price{font-family:var(--broadsheet); font-size:clamp(30px,4vw,42px); color:var(--maroon); margin-bottom:22px}
.product-price small{font-family:var(--sans); font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin-left:8px}
.product-action{max-width:360px}

/* Basket + checkout */
.cart-layout{display:grid; grid-template-columns:1.6fr 1fr; gap:clamp(30px,5vw,60px); align-items:start}
@media(max-width:860px){.cart-layout{grid-template-columns:1fr}}
.cart-row{display:grid; grid-template-columns:84px 1fr auto auto auto; gap:18px; align-items:center; padding:20px 0; border-bottom:1px solid var(--line)}
.cart-thumb{width:84px; height:84px; background:var(--cream-card); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; overflow:hidden}
.cart-thumb img{max-width:80%; max-height:80%; object-fit:contain; mix-blend-mode:multiply}
.cart-name{font-family:var(--broadsheet); font-size:19px; color:var(--maroon); display:block; line-height:1.2}
.cart-fmt{font-family:var(--sans); font-size:12px; color:var(--muted)}
.cart-qty{display:inline-flex; align-items:center; border:1px solid var(--line-gold)}
.cart-qty .qbtn{width:32px; height:34px; background:transparent; border:0; cursor:pointer; font-family:var(--sans); font-size:16px; color:var(--maroon)}
.cart-qty span{min-width:30px; text-align:center; font-family:var(--broadsheet); font-size:17px}
.cart-line{font-family:var(--broadsheet); font-size:19px; color:var(--ink); min-width:92px; text-align:right}
.cart-rm{background:none; border:0; color:var(--muted); font-size:22px; cursor:pointer; line-height:1; padding:4px}
.cart-rm:hover{color:var(--maroon)}
.cart-summary{background:var(--cream-card); border:1px solid var(--line-gold); padding:30px}
.mode-select{margin:18px 0}
.mode-label{font-family:var(--sans); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-deep); font-weight:600; margin:0 0 12px}
.mode-opt{display:flex; gap:12px; align-items:flex-start; padding:12px 0; border-top:1px solid var(--line); cursor:pointer}
.mode-opt input{margin-top:4px; accent-color:var(--maroon)}
.mode-opt span{font-family:var(--broadsheet); font-size:16px; color:var(--ink); line-height:1.35}
.mode-opt b{display:block; color:var(--maroon)}
.sum{margin-top:8px}
.sum-row{display:flex; justify-content:space-between; gap:16px; padding:9px 0; font-family:var(--broadsheet); font-size:17px; color:#4a3a33}
.sum-row small{font-family:var(--sans); font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:.08em}
.sum-total{border-top:1px solid var(--line-gold); margin-top:6px; padding-top:14px; font-size:22px; color:var(--maroon)}

/* Toast */
.ck-toast{position:fixed; left:50%; bottom:28px; translate:-50% 20px; z-index:120; background:var(--maroon); color:var(--cream); font-family:var(--sans); font-size:13px; letter-spacing:.06em; padding:14px 26px; box-shadow:var(--shadow-lift); opacity:0; transition:opacity .35s var(--ease), translate .35s var(--ease)}
.ck-toast.in{opacity:1; translate:-50% 0}

/* ==========================================================================
   Floating basket, mini-cart drawer, offer modal, address lookup
   ========================================================================== */
/* Floating basket button */
.ck-fab{position:fixed; right:22px; bottom:22px; z-index:85; width:60px; height:60px; border-radius:50%;
  background:var(--maroon); border:1px solid var(--gold); color:var(--gold-soft); cursor:pointer;
  display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-lift);
  transition:transform .4s var(--ease), background .3s; opacity:0; transform:translateY(16px) scale(.9)}
.ck-fab.show{opacity:1; transform:none}
.ck-fab:hover{background:var(--gold); color:var(--maroon-deep)}
.ck-fab svg{width:24px; height:24px}
.ck-fab .fab-count{position:absolute; top:-4px; right:-4px; min-width:22px; height:22px; padding:0 6px;
  background:var(--gold); color:var(--maroon-deep); border-radius:11px; font-family:var(--sans);
  font-size:11px; font-weight:700; display:flex; align-items:center; justify-content:center; border:2px solid var(--maroon-deep)}
.ck-fab.bump{animation:fabBump .5s var(--ease)}
@keyframes fabBump{0%,100%{transform:none}30%{transform:scale(1.14)}}
.to-top{position:fixed; left:22px; bottom:22px; z-index:84; width:48px; height:48px; border-radius:50%;
  background:var(--maroon-deep); border:1px solid rgba(194,163,90,.45); color:var(--gold-soft); cursor:pointer;
  display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-lift);
  transition:opacity .35s var(--ease), transform .35s var(--ease), background .3s; opacity:0; visibility:hidden; transform:translateY(12px)}
.to-top.show{opacity:1; visibility:visible; transform:none}
.to-top:hover{background:var(--gold); color:var(--maroon-deep)}
.to-top svg{width:20px; height:20px}
@media(max-width:620px){ .to-top{left:16px; bottom:18px; width:44px; height:44px} }

/* Mini-cart drawer */
.mc-overlay{position:fixed; inset:0; z-index:95; background:rgba(42,7,16,.5); opacity:0; pointer-events:none; transition:opacity .4s var(--ease)}
.mc-overlay.open{opacity:1; pointer-events:auto}
.minicart{position:fixed; top:0; right:0; z-index:96; width:min(420px,92vw); height:100%; background:var(--cream);
  transform:translateX(100%); transition:transform .5s var(--ease); display:flex; flex-direction:column; box-shadow:var(--shadow-lift)}
.minicart.open{transform:none}
.mc-head{display:flex; align-items:center; justify-content:space-between; padding:22px 26px; border-bottom:1px solid var(--line); background:var(--maroon-deep); color:var(--cream)}
.mc-head h3{font-family:var(--broadsheet); font-size:24px; color:#fff; margin:0}
.mc-head .added{font-family:var(--sans); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-soft)}
.mc-close{background:none; border:0; color:var(--gold-soft); font-size:28px; line-height:1; cursor:pointer}
.mc-body{flex:1; overflow-y:auto; padding:10px 26px}
.mc-item{display:grid; grid-template-columns:62px 1fr auto; gap:14px; align-items:center; padding:16px 0; border-bottom:1px solid var(--line)}
.mc-item .t{width:62px; height:62px; background:var(--cream-card); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; overflow:hidden}
.mc-item .t img{max-width:80%; max-height:80%; object-fit:contain; mix-blend-mode:multiply}
.mc-item .nm{font-family:var(--broadsheet); font-size:16px; color:var(--maroon); line-height:1.2}
.mc-item .qp{font-family:var(--sans); font-size:12px; color:var(--muted); margin-top:3px}
.mc-item .pr{font-family:var(--broadsheet); font-size:17px; color:var(--ink)}
.mc-empty{text-align:center; color:var(--muted); font-family:var(--broadsheet); font-size:20px; padding:60px 0}
.mc-foot{padding:22px 26px; border-top:1px solid var(--line-gold); background:var(--cream-card)}
.mc-sub{display:flex; justify-content:space-between; font-family:var(--broadsheet); font-size:20px; color:var(--maroon); margin-bottom:16px}
.mc-foot .btn{width:100%}
.mc-foot .btn + .btn{margin-top:10px}

/* Offer + generic modal */
.ck-modal-ov{position:fixed; inset:0; z-index:100; background:rgba(42,7,16,.6); display:flex; align-items:center; justify-content:center; padding:20px; opacity:0; pointer-events:none; transition:opacity .35s var(--ease)}
.ck-modal-ov.open{opacity:1; pointer-events:auto}
.ck-modal{background:var(--cream); max-width:500px; width:100%; position:relative; box-shadow:var(--shadow-lift); transform:translateY(16px); transition:transform .4s var(--ease); transform-origin:center center}
.ck-modal .inner{padding:clamp(24px,4.4vw,40px)}
.ck-modal h3{margin:4px 0 2px; font-size:28px}
.ck-modal .for{margin:0 0 14px}
.ck-modal .cform{gap:12px}
.ck-modal .cform label{margin-bottom:4px}
.ck-modal .cform input, .ck-modal .cform textarea{padding:11px 14px}
.ck-modal-ov.open .ck-modal{transform:none}
.ck-modal .x{position:absolute; top:14px; right:16px; background:none; border:0; font-size:28px; line-height:1; color:var(--muted); cursor:pointer}
.ck-modal .x:hover{color:var(--maroon)}
.ck-modal .inner{padding:clamp(28px,5vw,44px)}
.ck-modal h3{font-family:var(--broadsheet); font-size:30px; color:var(--maroon); margin:6px 0 4px}
.ck-modal .for{font-family:var(--broadsheet); font-size:18px; color:var(--gold-deep); margin:0 0 20px}

/* Address lookup field */
.addr-field{position:relative}
.addr-hint{font-family:var(--sans); font-size:11px; color:var(--muted); margin-top:5px; display:block}
.pac-container{z-index:200 !important; font-family:var(--sans)}
