/* css/styles.css */
@charset "utf-8";
/* ========== OWC Scotch — full layout/styles (fonts matched + tidy spacing) ========== */

/* ---- Base / typography ---- */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin:0; padding:0; }
body{
  overflow-x:hidden;
  color:#000;
  font-family:'Abel', sans-serif;     /* display / headings / nav */
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  font-size:100%;
  line-height:1.45;
}
img{ display:block; max-width:100%; height:auto; }

/* Global link styling (content + CTAs – nav/footer override as needed) */
a{
  color:#8f022c;                     /* wine accent */
  text-decoration:none;
}
a:hover,
a:focus{
  color:#8f022c;                     /* match navbar hover accent */
  text-decoration:underline;
}

/* ---- Vertical rhythm tokens ---- */
:root{
  --space-1:.5rem;   /* 8px */
  --space-2:1rem;    /* 16px */
  --space-3:1.5rem;  /* 24px */
  --space-4:2rem;    /* 32px */
  --overlay-bar-h:44px;

  /* shared vertical spacing + dynamic nav offset */
  --section-gap:.75rem;       /* gap between blocks */
  --nav-offset:4.5rem;        /* safe fallback, overwritten via JS */
}

/* Headline scales */
.title{
  font-family:'Abel',sans-serif;
  font-size:350%;
  margin:0 0 var(--space-2);
}
.title2{
  font-family:'Abel',sans-serif;
  font-size:250%;
  margin:0 0 var(--space-2);
}
.title3{
  font-family:'Abel',sans-serif;
  font-size:230%;
  margin:var(--space-1) 0 var(--space-2);
  font-weight:800;
}

/* Motto & text blocks */
.motto{
  font-family:'Abel',sans-serif;
  text-align:center;
  font-size:200%;
  opacity:.8;
  margin:0 0 var(--space-2);
}
.motto-title{
  font-family:'Abel',sans-serif;
  text-align:center;
  font-size:130%;
  opacity:.8;
  min-height:80px;
  max-height:80px;
  overflow:hidden;
}
.motto-title-wine{
  font-family:'Abel',sans-serif;
  text-align:center;
  font-size:130%;
  opacity:.8;
  min-height:120px;
  max-height:120px;
  overflow:hidden;
}

/* Body text classes — Open Sans + modern justification */
.txt{
  font-family:'Open Sans',sans-serif;
  text-align:justify;
  margin:0;
  line-height:1.7;
  text-justify:inter-word;
  -webkit-hyphens:auto;
  -ms-hyphens:auto;
  hyphens:auto;
}
.txt-center{ text-align:center; }

/* Intro / feature copy — slightly larger */
.txt-place{
  font-family:'Open Sans',sans-serif;
  margin: var(--space-2) 0 var(--space-2);
  font-size:115%;
  line-height:1.7;
}

p.txt.txt-place.txt-center{
  margin-top:0;
  margin-bottom:0;
}

/* Trade / partner copy */
.txt-trade{
  font-family:'Open Sans',sans-serif;
  font-size:100%;
  line-height:1.7;
}

/* Buttons / badges */
.bigbutt{
  display:inline-block; background-color:rgba(191,191,191,.80);
  border-radius:4px; border:2px solid rgba(191,191,191,1);
  width:100%; min-width:100%; text-align:center; color:#0b0b0b;
  font-size:150%; line-height:.9; padding:5px 0; box-shadow:3px 3px 5px rgba(0,0,0,.30);
  margin:var(--space-2) 0; text-decoration:none;
}
.bigbutt:hover{
  background-color:rgba(191,191,191,1);
  color:#8f022c;                 /* use accent on hover */
  text-decoration:inherit;
}

/* Utility */
.full-bleed{ width:100%; height:auto; display:block; }

/* ---- Background wrappers ---- */
.landing{ background-size:cover; background-attachment:fixed; background-repeat:no-repeat; background-position:top center; }
.bbg-whisky{ background-image:url(../assets/backgrounds/buy-whisky-bg.jpg); }
@media (max-width:768px){ .bbg-whisky{ background-image:url(../assets/backgrounds/buy-whisky-bg.jpg); } }
@media (max-width:576px){ .bbg-whisky{ background-image:url(../assets/backgrounds/buy-whisky-bg.jpg); } }

/* ---- Content containers ---- */
.row-padding{ padding-left:35px; padding-right:35px; }

/* first content row: offset by fixed navbar + same gap as between blocks */
.row-top{
  margin-top: calc(var(--nav-offset) + var(--section-gap));
}

.row-white-2{
  background:rgba(255,255,255,.75);
  padding: var(--space-3) var(--space-4); /* more breathing room left/right */
  margin-bottom: var(--section-gap);
  border-radius:3px; box-shadow:3px 3px 5px rgba(0,0,0,.30);
}
.row-white-3{
  background:#fff;
  padding: var(--space-3) var(--space-4); /* match row-white-2 */
  margin: 0 .5% var(--section-gap);
  border-radius:3px; box-shadow:3px 3px 5px rgba(0,0,0,.30);
}
.row-white-2 > :first-child,
.row-white-3 > :first-child{ margin-top:0; }
.row-white-2 > :last-child,
.row-white-3 > :last-child{ margin-bottom:0; }

