/*
Theme Name: Minimly Child
Theme URI: https://thisisadvantage.com
Template: minimly
Text Domain: minimly-child
Author: Cameron Knight
Author URI: https://thisisadvantage.com
Description: 100% organic theme. Full-site editing, vegan friendly, gluten-free.
Tags: one-column,custom-colors,custom-menu,custom-logo,editor-style,featured-images,full-site-editing,block-patterns,rtl-language-support,sticky-post,threaded-comments
Version: 1.1646729211
Updated: 2022-03-08 19:46:50
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
*/

@import url('https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400..700;1,400..700&display=swap');

/* Hide default scrollbars to prevent layout inconsistencies */
html {
  scrollbar-width: none; /* Firefox */
  -ms-overflow-style: none; /* IE and Edge */
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

/* Anchored sections shouldn't be hidden behind the sticky header */
:where([id]) {
  scroll-margin-top: 100px;
}

/* Lock account/cart icon dimensions so viewport resize can't blow them up */
header .my-account-icon,
.mobile-sidebar-account {
  width: 2.5rem;
  height: 2.5rem;
  flex: 0 0 auto;
  box-sizing: border-box;
}

header .my-account-icon svg,
.mobile-sidebar-account svg,
header .wc-block-mini-cart__button svg,
.mobile-sidebar-cart svg,
header .stw-fa-header-icon {
  width: 20px !important;
  height: 20px !important;
  max-width: 20px;
  max-height: 20px;
  flex: 0 0 auto;
}

header .stw-fa-header-icon {
  align-items: center;
  color: currentColor;
  display: inline-flex;
  fill: currentColor;
  font-size: 20px;
  justify-content: center;
  line-height: 1;
  stroke: currentColor;
}

header .wp-block-woocommerce-customer-account .wc-block-customer-account__account-icon,
header .wc-block-mini-cart__button .wc-block-mini-cart__icon {
  display: none !important;
}

header .wc-block-mini-cart__button {
  width: auto;
  height: 2.5rem;
  flex: 0 0 auto;
}

header .wc-block-mini-cart.is-empty-cart,
header .wp-block-woocommerce-mini-cart.is-empty-cart,
header .wc-block-mini-cart:has(.wc-block-mini-cart__button[aria-label="Number of items in the cart: 0"]),
header .wp-block-woocommerce-mini-cart:has(.wc-block-mini-cart__button[aria-label="Number of items in the cart: 0"]) {
  display: none !important;
}


/* Override the global `a:where(:not(.wp-element-button))` rule that paints
   the customer-account link foreground/black. `html body` lifts specificity
   above any later-loaded rule that might re-set color on these elements. */
html body .wp-block-woocommerce-customer-account,
html body .wp-block-woocommerce-customer-account a,
html body .wp-block-woocommerce-customer-account a:link,
html body .wp-block-woocommerce-customer-account a:visited,
html body .wp-block-woocommerce-customer-account a:hover,
html body .wp-block-woocommerce-customer-account a:focus,
html body .wp-block-woocommerce-customer-account .wc-block-customer-account__link,
html body .wp-block-woocommerce-customer-account .wc-block-customer-account__link:hover,
html body .wp-block-woocommerce-customer-account .wc-block-customer-account__toggle,
html body .wp-block-woocommerce-customer-account .wc-block-customer-account__toggle:hover,
html body .wp-block-woocommerce-customer-account .wc-block-customer-account__account-icon,
html body .wp-block-woocommerce-customer-account svg,
html body .wp-block-woocommerce-customer-account svg *,
html body a.wc-block-customer-account,
html body a.wc-block-customer-account:hover {
  color: inherit !important;
  fill: currentColor !important;
  stroke: currentColor !important;
  text-decoration: none !important;
}

/* Submenu toggle button reset - applies at ALL widths so default
   browser button styling never leaks through during/after resize.
   The mobile sidebar separately hides this with display:none. */
.wp-block-navigation__submenu-icon,
.wp-block-navigation__submenu-icon.wp-block-navigation-submenu__toggle {
  padding: 0 !important;
  margin-left: 0.25rem !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  /* Vertically centre the chevron with the menu item text. */
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  align-self: center !important;
  vertical-align: middle !important;
  line-height: 1 !important;
  width: 1em !important;
  height: 1em !important;
  overflow: visible !important;
}

.wp-block-navigation__submenu-icon svg {
  width: 0.55em !important;
  height: 0.55em !important;
  fill: currentColor !important;
  transition: transform 0.25s ease;
  /* Nudge down slightly to sit on the text's optical centerline. */
  margin: 0.2em 0 0 0 !important;
  display: block !important;
  flex-shrink: 0 !important;
  overflow: visible !important;
}

.wp-block-navigation__submenu-icon svg path {
  stroke: currentColor;
}

/* Hide the mobile-cloned footer icons and the injected per-item arrow
   buttons at desktop widths so leftovers from a previous mobile state
   don't render with default browser styling next to the navigation. */
@media (min-width: 992px) {
  .mobile-sidebar-footer,
  .mobile-sidebar-cart,
  .mobile-sidebar-account,
  .mobile-submenu-arrow {
    display: none !important;
  }
}

html::-webkit-scrollbar {
  display: none; /* Chrome, Safari, Opera */
}

.safe-svg-cover svg {
  fill: none !important;
}

/* Fix whitespace issue when single element takes 100vh */
/* Override WordPress FSE min-height that causes extra space below footer */
/* Also fix parent theme's width: 100vw which causes layout issues with scrollbars */
html, body {
  height: auto !important;
  min-height: 0 !important;
  width: 100% !important; /* Override 100vw which includes scrollbar width */
  overflow-x: hidden;
}

.wp-site-blocks {
  min-height: 100vh !important;
  min-height: 100dvh !important;
  display: flex !important;
  flex-direction: column !important;
}

/* Disable sticky/fixed header on checkout */
body.woocommerce-checkout header,
body.woocommerce-checkout header.wp-block-template-part,
body.woocommerce-checkout .wp-site-blocks > header,
body.woocommerce-checkout .wp-site-blocks > .wp-block-template-part[data-slug="header"],
body.woocommerce-checkout.detached-header header,
body.woocommerce-checkout.detached-header header.wp-block-template-part {
  position: static !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  transform: none !important;
  animation: none !important;
  transition: none !important;
}

body.woocommerce-checkout header.is-hidden,
body.woocommerce-checkout header.is-visible {
  transform: none !important;
}

/* Prevent any element with data-min-height from breaking layout */
/* The has-vh-min-height class is added by our JS fix after removing inline styles */
[data-min-height],
.has-vh-min-height {
  min-height: auto !important;
  height: auto !important;
}

/* If you need 100vh elements, use this class instead which won't cause whitespace */
.min-h-screen {
  min-height: 100vh;
  min-height: 100dvh;
}

/* Ensure main content area grows to fill available space */
.wp-site-blocks > main,
.wp-site-blocks > .wp-block-group[data-tag="main"],
.wp-site-blocks > .wp-block-group:not(header):not(footer):not([data-slug="header"]):not([data-slug="footer"]) {
  flex: 1 0 auto;
  padding-bottom: var(--wp--custom--spacing--vertical);
}

/* Footer stays at bottom but doesn't force extra space */
.wp-site-blocks > footer,
.wp-site-blocks > .wp-block-template-part[data-slug="footer"] {
  flex-shrink: 0;
  margin-top: auto !important;
}

/* Header doesn't grow */
.wp-site-blocks > header,
.wp-site-blocks > .wp-block-template-part[data-slug="header"] {
  flex-shrink: 0;
}

body.light-header header a.wp-element-button,
body header a.wp-element-button.is-style-fill,
body header .wp-block-button a.wp-element-button {
  color: white !important;
}

body:not(.detached-header) header.wp-block-template-part {
  top: 30px !important;
}

@media (min-width: 992px) {
  body.admin-bar {
    --stw-admin-bar-offset: 32px;
  }
}

body.detached-header header.wp-block-template-part {
  top: var(--stw-admin-bar-offset, 0px) !important;
  transition:
    background-color 0.2s ease-out,
    color 0.2s ease-out,
    box-shadow 0.2s ease-out,
    opacity 0.2s ease-out !important;
}

body:not(.mobile-menu-open):not(.mobile-menu-closing)
  header.wp-block-template-part.stw-header-entering {
  animation: stwHeaderDropIn 0.24s ease-out both !important;
  transition:
    background-color 0.2s ease-out,
    color 0.2s ease-out,
    box-shadow 0.2s ease-out,
    opacity 0.2s ease-out !important;
}

@keyframes stwHeaderDropIn {
  from {
    transform: translateY(-100%);
  }

  to {
    transform: translateY(0);
  }
}

.dots {
  gap: 12px;
}

.dot {
  width: 6px  !important;
  height: 6px !important;
  background: radial-gradient(circle, currentColor 50%, transparent 21%);
}

picture {
  display: flex;
  overflow: hidden;
  width: 100% !important;
  height: 100% !important;
}

/* Hide source elements - they should not be visible, only used by browser for format selection */
picture source {
  display: none !important;
}

.wp-block-cover picture {
  position: absolute;
  height: 100% !important; 
  width: 100% !important;
}

picture img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
}

.fit img {
  object-fit: contain !important;
}

.multiply {
  mix-blend-mode: multiply;
}

.position-top img {
      object-position: top center;
}

.wc-block-mini-cart__badge {
  color: var(--wp--preset--color--primary) !important;
}


/* Only apply width/height to specific elements, not source tags */
[data-width='100%'] img,
[data-width='100%'] a,
[data-width='100%'] picture {
  width: 100% !important;
}

[data-height='100%'] img,
[data-height='100%'] a,
[data-height='100%'] picture {
  height: 100% !important;
}

/* Override navigation block mobile breakpoint */
@media (max-width: 991px) {
  .wp-block-navigation:not(.has-modal-open)
    .wp-block-navigation__responsive-container:not(.is-menu-open) {
    display: none;
  }

  .wp-block-navigation__responsive-container-open,
  .wp-block-navigation__responsive-container-close {
    display: flex;
  }
  .is-content-justification-right > .wp-block-navigation {
    order: 1;
  }
}

@media (min-width: 992px) {
  .wp-block-navigation__responsive-container-open,
  .wp-block-navigation__responsive-container-close {
    display: none;
  }

  .wp-block-navigation__responsive-container.is-menu-open,
  .wp-block-navigation__responsive-container {
    display: flex;
  }
}

footer {
  margin-top: 0px !important;
  position: relative;
  overflow: visible !important;
  width: 100% !important;
  max-width: 100% !important;
}

footer::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  transform: translateY(-100%);
  height: 150px;
  background-image: url("data:image/svg+xml,%3Csvg width='1040' height='150' viewBox='0 0 1040 150' preserveAspectRatio='none' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M32 140L0 147V150H1040V142H1013L978 143L950 138H918L873 136L828 140L791 143H769L734 139L703 136L685 138L663 140L634 139L591 145L564 148L522 136L471 140H458H441L409 136L379 140H315H293H251H214H182L156 138L140 140L96 145H74L32 140Z' fill='%23000000'/%3E%3C/svg%3E");
  background-size: 100% 100%;
  background-repeat: no-repeat;
  background-position: bottom;
  z-index: 10;
  pointer-events: none;
}

footer .footer-container {
  position: relative;
}

footer .footer-container::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url('https://stonetowerwinery.pixeldev.com.au/wp-content/uploads/2025/11/5255a9378322456613313763dd44218b224199d9-footer-bg.webp');
  background-size: cover;
  background-position: center;
  background-blend-mode: luminosity;
  background-color: black;
  opacity: 0.2;
  z-index: 0;
}

footer .footer-container > * {
  position: relative;
  z-index: 1;
}

