/* ========================================
   MAIN.CSS - Combined Application Styles
   Load order: cms.css → card.css → ws-style.css → shop-left-menu.css
   ======================================== */

@font-face {
  font-family: baskerville;
  src: url('https://orderport-webstore.b-cdn.net/ConcannonVineyard/fonts/baskerville.woff');
}
@font-face {
  font-family: baskerville;
  src: url('https://orderport-webstore.b-cdn.net/ConcannonVineyard/fonts/baskerville-500.woff');
  font-weight: 500;
}
@font-face {
  font-family: sweet-sans-pro;
  src: url('https://orderport-webstore.b-cdn.net/ConcannonVineyard/fonts/sweet-sans-pro.woff');
}

/* ========================================
   ROOT VARIABLES - Design System
   ======================================== */

:root {
  /* ========== COLOR PALETTE ========== */
  --primary: #4f5255;
  --primary-text-color: #000;
  --font-color: #000;
  --theme-color: #4f5255;
  --anounce-color: #ff3333;
  --highlights-color: #000;

  /* ========== TYPOGRAPHY ========== */
  --body-font-size: 20px;
  --body-font-family: Baskerville;
  --body-font-weight: 400;
  --body-line-height: 1.6em;
  --highlights-font-family: Baskerville;
  --highlights-font-weight: 400;
  --highlights-line-height: 1.4;
  --group-menu-font-size: 20px;

  /* ========== BACKGROUNDS ========== */
  --body-background-color: #fff;
  --modal-bg-color: #fff;
  --bg-color: #fff;
  --overlay-bg-color: transparent;

  /* ========== BUTTONS ========== */
  --btn-active-bg-color: #fff;
  --btn-background-color: #4f5255;
  --btn-hover-background-color: #fff;
  --btn-text-color: #efe9e1;
  --btn-hover-text-color: #4f5255;
  --btn-active-color: #4f5255;
  --btn-font-family: sweet-sans-pro;
  --btn-font-weight: 400;
  --btn-font-size: 12px;
  --btn-text-transform: uppercase;
  --btn-border: 1px solid #4f5255;
  --btn-border-color: transparent;
  --btn-active-border-color: #4f5255;
  --btn-padding: 10px 20px;
  --btn-border-radius: 0px;
  --btn-hover-opacity: 1;
  --btn-letter-spacing: 0.5px;

  /* ========== FORMS & INPUTS ========== */
  --inputs-text-color: #212529;
  --border-color: #ccc;
  --box-shadow-primary: none;

  /* ========== LINKS ========== */
  --anchors-color: #4f5255;
  --anchors-hover-color: #000;

  /* ========== LAYOUT ========== */
  --container-max-width: 1200px;
  --cart-summary-top: 125px;

  /* ========== COMPONENTS ========== */
  --popup-text-color: #000;
  --wine-information-alt-row-bg: #eee;
  --modal-header-color: #fff;
  --product-title-color: #4f5255;
  --group-item-color: #4f5255;
}

:root[data-theme=dark] {
  --primary-text-color: #c4c4c4;
  --font-color: var(--primary-text-color);
  --theme-color: #1e1e1e;
  --primary: var(--theme-color);
  --bg-color: #121212;
  --body-background-color: var(--bg-color);
  --modal-bg-color: var(--bg-color);
  --box-shadow-primary: none;
  --border-color: #2e2e2e;
  --btn-active-border-color: var(--border-color);
  --btn-border-color: transparent;
  --btn-background-color: #2e2e2e;
  --btn-active-bg-color: var(--btn-background-color);
  --btn-hover-background-color: var(--btn-background-color);
  --btn-text-color: var(--font-color);
  --btn-hover-text-color: var(--font-color);
  --btn-active-color: var(--font-color);
  --btn-border: 0;
  --inputs-text-color: var(--primary-text-color);
  --anchors-color: var(--primary-text-color);
  --anchors-hover-color: #fff;
  --highlights-color: var(--font-color);
  --popup-text-color: var(--font-color);
  --wine-information-alt-row-bg: #1e1e1e;
  --overlay-bg-color: transparent;
  --modal-header-color: #121212;
  --product-title-color: #fff;
  --group-item-color: #fff;
}

/* ========================================
   1. CMS.CSS - Concannon Vineyard Overrides
   ======================================== */

body {
  font-size: var(--body-font-size);
  font-family: var(--body-font-family);
  line-height: var(--body-line-height);
  font-weight: var(--body-font-weight);
  background-color: var(--body-background-color);
}

body,
.ui-widget-content {
  color: var(--primary-text-color);
}

a {
  color: var(--anchors-color);
}

a:hover {
  color: var(--anchors-hover-color);
}

button {
  background-color: transparent;
  padding: 0;
  border: 0;
  cursor: pointer;
}

img {
  max-width: 100%;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  color: var(--highlights-color);
  font-family: var(--highlights-font-family);
  line-height: var(--highlights-line-height);
  font-weight: var(--highlights-font-weight);
}

.btn {
  font-family: var(--btn-font-family);
  font-size: var(--btn-font-size);
  line-height: 20px;
  text-transform: var(--btn-text-transform);
  background: var(--btn-background-color);
  color: var(--btn-text-color);
  border: var(--btn-border);
  letter-spacing: var(--btn-letter-spacing);
  border-radius: var(--btn-border-radius);
  padding: var(--btn-padding);
  font-weight: var(--btn-font-weight);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.btn:focus,
.btn:hover {
  background: var(--btn-hover-background-color);
  color: var(--btn-hover-text-color);
  opacity: var(--btn-hover-opacity);
  border-color: var(--btn-hover-background-color);
}

.ord-container,
#pageContent {
  margin: 0 auto;
  max-width: var(--container-max-width);
}

#authStatus a:hover {
  text-decoration: none;
}

.ui-widget-header,
.activeCart .cartHeader,
.shop-left-menu .menu-header,
#accountContent .header,
#checkout .header,
#basket .header,
.bootstrapWizard li.complete .step,
.bootstrapWizard li.active .step,
.bootstrapWizard li.active.complete .step {
  background: var(--theme-color);
}