/* ===================================================================== */
/* ============ HANDPICKED & SPONSORED — same width, tight gap ========= */
/* ===================================================================== */
.handpicked-sponsored{ align-items:flex-start; }

.sponsored-padding-noLine{
  display:grid;                 /* consistent structure in each tile */
  grid-template-rows:auto auto auto; /* title / text / banner */
  row-gap:.5rem;
}
.sponsored-padding-noLine .motto{ margin:0; text-align:left; }
.sponsored-padding-noLine .txt{ margin:0; }
.sponsored-padding-noLine a{ display:block; width:100%; } /* full-width link */

/* Banner image: true full-width, no borders/backgrounds */
.block-img{
  width:100%;
  height:auto;
  display:block;
  border:0;
  padding:0;
  background:transparent;
  box-shadow:none;
}

/* ===================================================================== */
/* ====================== NAVBAR (Bootstrap 5) ========================= */
/* ===================================================================== */
#mainNav{
  background:#fff;
  border-radius:6px;
  box-shadow:0 2px 8px rgba(0,0,0,.18);
  padding:0;
  width:auto;
  margin:0.75rem 0.75rem 0;
  z-index:1000;
  font-size:108%;
}
#mainNav .container-fluid{
  padding:0.45rem 0.75rem;
}
#mainNav .navbar-toggler{
  margin-left:auto;
  margin-top:.25rem;
  margin-bottom:.25rem;
  padding:.5rem .6rem;
  border:1px solid rgba(0,0,0,.15);
  border-radius:6px;
  box-shadow:0 2px 6px rgba(0,0,0,.12);
}
#mainNav .navbar-toggler:focus{
  box-shadow:0 0 0 .15rem rgba(0,0,0,.06);
  outline:0;
}
#mainNav .navbar-collapse{
  width:100%;
}

/* Mobile brand (outside collapse) */
#mainNav .navbar-brand{
  font-weight:800;
  font-size:.95rem;
  letter-spacing:.16em;
  color:#0b0b0b;
  margin:0;
  padding:0;
}
#mainNav .navbar-brand:hover,
#mainNav .navbar-brand:focus{
  color:#8f022c;
  text-decoration:none;
}

/* ---- Desktop nav layout (>= lg) ---- */
#mainNav .navbar-nav{
  display:flex;
  width:100%;
  margin-left:0 !important;
  justify-content:stretch;      /* columns fill full width */
  align-items:stretch;
}
#mainNav .navbar-nav .nav-item{
  position:relative;
  flex:1 1 0;                   /* equal-width columns: logo + 5 links */
  text-align:center;
}

/* vertical dividers between items (logo → first link included) */
#mainNav .navbar-nav .nav-item + .nav-item{
  border-left:1px solid rgba(0,0,0,.12);
}

/* links */
#mainNav .navbar-nav .nav-link{
  display:block;
  width:100%;
  padding:.75rem 0;
  font-size:.95rem;
  font-weight:400;
  letter-spacing:.16em;
  color:#0b0b0b;
  text-decoration:none;
  line-height:1;
  text-align:center;
  transition:opacity .15s ease, color .15s ease, background-color .15s ease;
}
#mainNav .navbar-nav .nav-link.nav-link-brand{
  font-weight:800; /* logo bold in desktop grid */
}
#mainNav .navbar-nav .nav-link:hover,
#mainNav .navbar-nav .nav-link:focus{
  color:#8f022c;                /* accent */
  opacity:1;
  text-decoration:none;
  background-color:transparent;
}

/* neutralise any active state – no visual "current page" indicator */
#mainNav .navbar-nav .nav-link.active{
  color:#0b0b0b;
  font-weight:400;
  border-bottom:none;
}

/* dropdowns */
#mainNav .dropdown-menu{
  width:100%;
  min-width:100%;
  left:0;
  right:0;
  margin-top:.35rem;
  border-radius:6px;
  box-shadow:0 6px 18px rgba(0,0,0,.12);
}
#mainNav .dropdown-item{
  white-space:nowrap;
  padding:.5rem .75rem;
  font-size:105%;
}

/* ease letter-spacing slightly on narrower desktops */
@media (max-width:1199.98px){
  #mainNav .navbar-nav .nav-link{
    letter-spacing:.12em;
  }
}

/* ---- Mobile nav (collapsed) ---- */
@media (max-width:991.98px){
  #mainNav .navbar-nav{
    display:block;
    width:auto;
  }
  #mainNav .navbar-nav .nav-item{
    flex:none;
    text-align:left;
    border-left:0;              /* no vertical dividers in mobile list */
  }

  /* hide the desktop-brand nav item inside the dropdown on mobile */
  #mainNav .navbar-nav .nav-item-brand{
    display:none;
  }

  #mainNav .navbar-nav .nav-link{
    padding:.6rem 1rem;
    width:100%;
    text-align:left;
  }
  #mainNav .navbar-collapse{
    padding:.85rem 0;
    border-top:1px solid rgba(0,0,0,.06);
  }
  #mainNav .navbar-nav{
    padding:.35rem 0;
  }
  #mainNav .nav-item.dropdown .dropdown-menu{
    position:static;
    float:none;
    width:100%;
    min-width:0;
    margin:.25rem 0 .5rem 0;
    border:0;
    box-shadow:none;
    transform:none !important;
  }
  #mainNav .dropdown-item{
    padding:.45rem 1rem;
  }
}