.mx-auto {
  margin: auto !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.hero-height {
  min-height: calc(100vh - 34px) !important;
}

.contained {
  margin: clamp(10px, 3vw, 16px) !important;
}

.wp-block-separator.is-style-wide {
  width: 100% !important;
}

.align-end {
  align-items: flex-end;
}

/* force all slides to stretch to full row height */
.align-end.keen-slider {
    align-items: flex-end !important;
}

/* make each figure fill the same height */
.align-end.keen-slider__slide {
    display: flex !important;
    align-items: flex-end !important;
}

/* ensure the img sits at the bottom */
.align-end.keen-slider__slide picture,
.align-end.keen-slider__slide img {
    display: block;
    align-self: flex-end;
}
.align-end.keen-slider__slide {
    height: 100%; /* gives every figure equal height */
}

/* target the gallery slides */
.align-end.wp-block-gallery.has-nested-images figure.wp-block-image {
    justify-content: flex-end !important;   /* push content to the bottom */
}

/* remove the auto bottom margin that can fight this */
.align-end.wp-block-gallery.has-nested-images:not(.is-cropped)
figure.wp-block-image:not(#individual-image) {
    margin-bottom: 0 !important;
}

.styled-button {
  background: transparent none;
  border-color: currentColor;
  border-width: 2px;
  border-style: solid;
  color: var(--wp--preset--color--primary);
  padding-top: 0.667em;
  padding-right: 1.33em;
  padding-bottom: 0.667em;
  padding-left: 1.33em;
}

@media (max-width: 768px) {
  .m-center,
  .m-center * {
    text-align: center;
    justify-content: center;
    align-items: center;
  }
  .m-left,
  .m-left * {
    text-align: left !important;
    justify-content: left !important;
    align-items: flex-start !important;
  }
  .m-reverse div:nth-child(1) {
    order: 2;
  }
  .m-reverse div:nth-child(2) {
    order: 1;
  }
}

.hero-bottom {
  position: absolute;
  bottom: 5%;
}

.hero-width {
  width: calc(100% - clamp(1rem, 4vw, 4rem) - 16px);
}


/* Prevent figure/picture from stretching beyond image height in shrink carousel */
.m-centered.center-large.shrink .keen-slider__slide figure {
  height: fit-content;
  flex-grow: 0;
}

.m-centered.center-large.shrink .keen-slider__slide picture {
  aspect-ratio: unset !important;
  height: auto !important;
  display: block;
}
.m-centered.center-large.shrink .keen-slider__slide img {
  height: 60vh !important;
  max-height: 600px;
  transition: transform 0.3s ease, opacity 0.3s ease;
  transform-origin: center;
}

.m-centered.center-large.shrink .keen-slider__slide h3,
.m-centered.center-large.shrink .keen-slider__slide p {
  transition: opacity 0.3s ease, padding-left 0.3s ease;
}

.m-centered.center-large.shrink .keen-slider__slide:not(.active-slide) img {
  transform: scale(0.85);
  opacity: 0.7;
}

.m-centered.center-large.shrink .keen-slider__slide:not(.active-slide) h3,
.m-centered.center-large.shrink .keen-slider__slide:not(.active-slide) p {
  padding-left: 7.5%;
  opacity: 0.7;
}

.m-centered.center-large .keen-slider__slide {
  padding-right: 2vw;
  padding-left: 2vw;
}

.m-centered.center-large.shrink .keen-slider__slide.active-slide img,
.m-centered.center-large.shrink .keen-slider__slide.active-slide h3,
.m-centered.center-large.shrink .keen-slider__slide.active-slide p {
  transform: scale(1);
  opacity: 1;
}

@media (max-width: 991px) {
  .m-centered.center-large.shrink .keen-slider__slide img {
    height: 40vh !important;
    max-height: 540px;
  }
  .m-centered.center-large.shrink .keen-slider__slide:not(.active-slide) img {
    transform: scale(0.75);
  }
}

.navigation-wrapper {
  max-width: 100% !important;
}

/* Custom arrow SVG for all carousel arrows */
.carousel-arrows .arrow {
  width: 78px;
  height: 44px;
  position: relative;
  outline: none !important;
  border: none !important;
  border-radius: 0 !important;
}

.carousel-arrows .arrow::after {
  display: none !important;
}

.carousel-arrows .arrow::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 0;
  width: 78px;
  height: 16px;
  transform: translateY(-50%);
  background-image: url("data:image/svg+xml,%3Csvg width='39' height='8' viewBox='0 0 39 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M38.64 4.03544C38.8352 3.84018 38.8352 3.52359 38.64 3.32833L35.458 0.146351C35.2627 -0.0489113 34.9462 -0.0489113 34.7509 0.146351C34.5556 0.341613 34.5556 0.658195 34.7509 0.853458L37.5793 3.68188L34.7509 6.51031C34.5556 6.70557 34.5556 7.02216 34.7509 7.21742C34.9462 7.41268 35.2627 7.41268 35.458 7.21742L38.64 4.03544ZM0 3.68188V4.18188H38.2864V3.68188V3.18188H0V3.68188Z' fill='%23AD9841'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

.carousel-arrows .arrow.arrow--left::before {
  transform: translateY(-50%) rotate(180deg);
}

.dot {
  width: 6px !important;
  height: 6px !important;
  border-radius: 50%;
  background: currentColor !important;
  padding: 0 !important;
  flex-shrink: 0;
}

/* Position arrows on either side of dots */
.navigation-wrapper {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 2.5rem;
}

.navigation-wrapper .keen-slider {
  width: 100%;
}

.navigation-wrapper .carousel-arrows {
  display: contents;
  margin-top: 0;
}

.navigation-wrapper .carousel-arrows .arrow--left {
  order: 1;
}

.navigation-wrapper .dots {
  order: 2;
}

.navigation-wrapper .carousel-arrows .arrow--right {
  order: 3;
}

@media (min-width: 991px) {
  .keen-slider.center-large {
    align-items: flex-end !important;
  }

}

/* Override WordPress navigation block breakpoint from 600px to 991px */
@media (max-width: 990px) {
  .wp-block-navigation__responsive-container-open:not(.always-shown) {
    display: flex !important;
  }
}

@media (min-width: 991px) {
  .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
    background-color: inherit;
    display: block;
    position: relative;
    width: 100%;
    z-index: auto;
  }

  .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open)
    .wp-block-navigation__responsive-container-close {
    display: none;
  }

  .wp-block-navigation__responsive-container-open:not(.always-shown) {
    display: none !important;
  }
}

.line-title {
  display: flex;
  align-items: center;
  margin: 20px 0;
  text-align: center;
  width: 100%;
}

.line-title::before,
.line-title::after {
  content: "";
  flex: 1;
  width: 100%;
  border-bottom: 1.6px solid #000000; /* adjust colour */
}

.line-title::before {
  margin-right: 15px;
}

.line-title::after {
  margin-left: 15px;
}

.line-title span {
  font-size: 28px;
  font-weight: 600;
}

/* Details/Summary Custom Styling */
details {
  border-bottom: 1px solid #D9D9D9;
  width: 100%;
  padding: 0 0 1.5em 0;
}

details:first-of-type {
  border-top: 1px solid #D9D9D9;
  padding-top: 1.5em;
}

details summary {
  list-style: none;
  cursor: pointer;
  position: relative;
  padding-right: 2em;
  width: 100%;
}

/* Remove default marker */
details summary::-webkit-details-marker {
  display: none;
}

details summary::marker {
  display: none;
}

/* Add chevron icon on the right */
details summary::after {
  content: '';
  position: absolute;
  right: 0;
  top: 50%;
  width: 0.5em;
  height: 0.5em;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform-origin: 50% 50%;
  /* Nudge up so the visual mass of the rotated square sits on the row's vertical centerline,
     and the rotation axis stays put through open/close — no positional pop. */
  transform: translateY(calc(-50% - 0.75em)) rotate(-45deg);
  transition: transform 0.3s ease;
}

/* Rotate chevron when open */
details[open] summary::after {
  transform: translateY(calc(-50% - 0.75em)) rotate(45deg);
}

/* Tribe Events Calendar - Events Bar Styling */
.tribe-events-c-events-bar {
  background: transparent !important;
  border-color: gray !important;
}

.tribe-events-c-events-bar--border {
  border-color: gray !important;
}

/* Find Events button - transparent with black border */
.tribe-events-c-search__button {
  background: transparent !important;
  border: 1px solid black !important;
  color: black !important;
}

.tribe-events-c-search__button:hover,
.tribe-events-c-search__button:focus {
  background: transparent !important;
  border-color: black !important;
}

.wp-block-cover__inner-container .tribe-events-schedule .tribe-events-schedule__datetime {
  color: white !important;
  font-family: 'Lora', serif !important;
}