#tabs-product .tabs-container a.btn {
  color: var(--btn-text-color);
}

#tabs-product .tabs-container a.btn:hover {
  color: var(--btn-hover-text-color);
}

.txt,
.txtbig,
.ddl,
.select_box select,
input[type=text],
input[type=password],
select,
textarea {
  color: var(--inputs-text-color);
}

.popup h1,
.popup h2,
.popup h3,
.popup h4,
.popup h5,
.popup h6 {
  color: var(--popup-text-color);
}

header p,
footer p {
  margin: 0;
}

.btn-toggle-theme {
  display: none;
  z-index: 9;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  font-size: 20px;
  width: 30px;
  height: 30px;
  position: fixed;
  background: var(--theme-color);
  color: var(--modal-header-color);
  border-radius: 50%;
  overflow: hidden;
}
.btn-toggle-theme .button-content {
  display: grid;
  grid-template-columns: 30px 30px;
  transition: transform 0.3s ease;
}
.btn-toggle-theme .button-content span {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 30px;
  height: 30px;
  flex-shrink: 0;
}
.btn-toggle-theme.open .button-content {
  transform: translateX(-100%);
}

body .ord-overlay {
  position: fixed;
  z-index: 99;
  top: 0;
  left: 0;
  background-color: var(--overlay-bg-color);
  width: 100%;
  height: 100%;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
body.open.has-overlay .ord-overlay {
  opacity: 1;
  visibility: visible;
}

/* ========================================
   2. CARD.CSS
   ======================================== */

/* resets common.css */
.prod-img {
  padding: 0 !important;
  background-color: transparent !important;
  margin: 0 !important;
  min-height: unset !important;
}

.three-items-across .prod-content,
.responsive-items-across .price-container,
.five-items-across .price-container {
  display: block;
}

.responsive-items-across .cmd-container,
.five-items-across .cmd-container,
.four-items-across .add-to-cart .cmd-container,
.three-items-across .add-to-cart .cmd-container {
  display: flex;
  justify-content: center;
}

.three-items-across .productItem,
.four-items-across .productItem {
  width: 100% !important;
  padding: 0 !important;
}

/* hide qty/label in grid cards */
.responsive-items-across .add-to-cart .cmd-container .qty-container,
.five-items-across .add-to-cart .cmd-container .qty-container,
.four-items-across .add-to-cart .cmd-container .qty-container,
.three-items-across .add-to-cart .cmd-container .qty-container,
.three-items-across .add-to-cart .cmd-container label,
.four-items-across .add-to-cart .cmd-container label {
  display: none;
}

.productItem {
  width: 100% !important;
  position: relative;
}

.pi-content {
  display: grid;
  gap: 16px 24px;
}

.productItem .prod-img {
  grid-area: prod-img;
}

.productItem .prod-img img {
  width: 100%;
  object-fit: contain;
  object-position: center;
  transition: transform 0.3s ease;
}

.productItem .prod-img a:hover img {
  transform: scale(1.05);
}

.productItem .prod-summary {
  grid-area: prod-summary;
}

.productItem .addToCart {
  grid-area: add-to-cart;
}

.productItem .cmd-container {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  align-items: center;
  margin-top: 8px;
}

.data:not([class*="-items-across"]) .productItem {
  margin-bottom: 20px;
}

.data.two-items-across .productItem,
.data:not([class*="-items-across"]) .productItem {
  padding-bottom: 20px;
  border-bottom: 1px solid var(--border-color);
}

.data:not([class*="-items-across"]) .productItem .pi-content,
.data.two-items-across .productItem .pi-content {
  grid-template-areas: "prod-img prod-summary" "prod-img add-to-cart";
}

@media (min-width: 768px) {
  .data:not([class*="-items-across"]) .productItem .pi-content,
  .data.two-items-across .productItem .pi-content {
    grid-template-columns: auto 1fr;
  }
}

.three-items-across .pi-content,
.four-items-across .pi-content,
.five-items-across .productItem .pi-content,
.responsive-items-across .productItem .pi-content {
  display: grid;
  height: 100% !important;
  grid-template-areas: "prod-img" "prod-summary" "add-to-cart";
  grid-template-rows: auto auto 1fr;
  justify-content: unset;
  text-align: center;
}

.responsive-items-across .productItem .addToCart,
.five-items-across .productItem .addToCart,
.four-items-across .productItem .addToCart,
.three-items-across .productItem .addToCart {
  display: flex;
  justify-content: center;
  align-items: flex-end;
}

.productItem h2 {
  margin: 0;
}

.productItem h2 a {
  color: var(--product-title-color);
}

.three-items-across .productItem .prod-summary h2,
.four-items-across .productItem .prod-summary h2 {
  font-size: 24px;
  line-height: 1.2;
}

.responsive-items-across .productItem .prod-img,
.five-items-across .productItem .prod-img {
  text-align: center;
}

.responsive-items-across .productItem,
.five-items-across .productItem {
  margin-right: 0;
}

@media only screen and (max-width: 767px) {
  .data:not([class*="-items-across"]) .productItem .pi-content,
  .data.two-items-across .productItem .pi-content {
    display: block;
    text-align: center;
  }

  .productItem .cmd-container {
    justify-content: center;
  }
}

/* ========================================
   3. WS-STYLE.CSS - Brand Styles, Header & Footer
   ======================================== */

/* === ANNOUNCE BAR === */
.header-anounce {
  display: none;
  background-color: #bea58a;
  text-align: center;
  padding: 9px 20px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
}
.header-anounce,
.header-anounce a {
  color: #efe9e1;
}
.header-anounce a {
  text-decoration: underline;
}

/* === FIXED HEADER === */
.header-main {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1040;
  background-color: #fff;
  width: 100%;
  border-bottom: 1px solid #e8e4de;
}

.header-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 90px;
}