/* ===================================================================== */
/* ===================== CATEGORY HEADERS ============================== */
/* ===================================================================== */
.category-header{
  display:inline-block;
  background-color:rgba(191,191,191,.80);
  border-radius:4px;
  border:2px solid rgba(191,191,191,1);
  width:100%;
  text-align:center;
  color:#ffffff;
  font-size:100%;
  line-height:.9;
  padding-bottom: var(--space-2);
  box-shadow:3px 3px 5px rgba(0,0,0,.30);
  margin: var(--space-2) 0;
  text-decoration:none;
  -webkit-transform:perspective(1px) translateZ(0);
  transform:perspective(1px) translateZ(0);
  transition: box-shadow .25s ease, background-color .25s ease, color .25s ease;
}
.category-header:hover{
  text-decoration:none;
  color:#8f022c;
  background-color:rgba(191,191,191,1);
  box-shadow:4px 6px 16px rgba(0,0,0,.28);
}

/* IMPORTANT: only scale the non-overlay buttons */
.category-header.category-header-lg{ font-size:160%; }
.category-header.category-header-md{ font-size:150%; }

.btn-img{ margin-bottom: var(--space-2); }

/* Overlay variant (TYPE1 effect) */
.category-header--overlay{
  background:transparent;
  border:0;
  padding:0;
  margin: var(--space-3) 0;
  display:block;
  position:relative;
  border-radius:8px;
  overflow:hidden;
  box-shadow:3px 3px 5px rgba(0,0,0,.30);
  color:#fff;
  -webkit-transform:perspective(1px) translateZ(0);
  transform:perspective(1px) translateZ(0);
  transition: box-shadow .25s ease;
  padding-bottom: var(--overlay-bar-h);
}
.category-header--overlay:hover{ box-shadow:4px 6px 16px rgba(0,0,0,.28); }
.category-header--overlay .btn-img{
  display:block;
  width:100%;
  height:auto;
  margin:0;
  transition: transform .35s ease;
}
.category-header--overlay:hover .btn-img{ transform: scale(1.02); }

.category-header--overlay .ch-label{
  position:absolute;
  left:0; right:0; bottom:0;
  height: var(--overlay-bar-h);
  padding: 0 14px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  line-height:1;
  letter-spacing:.5px;
  font-size:1rem;
  color:#fff;
  background:rgba(191,191,191,.85);
  overflow:hidden;
}
.category-header--overlay.category-header-lg .ch-label{ font-size:1.1rem; }

