/* ENVI Atelier refresh. Load after core, home, catalog and the UI patch. */
body.envi-professional-theme {
  --envi-ivory: #fff;
  --envi-paper: #fff;
  --envi-ink: #251f22;
  --envi-ink-soft: #544a4f;
  --envi-muted: #70646a;
  --envi-wine: #71334b;
  --envi-wine-dark: #572638;
  --envi-gold: #755833;
  --envi-gold-soft: #c6aa79;
  --envi-blush-soft: #f5edf1;
  --envi-tiffany: #71334b;
  --envi-tiffany-dark: #572638;
  --envi-tiffany-soft: #f5edf1;
  --envi-line: #e8e2e5;
  --envi-line-strong: #cbbdc4;
  --envi-ui-paper: #fff;
  --envi-ui-ivory: #fff;
  --envi-ui-wine: #71334b;
  --envi-ui-tiffany: #71334b;
  --envi-ui-tiffany-dark: #572638;
  --envi-ui-tiffany-soft: #f5edf1;
  --envi-v160-paper: #fff;
  --envi-v160-wine: #71334b;
  --envi-v160-blush: #f5edf1;
  --envi-v160-tiffany: #71334b;
  --envi-v160-tiffany-dark: #572638;
  --envi-v160-tiffany-soft: #f5edf1;
  background: #fff;
}
body.envi-professional-theme .envi-header,
body.envi-professional-theme .envi-category-section,
body.envi-professional-theme .envi-collection-section,
body.envi-professional-theme .envi-standard-section,
body.envi-professional-theme .envi-journal-section { background: #fff; }
body.envi-professional-theme .envi-section-pad {
  padding-block: clamp(52px, 7vw, 104px);
}
body.envi-professional-theme .envi-eyebrow {
  font-size: 11px;
  letter-spacing: .14em;
  line-height: 1.5;
}
body.envi-professional-theme .envi-section-heading h2 {
  font-size: clamp(34px, 4.6vw, 64px);
  line-height: 1.08;
  text-wrap: balance;
}
body.envi-professional-theme .envi-section-heading > p {
  font-size: 16px;
  line-height: 1.75;
}
body.envi-professional-theme .envi-standard-copy .envi-eyebrow {
  color: var(--envi-gold);
}
body.envi-professional-theme .envi-button {
  min-height: 48px;
  border-radius: 9px;
  font-size: 14px;
  letter-spacing: .01em;
}
body.envi-professional-theme .envi-button-dark {
  background: var(--envi-wine-dark);
  border-color: var(--envi-wine-dark);
}
body.envi-professional-theme .envi-text-button {
  min-height: 44px;
  font-size: 14px;
}

/* Text stays immediately visible; the original hero image retains priority. */
body.envi-professional-theme .envi-hero {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr);
  min-height: 0 !important;
  height: auto !important;
  max-height: none !important;
  padding: 0 !important;
  background: #fff !important;
}
body.envi-professional-theme .envi-hero-image {
  position: relative;
  inset: auto;
  z-index: auto !important;
  grid-column: 1;
  grid-row: 2;
  display: block;
  width: 100%;
  height: auto !important;
  aspect-ratio: 1672 / 941;
  object-fit: contain !important;
  object-position: center !important;
  background: #fff;
}
body.envi-professional-theme .envi-hero-overlay { display: none; }
body.envi-professional-theme .envi-hero-content {
  position: relative;
  inset: auto;
  grid-column: 1;
  grid-row: 1;
  width: auto !important;
  min-width: 0;
  min-height: 0;
  padding: 34px 18px 30px !important;
  transform: none;
  background: #fff;
}
body.envi-professional-theme .envi-hero h1 {
  max-width: 12ch !important;
  font-size: clamp(42px, 10.5vw, 68px) !important;
  font-weight: 500;
  line-height: 1.04 !important;
  letter-spacing: -.04em !important;
  overflow-wrap: break-word;
  text-wrap: balance;
}
body.envi-professional-theme .envi-hero h1 span { display: block; }
body.envi-professional-theme .envi-hero .envi-hero-intro {
  margin-top: 20px !important;
  font-size: 17px !important;
  line-height: 1.65 !important;
}
body.envi-professional-theme .envi-hero-buttons {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 20px !important;
  margin-top: 22px !important;
}
body.envi-professional-theme .envi-hero-notes {
  position: static;
  grid-column: 1;
  grid-row: 3;
  display: flex !important;
  flex-wrap: wrap;
  gap: 10px 20px !important;
  padding: 18px;
  background: #fff;
  border-block-start: 1px solid var(--envi-line);
  font-size: 13px !important;
  letter-spacing: 0;
}
body.envi-professional-theme .envi-hero-signature { display: none; }