/* === LOGO === */
.logo-wrap {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 0 0 auto;
}

.logo a {
  display: block;
}

.logo img {
  width: 288px !important;
  height: 78px !important;
}

/* === HAMBURGER === */
.burger {
  display: none;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  cursor: pointer;
  padding: 6px;
  color: var(--font-color);
  margin-left: 6px;
}

.burger svg {
  width: 24px;
  height: 24px;
  display: block;
}

/* === DESKTOP MAIN MENU === */
.main-menu {
  display: flex;
  align-items: center;
  gap: 24px;
  list-style: none;
  margin: 0;
  padding: 0;
  flex: 1;
  justify-content: center;
}

.main-menu > li {
  position: relative;
}

.main-menu > li > a {
  display: flex;
  align-items: center;
  gap: 4px;
  font-family: var(--btn-font-family);
  font-size: 11px;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 2px;
  white-space: nowrap;
  color: var(--font-color);
  text-decoration: none;
  padding: 4px 0;
}

.main-menu > li > a:hover {
  color: #bea58a;
}

.btn-toggle-sub-menu {
  background: none;
  border: none;
  padding: 2px 0 0;
  cursor: pointer;
  color: inherit;
  line-height: 1;
  display: inline-flex;
  align-items: center;
}

/* Hide carets in the desktop fixed nav */
.header-main .btn-toggle-sub-menu {
  display: none;
}

/* Desktop dropdown */
.sub-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  background: #fff;
  border: 1px solid #bea58a;
  border-top: 0;
  min-width: 190px;
  z-index: 1041;
  padding: 8px 0;
  list-style: none;
  margin: 0;
}

@media (min-width: 1025px) {
  .has-child:hover > .sub-menu {
    display: block;
  }
}

.has-child.open > .sub-menu {
  display: block;
}

.sub-menu a {
  display: block;
  padding: 8px 22px;
  font-family: var(--btn-font-family);
  font-size: 11px;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--font-color);
  white-space: nowrap;
  text-decoration: none;
}

.sub-menu a:hover {
  color: #bea58a !important;
  text-decoration: underline !important;
}

/* === SHOP NAV (login + cart) === */
.shop-nav {
  display: flex;
  align-items: center;
  gap: 14px;
  flex: 0 0 auto;
  padding-right: 24px;
}

.shop-nav .login-link {
  font-family: var(--btn-font-family);
  font-size: 11px;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--font-color);
  text-decoration: none;
  white-space: nowrap;
}

.shop-nav .login-link:hover {
  color: #bea58a;
}

.shop-nav .account-name-link {
  font-family: var(--btn-font-family);
  font-size: 11px;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--font-color);
  text-decoration: none;
  white-space: nowrap;
}

.shop-nav .account-name-link:hover {
  color: #bea58a;
}

.shop-nav .cart-link {
  display: flex;
  align-items: center;
  color: var(--font-color);
  gap: 3px;
}

.shop-nav svg {
  stroke: var(--font-color);
  width: 20px;
  height: 22px;
}

.cart-link {
  position: relative;
}

.cart-counter {
  position: absolute;
  top: -8px;
  right: -10px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  box-sizing: border-box;
  background: #000;
  color: #fff;
  font-family: var(--btn-font-family);
  font-size: 11px;
  font-weight: 700;
  line-height: 18px;
  text-align: center;
  border-radius: 9px;
  border: 1.5px solid #fff;
}

.cart-counter:empty {
  display: none;
}

/* === AUTH WRAPPER (invisible spacer + platform data) === */
.auth-wrapper {
  visibility: hidden;
  pointer-events: none;
  margin-top: var(--cart-summary-top);
}

/* === MOBILE NAVIGATION PANEL === */
.mobile-navigation {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 1041;
  height: 100vh;
  overflow-y: auto;
  background-color: #efe9e1;
  box-shadow: -6px 0 10px 1px rgba(0, 0, 0, 0.1);
  width: 82.5%;
  transform: translateX(100%);
  transition: transform 0.3s ease;
}

body.open .mobile-navigation {
  transform: translateX(0);
}

/* Close button — absolute top-right */
.btn-close-wrap {
  position: relative;
}

.btn-close-menu {
  position: absolute;
  top: 25px;
  right: 30px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
}

.btn-close-menu img {
  width: 30px;
  height: 30px;
}

/* Centered logo */
.nav-log {
  padding: 24px;
  text-align: center;
}

.nav-log img {
  width: 269px;
  height: 62px;
}

/* Account | Cart + Subscribe row */
.nav-top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 16px 32px;
  padding: 0 24px 20px;
}

.mobile-shop-nav {
  display: flex;
  justify-content: center;
  align-items: center;
  font-family: var(--btn-font-family);
  font-size: 13px;
  gap: 0.6rem;
  text-transform: uppercase;
}

.mobile-shop-nav a {
  margin: 0 5px;
  font-size: 22px;
  font-weight: 400;
  color: var(--font-color);
}

/* Mobile nav list */
.mobile-navigation .main-menu {
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  padding: 20px 0 0;
  justify-content: flex-start;
  list-style: none;
}

.mobile-navigation .main-menu > li {
  border-top: 1px solid #beac93;
  position: relative;
}

/* Parent item arrow indicator */
.mobile-navigation .main-menu .has-child {
  background-image: url(Images/mobile-nav-closed.png);
  background-position: 92% center;
  background-repeat: no-repeat;
}

.mobile-navigation .main-menu > li > a {
  font-family: var(--btn-font-family);
  font-size: 25px;
  padding: 24px 38px;
  text-transform: uppercase;
  line-height: 36px;
  display: block;
  font-weight: 700;
  color: var(--font-color);
}

/* Invisible overlay button that covers the arrow area for tapping */
.mobile-navigation .btn-toggle-sub-menu {
  position: absolute;
  top: 0;
  right: 0;
  width: 80px;
  height: 84px;
  opacity: 0;
  cursor: pointer;
}