.category-header--overlay .ch-label::before{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(191,191,191,1);
  transform:scaleX(0);
  transform-origin:0 50%;
  transition:transform .35s ease;
  z-index:0;
}
.category-header--overlay .ch-label > span{
  position:relative;
  z-index:1;
  transition:color .35s ease;
}
.category-header--overlay:hover .ch-label::before{ transform:scaleX(1); }
.category-header--overlay:hover .ch-label > span{ color:#8f022c; }

/* 4-up grid helpers for TASTING CORNER */
.cat4-grid .category-header--overlay{ margin:0; }


/* ===================================================================== */
/* ===================== WHISKY GRID (unified) ======================== */
/* ===================================================================== */

/* 3x3 tile grid inside row-white-2 */
.owc-grid-3x3{
  margin-left:-8px;
  margin-right:-8px;
}
.owc-tile-col{
  padding:0 8px 12px;
  display:flex;
}

.owc-tile{
  background:#fff;
  border-radius:8px;
  padding:16px;
  box-shadow:0 2px 8px rgba(0,0,0,.08);
  display:flex;
  flex-direction:column;
  width:100%;
  height:100%;
}

.owc-tile-title{
  font-family:'Abel',sans-serif;
  font-weight:800;
  text-align:center;
  margin:0 0 .5rem;
}

/* If you keep using .owc-tile-text anywhere */
.owc-tile-text{
  font-family:'Open Sans',sans-serif;
  text-align:center;
  margin:0 0 .75rem;
  line-height:1.6;
  flex:1;
}

/* Text justify helper (single definition only) */
.txt-justify{
  text-align:justify;
  text-justify:inter-word;
  text-align-last:left;
}

/* Bottom padding equal to sides for tiles that use owc-tile-pad-eq */
.owc-grid-3x3 .owc-tile-pad-eq{
  padding-bottom:16px !important;
}

/* -------------------------------------------------------
   Whisky tiles: whole card is clickable (card link)
   - no underline, no red link colour, no invisible text
   - label sits at the bottom in normal flow (not overlay)
-------------------------------------------------------- */
.owc-grid-3x3 .owc-tile-cardlink.category-header--overlay{
  margin:0;
  padding-bottom:16px;                 /* cancel overlay bar padding */
  color:#0b0b0b !important;            /* card copy is readable */
  text-decoration:none !important;     /* kill global underline */
  overflow:visible;
}
.owc-grid-3x3 .owc-tile-cardlink.category-header--overlay:hover,
.owc-grid-3x3 .owc-tile-cardlink.category-header--overlay:focus{
  color:#0b0b0b !important;
  text-decoration:none !important;
}

/* Put the CTA bar in-flow (always visible, no hover requirement) */
.owc-grid-3x3 .owc-tile-cardlink.category-header--overlay .ch-label{
  position:relative;
  left:auto; right:auto; bottom:auto;
  width:100%;
  margin-top:auto;                     /* push CTA to bottom */
  height:var(--overlay-bar-h);
}

/* Keep card corners as-designed even if owc-tile-btn-radius2 is present */
.owc-grid-3x3 .owc-tile-cardlink.owc-tile-btn-radius2{
  border-radius:8px !important;
}

/* But keep the CTA bar corners sharp (2px) */
.owc-grid-3x3 .owc-tile-cardlink.owc-tile-btn-radius2 .ch-label,
.owc-grid-3x3 .owc-tile-cardlink.owc-tile-btn-radius2 .ch-label::before{
  border-radius:2px !important;
}

/* Stacked by default */
.owc-tile--split .owc-tile-split{
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 1rem !important;
  padding: 1rem 1rem 0 !important;
  width: 100% !important;
}

.owc-tile--split .owc-tile-media{
  width: 100% !important;
  overflow: hidden !important;
  aspect-ratio: 16 / 9;          /* stacked crop */
}

.owc-tile--split .owc-tile-media-img{
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  object-fit: cover !important;
  object-position: center !important;
}

.owc-tile--split .owc-tile-body{
  min-width: 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
}

.owc-tile--split .owc-tile-body p{
  text-align: left !important;
  hyphens: none !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
}

.owc-tile--split .owc-tile-footer{
  width: 100% !important;
  padding: .75rem 1rem 1rem !important;
  border-top: 1px solid rgba(0,0,0,.06);
}

.owc-tile--split .ch-label--full{
  display: block;
  width: 100%;
  text-align: center;
}

/* Split only from 992px up (earlier switch) */
@media (min-width: 992px){
  .owc-tile--split .owc-tile-split{
    grid-template-columns: 38% 1fr !important;
    align-items: stretch;
  }

  .owc-tile--split .owc-tile-media{
    aspect-ratio: auto;
    height: 100%;
  }
}

/* ===================================================================== */
/* ===================== PRODUCT GRID (unified) ======================== */
/* ===================================================================== */

/* If you are using <div class="row products-row">, kill Bootstrap gutters
   and use our 8px card gutters like the old inline snippet. */
.row.products-row,
.products-row{
  --bs-gutter-x: 0;
  --bs-gutter-y: 0;
  display:flex;
  flex-wrap:wrap;
  margin-left:-8px !important;
  margin-right:-8px !important;
}

.owc-product-block-label{
  margin:1.5rem 0 .75rem;
  text-align:center;
  font-family:'Open Sans',sans-serif;
  font-size:.95rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.04em;
  line-height:1.35;
  color:#666;
}

/* Column wrapper — matches old inline:
   box-sizing:border-box; padding:0 8px 12px; */
.product-card.owc-card-col{
  padding:0 8px 12px !important;
  display:flex;                 /* lets the inner card stretch */
}

/* Card surface — matches old inline card container */
.owc-card{
  background:#fff;
  border-radius:8px;
  padding:12px;
  box-shadow:0 2px 8px rgba(0,0,0,.08);
  display:flex;
  flex-direction:column;
  height:100%;
  width:100%;
}

/* Media box — EXACT old inline behaviour (square, contain, centered) */
.owc-card-media{
  position:relative;
  width:100%;
  aspect-ratio:1 / 1;           /* old snippet used 1:1 */
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  margin:0 0 8px 0;
}

.partners-card-media{
  position:relative;
  width:100%;
  height:auto;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  margin:0 0 8px 0;
}

/* Link fills the media box (old inline: line-height:0; display:block; width/height:100%) */
.owc-card-link{
  line-height:0;
  display:block;
  width:100%;
  height:100%;
}

/* Image fills the box but does NOT crop (old inline: object-fit:contain; width/height:100%) */
.owc-card-img{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  display:block;
}

/* Discount badge — you already have this class; keep it exactly */
.sale-badge{
  position:absolute;
  left:8px;
  top:8px;
  z-index:2;
  background:#c62828;
  color:#fff;
  font-weight:700;
  font-size:12px;
  line-height:1;
  padding:4px 6px;
  border-radius:4px;
}

/* Text block — matches old inline p */
.owc-card-text{
  margin:0 0 6px 0;
  text-align:center;
  line-height:1;
  color:#333;
}

/* Prices — match old inline colours/weight */
.owc-price-current{
  color:#c62828;
  font-weight:700;
}

/* Old price: show ONLY when it actually exists */
.owc-price-old{
  color:inherit;                /* old inline inherited #333 */
  text-decoration:line-through;
}

/* If there is no old price, render nothing (no “line”) */
.owc-price-old:empty{
  display:none;
}

/* ===================================================================== */
/* =========================== Footer ================================== */
/* ===================================================================== */
footer{
  background-color:#0b0b0b;
  width:100%;
  padding:22px 0 20px;
}
.footer-inner{
  max-width:1200px;
  margin:0 auto;
  padding:0 35px;
  text-align:center;
}
.footer-grid{
  display:grid;
  grid-auto-flow: column;
  grid-template-rows: repeat(4, auto);
  gap:8px 96px;
  justify-content:center;
  align-content:start;
  margin-bottom:8px;
  text-align:center;
}
.footer-link{
  font-family:'Open Sans',sans-serif;
  display:block;
  padding:4px 0;
  color:#fff;
  letter-spacing:.5px;
  text-decoration:none;
}
.footer-link:hover,
.footer-link:focus{
  color:#8f022c;                 /* use navbar accent */
  text-decoration:none;
}

.footer-divider{
  border:0;
  border-top:1px solid rgba(255,255,255,.25);
  max-width:900px;
  margin:8px auto 6px;
}

.footer-meta{
  font-family:'Open Sans',sans-serif;
  margin:6px 0 0;
  text-align:center;
  color:#bbb;
  font-size:90%;
  line-height:1.6;
}
.footer-meta .footer-link{
  display:inline;
  padding:0 6px;
  white-space:nowrap;
}
.footer-meta .footer-link:hover{
  color:#8f022c;                 /* use navbar accent */
}

/* Responsive footer grid */
@media (max-width:991.98px){
  .footer-grid{
    grid-auto-flow: row;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: none;
    column-gap:48px;
  }
}
@media (max-width:575.98px){
  .footer-inner{ padding:0 20px; }
  .footer-grid{ grid-template-columns: 1fr; gap:6px 24px; }
}

/* ---- Mobile tweaks ---- */
@media (max-width:767px){
  .row-padding{ padding-left:35px; padding-right:35px; }
  .row-white-2, .row-white-3{ padding-top:20px; padding-bottom:20px; }
}

/* ===================================================================== */
/* ======================== TYPE2 (logo + copy) ======================== */
/* ===================================================================== */
.type2-intro{ display: flow-root; margin: 0 0 var(--space-3); }
.type2-intro::after{ content:""; display:block; clear:both; }
.type2-logo{ float:left; width:228px; margin:0 var(--space-3) var(--space-2) 0; }
.type2-logo img{ width:100%; height:auto; border-radius:6px; box-shadow:0 2px 6px rgba(0,0,0,.08); }
.type2-copy{
  font-family:'Open Sans',sans-serif;
  text-align:justify;
  font-size:115%;
  max-width:none;
  line-height:1.7;
  text-justify:inter-word;
  -webkit-hyphens:auto;
  -ms-hyphens:auto;
  hyphens:auto;
}
.type2-copy p{ margin:0 0 var(--space-2); }
.type2-copy p:last-child{ margin-bottom:0; }
@media (min-width:1400px){ .type2-logo{ width:246px; } }
@media (max-width:991.98px){ .type2-logo{ width:198px; margin-right:var(--space-2); } }
@media (max-width:767.98px){
  .type2-logo{ float:none; width:auto; max-width:286px; margin:0 auto var(--space-2); }
}

/* Motto subline */
.motto small{
  display:block; font-size:.60em; color:rgba(0,0,0,.8); font-weight:400; letter-spacing:.3px; margin-top:.25rem;
}
@media (max-width:767.98px){ .motto small{ font-size:.65em; } }

/* ===================================================================== */
/* ==================== Footer newsletter/signup messages ============== */
/* ===================================================================== */
.footer-newsletter{
  background:transparent;
  border-radius:0;
  padding:0 0 18px;
  margin:0 0 18px;
  box-shadow:none;
  text-align:left;
}
.footer-newsletter-title{
  font-family:'Abel',sans-serif;
  font-size:150%;
  margin:0 0 4px;
  color:#fff;
}
.footer-newsletter-text{
  font-family:'Open Sans',sans-serif;
  font-size:90%;
  margin:0 0 10px;
  color:#ddd;
}

/* form layout */
.footer-newsletter-form .form-label{
  font-family:'Open Sans',sans-serif;
  font-size:80%;
  color:#eee;
}
.footer-newsletter-form .form-control,
.footer-newsletter-form .form-check-input{
  font-size:90%;
  border-radius:4px;
}
.footer-newsletter-form .form-check-label{
  font-family:'Open Sans',sans-serif;
  font-size:80%;
  color:#ddd;
}
.footer-newsletter-consent{
  margin-bottom:8px;
}
.footer-newsletter-fields{
  margin-top:4px;
}
.footer-newsletter-form .btn{
  font-family:'Abel',sans-serif;
  letter-spacing:.08em;
}

/* brand the button to match the wine accent */
.footer-newsletter-form .btn-primary{
  background-color:#8f022c;
  border-color:#8f022c;
}
.footer-newsletter-form .btn-primary:hover,
.footer-newsletter-form .btn-primary:focus{
  background-color:#a30332;
  border-color:#a30332;
}

/* success / error feedback (base style) */
.footer-newsletter-message{
  margin-top:10px;
  font-size:95%;
  font-weight:600;
}
.footer-newsletter-message--ok{
  color:#c8e6c9;   /* bright green – pops on dark footer */
}
.footer-newsletter-message--error{
  color:#ff8a80;   /* bright red – pops on dark footer */
}

/* honeypot field – visually hidden but in DOM */
.footer-newsletter-hp{
  position:absolute;
  left:-9999px;
  width:1px;
  height:1px;
  overflow:hidden;
}

/* NOVEL CTA button (centered, theme-matching) */
/* NOVEL CTA wrapper: reduce space to container bottom */
.owc-novel-cta{
  margin-top: .75rem;
  margin-bottom: 0;      /* kills extra space under the button */
  padding-bottom: 0;
}

/* NOVEL CTA button */
.owc-cta-btn{
  display:inline-block;
  border:1px solid #8f022c;   /* 1px border, same colour */
  border-radius:6px;
  padding: .85rem 1.25rem;
  font-family:'Abel',sans-serif;
  font-weight:800;                        /* bold */
  text-transform:uppercase;               /* capitalized */
  letter-spacing:.10em;
  color:#8f022c;
  text-decoration:none;
  box-shadow:3px 3px 5px rgba(0,0,0,.30);
  transition: background-color .2s ease, box-shadow .2s ease, color .2s ease;
}

.owc-cta-btn:hover,
.owc-cta-btn:focus{
  background-color: rgba(191,191,191,1);
  color:#8f022c;
  text-decoration:none;
  box-shadow:4px 6px 16px rgba(0,0,0,.28);
}



@media (max-width:575.98px){
  .footer-newsletter{
    padding:0 0 16px;
  }
}

/* ===================================================================== */
/* =============== Contact form status (light background) ============== */
/* ===================================================================== */

/* Contact form labels & checkboxes: match intro text styling */
#contact-form-section .contact-form .form-label,
#contact-form-section .contact-form .form-check-label{
  font-family:'Open Sans',sans-serif;
  font-size:100%;
  line-height:1.7;
  margin-bottom:.25rem;
}
#contact-form-section .contact-form .form-check-label{
  margin-left:.25rem;
}