/* Navigation submenu - professional dropdown styling (desktop only) */
@media (min-width: 992px) {
  /* Ensure parent item is positioned for absolute submenu */
  .wp-block-navigation-item.has-child.open-on-click,
  .wp-block-navigation-item.has-child.open-on-hover-click {
    position: relative;
  }

  /* Hide submenu by default */
  .wp-block-navigation-item.has-child.open-on-click .wp-block-navigation__submenu-container,
  .wp-block-navigation-item.has-child.open-on-hover-click .wp-block-navigation__submenu-container {
    display: flex !important;
    flex-direction: column;
    align-items: stretch !important;
    visibility: hidden !important;
    opacity: 0 !important;
    box-sizing: border-box !important;
    position: absolute !important;
    left: 50% !important;
    transform: translateX(-50%) translateY(10px);
    top: calc(100% + 0.5rem) !important;
    z-index: 100 !important;
    /* Lock the dropdown to a fixed width so hover-state padding shifts
       can't recompute max-content and visibly resize the box. */
    width: 260px !important;
    max-width: 260px !important;
    min-width: 260px !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    background: #fff;
    background-clip: padding-box;
    border-radius: 4px !important;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.12), 0 2px 10px rgba(0, 0, 0, 0.08);
    padding: 0.75rem 0 !important;
    margin-top: 0 !important;
    transition: opacity 0.25s ease, visibility 0.25s ease, transform 0.25s ease;
    overflow: visible !important;
    border: 1px solid rgba(0, 0, 0, 0.06);
  }

  /* Dropdown indicator triangle */
  .wp-block-navigation-item.has-child.open-on-click .wp-block-navigation__submenu-container::before,
  .wp-block-navigation-item.has-child.open-on-hover-click .wp-block-navigation__submenu-container::before {
    content: '';
    position: absolute;
    top: -6px;
    left: 50%;
    transform: translateX(-50%);
    width: 12px;
    height: 12px;
    background: #fff;
    border-left: 1px solid rgba(0, 0, 0, 0.06);
    border-top: 1px solid rgba(0, 0, 0, 0.06);
    transform: translateX(-50%) rotate(45deg);
    z-index: 2;
  }

  .wp-block-navigation-item.has-child.open-on-click .wp-block-navigation__submenu-container::after,
  .wp-block-navigation-item.has-child.open-on-hover-click .wp-block-navigation__submenu-container::after {
    content: '';
    position: absolute;
    top: -0.75rem;
    right: 0;
    left: 0;
    height: 0.75rem;
    background: transparent;
  }

  /* Show submenu on hover */
  .wp-block-navigation-item.has-child.open-on-click:hover > .wp-block-navigation__submenu-container,
  .wp-block-navigation-item.has-child.open-on-click:focus-within > .wp-block-navigation__submenu-container,
  .wp-block-navigation-item.has-child.open-on-click.is-submenu-open > .wp-block-navigation__submenu-container,
  .wp-block-navigation-item.has-child.open-on-hover-click:hover > .wp-block-navigation__submenu-container,
  .wp-block-navigation-item.has-child.open-on-hover-click:focus-within > .wp-block-navigation__submenu-container,
  .wp-block-navigation-item.has-child.open-on-hover-click.is-submenu-open > .wp-block-navigation__submenu-container {
    visibility: visible !important;
    opacity: 1 !important;
    transform: translateX(-50%) translateY(0);
  }

  .wp-block-navigation-item.has-child.open-on-click.is-submenu-closing-now > .wp-block-navigation__submenu-container,
  .wp-block-navigation-item.has-child.open-on-hover-click.is-submenu-closing-now > .wp-block-navigation__submenu-container {
    transition: none !important;
  }

  /* Submenu item container styles */
  .wp-block-navigation-item.has-child.open-on-click > .wp-block-navigation__submenu-container > .wp-block-navigation-item,
  .wp-block-navigation-item.has-child.open-on-hover-click > .wp-block-navigation__submenu-container > .wp-block-navigation-item {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* Submenu link styles. Reserve the +0.25rem hover indent up-front via
     extra right padding so the row's content-box width is constant — the
     dropdown won't visibly resize when an item is hovered. */
  .wp-block-navigation-item.has-child.open-on-click > .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content,
  .wp-block-navigation-item.has-child.open-on-hover-click > .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content {
    font-size: 0.9em !important;
    white-space: normal !important;
    line-height: 1.25 !important;
    overflow-wrap: break-word !important;
    padding: 0.65rem 1.75rem 0.65rem 1.5rem !important;
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box !important;
    overflow: visible !important;
    color: #333 !important;
    transition: background-color 0.15s ease, color 0.15s ease, padding-left 0.15s ease;
    text-decoration: none !important;
    position: relative;
  }

  .wp-block-navigation-item.has-child.open-on-click > .wp-block-navigation__submenu-container > .wp-block-navigation-item:first-child > .wp-block-navigation-item__content,
  .wp-block-navigation-item.has-child.open-on-hover-click > .wp-block-navigation__submenu-container > .wp-block-navigation-item:first-child > .wp-block-navigation-item__content {
    border-top-left-radius: 3px;
    border-top-right-radius: 3px;
  }

  .wp-block-navigation-item.has-child.open-on-click > .wp-block-navigation__submenu-container > .wp-block-navigation-item:last-child > .wp-block-navigation-item__content,
  .wp-block-navigation-item.has-child.open-on-hover-click > .wp-block-navigation__submenu-container > .wp-block-navigation-item:last-child > .wp-block-navigation-item__content {
    border-bottom-left-radius: 3px;
    border-bottom-right-radius: 3px;
  }

  /* Hover state for submenu items — bump the left padding by 0.25rem and
     drop the right padding by the same amount so total padding stays constant
     and the row width never changes between rest/hover. */
  .wp-block-navigation-item.has-child.open-on-click > .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover,
  .wp-block-navigation-item.has-child.open-on-hover-click > .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover {
    background-color: rgba(0, 0, 0, 0.03) !important;
    color: var(--wp--preset--color--primary, #8B4513) !important;
    padding-left: 1.75rem !important;
    padding-right: 1.5rem !important;
  }

  /* Active/current page highlight */
  .wp-block-navigation-item.has-child > .wp-block-navigation__submenu-container > .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content {
    color: var(--wp--preset--color--primary, #8B4513) !important;
    font-weight: 500 !important;
  }

  /* Label styles */
  .wp-block-navigation-item.has-child.open-on-click > .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content > .wp-block-navigation-item__label,
  .wp-block-navigation-item.has-child.open-on-hover-click > .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content > .wp-block-navigation-item__label {
    display: block !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
  }

  /* Rotate chevron on hover */
  .wp-block-navigation-item.has-child.open-on-click:hover > .wp-block-navigation__submenu-icon svg,
  .wp-block-navigation-item.has-child.open-on-click:focus-within > .wp-block-navigation__submenu-icon svg,
  .wp-block-navigation-item.has-child.open-on-click.is-submenu-open > .wp-block-navigation__submenu-icon svg,
  .wp-block-navigation-item.has-child.open-on-hover-click:hover > .wp-block-navigation__submenu-icon svg,
  .wp-block-navigation-item.has-child.open-on-hover-click:focus-within > .wp-block-navigation__submenu-icon svg,
  .wp-block-navigation-item.has-child.open-on-hover-click.is-submenu-open > .wp-block-navigation__submenu-icon svg {
    transform: rotate(180deg);
  }

  .wp-block-navigation__submenu-icon svg {
    transition: transform 0.25s ease;
  }

  /* Submenu toggle button styling */
  .wp-block-navigation__submenu-icon.wp-block-navigation-submenu__toggle {
    padding: 0.25rem !important;
    margin-left: 0.25rem !important;
    background: transparent !important;
    border: none !important;
  }

  .wp-block-navigation__submenu-icon svg path {
    stroke: currentColor;
  }
}

/* WordPress Embed Block - Fix responsive aspect ratio */
/* perfmatters:used - force include in unused CSS removal */
figure.wp-block-embed {
  display: block !important;
  margin: 0 0 1em !important;
  max-width: 100% !important;
  overflow-wrap: break-word !important;
}

figure.wp-block-embed .wp-block-embed__wrapper {
  position: relative !important;
  width: 100% !important;
  display: block !important;
  height: 0 !important;
  overflow: hidden !important;
}

/* 16:9 aspect ratio - most common for YouTube */
figure.wp-block-embed.wp-embed-aspect-16-9 .wp-block-embed__wrapper {
  padding-top: 56.25% !important;
}

figure.wp-block-embed.wp-embed-aspect-21-9 .wp-block-embed__wrapper {
  padding-top: 42.85% !important;
}

figure.wp-block-embed.wp-embed-aspect-18-9 .wp-block-embed__wrapper {
  padding-top: 50% !important;
}

figure.wp-block-embed.wp-embed-aspect-4-3 .wp-block-embed__wrapper {
  padding-top: 75% !important;
}

figure.wp-block-embed.wp-embed-aspect-1-1 .wp-block-embed__wrapper {
  padding-top: 100% !important;
}

figure.wp-block-embed.wp-has-aspect-ratio .wp-block-embed__wrapper iframe {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
}

.auto-width :is(img,video) {
  height: auto !important;
}


span:where(.wc-block-mini-cart__badge) {
  background: var(--wp--preset--color--primary) !important;
  color: white !important;
}
.wc-block-mini-cart__badge {
    color: white !important;
}

/* WooCommerce My Account Page Styling */
.woocommerce-account .woocommerce {
  padding-left: clamp(1rem, 4vw, 2rem);
  padding-right: clamp(1rem, 4vw, 2rem);
}

/* Login/Register form container - limit width and center */
.woocommerce-account .u-columns {
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}

/* Single login form (when registration is disabled) */
.woocommerce-account .woocommerce-form-login {
  max-width: 480px !important;
  margin: auto !important;
}

/* Center the login heading */
.woocommerce-account .woocommerce > h2 {
  text-align: center !important;
}

/* Individual column forms */
.woocommerce-account .u-column1,
.woocommerce-account .u-column2 {
  max-width: 420px;
}

/* My Account dashboard welcome message */
.my-account-welcome {
  margin-bottom: 2rem;
}

.my-account-welcome .welcome-greeting {
  font-family: 'Lora', Georgia, serif;
  font-size: 1.5rem;
  font-weight: 500;
  color: #2c2c2c;
  margin: 0 0 1rem 0;
}

.my-account-welcome p {
  color: #5c5c5c;
  line-height: 1.7;
  margin: 0;
}

/* My Account dashboard help message */
.my-account-help-message {
  margin-top: 2.5rem;
}

.my-account-help-message h3 {
  font-family: 'Lora', Georgia, serif;
  font-size: 1.5rem;
  font-weight: 500;
  color: #2c2c2c;
  margin: 0 0 1rem 0;
}

.my-account-help-message p {
  color: #5c5c5c;
  line-height: 1.7;
  margin: 0 0 1rem 0;
}

.my-account-help-message .contact-info {
  margin-bottom: 0;
}

.my-account-help-message .contact-info a {
  color: #8b7765;
  text-decoration: none;
  transition: color 0.2s ease;
}

.my-account-help-message .contact-info a:hover {
  color: #5c4a3d;
}

/* My Account membership welcome */
.membership-welcome {
  margin-bottom: 1.5rem;
}

.membership-welcome .welcome-greeting {
  font-family: 'Lora', Georgia, serif;
  font-size: 1.5rem;
  font-weight: 500;
  color: #2c2c2c;
  margin: 0;
}

/* My Account membership card */
.membership-card {
  padding: 1.5rem;
  background: linear-gradient(180deg, #faf8f5 0%, #f5f2ed 100%);
  border: 1px solid rgba(139, 119, 101, 0.15);
  border-radius: 4px;
  margin-bottom: 1.5rem;
}

.membership-card .membership-header {
  margin-bottom: 1rem;
}

.membership-card .membership-label {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #8b7765;
  margin: 0 0 0.25rem 0;
}

.membership-card h3 {
  font-family: 'Lora', Georgia, serif;
  font-size: 1.25rem;
  font-weight: 500;
  color: #2c2c2c;
  margin: 0;
}

.membership-card .membership-details p {
  color: #5c5c5c;
  margin: 0 0 0.5rem 0;
}

.membership-card .membership-details p:last-child {
  margin-bottom: 0;
}

.membership-card .membership-status {
  display: inline-block;
  padding: 0.25rem 0.75rem;
  border-radius: 3px;
  font-size: 0.875rem;
  font-weight: 500;
}

.membership-card .membership-status.active {
  background: rgba(76, 140, 74, 0.15);
  color: #3d7a3a;
}

.membership-card .membership-tagline {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(139, 119, 101, 0.1);
  color: #5c5c5c;
  line-height: 1.7;
}

.membership-card .membership-tagline p {
  margin: 0;
}

/* My Account membership benefits */
.membership-benefits {
  margin-top: 2rem;
}

.membership-benefits h3 {
  font-family: 'Lora', Georgia, serif;
  font-size: 1.25rem;
  font-weight: 500;
  color: #2c2c2c;
  margin: 0 0 1rem 0;
}

.membership-benefits ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.membership-benefits li {
  position: relative;
  padding-left: 1.5rem;
  margin-bottom: 0.75rem;
  color: #5c5c5c;
  line-height: 1.6;
}

.membership-benefits li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: #8b7765;
  font-weight: 600;
}

.membership-benefits p {
  color: #5c5c5c;
  line-height: 1.7;
  margin: 0 0 0.75rem 0;
}

/* ================================================
   Mobile Header + Overlay Navigation
   ================================================ */
@media (max-width: 991px) {
  body {
    --stw-mobile-header-top: 0px;
    --stw-mobile-header-height: var(--wp--custom--header-height--mobile, 113px);
    --stw-mobile-header-gutter: clamp(1.5rem, 7vw, 2.5rem);
    --stw-mobile-menu-duration: 300ms;
    --stw-mobile-menu-slide-duration: 300ms;
    --stw-mobile-menu-slide-ease: cubic-bezier(0.45, 0, 0.2, 1);
    --stw-mobile-menu-start: calc(var(--stw-mobile-header-top) + var(--stw-mobile-header-height));
  }

  body.mobile-menu-open,
  body.mobile-menu-closing {
    overflow: hidden !important;
  }

  body:not(.detached-header) header.wp-block-template-part,
  body.mobile-menu-open:not(.detached-header) header.wp-block-template-part {
    top: 0 !important;
  }

  body.mobile-menu-open header.wp-block-template-part,
  body.mobile-menu-closing header.wp-block-template-part,
  body.mobile-menu-open #header-left-logo,
  body.mobile-menu-closing #header-left-logo {
    background: var(--wp--preset--color--background) !important;
    background-image: none !important;
  }

  body.mobile-menu-open #header-left-logo,
  body.mobile-menu-closing #header-left-logo {
    box-shadow: 0 1px 0 rgba(139, 119, 101, 0.15) !important;
    z-index: 10080 !important;
  }

  #header-left-logo {
    position: relative !important;
    min-height: var(--stw-mobile-header-height) !important;
    width: 100% !important;
    box-sizing: border-box !important;
    padding-right: var(--stw-mobile-header-gutter) !important;
    padding-left: var(--stw-mobile-header-gutter) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: transparent !important;
    background-image: none !important;
    transition:
      background-color var(--stw-mobile-menu-duration) ease,
      color var(--stw-mobile-menu-duration) ease !important;
  }

  body.detached-header header.wp-block-template-part,
  body.detached-header #header-left-logo {
    background: var(--wp--preset--color--background) !important;
    background-image: none !important;
  }

  body.detached-header #header-left-logo:has(.wp-block-navigation__responsive-container.is-menu-open:not(.is-mobile-menu-closing)),
  body.detached-header.mobile-menu-open:not(.mobile-menu-closing) #header-left-logo,
  body.detached-header.mobile-menu-closing #header-left-logo {
    background: var(--wp--preset--color--background) !important;
    background-image: none !important;
  }

  #header-left-logo > .wp-block-minimly-minimly-dynamic-logo {
    display: block !important;
    aspect-ratio: 195 / 49 !important;
  }

  #header-left-logo > .wp-block-minimly-minimly-dynamic-logo .m-dark-logo,
  #header-left-logo > .wp-block-minimly-minimly-dynamic-logo .m-light-logo {
    position: absolute !important;
    inset: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: opacity var(--stw-mobile-menu-duration) ease, visibility var(--stw-mobile-menu-duration) ease !important;
  }

  #header-left-logo > .wp-block-minimly-minimly-dynamic-logo .m-dark-logo img,
  #header-left-logo > .wp-block-minimly-minimly-dynamic-logo .m-light-logo img {
    width: 100% !important;
    height: auto !important;
    max-height: 100% !important;
    object-fit: contain !important;
  }

  #header-left-logo > .wp-block-minimly-minimly-dynamic-logo .m-dark-logo {
    opacity: 1 !important;
    visibility: visible !important;
  }

  #header-left-logo > .wp-block-minimly-minimly-dynamic-logo .m-light-logo {
    opacity: 0 !important;
    visibility: hidden !important;
  }

  body.light-header:not(.detached-header):not(.mobile-menu-open)
    header.wp-block-template-part
    #header-left-logo:not(:has(.wp-block-navigation__responsive-container.is-menu-open))
    > .wp-block-minimly-minimly-dynamic-logo
    .m-dark-logo {
    opacity: 0 !important;
    visibility: hidden !important;
  }

  body.light-header:not(.detached-header):not(.mobile-menu-open)
    header.wp-block-template-part
    #header-left-logo:not(:has(.wp-block-navigation__responsive-container.is-menu-open))
    > .wp-block-minimly-minimly-dynamic-logo
    .m-light-logo {
    opacity: 1 !important;
    visibility: visible !important;
  }

  body.light-header:not(.detached-header).mobile-menu-closing
    header.wp-block-template-part
    #header-left-logo
    > .wp-block-minimly-minimly-dynamic-logo
    .m-dark-logo {
    opacity: 0 !important;
    visibility: hidden !important;
  }

  body.light-header:not(.detached-header).mobile-menu-closing
    header.wp-block-template-part
    #header-left-logo
    > .wp-block-minimly-minimly-dynamic-logo
    .m-light-logo {
    opacity: 1 !important;
    visibility: visible !important;
  }

  #header-left-logo:has(.wp-block-navigation__responsive-container.is-menu-open:not(.is-mobile-menu-closing))
    > .wp-block-minimly-minimly-dynamic-logo
    .m-dark-logo,
  body.mobile-menu-open:not(.mobile-menu-closing) header.wp-block-template-part .m-dark-logo {
    opacity: 1 !important;
    visibility: visible !important;
  }

  #header-left-logo:has(.wp-block-navigation__responsive-container.is-menu-open:not(.is-mobile-menu-closing))
    > .wp-block-minimly-minimly-dynamic-logo
    .m-light-logo,
  body.mobile-menu-open:not(.mobile-menu-closing) header.wp-block-template-part .m-light-logo {
    opacity: 0 !important;
    visibility: hidden !important;
  }

  #header-left-logo > .wp-block-minimly-minimly-dynamic-logo {
    position: relative !important;
    z-index: 10070 !important;
    flex: 0 0 auto !important;
    width: 195px !important;
    margin-right: auto !important;
    margin-left: auto !important;
  }

  body.detached-header #header-left-logo,
  body.detached-header #header-left-logo > .wp-block-group.is-content-justification-right {
    color: #2c2c2c !important;
  }

  body.detached-header header.wp-block-template-part.stw-header-entering #header-left-logo,
  body.detached-header
    header.wp-block-template-part.stw-header-entering
    #header-left-logo
    > .wp-block-group.is-content-justification-right,
  body.detached-header
    header.wp-block-template-part.stw-header-entering
    #header-left-logo
    .wp-block-navigation__responsive-container-open,
  body.detached-header
    header.wp-block-template-part.stw-header-entering
    #header-left-logo
    .wp-block-woocommerce-customer-account
    .wc-block-customer-account__link,
  body.detached-header
    header.wp-block-template-part.stw-header-entering
    #header-left-logo
    .wc-block-mini-cart__button {
    color: #2c2c2c !important;
    transition: none !important;
  }

  body.detached-header
    header.wp-block-template-part.stw-header-entering
    #header-left-logo
    > .wp-block-minimly-minimly-dynamic-logo
    .m-dark-logo {
    opacity: 1 !important;
    visibility: visible !important;
    transition: none !important;
  }

  body.detached-header
    header.wp-block-template-part.stw-header-entering
    #header-left-logo
    > .wp-block-minimly-minimly-dynamic-logo
    .m-light-logo {
    opacity: 0 !important;
    visibility: hidden !important;
    transition: none !important;
  }

  #header-left-logo > .wp-block-group.is-content-justification-right {
    position: absolute !important;
    inset: 0 !important;
    z-index: 10050 !important;
    width: 100% !important;
    box-sizing: border-box !important;
    padding-right: var(--stw-mobile-header-gutter) !important;
    padding-left: var(--stw-mobile-header-gutter) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 0.4rem !important;
    pointer-events: none !important;
    transition: color var(--stw-mobile-menu-duration) ease !important;
  }

  body.mobile-menu-open:not(.mobile-menu-closing) #header-left-logo > .wp-block-group.is-content-justification-right,
  #header-left-logo:has(.wp-block-navigation__responsive-container.is-menu-open:not(.is-mobile-menu-closing))
    > .wp-block-group.is-content-justification-right {
    color: #2c2c2c !important;
  }

  body.light-header:not(.detached-header).mobile-menu-closing
    #header-left-logo
    > .wp-block-group.is-content-justification-right {
    color: #fff !important;
  }

  body.light-header:not(.detached-header).mobile-menu-closing
    #header-left-logo
    .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-container-close {
    color: #fff !important;
  }

  #header-left-logo > .wp-block-group.is-content-justification-right > * {
    pointer-events: auto !important;
  }

  #header-left-logo > .wp-block-group.is-content-justification-right > .wp-block-navigation {
    order: 0 !important;
    flex: 0 0 44px !important;
    width: 44px !important;
    margin-right: auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
  }

  #header-left-logo .wp-block-navigation__responsive-container-open,
  #header-left-logo .wp-block-navigation__responsive-container-close,
  #header-left-logo .wp-block-woocommerce-customer-account .wc-block-customer-account__link,
  #header-left-logo .wc-block-mini-cart__button {
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: inherit !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    -webkit-tap-highlight-color: transparent !important;
    touch-action: manipulation !important;
    transition: color var(--stw-mobile-menu-duration) ease, opacity var(--stw-mobile-menu-duration) ease !important;
  }

  #header-left-logo .wp-block-navigation__responsive-container-open {
    position: relative !important;
    transition:
      color var(--stw-mobile-menu-duration) ease,
      opacity var(--stw-mobile-menu-duration) ease,
      transform var(--stw-mobile-menu-slide-duration) var(--stw-mobile-menu-slide-ease) !important;
  }

  #header-left-logo .wp-block-navigation__responsive-container-open::before {
    content: '' !important;
    width: 24px !important;
    height: 24px !important;
    display: block !important;
    background: currentColor !important;
    -webkit-mask: url('assets/icons/wine-hamburger.svg') center / contain no-repeat !important;
    mask: url('assets/icons/wine-hamburger.svg') center / contain no-repeat !important;
  }

  #header-left-logo .wp-block-navigation__responsive-container-open > svg {
    width: 0 !important;
    height: 0 !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }

  #header-left-logo .wp-block-navigation__responsive-container-open svg,
  #header-left-logo .wp-block-navigation__responsive-container-close svg,
  #header-left-logo .wp-block-woocommerce-customer-account svg,
  #header-left-logo .wc-block-mini-cart__button svg,
  #header-left-logo .wp-block-navigation__responsive-container-open svg path,
  #header-left-logo .wp-block-navigation__responsive-container-close svg path,
  #header-left-logo .wp-block-woocommerce-customer-account svg *,
  #header-left-logo .wc-block-mini-cart__button svg path {
    transition: none !important;
  }

  #header-left-logo .wp-block-woocommerce-customer-account,
  #header-left-logo .wp-block-woocommerce-customer-account a,
  #header-left-logo .wp-block-woocommerce-customer-account svg,
  #header-left-logo .wp-block-woocommerce-customer-account svg * {
    color: inherit !important;
    fill: currentColor !important;
    stroke: currentColor !important;
  }

  #header-left-logo .wp-block-woocommerce-customer-account .wc-block-customer-account__link {
    transition: none !important;
  }

  #header-left-logo .wp-block-navigation__responsive-container-open:active,
  #header-left-logo .wp-block-navigation__responsive-container-close:active,
  #header-left-logo .wp-block-woocommerce-customer-account .wc-block-customer-account__link:active,
  #header-left-logo .wc-block-mini-cart__button:active {
    background: transparent !important;
  }

  #header-left-logo .wp-block-woocommerce-customer-account {
    order: 2 !important;
    flex: 0 0 44px !important;
    width: 44px !important;
    margin-left: 0 !important;
    position: relative !important;
    z-index: 10070 !important;
  }

  #header-left-logo .wc-block-mini-cart {
    order: 3 !important;
    flex: 0 0 44px !important;
    width: 44px !important;
    position: relative !important;
    z-index: 10070 !important;
  }

  #header-left-logo .wc-block-mini-cart.is-empty-cart {
    display: none !important;
  }

  #header-left-logo:has(.wc-block-mini-cart.has-cart-items) .wp-block-woocommerce-customer-account,
  #header-left-logo:has(.wp-block-woocommerce-mini-cart.has-cart-items) .wp-block-woocommerce-customer-account {
    display: none !important;
  }

  #header-left-logo .wp-block-navigation:has(.wp-block-navigation__responsive-container.is-menu-open)
    .wp-block-navigation__responsive-container-open {
    opacity: 0 !important;
    pointer-events: none !important;
  }

  body.detached-header
    #header-left-logo
    .wp-block-navigation:has(.wp-block-navigation__responsive-container.is-menu-open)
    .wp-block-navigation__responsive-container-open {
    transform: rotate(38deg) scale(0.82) !important;
  }

  body.detached-header
    #header-left-logo
    .wp-block-navigation:has(.wp-block-navigation__responsive-container.is-menu-open.is-mobile-menu-closing)
    .wp-block-navigation__responsive-container-open {
    opacity: 1 !important;
    transform: rotate(0deg) scale(1) !important;
    pointer-events: none !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open {
    position: fixed !important;
    inset: 0 !important;
    top: var(--stw-mobile-header-top) !important;
    margin-top: 0 !important;
    width: 100vw !important;
    height: calc(100vh - var(--stw-mobile-header-top)) !important;
    height: calc(100dvh - var(--stw-mobile-header-top)) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
    z-index: 10040 !important;
    isolation: isolate !important;
    background: var(--wp--preset--color--background) !important;
    background-image: none !important;
    transform: none !important;
    animation: none !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open.is-mobile-menu-closing {
    animation: none !important;
    pointer-events: none !important;
  }

  body.detached-header .wp-block-navigation__responsive-container.is-menu-open {
    background: var(--wp--preset--color--background) !important;
    background-image: none !important;
    transform: none !important;
    animation: none !important;
  }

  body.detached-header .wp-block-navigation__responsive-container.is-menu-open.is-mobile-menu-closing {
    animation: none !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open::before {
    content: '' !important;
    position: fixed !important;
    inset: 0 !important;
    z-index: 0 !important;
    background: var(--wp--preset--color--background) !important;
    background-image: none !important;
    pointer-events: none !important;
    animation: stwMobileMenuSlideIn var(--stw-mobile-menu-slide-duration) var(--stw-mobile-menu-slide-ease) both !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open.is-mobile-menu-closing::before {
    animation: stwMobileMenuSlideOut var(--stw-mobile-menu-slide-duration) var(--stw-mobile-menu-slide-ease) both !important;
  }

  @keyframes stwMobileMenuFadeIn {
    from {
      opacity: 0;
    }

    to {
      opacity: 1;
    }
  }

  @keyframes stwMobileMenuFadeOut {
    from {
      opacity: 1;
    }

    to {
      opacity: 0;
    }
  }

  @keyframes stwMobileMenuSlideIn {
    from {
      transform: translateY(-100vh);
    }

    to {
      transform: translateY(0);
    }
  }

  @keyframes stwMobileMenuSlideOut {
    from {
      transform: translateY(0);
    }

    to {
      transform: translateY(-100vh);
    }
  }

  @keyframes stwMobileCloseIn {
    from {
      opacity: 0;
      transform: rotate(-38deg) scale(0.82);
    }

    to {
      opacity: 1;
      transform: rotate(0deg) scale(1);
    }
  }

  @keyframes stwMobileCloseOut {
    from {
      opacity: 1;
      transform: rotate(0deg) scale(1);
    }

    to {
      opacity: 0;
      transform: rotate(38deg) scale(0.82);
    }
  }

  .wp-block-navigation__responsive-container .wp-block-navigation__responsive-dialog {
    position: relative !important;
    height: auto !important;
    min-height: 100% !important;
    z-index: 1 !important;
    background: var(--wp--preset--color--background) !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: visible !important;
  }

  body.detached-header
    .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-dialog {
    background: transparent !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
    position: fixed !important;
    top: calc(var(--stw-mobile-header-top) + ((var(--stw-mobile-header-height) - 44px) / 2)) !important;
    right: auto !important;
    left: var(--stw-mobile-header-gutter) !important;
    z-index: 10090 !important;
    color: inherit !important;
    transform-origin: center !important;
    -webkit-tap-highlight-color: transparent !important;
    transition: color var(--stw-mobile-menu-duration) ease, opacity var(--stw-mobile-menu-duration) ease !important;
    animation: stwMobileCloseIn var(--stw-mobile-menu-duration) ease both !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open.is-mobile-menu-closing
    .wp-block-navigation__responsive-container-close {
    animation: stwMobileCloseOut var(--stw-mobile-menu-duration) ease both !important;
  }

  body.detached-header
    .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-container-close {
    animation: stwMobileCloseIn var(--stw-mobile-menu-slide-duration) var(--stw-mobile-menu-slide-ease) both !important;
  }

  body.detached-header
    .wp-block-navigation__responsive-container.is-menu-open.is-mobile-menu-closing
    .wp-block-navigation__responsive-container-close {
    animation: stwMobileCloseOut var(--stw-mobile-menu-slide-duration) var(--stw-mobile-menu-slide-ease) both !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close:hover {
    color: currentColor !important;
  }

  body.light-header:not(.detached-header):not(.mobile-menu-open)
    header.wp-block-template-part
    #header-left-logo
    .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-container-close,
  body.light-header:not(.detached-header):not(.mobile-menu-open)
    header.wp-block-template-part
    #header-left-logo
    .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-container-close svg,
  body.light-header:not(.detached-header):not(.mobile-menu-open)
    header.wp-block-template-part
    #header-left-logo
    .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-container-close svg path {
    color: #fff !important;
    fill: #fff !important;
  }

  body.dark-header:not(.detached-header):not(.mobile-menu-open)
    header.wp-block-template-part
    #header-left-logo
    .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-container-close,
  body.dark-header:not(.detached-header):not(.mobile-menu-open)
    header.wp-block-template-part
    #header-left-logo
    .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-container-close svg,
  body.dark-header:not(.detached-header):not(.mobile-menu-open)
    header.wp-block-template-part
    #header-left-logo
    .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-container-close svg path {
    color: #000 !important;
    fill: #000 !important;
  }

  body.mobile-menu-open:not(.mobile-menu-closing)
    header.wp-block-template-part
    #header-left-logo
    .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-container-close,
  body.mobile-menu-open:not(.mobile-menu-closing)
    header.wp-block-template-part
    #header-left-logo
    .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-container-close svg,
  body.mobile-menu-open:not(.mobile-menu-closing)
    header.wp-block-template-part
    #header-left-logo
    .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-container-close svg path {
    color: #2c2c2c !important;
    fill: #2c2c2c !important;
  }

  .wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-content {
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    min-height: 100% !important;
    flex: 0 0 auto !important;
    box-sizing: border-box !important;
    padding: calc(var(--stw-mobile-header-height) + 0.35rem) var(--stw-mobile-header-gutter) 4rem !important;
    background: var(--wp--preset--color--background) !important;
    overflow: visible !important;
    touch-action: pan-y !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-container-content {
    animation: stwMobileMenuSlideIn var(--stw-mobile-menu-slide-duration) var(--stw-mobile-menu-slide-ease) both !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open.is-mobile-menu-closing
    .wp-block-navigation__responsive-container-content {
    animation: stwMobileMenuSlideOut var(--stw-mobile-menu-slide-duration) var(--stw-mobile-menu-slide-ease) both !important;
  }

  .wp-block-navigation__responsive-container,
  .wp-block-navigation__responsive-container * {
    --navigation-layout-justification-setting: flex-start !important;
    -webkit-tap-highlight-color: transparent !important;
  }

  .wp-block-navigation__responsive-container .wp-block-navigation__container {
    width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 0 !important;
  }

  .wp-block-navigation__responsive-container .stw-mobile-account-menu-greeting {
    display: block !important;
    width: 100% !important;
    padding: 0 0 0.9rem !important;
    margin: 0 0 0.25rem !important;
    border: 0 !important;
    list-style: none !important;
  }

  .wp-block-navigation__responsive-container .stw-mobile-account-menu-greeting__salutation {
    font-family: 'Lora', Georgia, serif !important;
    font-size: 0.88rem !important;
    font-style: normal !important;
    font-weight: 400 !important;
    line-height: 1.3 !important;
    letter-spacing: 0.02em !important;
    color: rgba(44, 44, 44, 0.62) !important;
  }

  .wp-block-navigation__responsive-container .wp-block-navigation-item {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 44px !important;
    column-gap: 0.5rem !important;
    align-items: center !important;
    justify-content: flex-start !important;
    border-bottom: 1px solid rgba(139, 119, 101, 0.15) !important;
    text-align: left !important;
  }

  .wp-block-navigation__responsive-container .wp-block-navigation__container > .wp-block-navigation-item:first-child {
    border-top: 1px solid rgba(139, 119, 101, 0.15) !important;
  }

  .wp-block-navigation__responsive-container .wp-block-navigation-item.has-child {
    cursor: pointer !important;
  }

  .wp-block-navigation__responsive-container .wp-block-navigation-item > .wp-block-navigation-item__content {
    grid-column: 1 !important;
    min-width: 0 !important;
    padding: 1.25rem 0 !important;
    text-decoration: none !important;
    font-family: 'Lora', Georgia, serif !important;
    font-size: 1.25rem !important;
    font-weight: 400 !important;
    letter-spacing: 0.01em !important;
    color: #2c2c2c !important;
    text-align: left !important;
    order: 1 !important;
    transition: color 0.2s ease !important;
    -webkit-tap-highlight-color: transparent !important;
  }

  .wp-block-navigation__responsive-container .wp-block-navigation-item > .wp-block-navigation-item__content:hover {
    color: #8b7765 !important;
  }

  .wp-block-navigation__responsive-container .mobile-submenu-arrow {
    grid-column: 2 !important;
    justify-self: end !important;
    order: 2 !important;
  }

  .wp-block-navigation__responsive-container .wp-block-navigation__submenu-icon {
    display: none !important;
  }

  .mobile-submenu-arrow {
    width: 44px !important;
    height: 44px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: transparent !important;
    border: none !important;
    cursor: pointer !important;
    color: #8b7765 !important;
    flex-shrink: 0 !important;
    -webkit-tap-highlight-color: transparent !important;
    touch-action: manipulation !important;
    transition: transform 0.3s ease, color 0.2s ease !important;
  }

  .wp-block-navigation__responsive-container .wp-block-navigation-item > .wp-block-navigation-item__content:active,
  .wp-block-navigation__responsive-container .wp-block-navigation__submenu-container > .wp-block-navigation-item > a:active,
  .mobile-submenu-arrow:active {
    background: transparent !important;
  }

  .mobile-submenu-arrow:hover {
    color: #5c4a3d !important;
  }

  .mobile-submenu-arrow svg {
    width: 20px !important;
    height: 20px !important;
    stroke-width: 1.5 !important;
  }

  .wp-block-navigation__responsive-container .wp-block-navigation-item.submenu-expanded > .mobile-submenu-arrow {
    transform: rotate(180deg) !important;
  }

  .wp-block-navigation__responsive-container .wp-block-navigation__submenu-container {
    grid-column: 1 / -1 !important;
    order: 3 !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0 !important;
    padding: 0 0 0 1.5rem !important;
    margin: 0 0 0 0.5rem !important;
    background: rgba(139, 119, 101, 0.04) !important;
    position: relative !important;
    inset: auto !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    transform: none !important;
    opacity: 0 !important;
    visibility: visible !important;
    box-shadow: none !important;
    border: none !important;
    border-left: 0 !important;
    z-index: auto !important;
    overflow: hidden !important;
    pointer-events: none !important;
    transition:
      max-height 280ms ease,
      opacity 180ms ease,
      padding 280ms ease,
      margin 280ms ease !important;
  }

  .wp-block-navigation__responsive-container .wp-block-navigation__submenu-container::before {
    content: '' !important;
    position: absolute !important;
    top: 0.5rem !important;
    bottom: 0.6rem !important;
    left: 0 !important;
    width: 0 !important;
    border-left: 2px solid rgba(139, 119, 101, 0.2) !important;
  }

  .wp-block-navigation__responsive-container .wp-block-navigation-item.submenu-expanded > .wp-block-navigation__submenu-container {
    max-height: 32rem !important;
    padding: 0.5rem 0 1.35rem 1.5rem !important;
    margin: 0 0 0.6rem 0.5rem !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  .wp-block-navigation__responsive-container .wp-block-navigation__submenu-container > .wp-block-navigation-item {
    display: block !important;
    border-bottom: none !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    min-height: 0 !important;
  }

  .wp-block-navigation__responsive-container .wp-block-navigation__submenu-container > .wp-block-navigation-item > a {
    padding: 0.6rem 0 !important;
    display: block !important;
    width: 100% !important;
    font-family: 'Lora', Georgia, serif !important;
    font-size: 1rem !important;
    font-weight: 400 !important;
    color: #5c5c5c !important;
    transition: color 0.2s ease !important;
  }

  .wp-block-navigation__responsive-container .wp-block-navigation__submenu-container > .wp-block-navigation-item > a:hover {
    color: #8b7765 !important;
  }

  .wp-block-navigation__responsive-container .stw-mobile-account-menu-section {
    display: block !important;
    width: 100% !important;
    padding: 1.65rem 0 0 !important;
    margin: 0.45rem 0 0 !important;
    border: 0 !important;
    list-style: none !important;
  }

  .wp-block-navigation__responsive-container .stw-mobile-account-menu-section__divider {
    width: 100% !important;
    height: 1px !important;
    margin-bottom: 1.1rem !important;
    background: rgba(139, 119, 101, 0.22) !important;
  }

  .wp-block-navigation__responsive-container .stw-mobile-account-menu-section__eyebrow {
    margin-bottom: 0.5rem !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
    font-size: 0.68rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.2em !important;
    text-transform: uppercase !important;
    color: rgba(44, 44, 44, 0.58) !important;
  }

  .wp-block-navigation__responsive-container .stw-mobile-account-menu-section__list {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    list-style: none !important;
  }

  .wp-block-navigation__responsive-container .stw-mobile-account-menu-section__list li {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border-bottom: 1px solid rgba(139, 119, 101, 0.15) !important;
    list-style: none !important;
  }

  .wp-block-navigation__responsive-container .stw-mobile-account-menu-section__list a {
    display: block !important;
    width: 100% !important;
    padding: 0.85rem 0 !important;
    font-family: 'Lora', Georgia, serif !important;
    font-size: 1.05rem !important;
    font-weight: 400 !important;
    line-height: 1.25 !important;
    color: #2c2c2c !important;
    text-decoration: none !important;
  }

  .wp-block-navigation__responsive-container .stw-mobile-account-menu-section__list a:hover {
    color: #8b7765 !important;
  }

  .mobile-sidebar-footer {
    display: none !important;
  }
}

/* ================================================
   WooCommerce Notice Banners
   ================================================ */

/* Base notice styling */
.woocommerce-message,
.woocommerce-error,
.woocommerce-info,
.wc-block-components-notice-banner {
  font-family: 'Lora', Georgia, serif !important;
  font-size: 0.95rem !important;
  line-height: 1.6 !important;
  padding: 1.25rem 1.5rem !important;
  margin-bottom: 1.5rem !important;
  border-radius: 4px !important;
  border: none !important;
  position: relative !important;
}

/* Remove default WooCommerce icon styling */
.woocommerce-message::before,
.woocommerce-error::before,
.woocommerce-info::before {
  display: none !important;
}

/* Success notice - warm green with cream undertone */
.woocommerce-message,
.wc-block-components-notice-banner.is-success {
  background: linear-gradient(180deg, #f5f9f4 0%, #eef5ed 100%) !important;
  color: #3d6b3a !important;
  border-left: 3px solid #5a8f56 !important;
}

.woocommerce-message a,
.wc-block-components-notice-banner.is-success a {
  color: #3d6b3a !important;
  text-decoration: underline !important;
  font-weight: 500 !important;
}

.woocommerce-message a:hover,
.wc-block-components-notice-banner.is-success a:hover {
  color: #2d5129 !important;
}

/* Error notice - warm red/burgundy */
.woocommerce-error,
.wc-block-components-notice-banner.is-error {
  background: linear-gradient(180deg, #fdf6f5 0%, #f9efed 100%) !important;
  color: #8b3a3a !important;
  border-left: 3px solid #c45b5b !important;
}

.woocommerce-error li,
.wc-block-components-notice-banner.is-error li {
  color: #8b3a3a !important;
}

.woocommerce-error a,
.wc-block-components-notice-banner.is-error a {
  color: #8b3a3a !important;
  text-decoration: underline !important;
  font-weight: 500 !important;
}

.woocommerce-error a:hover,
.wc-block-components-notice-banner.is-error a:hover {
  color: #6b2a2a !important;
}

/* Info notice - warm brown/tan matching theme */
.woocommerce-info,
.wc-block-components-notice-banner.is-info {
  background: linear-gradient(180deg, #faf8f5 0%, #f5f2ed 100%) !important;
  color: #5c4a3d !important;
  border-left: 3px solid #8b7765 !important;
}

.woocommerce-info a,
.wc-block-components-notice-banner.is-info a {
  color: #8b7765 !important;
  text-decoration: underline !important;
  font-weight: 500 !important;
}

.woocommerce-info a:hover,
.wc-block-components-notice-banner.is-info a:hover {
  color: #5c4a3d !important;
}

/* Warning notice */
.wc-block-components-notice-banner.is-warning {
  background: linear-gradient(180deg, #fdfaf3 0%, #f9f5e8 100%) !important;
  color: #7a6530 !important;
  border-left: 3px solid #c9a84c !important;
}

.wc-block-components-notice-banner.is-warning a {
  color: #7a6530 !important;
  text-decoration: underline !important;
  font-weight: 500 !important;
}

/* Notice buttons (View Cart, etc) */
.woocommerce-message .button,
.woocommerce-message .wc-forward,
.woocommerce-info .button,
.wc-block-components-notice-banner .wc-block-components-button {
  background: transparent !important;
  color: inherit !important;
  border: 1px solid currentColor !important;
  padding: 0.5rem 1rem !important;
  font-size: 0.85rem !important;
  font-family: inherit !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  border-radius: 2px !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
  float: right !important;
  margin-left: 1rem !important;
}

.woocommerce-message .button:hover,
.woocommerce-message .wc-forward:hover,
.woocommerce-info .button:hover,
.wc-block-components-notice-banner .wc-block-components-button:hover {
  background: rgba(0, 0, 0, 0.05) !important;
}

/* Block notice banner SVG icon styling */
.wc-block-components-notice-banner__content svg,
.wc-block-components-notice-banner > svg {
  width: 20px !important;
  height: 20px !important;
  margin-right: 0.75rem !important;
  flex-shrink: 0 !important;
}

/* Success icon */
.wc-block-components-notice-banner.is-success > svg,
.wc-block-components-notice-banner.is-success svg {
  background-color: #5a8f56 !important;
  fill: #fff !important;
  color: #fff !important;
  border-radius: 50% !important;
}

/* Error icon */
.wc-block-components-notice-banner.is-error > svg,
.wc-block-components-notice-banner.is-error svg {
  background-color: #c45b5b !important;
  fill: #fff !important;
  color: #fff !important;
  border-radius: 50% !important;
}

/* Info icon */
.wc-block-components-notice-banner.is-info > svg,
.wc-block-components-notice-banner.is-info svg {
  background-color: #8b7765 !important;
  fill: #fff !important;
  color: #fff !important;
  border-radius: 50% !important;
}

/* Warning icon */
.wc-block-components-notice-banner.is-warning > svg,
.wc-block-components-notice-banner.is-warning svg {
  background-color: #c9a84c !important;
  fill: #fff !important;
  color: #fff !important;
  border-radius: 50% !important;
}

/* Remove default list styling from error notices */
.woocommerce-error {
  list-style: none !important;
  padding-left: 1.5rem !important;
}

/* Store notice banner */
.woocommerce-store-notice,
.demo_store {
  background: #5c4a3d !important;
  color: #fff !important;
  font-family: 'Lora', Georgia, serif !important;
  font-size: 0.9rem !important;
  padding: 0.75rem 1.5rem !important;
}

.woocommerce-store-notice a,
.demo_store a {
  color: #fff !important;
  text-decoration: underline !important;
}

/* Clear floats after notices with buttons */
.woocommerce-message::after {
  content: "" !important;
  display: table !important;
  clear: both !important;
}

/* ================================================
   My Account - Addresses Page
   ================================================ */

/* Stack billing and shipping addresses vertically */
.woocommerce-MyAccount-content .woocommerce-Addresses .woocommerce-Address {
  width: 100% !important;
  float: none !important;
  margin-bottom: 2rem;
}

/* Move edit link below title, left aligned */
.woocommerce-MyAccount-content .woocommerce-Address-title {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.woocommerce-MyAccount-content .woocommerce-Address-title h3 {
  margin-bottom: 0.25rem;
}

.woocommerce-MyAccount-content .woocommerce-Address-title a {
  order: 2;
  font-size: 0.9rem;
}

/* ================================================
   Address Book - OnCloudWine Plugin
   ================================================ */

/* Address Book Container */
.oncloudwine-address-book {
  max-width: 100%;
}

/* Section Styles */
.oncloudwine-address-book .address-section {
  margin-bottom: 3rem;
}

.oncloudwine-address-book .section-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
  gap: 1rem;
}

.oncloudwine-address-book .section-header h3 {
  margin: 0;
  font-family: 'Lora', Georgia, serif;
  font-size: 1.25rem;
  font-weight: 500;
  color: #2c2c2c;
}

/* Add Address Link Button */
.oncloudwine-address-book .add-address-btn {
  white-space: nowrap;
  background: transparent;
  border: none;
  color: #8b7765;
  text-decoration: underline;
  padding: 0;
  font-family: 'Lora', Georgia, serif;
  font-size: 0.95rem;
  cursor: pointer;
  transition: color 0.2s ease;
}

.oncloudwine-address-book .add-address-btn:hover {
  color: #5c4a3d;
  text-decoration: none;
}

/* Address List */
.oncloudwine-address-book .address-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1.5rem;
}

.oncloudwine-address-book .no-addresses {
  color: #5c5c5c;
  font-style: italic;
  grid-column: 1 / -1;
}

/* Address Card */
.oncloudwine-address-book .address-card {
  position: relative;
  padding: 1.5rem;
  border: 1px solid rgba(139, 119, 101, 0.15);
  border-radius: 4px;
  background: linear-gradient(180deg, #faf8f5 0%, #f5f2ed 100%);
  transition: box-shadow 0.2s ease;
}

.oncloudwine-address-book .address-card:hover {
  box-shadow: 0 2px 8px rgba(139, 119, 101, 0.15);
}

.oncloudwine-address-book .address-card.is-default {
  border-color: #8b7765;
  border-width: 2px;
}

/* Default Badge */
.oncloudwine-address-book .default-badge {
  position: absolute;
  top: -10px;
  right: 10px;
  padding: 0.25rem 0.75rem;
  background: #8b7765;
  color: #fff;
  font-family: 'Lora', Georgia, serif;
  font-size: 0.7rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border-radius: 3px;
}

/* Address Label */
.oncloudwine-address-book .address-label {
  margin: 0 0 0.75rem;
  font-family: 'Lora', Georgia, serif;
  font-size: 1rem;
  font-weight: 500;
  color: #2c2c2c;
}

/* Address Content */
.oncloudwine-address-book .address-content {
  font-style: normal;
  line-height: 1.6;
  color: #5c5c5c;
  margin-bottom: 1rem;
}

/* Address Actions */
.oncloudwine-address-book .address-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(139, 119, 101, 0.1);
}

.oncloudwine-address-book .address-actions .button {
  font-family: 'Lora', Georgia, serif;
  font-size: 0.85rem;
  padding: 0.4rem 0.8rem;
  background: transparent;
  border: 1px solid rgba(139, 119, 101, 0.3);
  color: #5c4a3d;
  border-radius: 2px;
  transition: all 0.2s ease;
}

.oncloudwine-address-book .address-actions .button:hover {
  background: rgba(139, 119, 101, 0.1);
  border-color: #8b7765;
}

.oncloudwine-address-book .delete-address-btn {
  color: #8b3a3a;
  border-color: rgba(139, 58, 58, 0.3);
}

.oncloudwine-address-book .delete-address-btn:hover {
  background: rgba(139, 58, 58, 0.1);
  border-color: #8b3a3a;
  color: #6b2a2a;
}

/* Modal Styles */
.oncloudwine-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 100000;
  display: flex;
  align-items: center;
  justify-content: center;
}

.oncloudwine-modal .modal-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(44, 44, 44, 0.5);
}

.oncloudwine-modal .modal-content {
  position: relative;
  width: 90%;
  max-width: 600px;
  max-height: 90vh;
  overflow-y: auto;
  background: linear-gradient(180deg, #faf8f5 0%, #f5f2ed 100%);
  border-radius: 4px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
  padding: 2rem;
}

.oncloudwine-modal .modal-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: 32px;
  height: 32px;
  border: none;
  background: none;
  font-size: 1.5rem;
  color: #5c5c5c;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  transition: background-color 0.2s, color 0.2s;
}

.oncloudwine-modal .modal-close:hover {
  background-color: rgba(139, 119, 101, 0.1);
  color: #2c2c2c;
}

.oncloudwine-modal .modal-title {
  margin: 0 0 1.5rem;
  font-family: 'Lora', Georgia, serif;
  font-size: 1.5rem;
  font-weight: 500;
  color: #2c2c2c;
  padding-right: 2rem;
}

/* Form Styles */
.oncloudwine-modal .woocommerce-address-form .form-row {
  margin-bottom: 1rem;
}

.oncloudwine-modal .woocommerce-address-form label {
  display: block;
  margin-bottom: 0.5rem;
  font-family: 'Lora', Georgia, serif;
  font-weight: 500;
  color: #2c2c2c;
}

.oncloudwine-modal .woocommerce-address-form label .required {
  color: #8b3a3a;
}

.oncloudwine-modal .woocommerce-address-form .input-text,
.oncloudwine-modal .woocommerce-address-form select {
  width: 100%;
  padding: 0.75rem;
  border: 1px solid rgba(139, 119, 101, 0.3);
  border-radius: 2px;
  font-family: 'Lora', Georgia, serif;
  font-size: 1rem;
  background: #fff;
  color: #2c2c2c;
  transition: border-color 0.2s ease;
}

.oncloudwine-modal .woocommerce-address-form .input-text:focus,
.oncloudwine-modal .woocommerce-address-form select:focus {
  outline: none;
  border-color: #8b7765;
}

.oncloudwine-modal .woocommerce-address-form .input-text::placeholder {
  color: #999;
}

.oncloudwine-modal .woocommerce-address-form .form-row-first,
.oncloudwine-modal .woocommerce-address-form .form-row-last {
  display: inline-block;
  width: calc(50% - 0.5rem);
  vertical-align: top;
}

.oncloudwine-modal .woocommerce-address-form .form-row-first {
  margin-right: 0.5rem;
}

.oncloudwine-modal .woocommerce-address-form .form-row-last {
  margin-left: 0.5rem;
}

.oncloudwine-modal .woocommerce-address-form .checkbox {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
  font-family: 'Lora', Georgia, serif;
  color: #5c5c5c;
}

.oncloudwine-modal .woocommerce-address-form .checkbox input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: #8b7765;
}

/* Form Actions */
.oncloudwine-modal .form-actions {
  display: flex;
  gap: 1rem;
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(139, 119, 101, 0.15);
}

.oncloudwine-modal .form-actions .button {
  padding: 0.75rem 1.5rem;
  font-family: 'Lora', Georgia, serif;
  font-size: 0.9rem;
  border-radius: 2px;
  transition: all 0.2s ease;
}

.oncloudwine-modal .form-actions .button-primary {
  background: #8b7765;
  color: #fff;
  border: none;
}

.oncloudwine-modal .form-actions .button-primary:hover {
  background: #5c4a3d;
}

.oncloudwine-modal .form-actions .cancel-btn {
  background: transparent;
  color: #5c5c5c;
  border: 1px solid rgba(139, 119, 101, 0.3);
}

.oncloudwine-modal .form-actions .cancel-btn:hover {
  background: rgba(139, 119, 101, 0.1);
  color: #2c2c2c;
}

/* Billing-only field (email) - hidden by default for shipping */
.oncloudwine-modal .billing-only-field.hidden {
  display: none;
}

/* Loading State */
.oncloudwine-modal .btn-loading {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

.oncloudwine-modal .btn-loading::after {
  content: "";
  width: 14px;
  height: 14px;
  border: 2px solid #fff;
  border-top-color: transparent;
  border-radius: 50%;
  animation: ocw-spin 0.8s linear infinite;
}

@keyframes ocw-spin {
  to {
    transform: rotate(360deg);
  }
}

/* Responsive */
@media screen and (max-width: 600px) {
  .oncloudwine-address-book .section-header {
    flex-direction: column;
    align-items: flex-start;
  }

  .oncloudwine-address-book .address-list {
    grid-template-columns: 1fr;
  }

  .oncloudwine-modal .modal-content {
    padding: 1.5rem;
  }

  .oncloudwine-modal .woocommerce-address-form .form-row-first,
  .oncloudwine-modal .woocommerce-address-form .form-row-last {
    display: block;
    width: 100%;
    margin: 0 0 1rem 0;
  }

  .oncloudwine-modal .form-actions {
    flex-direction: column;
  }

  .oncloudwine-modal .form-actions .button {
    width: 100%;
  }
}

footer a {
  text-decoration: none !important;
  transition: color 0.2s ease !important;
}

footer a:hover {
  color: var(--wp--preset--color--primary) !important;
}

.products-carousel {
  padding-bottom: 36px;
}

/* Stretch every level of nested wrapper so each card fills the row height. */
.products-carousel,
.products-carousel .swiper-wrapper,
.products-carousel .splide__list,
.products-carousel .glide__slides,
.products-carousel .wp-block-post-template,
.products-carousel ul,
.products-carousel ol {
  align-items: stretch !important;
}

/* Each slide stretches to full row height and lays its content out as a
   column so titles/images/buttons stack from the top. */
.products-carousel .swiper-slide,
.products-carousel .splide__slide,
.products-carousel .glide__slide,
.products-carousel .wp-block-post,
.products-carousel > li,
.products-carousel > .wp-block-group {
  align-self: stretch !important;
  height: auto !important;
  display: flex !important;
  flex-direction: column !important;
}

/* The card's inner wrapper grows to fill the slide so all cards bottom-align
   too (e.g. their CTAs sit on the same baseline). */
.products-carousel .swiper-slide > *,
.products-carousel .splide__slide > *,
.products-carousel .glide__slide > *,
.products-carousel .wp-block-post > *,
.products-carousel > li > *,
.products-carousel > .wp-block-group > * {
  flex: 1 1 auto;
}

/* Push CTAs / "add to cart" rows to the bottom of each card. */
.products-carousel .wc-block-components-product-button,
.products-carousel .wp-block-button,
.products-carousel .wp-block-add-to-cart-form,
.products-carousel [class*="add-to-cart"]:last-child {
  margin-top: auto !important;
}

/* Hide the inner "Upcoming Releases" heading; the My Account tab title already labels the section. */
.oncloudwine-upcoming-releases > h2 {
  display: none;
}

/* ================================================
   My Releases - Winery Style Overrides
   Matches: Membership, Address Book, Upcoming Releases
   ================================================ */

/* --- Custom Property Overrides --- */
.oncloudwine-single-release,
.oncloudwine-my-releases-archive {
  --ocw-color-primary: #8b7765;
  --ocw-color-primary-hover: #5c4a3d;
  --ocw-color-secondary: #5c5c5c;
  --ocw-color-background: #ffffff;
  --ocw-color-surface: #faf8f5;
  --ocw-color-border: rgba(139, 119, 101, 0.15);
  --ocw-color-text: #2c2c2c;
  --ocw-color-text-muted: #5c5c5c;
  --ocw-color-success: #3d7a3a;
  --ocw-color-warning: #b8860b;
  --ocw-color-error: #8b3a3a;
  --ocw-color-info: #8b7765;
  --ocw-font-family: 'Lora', Georgia, serif;
  --ocw-shadow-sm: 0 1px 3px rgba(139, 119, 101, 0.08);
  --ocw-shadow: 0 1px 4px rgba(139, 119, 101, 0.1);
  --ocw-shadow-md: 0 2px 8px rgba(139, 119, 101, 0.12);
  --ocw-shadow-lg: 0 4px 12px rgba(139, 119, 101, 0.15);
  --ocw-shadow-xl: 0 4px 20px rgba(0, 0, 0, 0.15);
  --ocw-radius-sm: 2px;
  --ocw-radius: 3px;
  --ocw-radius-md: 4px;
  --ocw-radius-lg: 4px;
  --ocw-radius-full: 3px;
}

/* --- Container Padding --- */
.oncloudwine-single-release,
.oncloudwine-my-releases-archive {
  padding-top: clamp(2rem, 5vw, 3.5rem);
  padding-bottom: clamp(2rem, 5vw, 3.5rem);
}

/* --- Base Typography --- */
.oncloudwine-single-release,
.oncloudwine-my-releases-archive {
  font-family: 'Lora', Georgia, serif;
  color: #2c2c2c;
}

.oncloudwine-single-release h1,
.oncloudwine-single-release h2,
.oncloudwine-single-release h3,
.oncloudwine-single-release h4,
.oncloudwine-my-releases-archive h1,
.oncloudwine-my-releases-archive h2,
.oncloudwine-my-releases-archive h3,
.oncloudwine-my-releases-archive h4 {
  font-family: 'Lora', Georgia, serif;
  font-weight: 500;
  color: #2c2c2c;
}

/* --- Back Link --- */
.oncloudwine-single-release .release-back-link {
  margin-bottom: 1.5rem;
}

.oncloudwine-single-release .release-back-link a {
  color: #8b7765;
  text-decoration: none;
  font-family: 'Lora', Georgia, serif;
  font-size: 0.95rem;
  transition: color 0.2s ease;
}

.oncloudwine-single-release .release-back-link a:hover {
  color: #5c4a3d;
}

/* --- Release Header --- */
.oncloudwine-single-release .release-header {
  border-bottom: 1px solid rgba(139, 119, 101, 0.1);
  padding-bottom: 1.5rem;
  margin-bottom: 1.5rem;
}

.oncloudwine-single-release .release-title {
  font-family: 'Lora', Georgia, serif;
  font-weight: 500;
  font-size: 1.5rem;
  color: #2c2c2c;
}

.oncloudwine-single-release .meta-label {
  color: #8b7765;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.oncloudwine-single-release .meta-value {
  color: #2c2c2c;
}

.oncloudwine-single-release .points-value {
  color: #3d7a3a;
  font-weight: 500;
}

/* --- Status Badges --- */
.oncloudwine-single-release .release-stage,
.oncloudwine-my-releases-archive .release-stage {
  border-radius: 3px;
  padding: 0.25rem 0.75rem;
  font-size: 0.875rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.oncloudwine-single-release .release-stage.stage-pending,
.oncloudwine-my-releases-archive .release-stage.stage-pending {
  background: rgba(184, 134, 11, 0.15);
  color: #8b6914;
}

.oncloudwine-single-release .release-stage.stage-completed,
.oncloudwine-my-releases-archive .release-stage.stage-completed {
  background: rgba(76, 140, 74, 0.15);
  color: #3d7a3a;
}

.oncloudwine-single-release .release-stage.stage-draft,
.oncloudwine-my-releases-archive .release-stage.stage-draft {
  background: rgba(139, 119, 101, 0.15);
  color: #8b7765;
}

.oncloudwine-single-release .release-stage.stage-cancelled,
.oncloudwine-my-releases-archive .release-stage.stage-cancelled {
  background: rgba(139, 58, 58, 0.15);
  color: #8b3a3a;
}

.oncloudwine-single-release .release-stage.stage-archived,
.oncloudwine-my-releases-archive .release-stage.stage-archived {
  background: rgba(92, 92, 92, 0.15);
  color: #5c5c5c;
}

/* --- Release Cards (Archive) --- */
.oncloudwine-my-releases-archive .oncloudwine-release-card {
  background: linear-gradient(180deg, #faf8f5 0%, #f5f2ed 100%);
  border: 1px solid rgba(139, 119, 101, 0.15);
  border-radius: 4px;
  transition: box-shadow 0.2s ease;
}

.oncloudwine-my-releases-archive .oncloudwine-release-card:hover {
  box-shadow: 0 2px 8px rgba(139, 119, 101, 0.15);
  transform: none;
}

.oncloudwine-my-releases-archive .release-card-header .release-title a {
  color: #2c2c2c;
  transition: color 0.2s ease;
}

.oncloudwine-my-releases-archive .release-card-header .release-title a:hover {
  color: #8b7765;
}

/* --- Product Cards --- */
.oncloudwine-single-release .product-item {
  background: linear-gradient(180deg, #faf8f5 0%, #f5f2ed 100%);
  border: 1px solid rgba(139, 119, 101, 0.15);
  border-radius: 4px;
  transition: box-shadow 0.2s ease;
}

.oncloudwine-single-release .product-item:hover {
  box-shadow: 0 2px 8px rgba(139, 119, 101, 0.15);
  transform: none;
  border-color: rgba(139, 119, 101, 0.15);
}

.oncloudwine-single-release .product-item:hover .product-image img {
  transform: none;
}

.oncloudwine-single-release .product-name {
  font-family: 'Lora', Georgia, serif;
  font-weight: 500;
  color: #2c2c2c;
}

.oncloudwine-single-release .product-variant {
  color: #5c5c5c;
}

.oncloudwine-single-release .product-sku {
  color: #5c5c5c;
  font-family: 'Lora', Georgia, serif;
}

.oncloudwine-single-release .product-price {
  color: #8b7765;
  font-weight: 500;
}

.oncloudwine-single-release .product-image {
  background: #f5f2ed;
}

/* --- Product Badges --- */
.oncloudwine-single-release .product-required {
  background: rgba(139, 58, 58, 0.12);
  color: #8b3a3a;
  font-family: 'Lora', Georgia, serif;
  letter-spacing: 0.05em;
  font-size: 0.7rem;
  border-radius: 3px;
}

.oncloudwine-single-release .product-custom-added {
  background: rgba(76, 140, 74, 0.15);
  color: #3d7a3a;
  font-family: 'Lora', Georgia, serif;
  letter-spacing: 0.05em;
  font-size: 0.7rem;
  border-radius: 3px;
}

/* --- Buttons: Primary --- */
.oncloudwine-single-release .button-primary,
.oncloudwine-single-release .oncloudwine-button-primary,
.oncloudwine-single-release .save-fulfillment-btn,
.oncloudwine-my-releases-archive .button-primary,
.oncloudwine-my-releases-archive .oncloudwine-button-primary {
  background: #8b7765;
  color: #fff;
  border: none;
  font-family: 'Lora', Georgia, serif;
  font-size: 0.9rem;
  border-radius: 2px;
  transition: all 0.2s ease;
}

.oncloudwine-single-release .button-primary:hover,
.oncloudwine-single-release .oncloudwine-button-primary:hover,
.oncloudwine-single-release .save-fulfillment-btn:hover,
.oncloudwine-my-releases-archive .button-primary:hover,
.oncloudwine-my-releases-archive .oncloudwine-button-primary:hover {
  background: #5c4a3d;
  transform: none;
  box-shadow: none;
}

/* --- Buttons: Secondary --- */
.oncloudwine-single-release .button-secondary,
.oncloudwine-single-release .oncloudwine-button-secondary,
.oncloudwine-my-releases-archive .button-secondary,
.oncloudwine-my-releases-archive .oncloudwine-button-secondary {
  background: transparent;
  color: #5c4a3d;
  border: 1px solid rgba(139, 119, 101, 0.3);
  font-family: 'Lora', Georgia, serif;
  font-size: 0.85rem;
  border-radius: 2px;
  transition: all 0.2s ease;
}

.oncloudwine-single-release .button-secondary:hover,
.oncloudwine-single-release .oncloudwine-button-secondary:hover,
.oncloudwine-my-releases-archive .button-secondary:hover,
.oncloudwine-my-releases-archive .oncloudwine-button-secondary:hover {
  background: rgba(139, 119, 101, 0.1);
  border-color: #8b7765;
}

/* --- Skip / Opt-In Release Toggle --- */
.oncloudwine-single-release .oncloudwine-release-exclusion-toggle {
  margin: 1.5rem 0;
}

.oncloudwine-single-release .toggle-exclusion-btn {
  background: transparent;
  color: #8b7765;
  border: 1px solid #8b7765;
  font-family: 'Lora', Georgia, serif;
  font-size: 0.9rem;
  padding: 0.5rem 1.25rem;
  border-radius: 2px;
  transition: all 0.2s ease;
}

.oncloudwine-single-release .toggle-exclusion-btn:hover {
  background: #8b7765;
  color: #fff;
  border-color: #8b7765;
}

/* --- Buttons: Remove Product --- */
.oncloudwine-single-release .remove-product-btn {
  color: #8b3a3a;
  border-color: rgba(139, 58, 58, 0.3);
  font-family: 'Lora', Georgia, serif;
  border-radius: 2px;
}

.oncloudwine-single-release .remove-product-btn:hover {
  background: rgba(139, 58, 58, 0.1);
  border-color: #8b3a3a;
  color: #6b2a2a;
}

/* --- Buttons: Add to Selection --- */
.oncloudwine-single-release .add-to-selection-btn {
  background: #8b7765;
  color: #fff;
  border-color: #8b7765;
  font-family: 'Lora', Georgia, serif;
  border-radius: 2px;
}

.oncloudwine-single-release .add-to-selection-btn:hover {
  background: #5c4a3d;
  opacity: 1;
  transform: none;
}

/* --- Buttons: Add Products (Dashed) --- */
.oncloudwine-single-release .add-products-btn {
  border: 2px dashed rgba(139, 119, 101, 0.3);
  color: #8b7765;
  font-family: 'Lora', Georgia, serif;
  border-radius: 4px;
}

.oncloudwine-single-release .add-products-btn:hover {
  background: #8b7765;
  color: #fff;
  border-style: solid;
  border-color: #8b7765;
}

/* --- Fulfillment Method Section --- */
.oncloudwine-single-release .fulfillment-method-section {
  background: linear-gradient(180deg, #faf8f5 0%, #f5f2ed 100%);
  border: 1px solid rgba(139, 119, 101, 0.15);
  border-radius: 4px;
  padding: 1.5rem;
}

.oncloudwine-single-release .fulfillment-method-section h3 {
  font-family: 'Lora', Georgia, serif;
  font-weight: 500;
  color: #2c2c2c;
}

.oncloudwine-single-release .fulfillment-option {
  background: #fff;
  border: 2px solid rgba(139, 119, 101, 0.15);
  border-radius: 4px;
  transition: all 0.2s ease;
}

.oncloudwine-single-release .fulfillment-option:hover {
  border-color: #8b7765;
  background: rgba(139, 119, 101, 0.04);
}

.oncloudwine-single-release .fulfillment-option:has(input[type="radio"]:checked) {
  border-color: #8b7765;
  background: rgba(139, 119, 101, 0.08);
}

.oncloudwine-single-release .fulfillment-option input[type="radio"]:checked + .option-label {
  color: #8b7765;
  font-weight: 500;
}

.oncloudwine-single-release .fulfillment-option input[type="radio"] {
  accent-color: #8b7765;
}

.oncloudwine-single-release .fulfillment-save-status {
  color: #3d7a3a;
}

/* --- Release Info (Description & Notes) --- */
.oncloudwine-single-release .release-description,
.oncloudwine-single-release .release-notes {
  color: #5c5c5c;
  line-height: 1.7;
}

.oncloudwine-single-release .release-description h3,
.oncloudwine-single-release .release-notes h3 {
  font-family: 'Lora', Georgia, serif;
  font-weight: 500;
  color: #2c2c2c;
  font-size: 1.25rem;
}

/* --- Eligibility Warnings --- */
.oncloudwine-single-release .oncloudwine-eligibility-warnings {
  background: rgba(139, 58, 58, 0.06);
  border: 1px solid rgba(139, 58, 58, 0.2);
  border-radius: 4px;
}

.oncloudwine-single-release .oncloudwine-eligibility-warnings h3 {
  color: #8b3a3a;
  font-family: 'Lora', Georgia, serif;
  font-weight: 500;
}

.oncloudwine-single-release .oncloudwine-eligibility-warnings > p {
  color: #8b3a3a;
}

.oncloudwine-single-release .oncloudwine-eligibility-warnings li {
  color: #8b3a3a;
}

.oncloudwine-single-release .oncloudwine-eligibility-warnings li::before {
  background: rgba(139, 58, 58, 0.15);
  color: #8b3a3a;
}

.oncloudwine-single-release .oncloudwine-eligibility-warnings a {
  color: #8b3a3a;
}

.oncloudwine-single-release .oncloudwine-eligibility-warnings a:hover {
  color: #6b2a2a;
}

/* --- Notices --- */
.oncloudwine-single-release .oncloudwine-notice {
  border-radius: 4px;
  border-left-width: 3px;
  font-size: 0.95rem;
  color: #5c5c5c;
}

.oncloudwine-single-release .oncloudwine-notice-info {
  background: rgba(139, 119, 101, 0.06);
  border-left-color: #8b7765;
}

.oncloudwine-single-release .oncloudwine-notice-success {
  background: rgba(76, 140, 74, 0.08);
  border-left-color: #3d7a3a;
}

.oncloudwine-single-release .oncloudwine-notice-warning {
  background: rgba(184, 134, 11, 0.08);
  border-left-color: #b8860b;
}

.oncloudwine-single-release .oncloudwine-notice-error {
  background: rgba(139, 58, 58, 0.08);
  border-left-color: #8b3a3a;
}

/* --- Product Controls & Quantity --- */
.oncloudwine-single-release .product-controls {
  background: rgba(139, 119, 101, 0.04);
  border-top: 1px solid rgba(139, 119, 101, 0.1);
}

.oncloudwine-single-release .quantity-selector label {
  color: #5c5c5c;
  font-family: 'Lora', Georgia, serif;
}

.oncloudwine-single-release .quantity-selector input[type="number"] {
  border: 1px solid rgba(139, 119, 101, 0.3);
  border-radius: 2px;
  font-family: 'Lora', Georgia, serif;
  color: #2c2c2c;
}

.oncloudwine-single-release .quantity-selector input[type="number"]:focus {
  outline: none;
  border-color: #8b7765;
  box-shadow: none;
}

/* --- Form Actions --- */
.oncloudwine-single-release .form-actions {
  border-top: 1px solid rgba(139, 119, 101, 0.15);
  padding-top: 1.5rem;
}

.oncloudwine-single-release .spinner {
  border-color: rgba(139, 119, 101, 0.2);
  border-top-color: #8b7765;
}

/* --- Read-Only / Completed Release --- */
.oncloudwine-single-release .product-quantity-display,
.oncloudwine-single-release .product-fixed-quantity {
  background: rgba(139, 119, 101, 0.04);
  border-top: 1px solid rgba(139, 119, 101, 0.1);
}

.oncloudwine-single-release .product-quantity-display .label,
.oncloudwine-single-release .product-fixed-quantity .label {
  color: #5c5c5c;
}

.oncloudwine-single-release .product-quantity-display .value,
.oncloudwine-single-release .product-fixed-quantity .value {
  color: #2c2c2c;
}

/* --- Available Product Cards --- */
.oncloudwine-single-release .available-product-card {
  background: linear-gradient(180deg, #faf8f5 0%, #f5f2ed 100%);
  border: 1px solid rgba(139, 119, 101, 0.15);
  border-radius: 4px;
}

.oncloudwine-single-release .available-product-card:hover {
  box-shadow: 0 2px 8px rgba(139, 119, 101, 0.15);
  background: linear-gradient(180deg, #faf8f5 0%, #f5f2ed 100%);
}

/* --- Order Minimum Notice --- */
.oncloudwine-single-release .order-minimum-notice {
  background: rgba(139, 119, 101, 0.04);
  border: 1px solid rgba(139, 119, 101, 0.15);
  border-radius: 4px;
}

.oncloudwine-single-release .order-minimum-notice.below-minimum {
  background: rgba(139, 58, 58, 0.06);
  border-color: rgba(139, 58, 58, 0.2);
}

.oncloudwine-single-release .order-minimum-notice.below-minimum p {
  color: #8b3a3a;
}

/* --- Empty States --- */
.oncloudwine-single-release .oncloudwine-no-releases,
.oncloudwine-single-release .no-products,
.oncloudwine-my-releases-archive .oncloudwine-no-releases {
  background: linear-gradient(180deg, #faf8f5 0%, #f5f2ed 100%);
  border: 1px solid rgba(139, 119, 101, 0.15);
  border-radius: 4px;
}

/* --- Loading States --- */
.oncloudwine-single-release .oncloudwine-releases-wrapper.loading::after,
.oncloudwine-my-releases-archive .oncloudwine-releases-wrapper.loading::after {
  border-color: rgba(139, 119, 101, 0.2);
  border-top-color: #8b7765;
}

/* --- Quantity Updated Animation --- */
@keyframes winery-flash-update {
  0%, 100% {
    border-color: rgba(139, 119, 101, 0.15);
    box-shadow: none;
  }
  50% {
    border-color: #3d7a3a;
    box-shadow: 0 0 10px rgba(61, 122, 58, 0.2);
  }
}

.oncloudwine-single-release .product-item.quantity-updated {
  animation: winery-flash-update 1s ease;
}

/* --- Focus/Accessibility --- */
.oncloudwine-single-release *:focus-visible,
.oncloudwine-my-releases-archive *:focus-visible {
  outline: 2px solid #8b7765;
  outline-offset: 2px;
}

/* --- Modal Overrides (Product Search) --- */
#oncloudwine-product-search-modal,
#variation-selection-modal {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 100000;
  align-items: center;
  justify-content: center;
}

#oncloudwine-product-search-modal .modal-content,
#variation-selection-modal .modal-content {
  position: relative;
  top: auto;
  left: auto;
  transform: none;
  margin: auto;
}

.oncloudwine-modal .modal-header {
  border-bottom: 1px solid rgba(139, 119, 101, 0.15);
}

.oncloudwine-modal .modal-footer {
  border-top: 1px solid rgba(139, 119, 101, 0.15);
}

.oncloudwine-modal .search-button {
  background: #8b7765;
  border-radius: 2px;
  font-family: 'Lora', Georgia, serif;
}

.oncloudwine-modal .search-button:hover {
  background: #5c4a3d;
}

.oncloudwine-modal .product-search-input {
  border: 1px solid rgba(139, 119, 101, 0.3);
  border-radius: 2px;
  font-family: 'Lora', Georgia, serif;
}

.oncloudwine-modal .product-search-input:focus {
  border-color: #8b7765;
  outline: none;
}

.oncloudwine-modal .product-search-item {
  border: 1px solid rgba(139, 119, 101, 0.15);
  border-radius: 4px;
  background: linear-gradient(180deg, #faf8f5 0%, #f5f2ed 100%);
}

.oncloudwine-modal .product-search-item:hover {
  border-color: #8b7765;
  box-shadow: 0 2px 8px rgba(139, 119, 101, 0.15);
}

.oncloudwine-modal .product-search-item .add-to-selection,
.oncloudwine-modal .product-search-item .select-variations {
  background: #8b7765;
  border-radius: 2px;
  font-family: 'Lora', Georgia, serif;
}

.oncloudwine-modal .product-search-item .add-to-selection:hover,
.oncloudwine-modal .product-search-item .select-variations:hover {
  background: #5c4a3d;
  transform: none;
}

.oncloudwine-modal .product-search-item .product-price {
  color: #8b7765;
}

.oncloudwine-modal .prev-page,
.oncloudwine-modal .next-page {
  border: 1px solid rgba(139, 119, 101, 0.3);
  border-radius: 2px;
  background: transparent;
}

.oncloudwine-modal .prev-page:not(:disabled):hover,
.oncloudwine-modal .next-page:not(:disabled):hover {
  background: #8b7765;
  color: #fff;
  border-color: #8b7765;
}

.oncloudwine-modal .variation-item {
  border: 1px solid rgba(139, 119, 101, 0.15);
  border-radius: 4px;
}

.oncloudwine-modal .variation-item:hover {
  background: rgba(139, 119, 101, 0.04);
  border-color: #8b7765;
}

.oncloudwine-modal .variation-price {
  color: #8b7765;
}

.oncloudwine-modal .add-selected-products {
  background: #8b7765;
  font-family: 'Lora', Georgia, serif;
  border-radius: 2px;
}

.oncloudwine-modal .add-selected-products:hover:not(:disabled) {
  background: #5c4a3d;
  opacity: 1;
  transform: none;
}

/* --- Tabs (Archive) --- */
.oncloudwine-my-releases-archive .oncloudwine-release-tabs {
  border-bottom: 1px solid rgba(139, 119, 101, 0.15);
}

.oncloudwine-my-releases-archive .tab-link {
  font-family: 'Lora', Georgia, serif;
  color: #5c5c5c;
}

.oncloudwine-my-releases-archive .tab-link:hover {
  color: #2c2c2c;
}

.oncloudwine-my-releases-archive .tab-item.active .tab-link {
  color: #8b7765;
  border-bottom-color: #8b7765;
}

/* --- Archive Header --- */
.oncloudwine-my-releases-archive .releases-title {
  font-family: 'Lora', Georgia, serif;
  font-weight: 500;
  font-size: 1.5rem;
  color: #2c2c2c;
}

/* --- Responsive --- */
@media (max-width: 768px) {
  .oncloudwine-single-release .fulfillment-method-selector {
    flex-direction: column;
  }

  .oncloudwine-single-release .form-actions .button,
  .oncloudwine-my-releases-archive .form-actions .button {
    width: 100%;
    justify-content: center;
  }

  .oncloudwine-single-release .release-meta-info {
    flex-direction: column;
    gap: 0.5rem;
  }
}

@media (max-width: 600px) {
  .oncloudwine-single-release .fulfillment-method-section {
    padding: 1rem;
  }

  .oncloudwine-single-release .release-header {
    padding-bottom: 1rem;
    margin-bottom: 1rem;
  }
}

.m-slider-mode {
  overflow: hidden !important;
}

.m-slider-mode .navigation-wrapper {
  gap: 0px;
}

/* On checkout, suppress the parent theme's solid-nav main-content top
   margin (var(--wp--custom--header-height--desktop)). The checkout page
   has the header pinned solid already and doesn't need the offset. */
body.woocommerce-checkout.solid-nav .wp-site-blocks > *:not(header):not(footer) > div:first-of-type,
body.woocommerce-checkout.solid-nav .wp-site-blocks > *:not(header):not(footer) > main:first-of-type {
  margin-top: 0 !important;
}

/* Tighten the checkout page's top spacing. The parent theme injects broad
   section padding, and WooCommerce adds its own checkout block padding. */
body.woocommerce-checkout .wp-site-blocks > *:not(header):not(footer) > div:first-of-type,
body.woocommerce-checkout .wp-site-blocks > *:not(header):not(footer) > main:first-of-type {
  padding-top: clamp(1rem, 2vw, 1.5rem) !important;
}

body.woocommerce-checkout .wp-block-woocommerce-checkout {
  padding-top: 0 !important;
}

/* Replace WooCommerce's default empty-cart sad-face icon. */
.wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title.with-empty-cart-icon::before,
.editor-styles-wrapper .wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title.with-empty-cart-icon::before {
  background-color: transparent !important;
  background-image: url("https://stonetowerwinery.pixeldev.com.au/wp-content/uploads/2026/04/bottle.png") !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  background-size: auto 12em !important;
  height: 12em !important;
  -webkit-mask-image: none !important;
  mask-image: none !important;
  width: 20em !important;
}

body.woocommerce-cart .wc-block-cart__submit .wc-block-cart__submit-button {
  margin: 0 !important;
  max-width: 100% !important;
  width: 100% !important;
}

body.woocommerce-checkout,
body.woocommerce-checkout .wp-site-blocks {
  overflow-x: clip !important;
  overflow-y: visible !important;
}

@media (min-width: 782px) {
  body.woocommerce-checkout .wc-block-components-sidebar-layout {
    align-items: flex-start;
  }

  body.woocommerce-checkout .wc-block-components-sidebar.wc-block-checkout__sidebar {
    position: sticky !important;
    top: calc(var(--wp-admin--admin-bar--height, 0px) + 1.5rem) !important;
    align-self: flex-start;
  }
}

body.woocommerce-checkout .wc-block-components-express-payment__content,
body.woocommerce-checkout .wc-block-components-express-payment__event-buttons,
body.woocommerce-checkout [id^="express-payment-method-"] {
  height: auto !important;
  overflow: visible !important;
}

body.woocommerce-checkout .wc-block-components-express-payment__event-buttons,
body.woocommerce-checkout .square-wallets-blocks-container.has-wallets {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.375rem !important;
  grid-template-rows: none !important;
}

body.woocommerce-checkout .square-wallets-blocks-container.has-wallets > *,
body.woocommerce-checkout .gpay-button-fill,
body.woocommerce-checkout .apple-pay-button,
body.woocommerce-checkout .gpay-button {
  width: 100% !important;
  min-height: 3rem !important;
  height: 3rem !important;
  border-radius: 0.375rem !important;
  box-sizing: border-box !important;
}

body.woocommerce-checkout .square-wallets-blocks-container.has-wallets > * {
  background: #000 !important;
  border: 1px solid #222 !important;
  overflow: hidden !important;
}

body.woocommerce-checkout .gpay-button,
body.woocommerce-checkout .apple-pay-button {
  border: 0 !important;
  outline: 0 !important;
  overflow: hidden !important;
}

/* ================================================
   Checkout — Date of Birth (Vinoshipper age gate)
   Now a single text input morphed to <input type="date"> by JS.
   Browser-native date picker, full-width like other contact fields.
   ================================================ */
.wp-block-woocommerce-checkout input[id$="pixeldev-vinoshipper-dob"],
.wp-block-woocommerce-checkout input[data-dob="1"] {
  width: 100%;
  min-height: 3rem;
  font-family: inherit;
}

/* Float "Date of Birth" label above the input. The background hides the
   input's top border behind the label text so the line doesn't strike
   through the label. */
.wp-block-woocommerce-checkout .wc-block-components-text-input:has(input[data-dob="1"]),
.wp-block-woocommerce-checkout .wc-block-components-text-input:has(input[id$="pixeldev-vinoshipper-dob"]) {
  position: relative !important;
}

.wp-block-woocommerce-checkout .wc-block-components-text-input:has(input[data-dob="1"]) > label,
.wp-block-woocommerce-checkout .wc-block-components-text-input:has(input[id$="pixeldev-vinoshipper-dob"]) > label {
  position: absolute !important;
  top: 0 !important;
  left: 0.75rem !important;
  transform: translateY(-50%) scale(0.85) !important;
  transform-origin: top left !important;
  padding: 0 0.35rem !important;
  margin: 0 !important;
  background: var(--wp--preset--color--base, #faf8f5) !important;
  line-height: 1 !important;
  font-size: 0.85rem !important;
  z-index: 2 !important;
  pointer-events: none !important;
}

/* Hide the date-picker indicator's default styling on Chrome to keep the
   field looking consistent with other text inputs. */
.wp-block-woocommerce-checkout input[type="date"][data-dob="1"]::-webkit-calendar-picker-indicator {
  cursor: pointer;
  opacity: 0.6;
  filter: grayscale(1);
  transition: opacity 0.15s ease;
}

.wp-block-woocommerce-checkout input[type="date"][data-dob="1"]::-webkit-calendar-picker-indicator:hover {
  opacity: 1;
}

/* Loop add-to-cart price unit ("/bottle" for wine items). Baseline-aligned
   so it sits on the bottom edge of the price text, not as a superscript. */
.wc-loop-add-to-cart .loop-atc-unit {
  font-size: 0.65em;
  font-weight: 400;
  vertical-align: baseline;
  margin-left: 0.05em;
  opacity: 0.85;
}

/* ----- Member-discount price layout -----
   When a sale price is present (role-based-pricing kicked in), stack the
   crossed-out original price ABOVE the new price in muted small type so the
   discount is obvious and the line of running text stays clean. */
.wc-loop-add-to-cart .loop-atc-price--member {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0;
  position: relative;
  cursor: help;
  outline: none;
}

.wc-loop-add-to-cart .loop-atc-price--member del {
  flex-basis: 100%;
  font-size: 0.7em;
  font-weight: 400;
  opacity: 0.5;
  text-decoration: line-through;
  text-decoration-thickness: 1px;
  margin-bottom: -0.1em;
  order: 1;
}

.wc-loop-add-to-cart .loop-atc-price--member ins {
  text-decoration: none;
  font-weight: 500;
  order: 2;
}

.wc-loop-add-to-cart .loop-atc-price--member .loop-atc-unit {
  order: 3;
}

/* Subtle "ⓘ" hint that there's more info on hover/tap. */
.wc-loop-add-to-cart .loop-atc-price--member::after {
  content: '\24D8';            /* ⓘ */
  margin-left: 0.35em;
  font-size: 0.7em;
  font-style: normal;
  font-weight: 400;
  opacity: 0.45;
  vertical-align: baseline;
  order: 4;
  transition: opacity 0.15s ease;
}

.wc-loop-add-to-cart .loop-atc-price--member:hover::after,
.wc-loop-add-to-cart .loop-atc-price--member:focus-visible::after {
  opacity: 0.85;
}

/* Tooltip — uses the inline data-tip text so it stays editable from PHP. */
.wc-loop-add-to-cart .loop-atc-price--member::before {
  content: attr(data-tip);
  position: absolute;
  bottom: calc(100% + 8px);
  left: 0;
  background: #2c2c2c;
  color: #fff;
  font-family: 'Lora', Georgia, serif;
  font-size: 0.72rem;
  font-style: normal;
  font-weight: 400;
  letter-spacing: 0.02em;
  white-space: nowrap;
  padding: 0.4rem 0.7rem;
  border-radius: 3px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(4px);
  transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s ease;
  z-index: 50;
}

/* Tooltip arrow */
.wc-loop-add-to-cart .loop-atc-price--member:hover::before,
.wc-loop-add-to-cart .loop-atc-price--member:focus::before,
.wc-loop-add-to-cart .loop-atc-price--member:focus-within::before {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* Keyboard focus ring on the price (subtle, matches brand). */
.wc-loop-add-to-cart .loop-atc-price--member:focus-visible {
  box-shadow: 0 0 0 2px rgba(139, 119, 101, 0.35);
  border-radius: 2px;
}

/* Product tagline — italic serif tagline, muted, with a subtle accent
   rule on the left. Font size stays as inherited. */
.wp-block-product-meta--tag_line {
  font-family: 'Lora', Georgia, serif;
  font-style: italic;
  font-weight: 400;
  color: #6b5a4d;
  letter-spacing: 0.01em;
  line-height: 1.45;
  margin: 0.25rem 0 1rem;
  padding-left: 0.85rem;
  border-left: 2px solid rgba(139, 119, 101, 0.35);
}

.wp-block-product-meta--tag_line .wp-block-product-meta__value {
  display: inline;
}

/* Hide the auto-generated label for tagline (the value reads as a sentence). */
.wp-block-product-meta--tag_line .wp-block-product-meta__label {
  display: none;
}

/* Synced "The Spaces" pattern feature lists */
.stw-spaces-feature-list {
  list-style: none;
  margin-left: 0;
  padding-left: 0;
}

.stw-spaces-feature-list li {
  align-items: flex-start;
  display: flex;
  gap: 0.65em;
}

.stw-spaces-feature-list .stw-spaces-feature-icon {
  color: var(--wp--preset--color--primary, #AD9841);
  flex: 0 0 1em;
  line-height: inherit;
  margin-top: 0.2em;
}

.stw-spaces-feature-list .stw-spaces-feature-icon svg {
  color: var(--wp--preset--color--primary, #AD9841);
  display: block;
  height: 1em;
  width: 1em;
}

/* Linked carousel panels */
.stw-carousel-linked-tabs-section .wp-block-minimly-child-tabs {
  margin-top: clamp(1.25rem, 2vw, 2rem);
  margin-bottom: 0;
}

.stw-carousel-linked-tabs-section .wp-block-minimly-child-tabs > .tabs-nav {
  display: none;
}

.stw-carousel-linked-tabs-section .wp-block-minimly-child-tabs .tabs-content {
  margin-left: auto;
  margin-right: auto;
  max-width: min(820px, calc(100vw - 40px));
  position: relative;
  transition: height 220ms ease;
}

.stw-carousel-linked-tabs-section .wp-block-minimly-child-tabs .wp-block-minimly-child-tab {
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 220ms ease, transform 220ms ease;
}

.stw-carousel-linked-tabs-section .wp-block-minimly-child-tabs .wp-block-minimly-child-tab.tab-panel-active {
  opacity: 1;
  transform: translateY(0);
}

.stw-carousel-linked-tabs-section .wp-block-minimly-child-tabs .wp-block-minimly-child-tab.stw-carousel-panel-exiting {
  left: 0;
  pointer-events: none;
  position: absolute;
  right: 0;
  top: 0;
  width: 100%;
}

.stw-carousel-linked-tabs-section .wp-block-minimly-child-tabs .tab-panel > * {
  margin-left: auto;
  margin-right: auto;
}

@media (prefers-reduced-motion: reduce) {
  .stw-carousel-linked-tabs-section .wp-block-minimly-child-tabs .tabs-content,
  .stw-carousel-linked-tabs-section .wp-block-minimly-child-tabs .wp-block-minimly-child-tab {
    transition: none;
    transform: none;
  }
}