/* Sub-menus hidden by default, shown when .open */
.mobile-navigation .main-menu > li > .sub-menu {
  display: none;
}

.mobile-navigation .main-menu > li.open > .sub-menu {
  display: block;
}

.mobile-navigation .sub-menu {
  position: static;
  border: none;
  border-top: 1px solid #beac93;
  padding: 0 38px;
  background: transparent;
  min-width: 0;
  list-style: none;
}

.mobile-navigation .sub-menu li {
  background-image: url(Images/mobile-nav-right.png);
  background-repeat: no-repeat;
  background-position: 98% center;
}

.mobile-navigation .sub-menu li + li {
  border-top: 1px solid #beac93;
}

.mobile-navigation .sub-menu a {
  display: block;
  padding: 24px 38px 24px 0;
  font-family: var(--btn-font-family);
  font-size: 25px;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--font-color);
  line-height: 36px;
  white-space: normal;
}

/* Social icons */
.social-nav {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0;
  margin: 40px 0;
}

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

@media (min-width: 556px) {
  :root {
    --cart-summary-top: 163px;
  }
  .header-anounce {
    display: block;
  }
}

@media (min-width: 1025px) {
  .header-row {
    padding: 0 0px;
  }
  .logo img {
    width: 240px;
  }
  .burger {
    display: none !important;
  }
  .header-main {
    --container-max-width: 100%;
  }
}

@media (max-width: 1024px) {
  .burger {
    display: flex;
  }
  .main-menu {
    display: none;
  }
  .mobile-navigation .main-menu {
    display: flex;
  }
  .shop-nav .login-link,
  .shop-nav .account-name-link {
    display: none;
  }
}

@media (max-width: 599px) {
  .logo img {
    width: 170px;
  }
  .header-row {
    padding: 0 0px;
  }
}
.footer-newsletter {
  text-align: center;
  margin: 50px auto 80px;
  padding: 50px 5% 0;
  max-width: 1170px;
}

.newsletter-content {
  border: 1px solid #bea58a;
  border-width: 1px 0;
  padding: 40px 0;
}
.newsletter-content h3 {
  font-size: 32px;
  text-transform: uppercase;
  line-height: 42px;
  letter-spacing: 3.8px;
  font-weight: 400;
  margin: 0 0 10px;
}
.newsletter-content p {
  margin-bottom: 15px;
  font-size: 30px;
  line-height: 1.6em;
}
.newsletter-content .btn-subscribe {
  padding: 12px 16px;
  font-size: 20px;
  font-family: var(--btn-font-family);
  margin-top: 10px;
  text-transform: uppercase;
  line-height: 20px;
  border: 1px solid var(--primary);
  font-weight: 400;
}

.footer-main {
  background-color: #efe9e1;
  text-align: center;
  padding: 40px 3%;
}

.footer-col {
  overflow: hidden;
}

.footer-main .ord-container {
  padding: 0 3%;
}

.winery-details {
  font-size: 29px;
  line-height: 36px;
}
.winery-details,
.winery-details a {
  color: var(--font-color);
}
.winery-details .phone {
  margin-bottom: 15px;
}

.footer-col-1 {
  display: none;
}

.footer-col-2 {
  margin: 0 2% 20px 0;
}

.footer-logo {
  margin-bottom: 13px;
}

.footer-col-3 {
  font-family: var(--btn-font-family);
  font-size: 20px;
  line-height: 1.6;
  margin-bottom: 20px;
  padding-top: 40px;
  text-transform: uppercase;
}
.footer-col-3 h4 {
  font-family: var(--highlights-font-family);
  margin: 0 0 20px;
  font-size: 20px;
  line-height: 42px;
  letter-spacing: 3.8px;
}
.footer-col-3 p {
  margin-bottom: 15px;
}

.copyright {
  font-size: 14px;
  line-height: 1.6em;
}
.copyright p + p {
  text-transform: uppercase;
  font-weight: 400;
}
.copyright p + p,
.copyright p + p a {
  color: var(--font-color);
}
.copyright p + p a {
  font-family: var(--btn-font-family);
}

@media (min-width: 721px) {
  .footer-main {
    --container-max-width: 1440px;
  }
  .footer-cols {
    display: flex;
    gap: 2%;
  }
  .footer-col {
    width: 32%;
  }
  .footer-col-1 {
    display: block;
  }
  .footer-list {
    text-align: left;
  }
  .footer-list a {
    display: block;
    padding: 11.2px 16px;
    color: var(--font-color);
    text-transform: uppercase;
    font-size: 12px;
    font-family: var(--btn-font-family);
    font-weight: 400;
    line-height: 1;
    transition: color 0.2s ease;
  }

  .footer-list a:hover {
    color: #bea58a !important;
    text-decoration: underline !important;
  }
  .footer-col-3 {
    text-align: right;
    font-size: 12px;
    font-family: var(--btn-font-family);
    text-transform: uppercase;
    line-height: 28px;
    justify-self: end;
    width: 25%;
    margin-left: auto;
  }
  .footer-col-3 h4 {
    line-height: 26px;
    font-size: 19px;
  }
  .winery-details {
    font-size: 20px;
    line-height: 28px;
  }
  .copyright {
    font-size: 10px;
  }
  .copyright p + p a {
    font-size: 8px;
  }
  .newsletter-content h3 {
    font-size: 19px;
    line-height: 26px;
  }
  .newsletter-content p {
    font-size: 20px;
  }
  .newsletter-content .btn-subscribe {
    line-height: 1;
    font-size: 12px;
  }
}

/* ========================================
   4. SHOP-LEFT-MENU.CSS
   ======================================== */

.menu-header {
  display: none;
}

.shop-left-menu .three-items-across-menu > ul,
.shop-left-menu .four-items-across-menu > ul {
  padding: 0;
}

.shop-left-menu > span.four-items-across-menu,
.shop-left-menu > span.three-items-across-menu {
  border-bottom-width: 0 !important;
  text-align: left;
}