/* Contact submit button: accent colour + full width (same as fields) */
#contact-form-section .contact-form .btn-primary{
  display:block;
  width:100%;
  background-color:#8f022c;
  border-color:#8f022c;
}
#contact-form-section .contact-form .btn-primary:hover,
#contact-form-section .contact-form .btn-primary:focus{
  background-color:#a30332;
  border-color:#a30332;
}

/* On the contact page the status sits on a light card, so use darker colours */
#contact-form-section .footer-newsletter-message{
  margin-top:12px;
  font-size:100%;
  font-weight:600;
}
#contact-form-section .footer-newsletter-message--ok{
  color:#2e7d32;   /* strong green on white */
}
#contact-form-section .footer-newsletter-message--error{
  color:#c62828;   /* strong red on white */
}

/* ===================================================================== */
/* ========================= LEGAL PAGE ================================ */
/* ===================================================================== */

/* Keep page H1/H3 untouched (they use .title and the first .title3) */
/* Make section headings smaller so the body doesn’t look “huge”. */
.legal-page .legal-section-title{
  font-family:'Abel',sans-serif;
  font-size:150%;
  font-weight:800;
  margin: var(--space-3) 0 var(--space-1);
  line-height:1.1;
  text-align:center;
}

/* If any old markup still has .title3 inside sections, force it down too */
.legal-page .legal-section .title3{
  font-size:150%;
  margin: var(--space-3) 0 var(--space-1);
  line-height:1.1;
}