/* A square is the image's containing box, independent of source proportions. */
body.envi-professional-theme .envi-category-card,
body.envi-professional-theme .envi-product-card {
  background: #fff;
  border: 1px solid var(--envi-line);
  border-radius: 16px;
  overflow: hidden;
  transition: border-color .22s ease, transform .22s ease;
}
body.envi-professional-theme .envi-category-image,
body.envi-professional-theme .envi-category-grid-compact .envi-category-image {
  aspect-ratio: 1 / 1;
  background: #fff;
}
body.envi-professional-theme .envi-category-photo {
  width: 100%;
  height: 100% !important;
  min-height: 0;
  padding: 8%;
  object-fit: contain;
  object-position: center;
}
body.envi-professional-theme .envi-category-image::after { display: none; }
body.envi-professional-theme .envi-category-image > span {
  color: var(--envi-gold);
  font-size: 11px;
}
body.envi-professional-theme .envi-category-card > div:last-child {
  padding: 17px;
  border-block-start: 1px solid var(--envi-line);
}
body.envi-professional-theme .envi-category-card h3 {
  font-size: 17px;
  line-height: 1.4;
}
body.envi-professional-theme .envi-category-card > div:last-child span {
  font-size: 13px;
  line-height: 1.6;
}
body.envi-professional-theme .envi-product-image,
body.envi-professional-theme .envi-editorial-product-image {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: #fff;
}
body.envi-professional-theme .envi-product-image > img,
body.envi-professional-theme .envi-editorial-product-image > img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  max-height: 100%;
  margin: 0;
  padding: 9%;
  object-fit: contain;
  object-position: center;
}
body.envi-professional-theme .envi-product-info {
  padding: 18px;
  border-block-start: 1px solid var(--envi-line);
}
body.envi-professional-theme .envi-product-info > p { font-size: 10px; }
body.envi-professional-theme .envi-product-info h3 {
  font-size: 18px;
  line-height: 1.4;
}
body.envi-professional-theme .envi-editorial-caption { font-size: 14px; }
body.envi-professional-theme .envi-product-row .price { font-size: 16px; }
body.envi-professional-theme .envi-add-button {
  background: var(--envi-wine-dark) !important;
}

/* Archive cards: structure and native actions remain unchanged. */
body.envi-professional-theme .envi-loop-card .envi-card-shell {
  padding: 10px;
  border: 1px solid var(--envi-line);
  border-radius: 16px;
  background: #fff;
}
body.envi-professional-theme .envi-loop-card .envi-card-media {
  aspect-ratio: 1 / 1;
  border: 0;
  border-radius: 10px;
  background: #fff;
}
body.envi-professional-theme .envi-card-image-link { padding: 8%; }
body.envi-professional-theme .envi-card-image { min-height: 0; }
body.envi-professional-theme .envi-card-copy { padding: 15px 3px 3px; }
body.envi-professional-theme .envi-card-price { font-size: 16px; }
body.envi-professional-theme .woocommerce ul.products li.product.envi-loop-card .envi-card-action.button,
body.envi-professional-theme .envi-loop-card .envi-card-action {
  min-height: 44px !important;
  border-radius: 8px !important;
  border-color: var(--envi-line-strong) !important;
  background: #fff !important;
  color: var(--envi-wine-dark) !important;
  font-size: 13px !important;
}
body.envi-professional-theme .envi-category-card:hover,
body.envi-professional-theme .envi-loop-card:hover .envi-card-media {
  transform: none;
  box-shadow: none;
}
body.envi-professional-theme .envi-product-card:hover .envi-product-image > img,
body.envi-professional-theme .envi-product-card:hover .envi-editorial-product-image > img,
body.envi-professional-theme .envi-loop-card:hover .envi-card-image {
  transform: none !important;
}

body.envi-professional-theme :is(.envi-discount-badge, .envi-mobile-discount-badge, .envi-card-badge) {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  font-size: 14px !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
}
body.envi-professional-theme :is(.envi-discount-badge, .envi-mobile-discount-badge, .envi-card-badge) bdi {
  direction: ltr;
  unicode-bidi: isolate;
  white-space: nowrap;
}
/* Root renders this span inside the first primary gallery image. */
body.envi-professional-theme.single-product .woocommerce-product-gallery {
  background: #fff !important;
  border-color: var(--envi-line);
}
body.envi-professional-theme.single-product .woocommerce-product-gallery__image {
  position: relative;
  background: #fff;
}
body.envi-professional-theme.single-product .woocommerce-product-gallery__image > .envi-discount-badge {
  position: absolute;
  top: 16px;
  inset-inline-start: 68px;
  z-index: 2;
  max-width: calc(100% - 88px);
  padding: 8px 12px;
  border: 0;
  border-radius: 999px;
  background: var(--envi-wine-dark);
  color: #fff;
  pointer-events: none;
}