.shop-left-menu > span {
  display: block;
  font-size: var(--group-menu-font-size);
}

.vertical-menu .shop-left-menu {
  width: 100%;
}

.vertical-menu .four-items-across-menu .menu-header,
.vertical-menu .three-items-across-menu .menu-header {
  display: block;
}

@media (min-width: 1024px) {
  .vertical-menu .shop-left-menu {
    flex: 0 0 200px;
    position: sticky;
    top: var(--cart-summary-top);
  }
}

.vertical-menu .shop-left-menu ul li.has-sub {
  display: grid;
  grid-template-rows: auto 0fr;
  overflow: hidden;
  transition: grid-template-rows 0.5s cubic-bezier(0.455, 0.03, 0.515, 0.955);
}

.vertical-menu .shop-left-menu ul li.has-sub.open {
  grid-template-rows: auto 1fr;
}

.vertical-menu .shop-left-menu ul li.has-sub ul {
  font-size: 85%;
  overflow: hidden;
}

.vertical-menu .shop-left-menu ul li.has-sub ul a {
  padding-left: 10px;
}

.vertical-menu .shop-left-menu ul li.has-sub > a {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.vertical-menu .shop-left-menu ul li.has-sub .op-toggler {
  font-size: 13px;
  display: flex;
  padding: 0 3px;
  width: 25px;
  height: 25px;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  transition: transform 0.3s ease;
}

.vertical-menu .shop-left-menu ul li.has-sub.open .op-toggler {
  transform: rotate(180deg);
}

.vertical-menu .shop-left-menu a {
  padding: 5px 0;
  display: block;
  transition: background-color 0.5s ease, color 0.5s ease, padding-left 0.5s ease;
}

.vertical-menu .shop-left-menu a:hover,
.vertical-menu .shop-left-menu a.selected {
  background-color: #f7f8fa;
  padding-left: 5px;
}

.vertical-menu .shop-left-menu ul li.has-sub ul a:hover,
.vertical-menu .shop-left-menu ul li.has-sub ul a.selected {
  padding-left: 15px;
}

.horizontal-menu .shop-left-menu {
  text-align: center;
  margin-bottom: 25px;
  display: none !important;
}

.horizontal-menu .shop-left-menu span > ul {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px 0;
}

.horizontal-menu .shop-left-menu span > ul > li > a {
  display: inline-block;
  padding: 10px 20px;
  transition: opacity 0.3s ease;
}

.horizontal-menu .shop-left-menu span > ul > li > a.selected,
.horizontal-menu .shop-left-menu span > ul > li > a:hover {
  color: var(--anchors-hover-color);
}

@media (min-width: 1024px) {
  .horizontal-menu .shop-left-menu span > ul li {
    position: relative;
  }

  .horizontal-menu .shop-left-menu span > ul > li:not(.menu-header) + li::before {
    content: "|";
  }

  .horizontal-menu .shop-left-menu span > ul li:hover > ul {
    display: block;
  }

  .horizontal-menu .shop-left-menu span > ul li ul {
    display: none;
    background-color: #fff;
    border-radius: 4px;
    border: 1px solid transparent;
    box-shadow: rgba(0, 0, 0, 0.16) 0px 1px 4px;
    z-index: 1020;
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 100%;
    padding: 5px 10px;
  }

  .horizontal-menu .shop-left-menu span > ul li ul ul {
    left: 100%;
    top: 0;
  }

  .horizontal-menu .shop-left-menu span > ul > li ul a {
    white-space: nowrap;
  }
}

@media (max-width: 767px) {
  .horizontal-menu .shop-left-menu span > ul {
    display: block;
  }

  .shop-left-menu .has-sub a {
    display: flex !important;
    justify-content: space-between;
    align-items: center;
  }

  .shop-left-menu .has-sub {
    display: grid;
    grid-template-rows: auto 0fr;
    transition: grid-template-rows 0.3s ease;
  }

  .shop-left-menu .has-sub.open {
    grid-template-rows: auto 1fr;
  }

  .shop-left-menu .has-sub ul,
  .shop-left-menu .has-sub {
    overflow: hidden;
  }

  .shop-left-menu .has-sub ul a {
    padding-left: 30px;
  }

  .op-toggler {
    display: block;
  }
}

input.txt-product-search {
  padding-left: 10px !important;
}

.prod-details .label,
.activeCart-panel,
.product-search-options {
  display: none !important;
}


/* ========================================
   5. PRODUCT-PAGE.CSS
   ======================================== */

/* Hide side nav, search, activeCart panel on PDP */
body#ctl00_body.page-productdetails #divSearchWebstoreCatalog,
body#ctl00_body.page-productdetails #pageContentLeft,
body#ctl00_body.page-productdetails #pageContentRight,
#productDetails .data-header .pager,
#productDetails .shop-left-menu {
  display: none !important;
}

.prod-details .sub-title {
  display: block;
  font-weight: 400;
  font-size: 36px;
  line-height: 1.2;
}

.prod-details .data {
  width: 100%;
}

.prod-details .cmd-container,
.prod-details .price-container {
  margin: 15px 0;
}

/* ===== TABS PRODUCT — Grid Layout ===== */

#tabs-product {
  background: none;
  border: 0;
  padding: 0;
  border-radius: 0;
  margin-left: 0;
}

/* Hide tab navigation — show all content on one page */
#tabs-product > ul,
#tabs-product .ui-tabs-nav {
  display: none !important;
}

/* Display all tab panels */
#tabs-product .ui-tabs-panel {
  display: block !important;
  padding: 0;
  border-radius: 0;
}

/* Two-column grid: image left | content right */
#tabs-product .tabs-container {
  display: grid !important;
  grid-template-columns: 340px 1fr !important;
  grid-template-rows: auto auto auto auto !important;
  gap: 48px !important;
  width: 100% !important;
  padding: 40px 0 !important;
  border: none !important;
  overflow: visible !important;
  position: relative !important;
}