/* Legal page: meta line slightly tighter */
.legal-page .legal-meta{
  margin-top:0;
  margin-bottom: var(--space-2);
  font-size:100%;
}

/* Legal boxes (subtle inset card inside the main white box) */
.legal-page .legal-box{
  background:rgba(255,255,255,.65);
  border:1px solid rgba(0,0,0,.08);
  border-radius:6px;
  padding: var(--space-2) var(--space-2);
  box-shadow:0 1px 4px rgba(0,0,0,.08);
}

/* Legal dividers – consistent, not chunky */
.legal-page .legal-hr{
  border:0;
  border-top:1px solid rgba(0,0,0,.12);
  margin: var(--space-3) 0;
}

/* TOC spacing */
.legal-page .legal-toc ul{
  margin:0;
  padding-left:1.15rem;
}
.legal-page .legal-toc li{
  margin:.25rem 0;
}

/* Make long legal paragraphs a bit less “bulky” without changing global text size */
.legal-page .txt-place{
  margin: .85rem 0 .85rem;
}

/* Ensure the last content card doesn’t visually kiss the footer */
.legal-page .row-white-2{
  margin-bottom: calc(var(--section-gap) + .25rem);
}

/* --------------------------------------------------------------------- */
/* LEGAL PAGE NAV OVERRIDE (desktop): keep the ORIGINAL 6-slot geometry
   even though we only render 2 items (brand + BACK). This prevents the
   "halfsies" layout caused by flex:1 equal columns on .nav-item.         */
/* --------------------------------------------------------------------- */

/* LEGAL page: no vertical divider between the two nav items */
.legal-page #mainNav .navbar-nav .nav-item + .nav-item{
  border-left: 0 !important;
}

/* NOVEL: double padding all around */
.row-white-2.owc-pad-2{
  padding: 3rem !important; /* 48px all sides */
}

@media (max-width:767px){
  .row-white-2.owc-pad-2{
    padding: 2rem !important; /* 32px all sides */
  }
}

@media (min-width:992px){
  .legal-page #mainNav .navbar-nav{
    display:grid;
    grid-template-columns:repeat(6, 1fr);
    width:100%;
    justify-content:stretch;
    align-items:stretch;
  }
  .legal-page #mainNav .navbar-nav .nav-item{
    flex:none; /* neutralise the global flex:1 column behaviour */
  }
  .legal-page #mainNav .navbar-nav .nav-item-brand{
    grid-column:1;
  }
  .legal-page #mainNav .navbar-nav .nav-item-back{
    grid-column:6;
  }
}