body.envi-professional-theme .envi-standard-points h3 { font-size: 17px; }
body.envi-professional-theme .envi-standard-points p { font-size: 15px; }
body.envi-professional-theme .envi-uv-section {
  background: #321a26;
}
body.envi-professional-theme .envi-uv-visual {
  background: #3d2030;
  border-color: #765464;
}
body.envi-professional-theme .envi-uv-visual > i {
  background: var(--envi-gold-soft);
  box-shadow: none;
}
body.envi-professional-theme .envi-uv-copy > p,
body.envi-professional-theme .envi-trade-copy > p { color: #eadde3; }
body.envi-professional-theme .envi-trade-section { background: #572638; }

/* Footer includes legal and checkout links: readable at every breakpoint. */
body.envi-professional-theme .envi-footer {
  background: #321a26;
  color: #eadde3;
  gap: 38px;
  font-size: 16px !important;
  line-height: 1.65 !important;
}
body.envi-professional-theme .envi-footer :is(p, a, button, span, strong) {
  font-size: 16px !important;
  line-height: 1.65 !important;
  letter-spacing: 0;
  overflow-wrap: anywhere;
  color: #eadde3;
}
body.envi-professional-theme .envi-footer-links strong { color: #dfc79c; }
body.envi-professional-theme .envi-footer-links a,
body.envi-professional-theme .envi-footer-links button,
body.envi-professional-theme .envi-legal-links a { min-height: 44px; }
body.envi-professional-theme .envi-legal-links {
  align-items: center;
  gap: 8px 24px;
  border-color: #694754;
}
body.envi-professional-theme .envi-footer-bottom { border-color: #694754; }
body.envi-professional-theme .envi-footer a:focus-visible,
body.envi-professional-theme .envi-footer button:focus-visible {
  outline-color: #dfc79c;
}

/* Root adds this class only once a section enters view. No pending state. */
@keyframes enviAtelierReveal {
  from { opacity: .25; transform: translateY(18px); }
  to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: no-preference) {
  body.envi-professional-theme [data-envi-reveal].envi-in-view:not(.envi-hero) {
    animation: enviAtelierReveal .6s cubic-bezier(.2,.7,.3,1) 1;
  }
}
@media (hover: hover) and (pointer: fine) {
  body.envi-professional-theme .envi-category-card:hover,
  body.envi-professional-theme .envi-product-card:hover {
    border-color: var(--envi-gold-soft);
    transform: translateY(-3px);
  }
  body.envi-professional-theme .envi-loop-card:hover .envi-card-shell {
    border-color: var(--envi-gold-soft);
  }
  body.envi-professional-theme .woocommerce ul.products li.product.envi-loop-card .envi-card-action.button:hover,
  body.envi-professional-theme .envi-loop-card .envi-card-action:hover {
    background: var(--envi-wine-dark) !important;
    border-color: var(--envi-wine-dark) !important;
    color: #fff !important;
  }
  body.envi-professional-theme .envi-footer a:hover,
  body.envi-professional-theme .envi-footer button:hover { color: #fff; }
}
@media (min-width: 1021px) {
  body.envi-professional-theme .envi-hero {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-rows: auto auto;
    align-content: center;
    min-height: 650px !important;
    padding: 54px max(24px, calc((100vw - var(--envi-content))/2)) !important;
  }
  body.envi-professional-theme .envi-hero-image {
    position: absolute !important;
    grid-column: auto;
    grid-row: auto;
    inset: 0 !important;
    z-index: -3 !important;
    height: 100% !important;
    aspect-ratio: auto;
    object-fit: cover !important;
  }
  body.envi-professional-theme .envi-hero-content {
    padding: clamp(28px, 3.5vw, 48px) !important;
    border: 1px solid var(--envi-line);
    border-block-end: 0;
    border-radius: 16px 16px 0 0;
  }
  body.envi-professional-theme .envi-hero h1 {
    font-size: clamp(44px, 5.2vw, 78px) !important;
  }
  body.envi-professional-theme .envi-hero-notes {
    grid-row: 2;
    padding: 0 clamp(28px, 3.5vw, 48px) 28px;
    border: 1px solid var(--envi-line);
    border-block-start: 0;
    border-radius: 0 0 16px 16px;
  }
  /* Match the existing photo composition: copy on the physical left. */
  [dir="rtl"] body.envi-professional-theme .envi-hero-content,
  [dir="rtl"] body.envi-professional-theme .envi-hero-notes { grid-column: 2; }
}
@media (max-width: 760px) {
  body.envi-professional-theme .envi-product-info,
  body.envi-professional-theme .envi-category-card > div:last-child { padding: 13px; }
  body.envi-professional-theme .envi-product-info h3,
  body.envi-professional-theme .envi-category-card h3 { font-size: 15px; }
  body.envi-professional-theme .envi-loop-card .envi-card-shell { padding: 7px; }
  body.envi-professional-theme .envi-card-copy { padding-inline: 2px; }
  body.envi-professional-theme .envi-footer { padding-inline: 22px; }
  body.envi-professional-theme .envi-footer-links {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px 16px;
  }
  body.envi-professional-theme .envi-footer-links > div:last-child {
    grid-column: 1 / -1;
  }
}
@media (prefers-reduced-motion: reduce) {
  body.envi-professional-theme [data-envi-reveal],
  body.envi-professional-theme .envi-in-view {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}
@media print {
  body.envi-professional-theme [data-envi-reveal],
  body.envi-professional-theme .envi-in-view {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    content-visibility: visible !important;
  }
  body.envi-professional-theme .envi-footer,
  body.envi-professional-theme .envi-footer :is(p, a, button, span, strong) {
    background: #fff !important;
    color: #251f22 !important;
  }
}

/* ENVI: image captions use document flow, never the swatch tooltip geometry.
 * Load after product.css, storefront-recovery.css and storefront-refinement.css.
 * Both wrapper and item exclusions preserve the existing curve/curl controls.
 */
body.envi-professional-theme.single-product .variable-items-wrapper:not([data-attribute_name="attribute_pa_curve"]):not([data-attribute_name="attribute_pa_curl"]) > .image-variable-item:not([data-attribute_name="attribute_pa_curve"]):not([data-attribute_name="attribute_pa_curl"]) {
  height: auto !important;
  min-height: 92px !important;
}

/* Keep every quantity control visible beside the purchase button on phones. */
@media (max-width: 1020px) {
  body.envi-professional-theme.envi-ui-patch-v140.single-product .envi-ui-buy-row {
    grid-template-columns: 132px minmax(0, 1fr) !important;
    gap: 8px !important;
  }
  body.envi-professional-theme.envi-ui-patch-v140.single-product .envi-ui-buy-row .quantity {
    display: grid !important;
    grid-template-columns: 44px minmax(0, 1fr) 44px !important;
    width: 132px !important;
    min-width: 0 !important;
    max-width: 132px !important;
    overflow: hidden;
  }
  body.envi-professional-theme.envi-ui-patch-v140.single-product .envi-ui-buy-row .quantity input.qty {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }
  body.envi-professional-theme.envi-ui-patch-v140.single-product .envi-ui-buy-row .quantity .envi-ui-qty-btn {
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
  }
}
body.envi-professional-theme.single-product .variable-items-wrapper:not([data-attribute_name="attribute_pa_curve"]):not([data-attribute_name="attribute_pa_curl"]) > .image-variable-item:not([data-attribute_name="attribute_pa_curve"]):not([data-attribute_name="attribute_pa_curl"])::before {
  content: none !important;
  display: none !important;
}
body.envi-professional-theme.single-product .variable-items-wrapper:not([data-attribute_name="attribute_pa_curve"]):not([data-attribute_name="attribute_pa_curl"]) > .image-variable-item:not([data-attribute_name="attribute_pa_curve"]):not([data-attribute_name="attribute_pa_curl"])::after {
  content: attr(data-title) !important;
  position: static !important;
  inset: auto !important;
  display: block !important;
  flex: 0 0 auto !important;
  align-self: stretch !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  transform: none !important;
  visibility: visible !important;
  opacity: 1 !important;
  color: inherit !important;
  font-size: 12px !important;
  line-height: 1.25 !important;
  text-align: center !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
  pointer-events: none !important;
}

/* The label sits above image choices on phones. Text/curl rows are untouched.
 * Browsers without :has keep the existing wrapping layout and fixed captions.
 */
@media (max-width: 480px) {
  @supports selector(:has(*)) {
    body.envi-professional-theme.single-product table.variations tr:has(.variable-items-wrapper:not([data-attribute_name="attribute_pa_curve"]):not([data-attribute_name="attribute_pa_curl"]) > .image-variable-item:not([data-attribute_name="attribute_pa_curve"]):not([data-attribute_name="attribute_pa_curl"])) {
      grid-template-columns: minmax(0, 1fr) !important;
      gap: 6px !important;
    }
    body.envi-professional-theme.single-product table.variations tr:has(.variable-items-wrapper:not([data-attribute_name="attribute_pa_curve"]):not([data-attribute_name="attribute_pa_curl"]) > .image-variable-item:not([data-attribute_name="attribute_pa_curve"]):not([data-attribute_name="attribute_pa_curl"])) > .label label {
      padding: 0 !important;
      white-space: normal !important;
      display: inline !important;
    }
    body.envi-professional-theme.single-product table.variations tr .variable-items-wrapper:not([data-attribute_name="attribute_pa_curve"]):not([data-attribute_name="attribute_pa_curl"]):has(> .image-variable-item:not([data-attribute_name="attribute_pa_curve"]):not([data-attribute_name="attribute_pa_curl"])) {
      flex-wrap: wrap !important;
      align-items: stretch !important;
      gap: 6px !important;
      padding: 0 !important;
      overflow: visible !important;
    }
  }
}
/* Long translated headings must stay inside the mobile page. */
body.envi-professional-theme .envi-page-hero h1 {
  overflow-wrap: anywhere;
  hyphens: auto;
}
@media (max-width: 480px) {
  body.envi-professional-theme .envi-page-hero h1 {
    font-size: clamp(28px, 7.2vw, 34px);
  }
}

/* Brand colour and a 44px touch target for the native scroll control. */
body.envi-professional-theme #ast-scroll-top {
  width: 44px;
  height: 44px;
  line-height: 44px;
  border-radius: 50%;
  background: var(--envi-wine, #71334b) !important;
  color: #fff !important;
  box-shadow: 0 4px 16px rgba(87, 38, 56, .16);
}
body.envi-professional-theme #ast-scroll-top:hover {
  background: var(--envi-wine-dark, #572638) !important;
}
body.envi-professional-theme #ast-scroll-top:focus-visible {
  outline: 2px solid var(--envi-wine, #71334b);
  outline-offset: 3px;
}


/* Purchase pages start with the customer's selection, not a marketing hero. */
/* Product content starts directly after the storefront header. */
body.envi-professional-theme.single-product #primary {
  margin-top: 0 !important;
}
body.envi-professional-theme.single-product .site-main {
  padding-top: 18px !important;
}
body.envi-professional-theme.single-product .ast-woocommerce-container {
  padding-top: 0 !important;
}
body.envi-professional-theme.single-product .woocommerce-notices-wrapper:empty {
  display: none !important;
}
body.envi-professional-theme.single-product table.variations th.label {
  margin: 0 !important;
  line-height: 1.35 !important;
  align-self: center;
}
body.envi-professional-theme.single-product table.variations th.label label {
  margin: 0 !important;
  padding: 0 !important;
}
body.envi-professional-theme.single-product table.variations .woo-selected-variation-item-name:empty {
  display: none !important;
}
body.envi-professional-theme.single-product table.variations tr {
  padding-bottom: 8px !important;
  margin-bottom: 8px !important;
}
body.envi-professional-theme.single-product table.variations .variable-item {
  min-height: 44px !important;
}

body.envi-professional-theme .envi-catalog-description {
  margin: 4px 0 0;
}
body.envi-professional-theme .envi-catalog-description > summary {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  padding: 6px 0;
  list-style: none;
  cursor: pointer;
  font-size: 14px;
  color: var(--envi-wine);
  font-weight: 650;
}
body.envi-professional-theme .envi-catalog-description > summary::-webkit-details-marker { display: none; }
body.envi-professional-theme .envi-catalog-description > summary::after {
  content: '+';
  font-size: 19px;
  line-height: 1;
  font-weight: 400;
}
body.envi-professional-theme .envi-catalog-description[open] > summary::after { content: '\2212'; }
body.envi-professional-theme .envi-catalog-description > summary:focus-visible { outline: 2px solid var(--envi-wine); outline-offset: 3px; border-radius: 3px; }
body.envi-professional-theme .envi-catalog-description-copy { padding: 4px 0 10px; }
body.envi-professional-theme .envi-catalog-description-copy > p:last-child { margin-bottom: 0; }
body.envi-professional-theme .envi-transactional-title {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
body.envi-professional-theme.woocommerce-cart .envi-purchase-content,
body.envi-professional-theme.woocommerce-checkout:not(.woocommerce-order-received) .envi-purchase-content {
  width: min(1180px, calc(100% - 40px)) !important;
  max-width: 1180px !important;
  margin: 0 auto !important;
  padding: 18px 0 44px !important;
  min-height: 0 !important;
}
body.envi-professional-theme.woocommerce-cart .envi-purchase-content > .woocommerce {
  grid-template-columns: minmax(0, 1fr) 350px !important;
  gap: 14px 24px !important;
  align-items: start !important;
}
body.envi-professional-theme.woocommerce-cart .woocommerce-cart-form,
body.envi-professional-theme.woocommerce-cart .cart-collaterals {
  width: 100% !important;
  margin: 0 !important;
}
body.envi-professional-theme.woocommerce-cart .woocommerce-notices-wrapper:empty,
body.envi-professional-theme.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-notices-wrapper:empty {
  display: none !important;
}
body.envi-professional-theme.woocommerce-cart .cart-collaterals {
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}
body.envi-professional-theme.woocommerce-cart .cart_totals {
  width: 100% !important;
  padding: 18px !important;
  border: 1px solid var(--envi-line) !important;
  border-radius: 16px !important;
  background: #fff !important;
}
body.envi-professional-theme.woocommerce-cart .cart_totals h2 {
  padding: 0 0 12px !important;
  margin: 0 !important;
  border: 0 !important;
  background: transparent !important;
  font-family: var(--envi-font-ui) !important;
  font-size: 20px !important;
  font-weight: 750 !important;
  line-height: 1.3 !important;
}
body.envi-professional-theme.woocommerce-cart .cart_totals table {
  border: 0 !important;
  border-radius: 0 !important;
  table-layout: fixed !important;
}
body.envi-professional-theme.woocommerce-cart .cart_totals th {
  width: 31% !important;
  padding: 10px 0 !important;
  font-size: 13px !important;
  line-height: 1.4 !important;
  text-align: start !important;
}
body.envi-professional-theme.woocommerce-cart .cart_totals td {
  width: 69% !important;
  padding: 10px 0 10px 10px !important;
  padding-inline: 10px 0 !important;
  text-align: end !important;
  font-size: 14px !important;
  line-height: 1.45 !important;
}
body.envi-professional-theme.woocommerce-cart .cart_totals .shipping td,
body.envi-professional-theme.woocommerce-cart .cart_totals .shipping td p,
body.envi-professional-theme.woocommerce-cart .cart_totals .shipping td label {
  font-size: 13px !important;
  line-height: 1.45 !important;
}
body.envi-professional-theme.woocommerce-cart .cart_totals .shipping td p {
  margin: 6px 0 !important;
}
body.envi-professional-theme.woocommerce-cart .cart_totals .woocommerce-shipping-calculator {
  margin: 6px 0 0 !important;
}
body.envi-professional-theme.woocommerce-cart .cart_totals .order-total th,
body.envi-professional-theme.woocommerce-cart .cart_totals .order-total td {
  font-size: 18px !important;
  padding-block: 14px !important;
}
body.envi-professional-theme.woocommerce-cart .woocommerce table.shop_table img {
  background: #fff !important;
}
body.envi-professional-theme.woocommerce-cart .envi-delivery-progress,
body.envi-professional-theme.woocommerce-checkout:not(.woocommerce-order-received) .envi-delivery-progress {
  width: 100% !important;
  margin: 0 0 12px !important;
  padding: 10px 12px !important;
  background: #fff !important;
}
body.envi-professional-theme.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-form-coupon-toggle {
  width: 100% !important;
  margin: 0 0 14px !important;
  padding: 0 !important;
  border: 0 !important;
}
body.envi-professional-theme.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-form-coupon-toggle .woocommerce-info {
  width: 100% !important;
  margin: 0 !important;
  padding: 7px 0 !important;
  border: 0 !important;
}
body.envi-professional-theme.woocommerce-checkout:not(.woocommerce-order-received) form.checkout.woocommerce-checkout {
  width: 100% !important;
  margin: 0 !important;
  gap: 0 28px !important;
}
body.envi-professional-theme.woocommerce-checkout:not(.woocommerce-order-received) #order_review_heading {
  padding: 0 0 12px !important;
  border: 0 !important;
  border-radius: 0 !important;
  font-family: var(--envi-font-ui) !important;
  font-size: 20px !important;
  font-weight: 750 !important;
  line-height: 1.3 !important;
  background: transparent !important;
}
body.envi-professional-theme.woocommerce-checkout:not(.woocommerce-order-received) #order_review {
  padding: 14px !important;
  background: #fff !important;
  box-shadow: none !important;
}
body.envi-professional-theme.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-billing-fields > h3,
body.envi-professional-theme.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-additional-fields > h3 {
  margin: 0 0 12px !important;
  padding: 0 !important;
  font-family: var(--envi-font-ui) !important;
  font-size: 20px !important;
  font-weight: 750 !important;
  line-height: 1.3 !important;
}
body.envi-professional-theme.woocommerce-checkout:not(.woocommerce-order-received) .envi-checkout-assurance {
  display: none !important;
}
body.envi-professional-theme.woocommerce-checkout:not(.woocommerce-order-received) .envi-delivery-progress {
  display: none !important;
}
body.envi-professional-theme .envi-mobile-order-preview { display: none; }
body.envi-professional-theme.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
body.envi-professional-theme.woocommerce-checkout:not(.woocommerce-order-received) #place_order {
  background: var(--envi-wine) !important;
  border-color: var(--envi-wine) !important;
  color: #fff !important;
}
body.envi-professional-theme.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
body.envi-professional-theme.woocommerce-checkout:not(.woocommerce-order-received) #place_order:hover {
  background: var(--envi-wine-dark) !important;
  border-color: var(--envi-wine-dark) !important;
}
@media (max-width: 900px) {
  body.envi-professional-theme.woocommerce-cart .envi-purchase-content,
  body.envi-professional-theme.woocommerce-checkout:not(.woocommerce-order-received) .envi-purchase-content {
    width: calc(100% - 28px) !important;
    padding-block: 12px 32px !important;
  }
  body.envi-professional-theme.woocommerce-cart .envi-purchase-content > .woocommerce {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 14px !important;
  }
  body.envi-professional-theme.woocommerce-checkout:not(.woocommerce-order-received) form.checkout.woocommerce-checkout {
    gap: 16px !important;
  }
  body.envi-professional-theme.woocommerce-checkout:not(.woocommerce-order-received) #order_review_heading {
    margin: 0 !important;
    padding: 0 !important;
  }
  body.envi-professional-theme .envi-mobile-order-preview {
    display: block;
    margin: 0 0 8px;
    border: 1px solid var(--envi-line);
    border-radius: 14px;
    background: #fff;
  }
  body.envi-professional-theme .envi-mobile-order-preview > summary {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px;
    cursor: pointer;
    list-style: none;
    min-height: 66px;
  }
  body.envi-professional-theme .envi-mobile-order-preview > summary::-webkit-details-marker { display: none; }
  body.envi-professional-theme .envi-mobile-order-preview > summary:focus-visible {
    outline: 2px solid var(--envi-wine);
    outline-offset: 3px;
    border-radius: 14px;
  }
  body.envi-professional-theme .envi-order-preview-images {
    display: flex;
    flex: 0 0 auto;
    direction: ltr;
  }
  body.envi-professional-theme .envi-order-preview-images img {
    width: 32px;
    height: 40px;
    object-fit: contain;
    border: 1px solid var(--envi-line);
    border-radius: 6px;
    background: #fff;
    margin-inline-start: -12px;
  }
  body.envi-professional-theme .envi-order-preview-images img:first-child { margin-inline-start: 0; }
  body.envi-professional-theme .envi-order-preview-label { min-width: 0; flex: 1; }
  body.envi-professional-theme .envi-order-preview-label strong,
  body.envi-professional-theme .envi-order-preview-label small { display: block; line-height: 1.35; }
  body.envi-professional-theme .envi-order-preview-label strong { font-size: 14px; }
  body.envi-professional-theme .envi-order-preview-label small { font-size: 12px; color: var(--envi-muted); }
  body.envi-professional-theme .envi-order-preview-total { white-space: nowrap; font-size: 16px; }
  body.envi-professional-theme .envi-order-preview-chevron {
    width: 7px;
    height: 7px;
    flex: 0 0 7px;
    border-right: 1.5px solid var(--envi-wine);
    border-bottom: 1.5px solid var(--envi-wine);
    transform: rotate(45deg);
  }
  body.envi-professional-theme .envi-mobile-order-preview[open] .envi-order-preview-chevron { transform: rotate(225deg); }
  body.envi-professional-theme .envi-order-preview-body { padding: 0 12px 12px; }
  body.envi-professional-theme .envi-order-preview-body ul { list-style: none; margin: 0; padding: 0; }
  body.envi-professional-theme .envi-order-preview-body li {
    display: grid;
    grid-template-columns: 40px minmax(0,1fr) auto;
    align-items: start;
    gap: 10px;
    padding: 12px 0;
    margin: 0;
    border-top: 1px solid var(--envi-line);
    font-size: 13px;
    line-height: 1.4;
  }
  body.envi-professional-theme .envi-order-preview-body li > img { width: 40px; height: 50px; object-fit: contain; }
  body.envi-professional-theme .envi-order-preview-product strong { display: block; font-size: 13px; }
  body.envi-professional-theme .envi-order-preview-product small { display: block; font-size: 12px; color: var(--envi-muted); margin-top: 4px; }
  body.envi-professional-theme .envi-order-preview-body > a { display: inline-flex; align-items: center; min-height: 44px; color: var(--envi-wine); font-weight: 700; font-size: 14px; }
}
@media (max-width: 768px) {
  body.envi-professional-theme.woocommerce-cart .envi-cart-inline-summary {
    gap: 8px !important;
    justify-content: space-between !important;
  }
  body.envi-professional-theme.woocommerce-cart .envi-cart-inline-summary .envi-cart-unit-price,
  body.envi-professional-theme.woocommerce-cart .envi-cart-inline-summary .envi-cart-times,
  body.envi-professional-theme.woocommerce-cart .envi-cart-inline-summary .envi-cart-equals {
    display: none !important;
  }
  body.envi-professional-theme.woocommerce-cart .envi-cart-inline-summary .envi-cart-line-total {
    margin-inline-start: auto !important;
    font-size: 16px !important;
  }
  body.envi-professional-theme.woocommerce-cart .quantity.envi-ui-cart-qty-ready {
    width: 134px !important;
    min-width: 134px !important;
    height: 46px !important;
  }
  body.envi-professional-theme.woocommerce-cart .quantity.envi-ui-cart-qty-ready .envi-ui-cart-qty-btn,
  body.envi-professional-theme.woocommerce-cart .quantity.envi-ui-cart-qty-ready input.qty {
    flex-basis: 44px !important;
    width: 44px !important;
    min-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
  }
  body.envi-professional-theme.woocommerce-cart .cart_totals td {
    width: 100% !important;
    padding: 12px 0 !important;
  }
}

/* Compact archive spacing: keep catalogue products close to the header. */
body.envi-professional-theme:is(.post-type-archive-product, .tax-product_cat, .tax-product_tag) .site-main {
  padding-top: 18px;
  padding-bottom: 40px;
}
body.envi-professional-theme:is(.post-type-archive-product, .tax-product_cat, .tax-product_tag) .ast-woocommerce-container {
  padding-top: 0;
  padding-bottom: 0;
}
body.envi-professional-theme:is(.post-type-archive-product, .tax-product_cat, .tax-product_tag) .woocommerce-breadcrumb {
  margin-bottom: 14px;
}
body.envi-professional-theme:is(.post-type-archive-product, .tax-product_cat, .tax-product_tag) .woocommerce-notices-wrapper:empty {
  display: none;
}

/* Readable catalogue count and original price, audited on the white storefront. */
body.envi-professional-theme .envi-ui-toolbar .envi-ui-count { color: #6d6468; }
body.envi-professional-theme .envi-card-shell .envi-card-price del { color: #6d6468 !important; opacity: 1 !important; }

/* Keep all seven desktop groups on one row at compact laptop widths. */
@media (min-width: 1021px) and (max-width: 1279px) {
  body.envi-professional-theme.envi-ui-patch-v140 .envi-desktop-nav .envi-v14-nav-grid { gap: 3px !important; flex-wrap: nowrap !important; }
  body.envi-professional-theme.envi-ui-patch-v140 .envi-desktop-nav .envi-v14-nav-link { font-size: 12px !important; padding-inline: 3px !important; min-height: 46px; }
}
@media (min-width: 1100px) and (max-width: 1279px) {
  body.envi-professional-theme.envi-ui-patch-v140 .envi-desktop-nav .envi-v14-nav-grid { gap: 5px !important; }
  body.envi-professional-theme.envi-ui-patch-v140 .envi-desktop-nav .envi-v14-nav-link { font-size: 14px !important; }
}


/* ENVI catalogue 2026-10-12: full titles, native expiry and compact cards. */
body.envi-professional-theme .envi-loop-card .envi-card-shell { padding: 8px; }
body.envi-professional-theme .envi-loop-card .envi-card-copy { padding: 10px 2px 2px !important; }
body.envi-professional-theme .envi-loop-card .envi-card-bottom { padding-top: 8px; gap: 8px; }
body.envi-professional-theme .envi-loop-card .envi-card-title,
body.envi-professional-theme .woocommerce ul.products li.product.envi-loop-card .woocommerce-loop-product__title.envi-card-title {
  display: block !important;
  overflow: visible !important;
  -webkit-line-clamp: unset !important;
  line-clamp: unset !important;
  max-height: none !important;
  height: auto !important;
  min-height: 41px;
  white-space: normal !important;
  text-overflow: clip !important;
  overflow-wrap: anywhere;
  word-break: normal;
  font-size: 15px !important;
  line-height: 1.35 !important;
}
body.envi-professional-theme .envi-loop-card .envi-card-badge-out {
  top: auto !important;
  bottom: 0 !important;
  inset-inline: 0 !important;
  width: 100%;
  min-height: 32px !important;
  padding: 7px 8px !important;
  justify-content: center;
  border: 0;
  border-radius: 0 !important;
  background: #544a4f;
  color: #fff;
  font-size: 13px !important;
  letter-spacing: 0;
  text-transform: none;
}
body.envi-professional-theme .envi-loop-card .envi-card-expiry {
  position: absolute;
  z-index: 3;
  inset-inline: 0;
  bottom: 0;
  pointer-events: none;
}
body.envi-professional-theme .envi-loop-card.outofstock .envi-card-expiry { bottom: 32px; }
body.envi-professional-theme .envi-loop-card .envi-card-expiry .woope-notice {
  position: static !important;
  width: auto !important;
  margin: 0 !important;
  padding: 6px 5px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: rgba(255,255,255,.96) !important;
  color: #544a4f !important;
  font-size: 12px !important;
  line-height: 1.35 !important;
  font-weight: 500;
  text-align: center;
  white-space: normal;
  overflow-wrap: anywhere;
}
body.envi-professional-theme .envi-loop-card .envi-card-expiry .woope-variable-notice:empty { display: none !important; }
@media (min-width: 1181px) {
  body.envi-professional-theme:not(.single-product) .woocommerce ul.products,
  body.envi-professional-theme:not(.single-product) ul.products { grid-template-columns: repeat(5, minmax(0,1fr)) !important; gap: 24px 14px !important; }
}
@media (max-width: 820px) {
  body.envi-professional-theme .envi-loop-card .envi-card-shell { padding: 6px; }
  body.envi-professional-theme .envi-loop-card .envi-card-copy { padding-top: 9px !important; }
  body.envi-professional-theme .envi-loop-card .envi-card-title,
  body.envi-professional-theme .woocommerce ul.products li.product.envi-loop-card .woocommerce-loop-product__title.envi-card-title { font-size: 14px !important; min-height: 38px; }
  body.envi-professional-theme .envi-loop-card .envi-card-expiry .woope-notice { font-size: 11px !important; padding: 5px 3px !important; }
}

/* Date text occupies its own row so it never covers a product photograph. */
body.envi-professional-theme .envi-loop-card .envi-card-media {
  aspect-ratio: auto;
  display: flex;
  flex-direction: column;
}
body.envi-professional-theme .envi-loop-card .envi-card-image-link {
  position: relative;
  inset: auto;
  width: 100%;
  aspect-ratio: 1 / 1;
}
body.envi-professional-theme .envi-loop-card .envi-card-expiry {
  position: static;
  width: 100%;
}
body.envi-professional-theme .envi-loop-card.outofstock .envi-card-image-link { padding-bottom: 36px; }