#tabs-product .tabs-wrap {
  grid-column: 1 / 3 !important;
  display: contents !important;
}

#tabs-product .tabs-content {
  display: contents !important;
}

/* Product image — left column, spans rows 1–3 */
#tabs-product .prod-image {
  grid-column: 1 !important;
  grid-row: 1 / 4 !important;
  margin: 0 !important;
  width: 100% !important;
}

#tabs-product .prod-image img {
  width: 100%;
  object-fit: contain;
  object-position: center top;
  max-width: 340px;
}

/* Overview — right column, row 1 */
#tab_overview {
  grid-column: 2 !important;
  grid-row: 1 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 20px !important;
  align-self: start !important;
  background: transparent !important;
  border: 1px solid #bea58a !important;
  padding: 36px !important;
}

#tab_overview .sub-title {
  font-family: var(--body-font-family);
  font-size: 36px;
  line-height: 1.2;
  font-weight: 400;
  color: var(--font-color);
  margin: 0;
}

#tab_overview .prod-summary {
  display: block !important;
  font-style: italic;
  color: #666;
  font-size: 20px;
  line-height: 1.4;
  margin: 0;
}

#tab_overview .uc.addToCart {
  background: transparent !important;
  border: none !important;
  border-bottom: 1px solid #bea58a !important;
  padding: 0 0 20px !important;
  margin: 0 0 20px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
}

#tab_overview .uc.addToCart .label,
#tab_overview .uc.addToCart .price-label,
#tab_overview .uc.addToCart .qty-label {
  font-family: var(--btn-font-family) !important;
  font-size: 11px !important;
  text-transform: uppercase !important;
  letter-spacing: 1.5px !important;
  color: #888 !important;
  font-weight: 400 !important;
  display: block !important;
  margin-bottom: 4px !important;
}

#tab_overview .uc.addToCart .subtotal {
  display: none !important;
}

#tab_overview .uc.addToCart fieldset.add-to-cart {
  display: flex !important;
  flex-direction: column !important;
  gap: 20px !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

#tab_overview .uc.addToCart .price-container {
  margin: 0 !important;
  padding: 0 !important;
}

#tab_overview .uc.addToCart .price,
#tab_overview .uc.addToCart .sale-price {
  font-size: 24px !important;
  font-weight: 400 !important;
  color: var(--font-color) !important;
  font-family: var(--body-font-family) !important;
}

#tab_overview .uc.addToCart .old-price {
  font-size: 16px !important;
  color: #999 !important;
  text-decoration: line-through !important;
}

/* Qty + Add to Cart on the same row */
#tab_overview .uc.addToCart .cmd-container {
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 10px !important;
  width: 100% !important;
}

#tab_overview .uc.addToCart .qty-label {
  display: none !important;
}

#tab_overview .uc.addToCart .qty-container {
  display: flex !important;
  align-items: center !important;
  flex-shrink: 0 !important;
}

#tab_overview .uc.addToCart input[type="number"],
#tab_overview .uc.addToCart input[type="text"].number {
  width: 56px !important;
  text-align: center !important;
  font-size: 16px !important;
  padding: 10px 6px !important;
}

#tab_overview .uc.addToCart .btn,
#tab_overview .uc.addToCart a.btn {
  background: var(--btn-background-color) !important;
  color: var(--btn-text-color) !important;
  border: var(--btn-border) !important;
  border-radius: 0 !important;
  font-family: var(--btn-font-family) !important;
  font-weight: 400 !important;
  font-size: 12px !important;
  letter-spacing: 1px !important;
  text-transform: uppercase !important;
  padding: 10px 20px !important;
  flex: 1 !important;
  width: auto !important;
  cursor: pointer !important;
  transition: background 0.2s ease, color 0.2s ease !important;
}

#tab_overview .uc.addToCart .btn:hover,
#tab_overview .uc.addToCart a.btn:hover {
  background: var(--btn-hover-background-color) !important;
  color: var(--btn-hover-text-color) !important;
  border-color: #4f5255 !important;
}

/* Notes */
#tab_overview .tasting-notes-hdr,
#tab_overview .production-notes-hdr,
#tab_overview .other-notes-hdr {
  display: block !important;
  font-family: var(--btn-font-family) !important;
  font-size: 11px !important;
  text-transform: uppercase !important;
  letter-spacing: 2px !important;
  color: #888 !important;
  font-weight: 400 !important;
  margin-top: 16px !important;
  margin-bottom: 6px !important;
  border-bottom: none !important;
}

#tab_overview .tasting-notes,
#tab_overview .production-notes,
#tab_overview .other-notes {
  display: block !important;
  font-size: 18px !important;
  line-height: 1.6 !important;
  color: var(--font-color) !important;
  padding: 0 !important;
  background: transparent !important;
  margin-bottom: 8px !important;
}

#tab_overview .prod-descr {
  font-size: 18px;
  line-height: 1.6;
  color: var(--font-color);
  margin: 0;
}

#tab_overview .prod-descr p {
  margin: 0;
}

/* Wine Specs — right column, row 2 */
#tab_wine_spec {
  grid-column: 2 !important;
  grid-row: 2 !important;
  align-self: start !important;
  background: transparent !important;
  border: 1px solid #bea58a !important;
  padding: 36px !important;
}

#tab_wine_spec .wine-information {
  width: 100% !important;
  border-collapse: collapse !important;
  border: none !important;
}

#tab_wine_spec .wine-information tr {
  background: transparent !important;
}

#tab_wine_spec .wine-information tr.alt {
  background: transparent !important;
}

#tab_wine_spec .wine-information td {
  padding: 12px 0 !important;
  border-bottom: 1px solid #e8e4de !important;
  font-size: 16px !important;
  line-height: 1.5 !important;
  border-left: none !important;
  border-right: none !important;
  border-top: none !important;
}

#tab_wine_spec .wine-information tr:last-child td {
  border-bottom: none !important;
}