/* keep it equal on mobile too (your current mobile rule touches only top/bottom) */
@media (max-width:767px){
  .row-white-2.owc-pad-2{
    padding: 2rem !important; /* 32px all sides */
  }
}

/* Standalone affiliate image banners */
.owc-banner-link {
  display: block;
  width: 100%;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(0,0,0,.18);
  transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease;
}

.owc-banner-link:hover,
.owc-banner-link:focus {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0,0,0,.24);
  opacity: .97;
  outline: none;
}

.owc-banner-link:focus-visible {
  outline: 3px solid rgba(184,134,11,.55);
  outline-offset: 3px;
}

.owc-banner-img {
  display: block;
  width: 100%;
  height: auto;
}

.owc-banner-disclosure {
  margin-top: 8px;
  margin-bottom: 0;
}

.owc-dual-banner-row {
  align-items: stretch;
}

.owc-dual-banner-col {
  display: flex;
  flex-direction: column;
}

/* Corrective master-pattern refinements from user notes. */
:root{
  --owc-refined-serif: Georgia, "Times New Roman", Times, serif;
  --owc-cta-radius: 4px;
  --owc-cta-height: 38px;
}

.hero-title{
  font-family:var(--owc-refined-serif);
  font-size:clamp(2.15rem, 4.2vw, 3.65rem);
  font-weight:500;
  line-height:1.04;
  letter-spacing:.035em;
  margin:.05rem 0 .75rem;
  color:#15110d;
}

#mainNav,
#mainNav .navbar-brand,
#mainNav .navbar-nav .nav-link,
#mainNav .dropdown-item{
  font-family:'Abel',sans-serif;
}

#mainNav .navbar-brand{
  font-size:1rem;
  font-weight:600;
  letter-spacing:.12em;
}

#mainNav .navbar-nav .nav-link{
  font-size:.95rem;
  font-weight:400;
  letter-spacing:.16em;
  line-height:1;
}

#mainNav .navbar-nav .nav-link.nav-link-brand{
  font-weight:800;
}

#mainNav .dropdown-item{
  font-size:.95rem;
  font-weight:400;
  letter-spacing:.04em;
}

.hero-title center,
.section-title center{
  display:block;
}

.section-title,
.title3.section-title{
  font-family:var(--owc-refined-serif);
  font-size:clamp(1.45rem, 2.35vw, 2.15rem);
  font-weight:500;
  line-height:1.16;
  letter-spacing:.03em;
  margin:.15rem 0 .75rem;
  color:#17130f;
}

.section-title b,
.title3.section-title b{
  font-weight:500;
}

.section-title small{
  display:inline-block;
  margin-top:.25rem;
  font-family:'Open Sans',sans-serif;
  font-size:.48em;
  font-weight:400;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#4b453f;
}

.row-white-2 .txt{
  max-width:88ch;
  margin-left:auto;
  margin-right:auto;
  color:#161616;
  font-size:1.04rem;
  line-height:1.74;
  font-weight:400;
  text-align:justify;
  text-align-last:auto;
}

.row-white-2 .txt-center{
  text-align:center;
  text-align-last:center;
  max-width:82ch;
}

.category-header--overlay{
  border-radius:var(--owc-cta-radius);
  padding-bottom:var(--owc-cta-height);
  margin:.25rem 0;
}

.row-white-2:has(> .owc-grid-3x3){
  padding-top:16px;
  padding-bottom:16px;
}

.owc-grid-3x3{
  margin-top:0;
  margin-bottom:0;
  row-gap:12px;
}

.owc-grid-3x3 .category-header--overlay{
  margin:0;
}

.category-header--overlay .ch-label{
  min-height:var(--owc-cta-height);
  height:var(--owc-cta-height);
  padding:0 16px;
  border-radius:0 0 var(--owc-cta-radius) var(--owc-cta-radius);
  font-family:'Abel',sans-serif;
  font-size:.96rem;
  line-height:1.05;
  letter-spacing:.065em;
  text-transform:uppercase;
  background:rgba(25,25,25,.78);
}

.category-header--overlay.category-header-lg .ch-label{
  font-size:.96rem;
}

.category-header--overlay .ch-label > span{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:100%;
  width:100%;
}

.category-header--overlay:hover .ch-label > span{
  color:#fff;
}

.category-header--overlay .ch-label::before{
  background:rgba(143,2,44,.92);
  transform-origin:50% 50%;
  transform:scaleX(0);
}

.category-header--overlay:hover .ch-label::before{
  transform:scaleX(1);
}

.owc-banner-link{
  border-radius:var(--owc-cta-radius);
}

.cc-window .cc-dismiss{
  display:none !important;
}

.cc-window .cc-compliance{
  gap:10px;
}

.cc-window .cc-allow{
  min-width:96px;
  text-align:center;
}

.footer-grid{
  gap:5px 56px;
  margin-bottom:6px;
  margin-top:.35rem;
}

.footer-newsletter{
  margin-bottom:.55rem;
  padding-bottom:.35rem;
}

.footer-newsletter-form{
  margin-bottom:.1rem;
}

.footer-link{
  padding:2px 0;
  font-size:.9rem;
  line-height:1.25;
  letter-spacing:.035em;
}