#tab_wine_spec .wine-information td:first-child {
  font-family: var(--btn-font-family);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #888;
  font-weight: 400;
  width: 40%;
}

/* Reviews — right column, row 3 */
#tab_reviews {
  grid-column: 2 !important;
  grid-row: 3 !important;
  align-self: start !important;
  background: transparent !important;
  border: 1px solid #bea58a !important;
  padding: 36px !important;
}

#tab_reviews > h3 {
  font-family: var(--btn-font-family);
  font-size: 11px !important;
  font-weight: 400 !important;
  text-transform: uppercase !important;
  letter-spacing: 2px !important;
  color: #888 !important;
  margin: 0 0 20px !important;
  border-bottom: 1px solid #e8e4de !important;
  padding-bottom: 12px !important;
}

#tab_reviews p {
  line-height: 1.8 !important;
  font-size: 17px !important;
  margin: 0 0 16px !important;
}

/* Vineyards — right column, row 4 */
#tab_vineyards {
  grid-column: 2 !important;
  grid-row: 4 !important;
  background: transparent !important;
  border: 1px solid #bea58a !important;
  padding: 36px !important;
}

#tab_vineyards > h3 {
  font-family: var(--btn-font-family);
  font-size: 11px !important;
  font-weight: 400 !important;
  text-transform: uppercase !important;
  letter-spacing: 2px !important;
  color: #888 !important;
  margin: 0 0 20px !important;
  border-bottom: 1px solid #e8e4de !important;
  padding-bottom: 12px !important;
}

#tab_vineyards p {
  line-height: 1.8 !important;
  font-size: 17px !important;
  margin: 0 !important;
}

/* Winemaker — right column, row 5 */
#tab_winemaker {
  grid-column: 2 !important;
  grid-row: 5 !important;
  background: transparent !important;
  border: 1px solid #bea58a !important;
  padding: 36px !important;
}

#tab_winemaker > h3 {
  font-family: var(--btn-font-family);
  font-size: 11px !important;
  font-weight: 400 !important;
  text-transform: uppercase !important;
  letter-spacing: 2px !important;
  color: #888 !important;
  margin: 0 0 20px !important;
  border-bottom: 1px solid #e8e4de !important;
  padding-bottom: 12px !important;
}

#tab_winemaker p {
  line-height: 1.8 !important;
  font-size: 17px !important;
  margin: 0 !important;
}

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

@media (max-width: 1024px) {
  #tabs-product .tabs-container {
    grid-template-columns: 1fr !important;
    grid-template-rows: auto !important;
    gap: 32px !important;
    padding: 30px 0 !important;
  }

  #tabs-product .prod-image {
    grid-column: 1 !important;
    grid-row: 1 !important;
    max-width: 440px !important;
    margin: 0 auto !important;
  }

  #tab_overview {
    grid-column: 1 !important;
    grid-row: 2 !important;
    padding: 28px !important;
  }

  #tab_wine_spec {
    grid-column: 1 !important;
    grid-row: 3 !important;
    padding: 28px !important;
  }

  #tab_reviews {
    grid-column: 1 !important;
    grid-row: 4 !important;
    padding: 28px !important;
  }

  #tab_vineyards {
    grid-column: 1 !important;
    grid-row: 5 !important;
    padding: 28px !important;
  }

  #tab_winemaker {
    grid-column: 1 !important;
    grid-row: 6 !important;
    padding: 28px !important;
  }

}

@media (max-width: 600px) {
  #tabs-product .tabs-container {
    gap: 20px !important;
    padding: 20px 0 !important;
  }

  #tab_overview,
  #tab_wine_spec,
  #tab_reviews,
  #tab_vineyards,
  #tab_winemaker {
    padding: 20px !important;
    gap: 16px !important;
  }

  #tab_overview .sub-title {
    font-size: 26px !important;
  }
}

/* ========================================
   6. CUSTOM.CSS
   ======================================== */

.shop-left-menu {
  font-family: var(--btn-font-family);
}

/* Product titles — 28px black, #BEA58A on hover */
.productItem h2,
.prod-title {
  font-size: 28px;
}

.productItem h2 a,
a.prod-title {
  color: #000;
}

.productItem h2 a:hover,
a.prod-title:hover {
  color: #bea58a;
}

/* Hide Price/Qty labels in catalog cards */
.add-to-cart .price-label,
.add-to-cart .qty-label {
  display: none;
}

/* Price display */
.price {
  font-family: var(--body-font-family);
  font-size: 24px;
  font-weight: 400;
  letter-spacing: 0.5px;
}

.productItem .price-container {
  margin-bottom: 12px;
}

/* Add to Cart — unbold text, visible border on hover */
.add-to-cart .btn {
  font-weight: 400;
}

.add-to-cart .btn:hover {
  border-color: #4f5255;
}

/* Shop left menu links */
.shop-left-menu a {
  color: var(--group-item-color);
  font-size: var(--group-menu-font-size);
}

.shop-left-menu a:hover {
  color: var(--anchors-hover-color);
  text-decoration: underline;
}

.shop-left-menu a.selected {
  color: var(--anchors-hover-color);
  font-weight: 700;
}

/* Product detail tab selected state — override reset.css hardcoded colors */
#tabs-product .ui-tabs-nav li.ui-tabs-selected a {
  background-color: var(--theme-color);
  color: #fff;
  padding-bottom: 5px;
}

/* Newsletter — center page content */
form[action*="/newsletter"] #pageContent,
form[action*="/newsletter.aspx"] #pageContent {
  max-width: 600px;
  margin: 40px auto;
  text-align: center;
}

form[action*="/newsletter"] .help_content,
form[action*="/newsletter.aspx"] .help_content {
  width: 100%;
  max-width: 100%;
}

form[action*="/newsletter"] label,
form[action*="/newsletter"] .label,
form[action*="/newsletter.aspx"] label,
form[action*="/newsletter.aspx"] .label {
  font-weight: 400;
}

/* Newsletter form — stacked full-width fields, centered */
form[action*="/newsletter"] .newsletter,
form[action*="/newsletter.aspx"] .newsletter {
  max-width: 100%;
  margin: 0 auto;
  text-align: left;
}

form[action*="/newsletter"] .newsletter_table,
form[action*="/newsletter.aspx"] .newsletter_table {
  max-width: 480px;
  margin: 0 auto;
}

form[action*="/newsletter"] .newsletter_table .row,
form[action*="/newsletter.aspx"] .newsletter_table .row {
  display: block !important;
  width: 100%;
  margin: 0 0 16px;
}

form[action*="/newsletter"] .newsletter_table .col,
form[action*="/newsletter.aspx"] .newsletter_table .col {
  display: block !important;
  width: 100% !important;
}

form[action*="/newsletter"] .newsletter_table .col:first-child,
form[action*="/newsletter.aspx"] .newsletter_table .col:first-child {
  width: 100% !important;
  padding-right: 0 !important;
  text-align: left !important;
  margin-bottom: 6px;
}

form[action*="/newsletter"] .newsletter_table .txtbig,
form[action*="/newsletter"] .newsletter_table .txt,
form[action*="/newsletter"] .newsletter_table .ddl,
form[action*="/newsletter"] .newsletter_table select,
form[action*="/newsletter.aspx"] .newsletter_table .txtbig,
form[action*="/newsletter.aspx"] .newsletter_table .txt,
form[action*="/newsletter.aspx"] .newsletter_table .ddl,
form[action*="/newsletter.aspx"] .newsletter_table select {
  width: 100% !important;
  display: block !important;
  box-sizing: border-box !important;
}

form[action*="/newsletter"] .newsletter_table .submit-row,
form[action*="/newsletter.aspx"] .newsletter_table .submit-row {
  text-align: center !important;
}

form[action*="/newsletter"] .newsletter_table .submit-row .col,
form[action*="/newsletter.aspx"] .newsletter_table .submit-row .col {
  text-align: center !important;
}

/* Auth/sign-in page — unbold labels */
form[action*="/auth"] label,
form[action*="/auth"] .label,
form[action*="/signin"] label,
form[action*="/signin"] .label {
  font-weight: 400;
}

/* ========================================
   ADD TO CART TOAST NOTIFICATION
   ======================================== */

.add-to-cart-confirmation-message {
  position: fixed !important;
  bottom: 24px !important;
  right: 24px !important;
  left: auto !important;
  top: auto !important;
  z-index: 2000 !important;
  background: #fff;
  border: 1px solid #bea58a;
  padding: 20px 24px;
  max-width: 320px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
  color: var(--font-color);
  font-size: 16px;
  line-height: 1.5;
  animation: slideInToast 0.3s ease;
}

@keyframes slideInToast {
  from {
    transform: translateX(360px);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}

.add-to-cart-confirmation-message.hiding {
  animation: slideOutToast 0.3s ease forwards;
}

@keyframes slideOutToast {
  from {
    transform: translateX(0);
    opacity: 1;
  }
  to {
    transform: translateX(360px);
    opacity: 0;
  }
}

.add-to-cart-confirmation-message .btn-close {
  position: absolute;
  top: 8px;
  right: 10px;
  width: 24px;
  height: 24px;
  cursor: pointer;
  background: none;
  border: none;
  opacity: 0.5;
  font-size: 18px;
  transition: opacity 0.2s ease;
}

.add-to-cart-confirmation-message .btn-close:hover {
  opacity: 1;
}

.add-to-cart-confirmation-message .btn-close::before {
  content: "✕";
  display: block;
  line-height: 1;
}

.add-to-cart-confirmation-message .add-to-cart-checkout {
  margin-top: 14px;
  display: flex;
  gap: 8px;
}

.add-to-cart-confirmation-message .add-to-cart-checkout .btn {
  flex: 1;
  text-align: center;
  padding: 10px 12px;
  font-size: 11px;
}

/* ========================================
   WINE CLUB PAGE (/wine-club)
   ======================================== */

form[action*="/wine-club"] #wine-clubs .wineclub-membership > div {
  margin-bottom: 0 !important;
  padding: 28px 0;
  border-bottom: 1px solid #e8e4de;
  font-size: 0; /* suppress &nbsp;-&nbsp; text node */
}

form[action*="/wine-club"] #wine-clubs .wineclub-membership > div:first-child {
  border-top: 1px solid #e8e4de;
}

form[action*="/wine-club"] #wine-clubs .wineclub-membership > div > a:first-child {
  display: block;
  margin-bottom: 10px;
}

form[action*="/wine-club"] #wine-clubs .wineclub-membership > div h3 {
  display: block !important;
  font-size: 24px !important;
  font-weight: 400;
  font-family: var(--body-font-family);
  margin: 0;
  color: var(--font-color);
  line-height: 1.3;
}

form[action*="/wine-club"] #wine-clubs .wineclub-membership > div h3:hover {
  color: #bea58a;
}

form[action*="/wine-club"] #wine-clubs .wineclub-membership > div p {
  font-size: 18px;
  line-height: 1.6;
  color: var(--font-color);
  margin: 0 0 20px;
}

form[action*="/wine-club"] #wine-clubs .wineclub-membership > div a.btn {
  display: inline-block !important;
  font-size: var(--btn-font-size) !important;
}

/* Account page — unbold section headings, labels, and change links */
form[action*="/account"] .section .header,
form[action*="/account"] .section h1,
form[action*="/account"] .section h2,
form[action*="/account"] .section h3,
form[action*="/account"] label,
form[action*="/account"] .label,
form[action*="/account.aspx"] .section .header,
form[action*="/account.aspx"] .section h1,
form[action*="/account.aspx"] .section h2,
form[action*="/account.aspx"] .section h3,
form[action*="/account.aspx"] label,
form[action*="/account.aspx"] .label {
  font-weight: 400;
}

form[action*="/account"] .lnk,
form[action*="/account.aspx"] .lnk {
  font-weight: 400;
}