.footer-divider{
  margin:7px auto 5px;
}

.footer-meta{
  font-size:.82rem;
  line-height:1.45;
}

.footer-meta .footer-link{
  padding:0 4px;
}

@media (max-width:991.98px){
  .footer-grid{
    column-gap:28px;
    row-gap:5px;
  }
}

@media (max-width:575.98px){
  .row-padding{
    padding-left:20px;
    padding-right:20px;
  }

  .row-white-2,
  .row-white-3{
    padding-left:20px;
    padding-right:20px;
  }

  .hero-title{
    font-size:2.05rem;
    letter-spacing:.025em;
  }

  .section-title,
  .title3.section-title{
    font-size:1.42rem;
  }

  .row-white-2 .txt{
    text-align:left;
    line-height:1.68;
    font-size:1rem;
    max-width:100%;
  }

  .row-white-2 .txt-center{
    text-align:center;
  }

  .category-header--overlay .ch-label{
    min-height:36px;
    height:36px;
    font-size:.86rem;
    padding:0 8px;
    letter-spacing:.055em;
  }

  .footer-grid{
    gap:4px 0;
  }

  .footer-link{
    font-size:.86rem;
    padding:2px 0;
  }
}

.owc-dual-banner-col .owc-banner-link {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: 6px;
}

.owc-dual-banner-col .owc-banner-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.owc-dual-banner-row .owc-banner-disclosure {
  margin-top: 12px;
}

@media (max-width: 767.98px) {
  .owc-dual-banner-col + .owc-dual-banner-col {
    margin-top: 16px;
  }
}

/* ====================== Online Wine Events ============================= */
body.landing.bbg-events {
  background-image: url("../assets/events/wine-bg-3-small.jpg");
  background-size: cover;
  background-attachment: fixed;
  background-repeat: no-repeat;
  background-position: top center;
}

@media (min-width: 992px) {
  body.landing.bbg-events {
    background-image: url("../assets/events/wine-bg-3.jpg");
  }
}

.events-page .event-profile-block,
.events-page .event-partner-card{
  display:flex;
  flex-direction:column;
  height:100%;
}

.events-page .event-profile-media,
.events-page .event-card-media{
  display:block;
  overflow:hidden;
  border-radius:4px;
  background:#f5f1ed;
}

.events-page .event-profile-media img,
.events-page .event-card-media img{
  display:block;
  width:100%;
  height:auto;
  transition:transform .35s ease;
}

.events-page .event-profile-media:hover img,
.events-page .event-card-media:hover img{
  transform:scale(1.02);
}

.events-page .event-profile-copy,
.events-page .event-card-copy{
  margin-top:18px;
}

.events-page .event-profile-copy .txt,
.events-page .event-card-copy .txt{
  max-width:100%;
}

.events-page .event-partner-grid{
  row-gap:22px;
}

.events-page .event-partner-card{
  padding:0 2px;
}

.events-page .event-card-copy{
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
}

.events-page .event-card-image-cta{
  margin-top:14px;
}

.events-page .event-request-cta-wrap{
  margin-top:18px;
  text-align:center;
}

.events-page .event-card-copy .event-request-cta-wrap{
  margin-top:auto;
  padding-top:18px;
}

.events-page .event-request-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:var(--owc-cta-height);
  max-width:100%;
  padding:0 18px;
  border:0;
  border-radius:var(--owc-cta-radius);
  background:rgba(25,25,25,.78);
  color:#fff;
  font-family:'Abel',sans-serif;
  font-size:.96rem;
  font-weight:400;
  line-height:1.05;
  letter-spacing:.065em;
  text-align:center;
  text-transform:uppercase;
  text-decoration:none;
  box-shadow:3px 3px 5px rgba(0,0,0,.30);
  transition:background-color .25s ease, color .25s ease, box-shadow .25s ease;
}

.events-page .event-request-cta:hover,
.events-page .event-request-cta:focus{
  background:rgba(143,2,44,.92);
  color:#fff;
  text-decoration:none;
  box-shadow:4px 6px 16px rgba(0,0,0,.28);
}

.events-page .event-request-cta span{
  display:block;
}

.events-page .event-request-cta.event-visit-website-light{
  width:100%;
  background-color:#fff;
  color:#0b0b0b;
  border:1px solid #191919;
}

.events-page .category-header--overlay + .event-request-cta.event-visit-website-light{
  margin-top:6px;
}

.events-page .event-request-cta.event-visit-website-light:hover,
.events-page .event-request-cta.event-visit-website-light:focus{
  background-color:#d9d9d9;
  color:#0b0b0b;
  border-color:#191919;
}

.events-page .event-request-cta.event-visit-website-light:focus-visible{
  outline:2px solid #191919;
  outline-offset:3px;
}

.events-page .event-request-cta.event-visit-website-light:visited{
  color:#0b0b0b;
}

.events-page .event-section-note{
  margin-bottom:18px;
}

body.landing > .row{
  --bs-gutter-x:0;
  margin-left:0;
  margin-right:0;
}

@media (max-width:767.98px){
  .events-page .event-profile-copy,
  .events-page .event-card-copy{
    margin-top:14px;
  }

  .events-page .event-request-cta{
    width:100%;
    letter-spacing:.055em;
  }
}
