/*
Theme Name: Webworq ApS Child
Theme URI: https://webworq.dk
Description: Child theme for Donna Vino ApS
Author: Sebastian Thiemann
Author URI: https://webworq.dk
Template: Divi
Version: 2.2
*/

/* Import parent theme's CSS */
@import url("../Divi/style.css");

/* ============================================================================
   DONNA VINO BRAND COLORS
   ============================================================================
   - PROSECCO Beige: #d6c0aa
   - Bottle Green: #1f5031
   - Chianti Red: #8e1116
   ========================================================================= */

/* ============================================================================
   WEBWORQ RESPONSIVE HEADINGS
   Apply classes: webworq-h1, webworq-h2, webworq-h3, webworq-h4
   Uses fluid typography with clamp() for smooth scaling across all devices
   HIGH SPECIFICITY to override Divi theme styles

   Usage: Add class to the Divi Text module (Advanced > CSS Class)
   The styles will target the heading INSIDE the module
   ========================================================================= */

/* H1 - Hero/Page Titles */
body #page-container .webworq-h1 h1,
body #page-container h1.webworq-h1,
body .et_pb_section .webworq-h1 h1,
body .et_pb_text.webworq-h1 h1,
body .et_pb_text.webworq-h1 .et_pb_text_inner h1,
body.et_divi_theme .webworq-h1 h1 {
    font-size: clamp(2.5rem, 5vw + 1rem, 4.5rem) !important;
    line-height: 1.1 !important;
    font-weight: 400 !important;
    letter-spacing: -0.02em !important;
    margin-bottom: 0.5em !important;
}

/* H2 - Section Titles (like "Kommende Vinoplevelser & Smagninger") */
body #page-container .webworq-h2 h2,
body #page-container h2.webworq-h2,
body .et_pb_section .webworq-h2 h2,
body .et_pb_text.webworq-h2 h2,
body .et_pb_text.webworq-h2 .et_pb_text_inner h2,
body.et_divi_theme .webworq-h2 h2 {
    font-size: clamp(1rem, 4vw + 0.5rem, 3.5rem) !important;
    line-height: 1.15 !important;
    font-weight: 400 !important;
    letter-spacing: -0.01em !important;
    margin-bottom: 0.5em !important;
}

/* H3 - Subsection Titles */
body #page-container .webworq-h3 h3,
body #page-container h3.webworq-h3,
body .et_pb_section .webworq-h3 h3,
body .et_pb_text.webworq-h3 h3,
body .et_pb_text.webworq-h3 .et_pb_text_inner h3,
body.et_divi_theme .webworq-h3 h3 {
    font-size: clamp(1.5rem, 2.5vw + 0.5rem, 2.25rem) !important;
    line-height: 1.2 !important;
    font-weight: 500 !important;
    letter-spacing: 0 !important;
    margin-bottom: 0.5em !important;
}

/* H4 - Card Titles / Smaller Headings */
body #page-container .webworq-h4 h4,
body #page-container h4.webworq-h4,
body .et_pb_section .webworq-h4 h4,
body .et_pb_text.webworq-h4 h4,
body .et_pb_text.webworq-h4 .et_pb_text_inner h4,
body.et_divi_theme .webworq-h4 h4 {
    font-size: clamp(1.25rem, 2vw + 0.25rem, 1.75rem) !important;
    line-height: 1.3 !important;
    font-weight: 600 !important;
    letter-spacing: 0 !important;
    margin-bottom: 0.5em !important;
}

/* ============================================================================
   WEBWORQ HEADING COLOR VARIANTS
   ========================================================================= */

/* Light text (for dark backgrounds like Bottle Green) */
body #page-container .webworq-h1--light h1,
body #page-container .webworq-h2--light h2,
body #page-container .webworq-h3--light h3,
body #page-container .webworq-h4--light h4,
body .et_pb_text.webworq-h1--light h1,
body .et_pb_text.webworq-h2--light h2,
body .et_pb_text.webworq-h3--light h3,
body .et_pb_text.webworq-h4--light h4,
body.et_divi_theme .webworq-h1--light h1,
body.et_divi_theme .webworq-h2--light h2,
body.et_divi_theme .webworq-h3--light h3,
body.et_divi_theme .webworq-h4--light h4 {
    color: #ffffff !important;
}

/* Brand Green text */
body #page-container .webworq-h1--green h1,
body #page-container .webworq-h2--green h2,
body #page-container .webworq-h3--green h3,
body #page-container .webworq-h4--green h4,
body .et_pb_text.webworq-h1--green h1,
body .et_pb_text.webworq-h2--green h2,
body .et_pb_text.webworq-h3--green h3,
body .et_pb_text.webworq-h4--green h4,
body.et_divi_theme .webworq-h1--green h1,
body.et_divi_theme .webworq-h2--green h2,
body.et_divi_theme .webworq-h3--green h3,
body.et_divi_theme .webworq-h4--green h4 {
    color: #1f5031 !important;
}

/* Brand Beige text */
body #page-container .webworq-h1--beige h1,
body #page-container .webworq-h2--beige h2,
body #page-container .webworq-h3--beige h3,
body #page-container .webworq-h4--beige h4,
body .et_pb_text.webworq-h1--beige h1,
body .et_pb_text.webworq-h2--beige h2,
body .et_pb_text.webworq-h3--beige h3,
body .et_pb_text.webworq-h4--beige h4,
body.et_divi_theme .webworq-h1--beige h1,
body.et_divi_theme .webworq-h2--beige h2,
body.et_divi_theme .webworq-h3--beige h3,
body.et_divi_theme .webworq-h4--beige h4 {
    color: #d6c0aa !important;
}

/* Chianti Red text */
body #page-container .webworq-h1--red h1,
body #page-container .webworq-h2--red h2,
body #page-container .webworq-h3--red h3,
body #page-container .webworq-h4--red h4,
body .et_pb_text.webworq-h1--red h1,
body .et_pb_text.webworq-h2--red h2,
body .et_pb_text.webworq-h3--red h3,
body .et_pb_text.webworq-h4--red h4,
body.et_divi_theme .webworq-h1--red h1,
body.et_divi_theme .webworq-h2--red h2,
body.et_divi_theme .webworq-h3--red h3,
body.et_divi_theme .webworq-h4--red h4 {
    color: #8e1116 !important;
}

/* ============================================================================
   WEBWORQ HEADING - DEVICE-SPECIFIC OVERRIDES
   ========================================================================= */

/* Large desktop (1440px+) */
@media (min-width: 1440px) {
    body #page-container .webworq-h1 h1,
    body .et_pb_text.webworq-h1 h1,
    body.et_divi_theme .webworq-h1 h1 {
        font-size: 4.5rem !important;
    }
    body #page-container .webworq-h2 h2,
    body .et_pb_text.webworq-h2 h2,
    body.et_divi_theme .webworq-h2 h2 {
        font-size: 3.5rem !important;
    }
    body #page-container .webworq-h3 h3,
    body .et_pb_text.webworq-h3 h3,
    body.et_divi_theme .webworq-h3 h3 {
        font-size: 2.25rem !important;
    }
    body #page-container .webworq-h4 h4,
    body .et_pb_text.webworq-h4 h4,
    body.et_divi_theme .webworq-h4 h4 {
        font-size: 1.75rem !important;
    }
}

/* Standard desktop (1024px - 1439px) */
@media (min-width: 1024px) and (max-width: 1439px) {
    body #page-container .webworq-h1 h1,
    body .et_pb_text.webworq-h1 h1,
    body.et_divi_theme .webworq-h1 h1 {
        font-size: 3.5rem !important;
    }
    body #page-container .webworq-h2 h2,
    body .et_pb_text.webworq-h2 h2,
    body.et_divi_theme .webworq-h2 h2 {
        font-size: 2.75rem !important;
    }
    body #page-container .webworq-h3 h3,
    body .et_pb_text.webworq-h3 h3,
    body.et_divi_theme .webworq-h3 h3 {
        font-size: 1.875rem !important;
    }
    body #page-container .webworq-h4 h4,
    body .et_pb_text.webworq-h4 h4,
    body.et_divi_theme .webworq-h4 h4 {
        font-size: 1.5rem !important;
    }
}

/* Tablet (768px - 1023px) */
@media (min-width: 768px) and (max-width: 1023px) {
    body #page-container .webworq-h1 h1,
    body .et_pb_text.webworq-h1 h1,
    body.et_divi_theme .webworq-h1 h1 {
        font-size: 3rem !important;
    }
    body #page-container .webworq-h2 h2,
    body .et_pb_text.webworq-h2 h2,
    body.et_divi_theme .webworq-h2 h2 {
        font-size: 2.25rem !important;
    }
    body #page-container .webworq-h3 h3,
    body .et_pb_text.webworq-h3 h3,
    body.et_divi_theme .webworq-h3 h3 {
        font-size: 1.75rem !important;
    }
    body #page-container .webworq-h4 h4,
    body .et_pb_text.webworq-h4 h4,
    body.et_divi_theme .webworq-h4 h4 {
        font-size: 1.375rem !important;
    }
}

/* Mobile (below 768px) */
@media (max-width: 767px) {
    body #page-container .webworq-h1 h1,
    body .et_pb_text.webworq-h1 h1,
    body.et_divi_theme .webworq-h1 h1 {
        font-size: 2.5rem !important;
    }
    body #page-container .webworq-h2 h2,
    body .et_pb_text.webworq-h2 h2,
    body.et_divi_theme .webworq-h2 h2 {
        font-size: 2rem !important;
    }
    body #page-container .webworq-h3 h3,
    body .et_pb_text.webworq-h3 h3,
    body.et_divi_theme .webworq-h3 h3 {
        font-size: 1.5rem !important;
    }
    body #page-container .webworq-h4 h4,
    body .et_pb_text.webworq-h4 h4,
    body.et_divi_theme .webworq-h4 h4 {
        font-size: 1.25rem !important;
    }
}

/* Small mobile (below 480px) */
@media (max-width: 479px) {
    body #page-container .webworq-h1 h1,
    body .et_pb_text.webworq-h1 h1,
    body.et_divi_theme .webworq-h1 h1 {
        font-size: 2rem !important;
    }
    body #page-container .webworq-h2 h2,
    body .et_pb_text.webworq-h2 h2,
    body.et_divi_theme .webworq-h2 h2 {
        font-size: 1.75rem !important;
    }
    body #page-container .webworq-h3 h3,
    body .et_pb_text.webworq-h3 h3,
    body.et_divi_theme .webworq-h3 h3 {
        font-size: 1.375rem !important;
    }
    body #page-container .webworq-h4 h4,
    body .et_pb_text.webworq-h4 h4,
    body.et_divi_theme .webworq-h4 h4 {
        font-size: 1.125rem !important;
    }
}

/* ============================================================================
   WOOCOMMERCE - PRODUCT GRID & CARDS (SHOP PAGE)
   ========================================================================= */

/* Product grid - equal height cards */
.et_pb_shop .woocommerce ul.products {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
}

/* Premium product card styling for Divi */
.et_pb_shop .woocommerce ul.products li.product {
    background: #ffffff;
    border: 1px solid rgba(214, 192, 170, 0.3);
    border-radius: 8px;
    overflow: hidden;
    transition: all 0.4s ease;
    position: relative;
    padding: 20px;
    margin-bottom: 30px;
    /* Flexbox for equal height */
    display: flex;
    flex-direction: column;
}

/* Content wrapper grows to fill space */
.et_pb_shop
    .woocommerce
    ul.products
    li.product
    .woocommerce-loop-product__link {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

/* Title stays at natural size */
.et_pb_shop
    .woocommerce
    ul.products
    li.product
    .woocommerce-loop-product__title {
    flex-grow: 0;
}

/* Price pushed to bottom of content area */
.et_pb_shop .woocommerce ul.products li.product .price {
    margin-top: auto;
}

.et_pb_shop .woocommerce ul.products li.product:hover {
    transform: translateY(-8px);
    box-shadow: 0 12px 32px rgba(31, 80, 49, 0.15);
    border-color: #1f5031;
}

/* Product image container */
.et_pb_shop .woocommerce ul.products li.product .et_shop_image {
    display: block;
    overflow: hidden;
    border-radius: 4px;
    margin-bottom: 15px;
    position: relative;
}

/* Product image hover effect */
.et_pb_shop .woocommerce ul.products li.product:hover .et_shop_image img {
    transform: scale(1.05);
}

/* Hide Divi Overlay */
.et_shop_image .et_overlay {
    display: none !important;
}

/* ============================================================================
   WOOCOMMERCE - UNIFORM PRODUCT IMAGES
   ========================================================================= */

/* Image container - portrait ratio, subtle background for transparent PNGs */
.et_pb_shop .woocommerce ul.products li.product .et_shop_image {
    aspect-ratio: 3 / 4;
    background: #f8f6f3;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Product image - fully visible, never cropped */
.et_pb_shop .woocommerce ul.products li.product .et_shop_image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    object-position: center center !important;
    padding: 15px;
    transition: transform 0.5s ease;
}

/* ============================================================================
   WOOCOMMERCE - PRODUCT BADGES & PILLS (SHOP PAGE)
   ========================================================================= */

/* Sale Badge - Chianti Red Pill (top-left) */
.et_pb_shop .woocommerce span.onsale {
    background: #8e1116 !important;
    color: #ffffff !important;
    border-radius: 50px !important;
    padding: 8px 20px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: 1px !important;
    text-transform: uppercase !important;
    box-shadow: 0 4px 12px rgba(142, 17, 22, 0.3) !important;
    min-width: auto !important;
    min-height: auto !important;
    line-height: 1 !important;
    top: 15px !important;
    left: 15px !important;
    right: auto !important;
}

/* Category Pills */
.et_pb_shop .woocommerce ul.products li.product .product-categories {
    margin: 10px 0;
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.et_pb_shop .woocommerce ul.products li.product .product-categories a {
    display: inline-block;
    background: #d6c0aa;
    color: #1f5031;
    padding: 6px 16px;
    border-radius: 50px;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    transition: all 0.3s ease;
    text-decoration: none;
}

.et_pb_shop .woocommerce ul.products li.product .product-categories a:hover {
    background: #1f5031;
    color: #d6c0aa;
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(31, 80, 49, 0.2);
}

/* Hide empty category pills */
.et_pb_shop .woocommerce ul.products li.product .product-categories a:empty {
    display: none;
}

/* ============================================================================
   WOOCOMMERCE - CUSTOM BADGES (SHOP PAGE)
   ========================================================================= */

/* Base badge styling */
.dv-badge {
    position: absolute;
    top: 15px;
    right: 15px;
    padding: 6px 14px;
    border-radius: 50px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    z-index: 10;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

/* NEW badge - Prosecco beige (top-right) */
.dv-badge-new {
    background: #d6c0aa;
    color: #1f5031;
}

/* FEATURED badge - Bottle green (top-right) */
.dv-badge-featured {
    background: #1f5031;
    color: #d6c0aa;
}

/* LIMITED/FEW SEATS badge - Chianti red (top-right) */
.dv-badge-limited {
    background: #8e1116;
    color: #ffffff;
}

/* SEATS badge - Bottle green (top-left) */
.dv-badge-seats {
    background: #1f5031;
    color: #d6c0aa;
    top: 15px !important;
    left: 15px !important;
    right: auto !important;
    bottom: auto !important;
}

/* SOLD OUT badge - Chianti red (top-left) */
.dv-badge-soldout {
    background: #8e1116;
    color: #ffffff;
    top: 15px !important;
    left: 15px !important;
    right: auto !important;
    bottom: auto !important;
}

/* Stack multiple badges vertically on top-right */
.et_shop_image .dv-badge:nth-of-type(2) {
    top: 50px;
}

.et_shop_image .dv-badge:nth-of-type(3) {
    top: 85px;
}

/* ============================================================================
   WOOCOMMERCE - PRODUCT TITLES
   ========================================================================= */

.et_pb_shop
    .woocommerce
    ul.products
    li.product
    .woocommerce-loop-product__title {
    color: #1f5031;
    font-size: 18px;
    font-weight: 600;
    margin-bottom: 8px;
    line-height: 1.4;
}

/* ============================================================================
   WOOCOMMERCE - PRICING
   ========================================================================= */

.et_pb_shop .woocommerce ul.products li.product .price {
    color: #1f5031;
    font-weight: 700;
    font-size: 18px;
    display: block;
    margin: 12px 0;
}

.et_pb_shop .woocommerce ul.products li.product .price del {
    color: #999;
    opacity: 0.6;
}

.et_pb_shop .woocommerce ul.products li.product .price ins {
    color: #8e1116;
    text-decoration: none;
}

/* ============================================================================
   WOOCOMMERCE - ADD TO CART BUTTONS (SHOP PAGE)
   ========================================================================= */

/* Exclusive button design */
.et_pb_shop .woocommerce ul.products li.product .button,
.et_pb_shop .woocommerce ul.products li.product .add_to_cart_button,
.et_pb_shop .woocommerce ul.products li.product a.button {
    display: inline-block !important;
    visibility: visible !important;
    opacity: 1 !important;
    background: #1f5031 !important;
    color: #d6c0aa !important;
    border: 2px solid #1f5031 !important;
    border-radius: 50px !important;
    padding: 10px 24px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.8px !important;
    transition: all 0.3s ease !important;
    margin-top: auto !important; /* Push to bottom */
    text-decoration: none !important;
    font-size: 12px !important;
    line-height: 1.2 !important;
    width: auto !important;
    min-width: 140px !important;
    text-align: center !important;
}

.et_pb_shop .woocommerce ul.products li.product .button:hover,
.et_pb_shop .woocommerce ul.products li.product .add_to_cart_button:hover,
.et_pb_shop .woocommerce ul.products li.product a.button:hover {
    background: transparent !important;
    color: #1f5031 !important;
    border-color: #1f5031 !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 16px rgba(31, 80, 49, 0.2) !important;
}

/* Remove the arrow icon completely for a cleaner look */
.et_pb_shop .woocommerce ul.products li.product .button:after,
.et_pb_shop .woocommerce ul.products li.product .add_to_cart_button:after,
.et_pb_shop .woocommerce ul.products li.product a.button:after {
    display: none !important;
}

/* ============================================================================
   AJAX "VIEW CART" BUTTON TRANSFORMATION (GRID & SINGLE PRODUCT)
   ========================================================================= */

/* 1. Hide the original Green Button after it's clicked */
.et_pb_shop .woocommerce ul.products li.product .button.added,
.dv-wine-card .button.added,
.single-product .woocommerce div.product form.cart .button.added {
    display: none !important;
}

/* 2. Style the "Se kurv" text link to look like a Chianti Red Button */
.et_pb_shop .woocommerce ul.products li.product a.added_to_cart,
.dv-wine-card a.added_to_cart,
.single-product .product a.added_to_cart {
    display: inline-block !important;
    visibility: visible !important;
    opacity: 1 !important;

    /* Red Brand Color */
    background: #8e1116 !important;
    border: 2px solid #8e1116 !important;
    color: #ffffff !important;

    /* Match original button dimensions */
    border-radius: 50px !important;
    padding: 10px 24px !important;
    font-weight: 600 !important;
    font-size: 12px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.8px !important;
    text-decoration: none !important;
    margin-top: 10px !important;
    line-height: 1.2 !important;
    min-width: 140px !important;
    text-align: center !important;

    /* Animation */
    transition: all 0.3s ease !important;
    animation: fade_in_button 0.5s ease forwards;
}

/* ============================================================================
   SINGLE PRODUCT - BUTTON CONTAINER ALIGNMENT (ADD TO CART + VIEW CART)
   ========================================================================= */

/* Make the add-to-cart wrapper a flex container for side-by-side buttons */
.single-product
    .woocommerce
    div.product
    form.cart
    .woocommerce-variation-add-to-cart {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 15px !important;
}

/* For simple products - target the button area */
.single-product .woocommerce div.product form.cart:not(.variations_form) {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 15px !important;
}

/* Single Product "Se kurv" button - inline with add-to-cart */
.single-product .woocommerce div.product form.cart a.added_to_cart,
.single-product .product form.cart a.added_to_cart {
    padding: 14px 32px !important;
    font-size: 14px !important;
    margin: 0 !important;
    width: auto !important;
    max-width: none !important;
    height: auto !important;
    line-height: 1.2 !important;
    vertical-align: middle !important;
    flex-shrink: 0 !important;
}

/* Keep the add-to-cart button visible and inline */
.single-product .woocommerce div.product form.cart .single_add_to_cart_button {
    flex-shrink: 0 !important;
    margin: 0 !important;
}

/* 3. Hover Effect for Red Button */
.et_pb_shop .woocommerce ul.products li.product a.added_to_cart:hover,
.dv-wine-card a.added_to_cart:hover,
.single-product .product a.added_to_cart:hover {
    background: transparent !important;
    color: #8e1116 !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 16px rgba(142, 17, 22, 0.2) !important;
}

/* 4. Ensure checkmark icon is hidden */
.et_pb_shop .woocommerce ul.products li.product a.added_to_cart:after,
.dv-wine-card a.added_to_cart:after,
.single-product .product a.added_to_cart:after {
    display: none !important;
}

/* Smooth fade in animation */
@keyframes fade_in_button {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ============================================================================
   WOOCOMMERCE - SINGLE PRODUCT PAGE
   ========================================================================= */

/* Target the Sale Badge specifically inside the Divi Product Images Module */
/* FIX: Matched to Shop Grid Red Pill */
.single-product .et_pb_wc_images .onsale,
.single-product .woocommerce div.product .images span.onsale {
    background: #8e1116 !important; /* Chianti Red */
    color: #ffffff !important;
    border-radius: 50px !important; /* The "Pill" shape */
    padding: 8px 20px !important;
    font-size: 14px !important; /* Slightly larger than shop page for better visibility */
    font-weight: 600 !important;
    letter-spacing: 1px !important;
    text-transform: uppercase !important;
    box-shadow: 0 4px 12px rgba(142, 17, 22, 0.3) !important; /* The shadow */

    /* Positioning */
    top: 20px !important;
    left: 20px !important;
    right: auto !important;
    bottom: auto !important;
    position: absolute !important;
    z-index: 99 !important;

    /* Reset Divi defaults */
    min-width: auto !important;
    min-height: auto !important;
    line-height: 1 !important;
    margin: 0 !important;
}

/* ============================================================================
   WOOCOMMERCE - SINGLE PRODUCT IMAGE SIZING
   Constrains image height on single product page without breaking Flexslider.
   ONLY targets img elements — never modify gallery wrapper display properties.
   ========================================================================= */

body.single-product .woocommerce-product-gallery__image img {
    max-height: 550px;
    width: auto !important;
    max-width: 100%;
    object-fit: contain;
    margin: 0 auto;
    display: block;
}

body.single-product .woocommerce-product-gallery__image {
    background: #f8f6f3;
    border-radius: 6px;
    text-align: center;
}

@media (max-width: 980px) {
    body.single-product .woocommerce-product-gallery__image img {
        max-height: 450px;
    }
}

@media (max-width: 767px) {
    body.single-product .woocommerce-product-gallery__image img {
        max-height: 380px;
    }
}

/* Single product page remaining seats display */
.single-product .dv-remaining-seats {
    background: #1f5031;
    color: #d6c0aa;
    padding: 10px 20px;
    border-radius: 50px;
    font-size: 14px;
    font-weight: 600;
    text-transform: uppercase;
    display: inline-block;
    margin: 15px 0;
}

.single-product .dv-remaining-seats.dv-soldout {
    background: #8e1116;
    color: #ffffff;
}

/* Single product price styling */
.single-product .woocommerce div.product p.price,
.single-product .woocommerce div.product span.price {
    color: #1f5031 !important;
    font-weight: 700 !important;
    font-size: 24px !important;
}

/* FIX: Old Price (del) set to Green so it is visible on beige background */
.single-product .woocommerce div.product p.price del,
.single-product .woocommerce div.product span.price del {
    color: #1f5031 !important;
    opacity: 0.6;
    font-weight: 400 !important;
}

.single-product .woocommerce div.product p.price ins,
.single-product .woocommerce div.product span.price ins {
    color: #8e1116 !important;
    text-decoration: none !important;
}

/* Single product variation price */
.single-product .woocommerce-variation-price .price,
.single-product .woocommerce-variation-price .price .amount {
    color: #1f5031 !important;
    font-weight: 700 !important;
    font-size: 24px !important;
}

/* Single product stock status */
.single-product .woocommerce-variation-availability .stock,
.single-product .stock.in-stock {
    background: #1f5031 !important;
    color: #d6c0aa !important;
    padding: 8px 16px !important;
    border-radius: 50px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    display: inline-block !important;
    margin: 10px 0 !important;
}

.single-product .woocommerce-variation-availability .out-of-stock,
.single-product .stock.out-of-stock {
    background: #8e1116 !important;
    color: #ffffff !important;
}

/* Single product variation description */
.single-product .woocommerce-variation-description {
    background: #f9f9f9 !important;
    padding: 12px 16px !important;
    border-radius: 8px !important;
    margin-bottom: 15px !important;
    border-left: 3px solid #d6c0aa !important;
}

.single-product .woocommerce-variation-description p {
    margin: 0 !important;
    color: #1f5031 !important;
    font-size: 14px !important;
}

/* ============================================================================
   WOOCOMMERCE - SINGLE PRODUCT ADD TO CART BUTTON
   ========================================================================= */

/* Single product add to cart button - ultra specific selectors */
body.single-product
    .woocommerce
    div.product
    form.cart
    button.single_add_to_cart_button,
body.single-product
    .woocommerce
    div.product
    form.cart
    button.single_add_to_cart_button.button,
body.single-product
    .woocommerce
    div.product
    form.cart
    button.single_add_to_cart_button.alt,
body.single-product button.single_add_to_cart_button.button.alt,
body.single-product
    .woocommerce
    #content
    div.product
    form.cart
    button.single_add_to_cart_button,
body.woocommerce.single-product
    div.product
    form.cart
    button.single_add_to_cart_button {
    background: #1f5031 !important;
    color: #d6c0aa !important;
    border: 2px solid #1f5031 !important;
    border-radius: 50px !important;
    padding: 14px 32px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.8px !important;
    transition: all 0.3s ease !important;
    text-decoration: none !important;
    font-size: 14px !important;
    line-height: 1.2 !important;
    width: auto !important;
    min-width: 200px !important;
    text-align: center !important;
    display: inline-block !important;
    margin: 0 !important;
    cursor: pointer !important;
}

/* Hover state */
body.single-product button.single_add_to_cart_button:hover,
body.single-product button.single_add_to_cart_button.button.alt:hover {
    background: transparent !important;
    color: #1f5031 !important;
    border-color: #1f5031 !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 16px rgba(31, 80, 49, 0.2) !important;
}

/* Disabled state */
body.single-product button.single_add_to_cart_button.disabled,
body.single-product
    button.single_add_to_cart_button.wc-variation-selection-needed {
    opacity: 0.5 !important;
    cursor: not-allowed !important;
}

/* Remove arrow icon */
body.single-product button.single_add_to_cart_button:after,
body.single-product button.single_add_to_cart_button.button:after {
    display: none !important;
    content: none !important;
}

/* ============================================================================
   WOOCOMMERCE - MODERN QUANTITY SELECTOR
   ========================================================================= */

/* Quantity wrapper - ULTRA SPECIFIC */
body.single-product
    .et_pb_wc_add_to_cart
    .woocommerce
    div.product
    form.cart
    div.quantity.buttons_added,
body.woocommerce.single-product
    div.product
    form.cart
    div.quantity.buttons_added,
.single-product .et_pb_wc_add_to_cart form.cart div.quantity.buttons_added {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0 !important;
    margin-right: 15px !important;
    background: #ffffff !important;
    border: 2px solid #d6c0aa !important;
    border-radius: 50px !important;
    overflow: visible !important;
    padding: 0 !important;
    height: 44px !important;
    width: auto !important;
    position: relative !important;
}

/* Minus button on the left - ULTRA SPECIFIC */
body.single-product
    .et_pb_wc_add_to_cart
    .woocommerce
    div.product
    form.cart
    div.quantity
    button.qty-minus,
body.woocommerce.single-product
    div.product
    form.cart
    div.quantity
    button.qty-minus,
.single-product .et_pb_wc_add_to_cart form.cart div.quantity button.qty-minus {
    background: #d6c0aa !important;
    color: #1f5031 !important;
    border: none !important;
    border-radius: 50px 0 0 50px !important;
    width: 40px !important;
    height: 44px !important;
    font-size: 20px !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
    flex-shrink: 0 !important;
    order: 1 !important;
    appearance: none !important;
    -webkit-appearance: none !important;
}

/* Quantity input field - ULTRA SPECIFIC */
body.single-product
    .et_pb_wc_add_to_cart
    .woocommerce
    div.product
    form.cart
    div.quantity
    input.qty,
body.woocommerce.single-product div.product form.cart div.quantity input.qty,
.single-product .et_pb_wc_add_to_cart form.cart div.quantity input.qty {
    border: none !important;
    border-left: 1px solid #d6c0aa !important;
    border-right: 1px solid #d6c0aa !important;
    border-radius: 0 !important;
    padding: 0 !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    color: #1f5031 !important;
    width: 50px !important;
    max-width: 50px !important;
    height: 44px !important;
    text-align: center !important;
    background: #ffffff !important;
    -moz-appearance: textfield !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    margin: 0 !important;
    flex-shrink: 0 !important;
    order: 2 !important;
}

/* Plus button on the right - ULTRA SPECIFIC */
body.single-product
    .et_pb_wc_add_to_cart
    .woocommerce
    div.product
    form.cart
    div.quantity
    button.qty-plus,
body.woocommerce.single-product
    div.product
    form.cart
    div.quantity
    button.qty-plus,
.single-product .et_pb_wc_add_to_cart form.cart div.quantity button.qty-plus {
    background: #d6c0aa !important;
    color: #1f5031 !important;
    border: none !important;
    border-radius: 0 50px 50px 0 !important;
    width: 40px !important;
    height: 44px !important;
    font-size: 20px !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
    flex-shrink: 0 !important;
    order: 3 !important;
    appearance: none !important;
    -webkit-appearance: none !important;
}

/* Hover effects - ULTRA SPECIFIC */
body.single-product
    .et_pb_wc_add_to_cart
    form.cart
    div.quantity
    button.qty-plus:hover,
body.single-product
    .et_pb_wc_add_to_cart
    form.cart
    div.quantity
    button.qty-minus:hover {
    background: #1f5031 !important;
    color: #d6c0aa !important;
}

body.single-product
    .et_pb_wc_add_to_cart
    form.cart
    div.quantity
    button.qty-plus:active,
body.single-product
    .et_pb_wc_add_to_cart
    form.cart
    div.quantity
    button.qty-minus:active {
    transform: scale(0.95) !important;
}

/* Hide spinner arrows in number input */
body.single-product
    .et_pb_wc_add_to_cart
    form.cart
    div.quantity
    input.qty::-webkit-outer-spin-button,
body.single-product
    .et_pb_wc_add_to_cart
    form.cart
    div.quantity
    input.qty::-webkit-inner-spin-button {
    -webkit-appearance: none !important;
    margin: 0 !important;
}

body.single-product
    .et_pb_wc_add_to_cart
    form.cart
    div.quantity
    input.qty:focus {
    border: none !important;
    border-left: 1px solid #1f5031 !important;
    border-right: 1px solid #1f5031 !important;
    outline: none !important;
}

/* ============================================================================
   WOOCOMMERCE - MODERN VARIANT DROPDOWN
   ========================================================================= */

/* Variations table styling */
body.single-product
    .et_pb_wc_add_to_cart
    .woocommerce
    div.product
    form.cart
    table.variations,
body.woocommerce.single-product div.product form.cart table.variations {
    margin-bottom: 20px !important;
    border: none !important;
}

/* Variation row */
body.single-product
    .et_pb_wc_add_to_cart
    .woocommerce
    div.product
    form.cart
    .variations
    tr,
body.woocommerce.single-product div.product form.cart .variations tr {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    margin-bottom: 15px !important;
}

/* Label styling */
body.single-product
    .et_pb_wc_add_to_cart
    .woocommerce
    div.product
    form.cart
    .variations
    th.label,
body.woocommerce.single-product div.product form.cart .variations th.label {
    display: block !important;
    padding: 0 !important;
    border: none !important;
    text-align: left !important;
}

body.single-product
    .et_pb_wc_add_to_cart
    .woocommerce
    div.product
    form.cart
    .variations
    th.label
    label,
body.woocommerce.single-product
    div.product
    form.cart
    .variations
    th.label
    label {
    color: #1f5031 !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    margin-bottom: 8px !important;
}

/* Value cell */
body.single-product
    .et_pb_wc_add_to_cart
    .woocommerce
    div.product
    form.cart
    .variations
    td.value,
body.woocommerce.single-product div.product form.cart .variations td.value {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 0 !important;
    border: none !important;
}

/* Select dropdown - modern pill design */
body.single-product
    .et_pb_wc_add_to_cart
    .woocommerce
    div.product
    form.cart
    .variations
    td.value
    select,
body.woocommerce.single-product
    div.product
    form.cart
    .variations
    td.value
    select,
body.single-product
    .et_pb_wc_add_to_cart
    .woocommerce
    div.product
    form.cart
    .variations
    td
    select,
body.woocommerce.single-product div.product form.cart .variations td select {
    background-color: #ffffff !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%231f5031' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: calc(100% - 12px) center !important;
    background-size: 20px !important;
    border: 2px solid #d6c0aa !important;
    border-radius: 50px !important;
    color: #1f5031 !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    padding: 12px 44px 12px 20px !important;
    min-width: 200px !important;
    width: auto !important;
    max-width: 100% !important;
    height: 44px !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    margin: 0 !important;
}

body.single-product
    .et_pb_wc_add_to_cart
    .woocommerce
    div.product
    form.cart
    .variations
    td
    select:hover,
body.woocommerce.single-product
    div.product
    form.cart
    .variations
    td
    select:hover {
    border-color: #1f5031 !important;
    box-shadow: 0 4px 12px rgba(31, 80, 49, 0.1) !important;
}

body.single-product
    .et_pb_wc_add_to_cart
    .woocommerce
    div.product
    form.cart
    .variations
    td
    select:focus,
body.woocommerce.single-product
    div.product
    form.cart
    .variations
    td
    select:focus {
    border-color: #1f5031 !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(31, 80, 49, 0.1) !important;
}

/* Span wrapper around select (if present) */
body.single-product
    .et_pb_wc_add_to_cart
    .woocommerce
    div.product
    form.cart
    .variations
    td.value
    span,
body.woocommerce.single-product
    div.product
    form.cart
    .variations
    td.value
    span {
    flex: 1 !important;
    display: block !important;
}

/* Reset/Clear button styling */
body.single-product
    .et_pb_wc_add_to_cart
    .woocommerce
    div.product
    form.cart
    .variations
    td.value
    a.reset_variations,
body.woocommerce.single-product
    div.product
    form.cart
    .variations
    td.value
    a.reset_variations {
    background: transparent !important;
    color: #8e1116 !important;
    border: 1px solid #8e1116 !important;
    border-radius: 50px !important;
    padding: 8px 16px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    text-decoration: none !important;
    transition: all 0.3s ease !important;
    white-space: nowrap !important;
}

body.single-product
    .et_pb_wc_add_to_cart
    .woocommerce
    div.product
    form.cart
    .variations
    td.value
    a.reset_variations:hover,
body.woocommerce.single-product
    div.product
    form.cart
    .variations
    td.value
    a.reset_variations:hover {
    background: #8e1116 !important;
    color: #ffffff !important;
    transform: translateY(-1px) !important;
}

/* Remove the ::after arror*/

.et_pb_wc_add_to_cart form.cart .variations td.value span:after {
    visibility: hidden !important;
}

/* ============================================================================
   SINGLE PRODUCT - EVENT METADATA BOX
   ========================================================================= */

.dv-eventmeta {
    background: #ffffff;
    border: 1px solid #d6c0aa; /* Prosecco Beige */
    border-radius: 8px;
    padding: 24px;
    margin: 20px 0 30px;
    box-shadow: 0 4px 12px rgba(31, 80, 49, 0.05); /* Slight Green Shadow */
    position: relative;
    overflow: hidden;
}

/* Ticket Stub Effect */
.dv-eventmeta::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 6px;
    height: 100%;
    background: #1f5031; /* Bottle Green */
}

.dv-eventmeta h3 {
    margin-top: 0;
    margin-bottom: 16px;
    font-size: 18px;
    color: #1f5031;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 700;
    border-bottom: 1px dashed #d6c0aa;
    padding-bottom: 12px;
}

.dv-eventmeta-list {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.dv-eventmeta-list li {
    display: flex;
    justify-content: space-between;
    padding: 8px 0;
    border-bottom: 1px solid rgba(214, 192, 170, 0.3);
    font-size: 14px;
}

.dv-eventmeta-list li:last-child {
    border-bottom: none;
}

.dv-label {
    font-weight: 700;
    color: #1f5031;
}

.dv-value {
    color: #333;
    text-align: right;
    max-width: 60%;
}

.dv-eventmeta-includes {
    background: rgba(214, 192, 170, 0.15); /* Light Prosecco tint */
    padding: 15px;
    border-radius: 6px;
    margin-top: 15px;
}

.dv-label-block {
    display: block;
    font-weight: 700;
    color: #1f5031;
    margin-bottom: 8px;
    font-size: 14px;
}

.dv-eventmeta-includes ul {
    margin: 0;
    padding-left: 20px;
}

/* ============================================================================
   CLEAN WINE CAROUSEL STYLING (PIXEL PERFECT & FIXED)
   ========================================================================= */

/* Fix: Carousel Hover Clipping */
.dv-clean-carousel-section .swiper {
    padding-top: 20px !important; /* Room for card move up */
    padding-bottom: 40px !important; /* Room for shadow */
    padding-left: 10px !important;
    padding-right: 10px !important;
}

.dv-clean-carousel-section .dv-swiper-container {
    margin-top: -20px;
    margin-bottom: -40px;
}

/* Fix: Equal Height Slides */
.dv-clean-carousel-section .swiper-wrapper {
    align-items: stretch !important;
}

.dv-clean-carousel-section .swiper-slide {
    height: auto !important;
    display: flex !important;
}

/* 1. The Card Container */
.dv-wine-card {
    background: #ffffff;
    border: 1px solid rgba(214, 192, 170, 0.3);
    border-radius: 8px;
    overflow: hidden;
    padding: 20px;
    position: relative;
    height: 100%;
    width: 100%;
    display: flex;
    flex-direction: column;
    text-align: left;
    transition: all 0.3s ease;
    box-sizing: border-box;
}

/* Hover Effect */
.dv-wine-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 12px 32px rgba(31, 80, 49, 0.15);
    border-color: #1f5031;
}

/* 2. Image Wrapper */
.dv-card-image-wrapper {
    position: relative;
    margin-bottom: 15px;
    border-radius: 4px;
    overflow: hidden;
    aspect-ratio: 1 / 1;
    width: 100%;
    flex-shrink: 0; /* Don't shrink image */
}

.dv-card-image-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform 0.5s ease;
}

.dv-wine-card:hover .dv-card-image-wrapper img {
    transform: scale(1.05);
}

/* 2b. Card Content Wrapper */
.dv-card-content {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

/* 3. Typography */
.dv-card-title {
    margin: 0 0 8px;
    font-size: 18px !important; /* MATCHED TO SHOP GRID */
    font-weight: 600;
    line-height: 1.4;
    min-height: 44px; /* Force 2 lines height alignment */
}

.dv-card-title a {
    color: #1f5031 !important;
    text-decoration: none !important;
    font-weight: 600;
}

.dv-card-price {
    font-size: 18px !important; /* MATCHED TO SHOP GRID */
    font-weight: 700;
    color: #1f5031 !important;
    margin-bottom: 15px;
    margin-top: auto;
}

.dv-card-price del {
    color: #999;
    font-size: 0.9em;
    opacity: 0.6;
    margin-right: 5px;
}

.dv-card-price ins {
    text-decoration: none;
    color: #8e1116;
}

/* 4. Category Pills (Matching Shop) */
.dv-wine-card .product-categories {
    margin: 10px 0;
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.dv-wine-card .product-categories a {
    display: inline-block;
    background: #d6c0aa;
    color: #1f5031;
    padding: 6px 16px;
    border-radius: 50px;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    transition: all 0.3s ease;
    text-decoration: none;
}

.dv-wine-card .product-categories a:hover {
    background: #1f5031;
    color: #d6c0aa;
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(31, 80, 49, 0.2);
}

/* 5. Button - MATCHED EXACTLY TO SHOP GRID */
.dv-card-button {
    margin-top: auto; /* Push button to bottom of card */
}

.dv-card-button .button,
.dv-card-button a.button {
    display: inline-block !important; /* Changed from block to inline-block */
    visibility: visible !important;
    opacity: 1 !important;
    background: #1f5031 !important;
    color: #d6c0aa !important;
    border: 2px solid #1f5031 !important;
    border-radius: 50px !important;
    padding: 10px 24px !important; /* Matched padding */
    font-weight: 600 !important;
    font-size: 12px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.8px !important;
    text-decoration: none !important;
    transition: all 0.3s ease !important;
    margin-top: 10px !important;
    line-height: 1.2 !important;
    width: auto !important; /* Auto width */
    min-width: 140px !important; /* Min width */
    text-align: center !important;
    cursor: pointer !important;
    box-sizing: border-box !important;
}

.dv-card-button .button:hover,
.dv-card-button a.button:hover {
    background: transparent !important;
    color: #1f5031 !important;
    border-color: #1f5031 !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 16px rgba(31, 80, 49, 0.2) !important;
}

/* 6. Badges - Pixel Perfect Match to Shop */
.dv-wine-card .dv-badge {
    position: absolute;
    top: 15px !important; /* Matches Shop Grid */
    z-index: 10;
    line-height: 1 !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

/* EXACT COPY of .et_pb_shop .woocommerce span.onsale */
.dv-wine-card .dv-badge-sale {
    left: 15px !important;
    right: auto !important;
    background: #8e1116 !important;
    color: #ffffff !important;
    border-radius: 50px !important;
    padding: 8px 20px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: 1px !important;
    text-transform: uppercase !important;
    box-shadow: 0 4px 12px rgba(142, 17, 22, 0.3) !important;
    min-width: auto !important;
    min-height: auto !important;
}

/* EXACT COPY of .dv-badge-new + .dv-badge */
.dv-wine-card .dv-badge-new {
    right: 15px !important;
    left: auto !important;
    background: #d6c0aa !important;
    color: #1f5031 !important;
    border-radius: 50px !important;
    padding: 6px 14px !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 0.5px !important;
    text-transform: uppercase !important;
}

/* 7. Navigation Arrows - FIXED v3
   - Buttons positioned OUTSIDE swiper, INSIDE container
   - Container has padding for button space
   - JavaScript controls visibility (no CSS media query override)
*/
.dv-swiper-container {
    position: relative;
    padding: 0 55px; /* Space for navigation buttons */
}

.dv-swiper-button-prev,
.dv-swiper-button-next {
    /* Reset button defaults */
    border: none !important;
    outline: none !important;
    -webkit-appearance: none !important;
    appearance: none !important;

    /* Styling */
    color: #1f5031 !important;
    background: #d6c0aa !important;
    width: 44px !important;
    height: 44px !important;
    border-radius: 50% !important;

    /* Positioning - relative to container */
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    z-index: 20 !important;

    /* Interaction */
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1) !important;
    transition: all 0.3s ease !important;
}

/* Position at container edges */
.dv-swiper-button-prev {
    left: 0 !important;
}
.dv-swiper-button-next {
    right: 0 !important;
}

/* Chevron Icons */
.dv-swiper-button-prev::after {
    content: "\276E" !important;
    font-size: 20px !important;
    font-family: sans-serif !important;
    line-height: 1 !important;
    color: inherit !important;
}

.dv-swiper-button-next::after {
    content: "\276F" !important;
    font-size: 20px !important;
    font-family: sans-serif !important;
    line-height: 1 !important;
    color: inherit !important;
}

/* Hover effects */
.dv-swiper-button-prev:hover,
.dv-swiper-button-next:hover {
    background: #1f5031 !important;
    color: #d6c0aa !important;
    transform: translateY(-50%) scale(1.1) !important;
    box-shadow: 0 6px 16px rgba(31, 80, 49, 0.3) !important;
}

/* Hidden state - controlled by JavaScript */
.dv-swiper-button-prev.dv-nav-hidden,
.dv-swiper-button-next.dv-nav-hidden {
    display: none !important;
}

/* Mobile: smaller padding, JS handles button visibility */
@media (max-width: 767px) {
    .dv-swiper-container {
        padding: 0 15px;
    }
    .dv-swiper-button-prev,
    .dv-swiper-button-next {
        width: 36px !important;
        height: 36px !important;
    }
    .dv-swiper-button-prev::after,
    .dv-swiper-button-next::after {
        font-size: 16px !important;
    }
}

/* ============================================================================
   RESPONSIVE DESIGN - MOBILE FIRST
   ========================================================================= */

/* Tablets and up (768px+) */
@media (min-width: 768px) {
    .et_pb_shop .woocommerce ul.products li.product {
        padding: 20px;
    }

    .et_pb_shop
        .woocommerce
        ul.products
        li.product
        .woocommerce-loop-product__title {
        font-size: 18px;
    }

    .et_pb_shop .woocommerce ul.products li.product .price {
        font-size: 18px;
    }

    /* Single product button not full width on tablet+ */
    body.single-product button.single_add_to_cart_button {
        width: auto !important;
        min-width: 200px !important;
    }
}

/* Desktop (1024px+) */
@media (min-width: 1024px) {
    .et_pb_shop .woocommerce ul.products li.product:hover {
        transform: translateY(-8px);
    }
}

/* Mobile specific adjustments (below 768px) */
@media (max-width: 767px) {
    /* Hide category pills on mobile shop page */
    .et_pb_shop .woocommerce ul.products li.product .product-categories {
        display: none !important;
    }

    /* Reduce card padding on mobile */
    .et_pb_shop .woocommerce ul.products li.product {
        padding: 15px;
        margin-bottom: 20px;
    }

    /* Smaller product titles on mobile */
    .et_pb_shop
        .woocommerce
        ul.products
        li.product
        .woocommerce-loop-product__title {
        font-size: 16px;
        margin-bottom: 6px;
    }

    /* Smaller price on mobile */
    .et_pb_shop .woocommerce ul.products li.product .price {
        font-size: 16px;
        margin: 10px 0;
    }

    /* Smaller badges on mobile */
    .dv-badge {
        padding: 5px 12px;
        font-size: 10px;
        top: 10px;
        right: 10px;
    }

    .dv-badge-seats,
    .dv-badge-soldout {
        top: 10px !important;
        left: 10px !important;
    }

    .et_pb_shop .woocommerce span.onsale {
        padding: 6px 16px !important;
        font-size: 11px !important;
        top: 10px !important;
        left: 10px !important;
    }

    /* Stack badges closer on mobile */
    .et_shop_image .dv-badge:nth-of-type(2) {
        top: 38px;
    }

    .et_shop_image .dv-badge:nth-of-type(3) {
        top: 66px;
    }

    /* Smaller category pills on mobile */
    .et_pb_shop .woocommerce ul.products li.product .product-categories a {
        font-size: 10px;
        padding: 5px 12px;
    }

    /* Adjust button size on mobile */
    .et_pb_shop .woocommerce ul.products li.product .button,
    .et_pb_shop .woocommerce ul.products li.product .add_to_cart_button,
    .et_pb_shop .woocommerce ul.products li.product a.button {
        padding: 10px 20px !important;
        font-size: 11px !important;
        min-width: 120px !important;
        width: 100%;
        max-width: 200px;
    }

    /* Less dramatic hover effect on mobile */
    .et_pb_shop .woocommerce ul.products li.product:hover {
        transform: translateY(-4px);
    }

    /* Smaller image zoom on mobile */
    .et_pb_shop .woocommerce ul.products li.product:hover .et_shop_image img {
        transform: scale(1.03);
    }

    /* Single product mobile adjustments */
    .single-product .woocommerce div.product p.price,
    .single-product .woocommerce div.product span.price,
    .single-product .woocommerce-variation-price .price {
        font-size: 20px !important;
    }

    body.single-product button.single_add_to_cart_button {
        width: 100% !important;
        max-width: 100% !important;
        padding: 12px 24px !important;
        font-size: 13px !important;
    }

    .single-product .woocommerce-variation-description {
        padding: 10px 12px !important;
        font-size: 13px !important;
    }

    .single-product .woocommerce-variation-availability .stock {
        font-size: 12px !important;
        padding: 6px 14px !important;
    }

    .single-product .dv-remaining-seats {
        font-size: 13px !important;
        padding: 8px 16px !important;
    }

    /* Mobile quantity selector */
    body.single-product
        .et_pb_wc_add_to_cart
        form.cart
        div.quantity.buttons_added {
        height: 36px !important;
    }

    body.single-product .et_pb_wc_add_to_cart form.cart div.quantity input.qty {
        width: 40px !important;
        max-width: 40px !important;
        height: 36px !important;
        font-size: 13px !important;
    }

    body.single-product
        .et_pb_wc_add_to_cart
        form.cart
        div.quantity
        button.qty-plus,
    body.single-product
        .et_pb_wc_add_to_cart
        form.cart
        div.quantity
        button.qty-minus {
        width: 32px !important;
        height: 36px !important;
        font-size: 16px !important;
    }

    /* Tiny mobile variant dropdown */
    body.single-product
        .et_pb_wc_add_to_cart
        .woocommerce
        div.product
        form.cart
        .variations
        td
        select {
        padding: 8px 36px 8px 14px !important;
        height: 36px !important;
        font-size: 12px !important;
    }

    /* Mobile: Stack buttons vertically */
    .single-product .woocommerce div.product form.cart a.added_to_cart,
    .single-product .product form.cart a.added_to_cart {
        margin-top: 10px !important;
        width: 100% !important;
        max-width: 300px !important;
    }
}

/* Landscape phone adjustments */
@media (max-width: 767px) and (orientation: landscape) {
    /* Reduce card height in landscape */
    .et_pb_shop .woocommerce ul.products li.product {
        padding: 10px;
    }

    .et_pb_shop .woocommerce ul.products li.product .et_shop_image {
        margin-bottom: 10px;
    }
}

/* Touch device optimizations */
@media (hover: none) and (pointer: coarse) {
    /* Remove hover effects on touch devices */
    .et_pb_shop .woocommerce ul.products li.product:hover {
        transform: none;
        box-shadow: none;
    }

    .et_pb_shop .woocommerce ul.products li.product:hover .et_shop_image img {
        transform: none;
    }

    /* Increase tap targets for better mobile UX */
    .et_pb_shop .woocommerce ul.products li.product .button,
    .et_pb_shop .woocommerce ul.products li.product .add_to_cart_button,
    .et_pb_shop .woocommerce ul.products li.product a.button {
        padding: 12px 24px !important;
        min-height: 44px;
    }

    .et_pb_shop .woocommerce ul.products li.product .product-categories a {
        padding: 8px 14px;
        min-height: 32px;
    }

    /* Single product button touch optimization */
    body.single-product button.single_add_to_cart_button {
        min-height: 48px !important;
        padding: 14px 28px !important;
    }
}

/* ============================================
   DONNA VINO - FILTER EVERYTHING STYLING
   Brand: Prosecco Beige #d6c0aa | Bottle Green #1f5031 | Chianti Red #8e1116
   Typography: Playfair Display (headings) | Barlow (body)
   ============================================ */

/* -------------------- Main Container -------------------- */
.wpc-filters-main-wrap {
  font-family: 'Barlow', sans-serif;
}

.wpc-filters-widget-content {
  background: #fff;
  border: 1px solid #d6c0aa;
  border-radius: 8px;
  padding: 20px 25px;
  margin-bottom: 25px;
}

/* -------------------- Filter Sections Grid -------------------- */
.wpc-filters-widget-wrapper {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
  align-items: flex-end;
}

.wpc-filters-section {
  flex: 1 1 140px;
  min-width: 120px;
  max-width: 180px;
}

.wpc-filters-section.wpc-filter-layout-search-field {
  flex: 1 1 200px;
  max-width: 250px;
}

.wpc-filters-section.wpc-filter-layout-submit-button {
  flex: 0 0 auto;
  max-width: none;
  display: flex;
  gap: 10px;
}

/* -------------------- Filter Titles -------------------- */
.wpc-filter-title,
.wpc-filter-header .widget-title {
  font-family: 'Barlow', sans-serif;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: #1f5031;
  margin-bottom: 6px;
}

/* -------------------- Dropdown Styling -------------------- */
.wpc-filters-widget-select {
  font-family: 'Barlow', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: #1f5031;
  background-color: #fff;
  border: 1px solid #d6c0aa;
  border-radius: 50px;
  padding: 10px 40px 10px 16px;
  width: 100%;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%231f5031' d='M6 8L0 0h12z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 10px;
  transition: all 0.2s ease;
}

.wpc-filters-widget-select:hover {
  border-color: #1f5031;
  background-color: #faf8f5;
}

.wpc-filters-widget-select:focus {
  outline: none;
  border-color: #1f5031;
  box-shadow: 0 0 0 3px rgba(31, 80, 49, 0.1);
}

/* Active dropdown (has selection) */
.wpc-filter-has-selected .wpc-filters-widget-select {
  background-color: #1f5031;
  color: #fff;
  border-color: #1f5031;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23ffffff' d='M6 8L0 0h12z'/%3E%3C/svg%3E");
}

/* -------------------- Selected Filters Chips -------------------- */
.wpc-filters-widget-top-container {
  margin-bottom: 15px;
  padding-bottom: 15px;
  border-bottom: 1px solid #d6c0aa;
}

.wpc-filter-chips-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.wpc-filter-chip {
  margin: 0;
}

.wpc-filter-chip a {
  display: inline-flex;
  align-items: center;
  font-family: 'Barlow', sans-serif;
  font-size: 13px;
  font-weight: 500;
  color: #1f5031;
  background-color: rgba(214, 192, 170, 0.3);
  border: 1px solid #d6c0aa;
  border-radius: 50px;
  padding: 6px 12px;
  text-decoration: none;
  transition: all 0.2s ease;
}

.wpc-filter-chip a:hover {
  background-color: rgba(142, 17, 22, 0.1);
  border-color: #8e1116;
  color: #8e1116;
}

.wpc-chip-remove-icon {
  margin-left: 6px;
  font-size: 16px;
  line-height: 1;
  opacity: 0.7;
}

.wpc-filter-chip a:hover .wpc-chip-remove-icon {
  opacity: 1;
}

/* Reset All chip */
.wpc-chip-reset-all a {
  background-color: #1f5031;
  color: #fff;
  border-color: #1f5031;
}

.wpc-chip-reset-all a:hover {
  background-color: #8e1116;
  border-color: #8e1116;
  color: #fff;
}

/* Hide chips container when empty */
.wpc-filters-widget-top-container:empty,
.wpc-filter-chips-list:empty {
  display: none;
}

/* -------------------- Search Field -------------------- */
.wpc-search-field-wrapper {
  position: relative;
}

.wpc-search-field {
  font-family: 'Barlow', sans-serif;
  font-size: 14px;
  color: #1f5031;
  background-color: #fff;
  border: 1px solid #d6c0aa;
  border-radius: 50px;
  padding: 10px 40px 10px 16px;
  width: 100%;
  transition: all 0.2s ease;
}

.wpc-search-field:hover {
  border-color: #1f5031;
}

.wpc-search-field:focus {
  outline: none;
  border-color: #1f5031;
  box-shadow: 0 0 0 3px rgba(31, 80, 49, 0.1);
}

.wpc-search-field::placeholder {
  color: #999;
}

.wpc-search-icon {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  width: 16px;
  height: 16px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f5031' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E");
  background-size: contain;
  pointer-events: none;
}

.wpc-search-clear-icon-wrapper {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
}

.wpc-search-clear-icon {
  font-size: 18px;
  color: #8e1116;
  text-decoration: none;
}

/* -------------------- Apply & Reset Buttons -------------------- */
.wpc-filters-submit-button,
.wpc-filters-reset-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: 'Barlow', sans-serif;
  font-size: 13px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  text-decoration: none;
  border-radius: 50px;
  padding: 11px 22px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.wpc-filters-submit-button {
  background-color: #1f5031;
  color: #fff;
  border: 1px solid #1f5031;
}

.wpc-filters-submit-button:hover {
  background-color: #163d25;
  border-color: #163d25;
  color: #fff;
}

.wpc-filters-reset-button {
  background-color: transparent;
  color: #8e1116;
  border: 1px solid #8e1116;
}

.wpc-filters-reset-button:hover {
  background-color: #8e1116;
  color: #fff;
}

/* -------------------- Mobile Toggle Button (Hidden - not using overlay) -------------------- */
.wpc-filters-open-button-container {
  display: none;
}

/* -------------------- Mobile Controls Footer (Hidden - not using overlay) -------------------- */
.wpc-filters-widget-controls-container {
  display: none;
}

/* -------------------- Widget Close Icon (Hidden) -------------------- */
.wpc-widget-close-container {
  display: none;
}

/* -------------------- Hide Edit Link -------------------- */
.wpc-edit-filter-set {
  display: none;
}

/* -------------------- Spinner -------------------- */
.wpc-spinner {
  display: none;
}

.wpc-filter-request.wpc-loading .wpc-spinner {
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 30px;
  height: 30px;
  border: 3px solid #d6c0aa;
  border-top-color: #1f5031;
  border-radius: 50%;
  animation: dv-spin 0.8s linear infinite;
}

@keyframes dv-spin {
  to { transform: translate(-50%, -50%) rotate(360deg); }
}

/* -------------------- Scroll Container -------------------- */
.wpc-filters-scroll-container {
  max-height: none;
  overflow: visible;
}

/* -------------------- Responsive: Tablet -------------------- */
@media (max-width: 980px) {
  .wpc-filters-widget-content {
    padding: 15px 20px;
  }
  
  .wpc-filters-section {
    flex: 1 1 120px;
    max-width: 200px;
  }
  
  .wpc-filters-section.wpc-filter-layout-search-field {
    flex: 1 1 180px;
    max-width: 250px;
  }
}

/* -------------------- Desktop: Show More/Less Toggle -------------------- */
.wpc-filters-widget-wrapper .dv-expand-section {
  flex: 0 0 auto !important;
  max-width: none !important;
  min-width: auto !important;
  min-height: 72px !important; /* Match filter section total height */
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-end !important; /* Push content to bottom */
}

/* Hide fake header completely - we use min-height + justify-content instead */
.wpc-filters-widget-wrapper .dv-expand-section > .wpc-filter-header {
  display: none !important;
}

/* Content wrapper */
.wpc-filters-widget-wrapper .dv-expand-section > .wpc-filter-content {
  display: flex;
  align-items: center;
  margin-bottom: 14px; /* Match the spacing below dropdowns */
}

.dv-filter-expand {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-family: 'Barlow', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: #1f5031;
  background: #fff;
  border: 1px solid #d6c0aa;
  border-radius: 50px;
  padding: 6px 16px;
  height: 34px; /* Match select dropdown height */
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
}

.dv-filter-expand:hover {
  border-color: #1f5031;
  background-color: #faf8f5;
}

.dv-filter-expand::after {
  content: '+';
  font-size: 14px;
  font-weight: 600;
}

.dv-filter-expand.is-expanded::after {
  content: '−';
}

/* Hide extra filters on desktop by default */
@media (min-width: 768px) {
  .wpc-filters-section.dv-hidden-filter {
    display: none;
  }
  
  .wpc-filters-main-wrap.dv-expanded .wpc-filters-section.dv-hidden-filter {
    display: block;
  }
}

/* -------------------- Mobile Toggle Button -------------------- */
.dv-filter-toggle {
  display: none;
  width: 100%;
  font-family: 'Barlow', sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: #1f5031;
  background: #fff;
  border: 1px solid #1f5031;
  border-radius: 50px;
  padding: 14px 20px;
  margin-bottom: 15px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.dv-filter-toggle:hover {
  background: #1f5031;
  color: #fff;
}

.dv-filter-toggle::before {
  content: '☰ ';
}

.dv-filter-toggle.is-open::before {
  content: '✕ ';
}

/* -------------------- Responsive: Mobile -------------------- */
@media (max-width: 767px) {
  
  /* Show toggle button */
  .dv-filter-toggle {
    display: block;
  }
  
  /* Hide filters by default on mobile */
  .wpc-filters-widget-content {
    display: none;
    padding: 15px;
  }
  
  /* Show filters when toggle is open */
  .wpc-filters-widget-content.is-open {
    display: block !important;
  }
  
  /* 2-column flex layout on mobile */
  .wpc-filters-widget-wrapper {
    display: flex !important;
    flex-wrap: wrap;
    gap: 10px;
  }
  
  .wpc-filters-section {
    flex: 1 1 calc(50% - 5px) !important;
    max-width: calc(50% - 5px) !important;
    min-width: 0;
  }
  
  /* Search field full width */
  .wpc-filters-section.wpc-filter-layout-search-field {
    flex: 1 1 100% !important;
    max-width: 100% !important;
  }
  
  /* Buttons full width */
  .wpc-filters-section.wpc-filter-layout-submit-button {
    flex: 1 1 100% !important;
    max-width: 100% !important;
    justify-content: center;
  }
  
  /* Hide desktop expand button on mobile */
  .dv-expand-section {
    display: none !important;
  }
  
  /* Remove hidden-filter class effect on mobile */
  .wpc-filters-section.dv-hidden-filter {
    display: block !important;
  }
  
  /* Larger touch targets */
  .wpc-filters-widget-select {
    font-size: 14px;
    padding: 12px 38px 12px 14px;
  }
  
  .wpc-search-field {
    font-size: 14px;
    padding: 12px 38px 12px 14px;
  }
  
  /* Chips */
  .wpc-filter-chip a {
    font-size: 13px;
    padding: 6px 12px;
  }
  
  /* Filter titles smaller */
  .wpc-filter-title,
  .wpc-filter-header .widget-title {
    font-size: 11px;
    margin-bottom: 4px;
  }
}

/* -------------------- Responsive: Small Mobile -------------------- */
@media (max-width: 480px) {
  
  /* Single column on very small screens */
  .wpc-filters-section {
    flex: 1 1 100% !important;
    max-width: 100% !important;
  }
  
  .wpc-filters-widget-select {
    font-size: 16px;
    padding: 14px 40px 14px 16px;
  }
}

/* -------------------- Counter Badge -------------------- */
.wpc-term-count-0 {
  color: #999;
}

/* -------------------- Adjust for Divi -------------------- */
.et_pb_text .wpc-filters-main-wrap {
  line-height: 1.5;
}

.et_pb_text .wpc-filter-chips-list {
  padding-left: 0;
}

.et_pb_text .wpc-filter-chip {
  list-style: none;
}

/* Force Divi Code Module with filters visible on all devices */
@media (max-width: 980px) {
  .et_pb_code_inner .wpc-filters-main-wrap,
  .et_pb_text_inner .wpc-filters-main-wrap {
    display: block !important;
  }
}

/* ============================================================================
   DONNA VINO - CUSTOM ACF BADGE
   Add this section to your style.css (after the existing badge styles)
   ========================================================================= */

/* ---------- CUSTOM BADGE - SHOP GRID & CAROUSEL ---------- */

/* Custom badge - Bottle Green with Beige text (matches brand, stands out) */
.dv-badge-custom {
    background: #1f5031 !important;
    color: #d6c0aa !important;
    /* Inherits position from .dv-badge base class */
}

/* Event badge styling */
.dv-badge-event {
    background: linear-gradient(135deg, #8e1116 0%, #6b0d11 100%) !important;
    color: #ffffff !important;
}

/* Stack badges vertically when multiple are present */
/* Base badge is at top: 15px */
/* Second badge (if present) at top: 50px */
/* Third badge (if present) at top: 85px */
/* Fourth badge at top: 120px */

.et_shop_image .dv-badge-custom,
.dv-card-image-wrapper .dv-badge-custom {
    /* Default position: top-right */
    right: 15px !important;
    left: auto !important;
}

/* When "Ny" badge is also present, custom badge stacks below it */
.et_shop_image .dv-badge-new ~ .dv-badge-custom,
.dv-card-image-wrapper .dv-badge-new ~ .dv-badge-custom {
    top: 50px !important;
}

/* When both "Ny" AND another badge is present, custom badge goes lower */
.et_shop_image .dv-badge-new ~ .dv-badge-event ~ .dv-badge-custom,
.dv-card-image-wrapper .dv-badge-new ~ .dv-badge-event ~ .dv-badge-custom {
    top: 85px !important;
}

/* Event badge positioning - top-right, stacks below new */
.et_shop_image .dv-badge-event,
.dv-card-image-wrapper .dv-badge-event {
    right: 15px !important;
    left: auto !important;
}

.et_shop_image .dv-badge-new ~ .dv-badge-event,
.dv-card-image-wrapper .dv-badge-new ~ .dv-badge-event {
    top: 50px !important;
}

/* Carousel specific - ensure badges work in card image wrapper */
.dv-wine-card .dv-badge-custom {
    position: absolute;
    top: 15px !important;
    right: 15px !important;
    left: auto !important;
    z-index: 10;
    line-height: 1 !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
    border-radius: 50px !important;
    padding: 6px 14px !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 0.5px !important;
    text-transform: uppercase !important;
}

/* Carousel stacking */
.dv-wine-card .dv-badge-new ~ .dv-badge-custom {
    top: 50px !important;
}

.dv-wine-card .dv-badge-event {
    position: absolute;
    top: 15px !important;
    right: 15px !important;
    left: auto !important;
    z-index: 10;
    line-height: 1 !important;
    box-shadow: 0 2px 8px rgba(142, 17, 22, 0.3);
    border-radius: 50px !important;
    padding: 6px 14px !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 0.5px !important;
    text-transform: uppercase !important;
}

.dv-wine-card .dv-badge-new ~ .dv-badge-event {
    top: 50px !important;
}

/* ---------- CUSTOM BADGE - SINGLE PRODUCT PAGE ---------- */

.dv-badge-single {
    display: inline-block;
    padding: 8px 20px;
    border-radius: 50px;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

.dv-badge-custom-single {
    background: #1f5031;
    color: #d6c0aa;
    box-shadow: 0 2px 8px rgba(31, 80, 49, 0.2);
}

/* ---------- RESPONSIVE ADJUSTMENTS ---------- */

@media (max-width: 767px) {
    /* Smaller badges on mobile */
    .dv-badge-custom,
    .dv-badge-event {
        padding: 5px 12px !important;
        font-size: 10px !important;
    }
    
    /* Adjust stacking spacing on mobile */
    .et_shop_image .dv-badge-new ~ .dv-badge-custom,
    .dv-card-image-wrapper .dv-badge-new ~ .dv-badge-custom,
    .dv-wine-card .dv-badge-new ~ .dv-badge-custom {
        top: 42px !important;
    }
    
    .dv-badge-single {
        padding: 6px 16px;
        font-size: 11px;
    }
}

/* ---------- ALTERNATIVE COLOR VARIANTS (OPTIONAL) ---------- */
/* Uncomment and use these classes if you want different badge colors */

/*
.dv-badge-custom--red {
    background: #8e1116 !important;
    color: #ffffff !important;
}

.dv-badge-custom--beige {
    background: #d6c0aa !important;
    color: #1f5031 !important;
}

.dv-badge-custom--gold {
    background: linear-gradient(135deg, #d4a853 0%, #b8922f 100%) !important;
    color: #1f5031 !important;
}
*/

/* ============================================================================
   END OF CUSTOM ACF BADGE STYLES
   ============================================================================ */


/* ============================================================================
   DONNA VINO - NEWSLETTER OPT-IN SECTION (Global Footer)
   ============================================================================

/* ============================================================================
   SECTION - Full-width Bottle Green background
   ========================================================================= */

body #page-container .dv-newsletter-section,
body.et_divi_theme .dv-newsletter-section,
body #page-container .dv-newsletter-section.et_pb_section {
    background: #1f5031 !important;
    padding: clamp(50px, 6vw, 90px) 0 !important;
    position: relative;
    overflow: hidden;
}

/* Subtle decorative top border - Prosecco Beige accent line */
body #page-container .dv-newsletter-section::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 120px;
    height: 2px;
    background: #d6c0aa;
    opacity: 0.6;
}

/* ============================================================================
   ROW - Centered content with vertical alignment
   ========================================================================= */

body #page-container .dv-newsletter-row,
body #page-container .dv-newsletter-row.et_pb_row {
    display: flex !important;
    align-items: center !important;
    gap: 40px;
    max-width: 1200px !important;
}

/* ============================================================================
   COLUMN 1 - Text Content (Headline + Body)
   ========================================================================= */

/* TEXT MODULE - HTML content */
body #page-container .dv-newsletter-text,
body #page-container .dv-newsletter-text.et_pb_text {
    padding: 0 !important;
}

/* Headline */
body #page-container .dv-newsletter-text h2,
body #page-container .dv-newsletter-text .et_pb_text_inner h2 {
    font-family: 'Playfair Display', serif !important;
    font-size: clamp(1.75rem, 3vw + 0.5rem, 2.75rem) !important;
    line-height: 1.15 !important;
    font-weight: 400 !important;
    letter-spacing: -0.01em !important;
    color: #d6c0aa !important;
    margin-bottom: 0.4em !important;
}

/* Body text */
body #page-container .dv-newsletter-text p,
body #page-container .dv-newsletter-text .et_pb_text_inner p {
    font-family: 'Barlow', sans-serif !important;
    font-size: clamp(0.95rem, 1.2vw + 0.2rem, 1.125rem) !important;
    line-height: 1.6 !important;
    color: rgba(255, 255, 255, 0.8) !important;
    margin-bottom: 0 !important;
    max-width: 480px;
}

/* Value props - small subtle tags under body text */
body #page-container .dv-newsletter-text .dv-newsletter-tags,
body #page-container .dv-newsletter-text .et_pb_text_inner .dv-newsletter-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 16px;
}

body #page-container .dv-newsletter-text .dv-newsletter-tags span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: 'Barlow', sans-serif;
    font-size: 12px;
    font-weight: 500;
    color: #d6c0aa;
    letter-spacing: 0.3px;
    opacity: 0.7;
}

/* Dot separator between tags */
body #page-container .dv-newsletter-text .dv-newsletter-tags span::before {
    content: "";
    display: inline-block;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: #d6c0aa;
    opacity: 0.5;
}

body #page-container .dv-newsletter-text .dv-newsletter-tags span:first-child::before {
    display: none;
}

/* ============================================================================
   COLUMN 2 - Email Optin Module Styling
   ========================================================================= */

/* Hide the optin module's own title and body text (we use the text module) */
body #page-container .dv-newsletter-optin .et_pb_newsletter_description_content,
body #page-container .dv-newsletter-optin h2.et_pb_module_header,
body #page-container .dv-newsletter-optin .et_pb_newsletter_description {
    display: none !important;
}

/* Form container */
body #page-container .dv-newsletter-optin .et_pb_newsletter_form,
body #page-container .dv-newsletter-optin.et_pb_signup .et_pb_newsletter_form {
    padding: 0 !important;
}

/* Override Divi optin background */
body #page-container .dv-newsletter-optin,
body #page-container .dv-newsletter-optin.et_pb_signup,
body #page-container .dv-newsletter-optin.et_pb_newsletter {
    background: transparent !important;
    padding: 0 !important;
}

/* ---------- EMAIL INPUT FIELD ---------- */

body #page-container .dv-newsletter-optin .et_pb_newsletter_form .input,
body #page-container .dv-newsletter-optin .et_pb_newsletter_form input[type="email"],
body #page-container .dv-newsletter-optin .et_pb_newsletter_form input[type="text"],
body #page-container .dv-newsletter-optin .et_pb_newsletter_form .et_pb_signup_custom_field_0 input,
body #page-container .dv-newsletter-optin .et_pb_newsletter_form p input {
    background: rgba(255, 255, 255, 0.14) !important;
    border: 1.5px solid rgba(214, 192, 170, 0.55) !important;
    border-radius: 50px !important;
    color: #ffffff !important;
    font-family: 'Barlow', sans-serif !important;
    font-size: 15px !important;
    font-weight: 400 !important;
    padding: 16px 24px !important;
    width: 100% !important;
    height: auto !important;
    transition: all 0.3s ease !important;
    margin-bottom: 14px !important;
    -webkit-appearance: none !important;
    appearance: none !important;
}

/* Placeholder */
body #page-container .dv-newsletter-optin .et_pb_newsletter_form input::placeholder {
    color: rgba(214, 192, 170, 0.7) !important;
    font-style: normal !important;
}

/* Focus state */
body #page-container .dv-newsletter-optin .et_pb_newsletter_form input:focus {
    border-color: #d6c0aa !important;
    background: rgba(255, 255, 255, 0.18) !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(214, 192, 170, 0.15) !important;
}

/* ---------- SUBMIT BUTTON ---------- */

body #page-container .dv-newsletter-optin .et_pb_newsletter_button,
body #page-container .dv-newsletter-optin .et_pb_newsletter_form .et_pb_newsletter_button,
body #page-container .dv-newsletter-optin a.et_pb_newsletter_button,
body #page-container .dv-newsletter-optin button.et_pb_newsletter_button {
    background: #8e1116 !important;
    color: #ffffff !important;
    border: 2px solid #8e1116 !important;
    border-radius: 50px !important;
    padding: 16px 36px !important;
    font-family: 'Barlow', sans-serif !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    width: 100% !important;
    text-align: center !important;
    display: block !important;
    line-height: 1.2 !important;
}

/* Button hover */
body #page-container .dv-newsletter-optin .et_pb_newsletter_button:hover,
body #page-container .dv-newsletter-optin a.et_pb_newsletter_button:hover,
body #page-container .dv-newsletter-optin button.et_pb_newsletter_button:hover {
    background: #a81820 !important;
    border-color: #a81820 !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 24px rgba(142, 17, 22, 0.4) !important;
}

/* Remove Divi's arrow icon on the button */
body #page-container .dv-newsletter-optin .et_pb_newsletter_button:after {
    display: none !important;
    content: none !important;
}

/* ---------- SUCCESS MESSAGE ---------- */

body #page-container .dv-newsletter-optin .et_pb_newsletter_success {
    color: #d6c0aa !important;
    font-family: 'Barlow', sans-serif !important;
    font-size: 16px !important;
    padding: 20px !important;
    text-align: center !important;
}

/* ---------- PRIVACY NOTE (optional, add via Text Module under Optin) ---------- */

body #page-container .dv-newsletter-privacy,
body #page-container .dv-newsletter-privacy.et_pb_text {
    padding-top: 12px !important;
}

body #page-container .dv-newsletter-privacy p {
    font-family: 'Barlow', sans-serif !important;
    font-size: 11px !important;
    color: rgba(255, 255, 255, 0.35) !important;
    line-height: 1.5 !important;
    margin: 0 !important;
}

body #page-container .dv-newsletter-privacy a {
    color: rgba(214, 192, 170, 0.5) !important;
    text-decoration: underline !important;
}

body #page-container .dv-newsletter-privacy a:hover {
    color: #d6c0aa !important;
}

/* ---------- HIDE NAME FIELDS (optional - if Mailchimp adds them) ---------- */
/* Uncomment if you only want email, no first/last name */
/*
body #page-container .dv-newsletter-optin .et_pb_newsletter_form p:not(:last-of-type):not(.et_pb_newsletter_button_wrap) {
    display: none !important;
}
*/

/* ============================================================================
   RESPONSIVE - TABLET (768px - 1023px)
   ========================================================================= */

@media (min-width: 768px) and (max-width: 1023px) {

    body #page-container .dv-newsletter-row,
    body #page-container .dv-newsletter-row.et_pb_row {
        flex-direction: column !important;
        text-align: center !important;
        gap: 30px;
    }

    /* Columns go full width */
    body #page-container .dv-newsletter-row .et_pb_column {
        width: 100% !important;
        margin: 0 !important;
    }

    /* Center text */
    body #page-container .dv-newsletter-text p,
    body #page-container .dv-newsletter-text .et_pb_text_inner p {
        max-width: 560px;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    /* Center tags */
    body #page-container .dv-newsletter-text .dv-newsletter-tags {
        justify-content: center;
    }

    /* Constrain form width */
    body #page-container .dv-newsletter-optin .et_pb_newsletter_form {
        max-width: 480px;
        margin: 0 auto;
    }
}

/* ============================================================================
   RESPONSIVE - MOBILE (<768px)
   ========================================================================= */

@media (max-width: 767px) {

    body #page-container .dv-newsletter-section,
    body.et_divi_theme .dv-newsletter-section,
    body #page-container .dv-newsletter-section.et_pb_section {
        padding: clamp(40px, 8vw, 60px) 0 !important;
    }

    body #page-container .dv-newsletter-row,
    body #page-container .dv-newsletter-row.et_pb_row {
        flex-direction: column !important;
        text-align: center !important;
        gap: 24px;
        padding: 0 20px !important;
    }

    /* Columns full width on mobile */
    body #page-container .dv-newsletter-row .et_pb_column {
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /* Center text */
    body #page-container .dv-newsletter-text p,
    body #page-container .dv-newsletter-text .et_pb_text_inner p {
        max-width: 100%;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    /* Center tags */
    body #page-container .dv-newsletter-text .dv-newsletter-tags {
        justify-content: center;
    }

    /* Input field - larger touch target */
    body #page-container .dv-newsletter-optin .et_pb_newsletter_form input[type="email"],
    body #page-container .dv-newsletter-optin .et_pb_newsletter_form input[type="text"],
    body #page-container .dv-newsletter-optin .et_pb_newsletter_form .input {
        font-size: 16px !important;  /* Prevents iOS zoom on focus */
        padding: 16px 20px !important;
    }

    /* Button - full width, chunky tap target */
    body #page-container .dv-newsletter-optin .et_pb_newsletter_button,
    body #page-container .dv-newsletter-optin button.et_pb_newsletter_button {
        padding: 16px 24px !important;
        font-size: 14px !important;
        min-height: 50px !important; /* Touch-friendly */
    }
}

/* ============================================================================
   RESPONSIVE - SMALL MOBILE (<480px)
   ========================================================================= */

@media (max-width: 479px) {

    body #page-container .dv-newsletter-section,
    body.et_divi_theme .dv-newsletter-section {
        padding: 36px 0 !important;
    }

    body #page-container .dv-newsletter-text h2,
    body #page-container .dv-newsletter-text .et_pb_text_inner h2 {
        font-size: 1.625rem !important;
    }

    /* Tags wrap nicely */
    body #page-container .dv-newsletter-text .dv-newsletter-tags {
        gap: 6px;
    }

    body #page-container .dv-newsletter-text .dv-newsletter-tags span {
        font-size: 11px;
    }
}

/* ============================================================================
   RESPONSIVE - LARGE DESKTOP (1440px+)
   ========================================================================= */

@media (min-width: 1440px) {

    body #page-container .dv-newsletter-text h2,
    body #page-container .dv-newsletter-text .et_pb_text_inner h2 {
        font-size: 2.75rem !important;
    }
}

/* ---------- NEWSLETTER / FOOTER SEPARATION ---------- */

/* Subtle divider line at bottom of newsletter section */
body #page-container .dv-newsletter-section::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: min(85%, 1100px);
    height: 1px;
    background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(214, 192, 170, 0.3) 20%,
        rgba(214, 192, 170, 0.3) 80%,
        transparent 100%
    );
}

/* Make newsletter slightly lighter to differentiate from footer */
body #page-container .dv-newsletter-section,
body.et_divi_theme .dv-newsletter-section,
body #page-container .dv-newsletter-section.et_pb_section {
    background: linear-gradient(
        180deg,
        #24593a 0%,
        #1f5031 100%
    ) !important;
}

/* ============================================================================
   END OF NEWSLETTER OPT-IN STYLES
   ========================================================================= */



/* ============================================================================
   DONNA VINO - TEAM SECTION [dv_team]
   ========================================================================= */

/* --- Base --- */

.dv-team {
    width: 100%;
    padding: clamp(50px, 8vw, 100px) 0;
    background: #ffffff;
    overflow: hidden;
    position: relative;
}

.dv-team *,
.dv-team *::before,
.dv-team *::after {
    box-sizing: border-box;
}

.dv-team-container {
    width: 100%;
    padding: 0;
    display: flex;
    flex-direction: column;
}

/* --- Nav (horizontal, under header) --- */

.dv-team-nav {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 6px 16px;
    padding: 0;
    margin-top: 16px;
    margin-bottom: 28px;
    order: 2;
}

.dv-team-nav-btn {
    display: flex;
    align-items: center;
    gap: 8px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px 16px;
    border-radius: 50px;
    text-align: left;
    transition: all 0.3s ease;
    font-family: 'Barlow', sans-serif;
    -webkit-tap-highlight-color: transparent;
}

.dv-team-nav-btn.active {
    background: rgba(31, 80, 49, 0.06);
}

.dv-team-nav-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #d6c0aa;
    transition: all 0.4s cubic-bezier(0.32, 0.72, 0, 1);
    flex-shrink: 0;
    transform: scale(0.75);
}

.dv-team-nav-btn.active .dv-team-nav-dot {
    background: #1f5031;
    transform: scale(1);
    box-shadow: 0 0 0 4px rgba(31, 80, 49, 0.12);
}

.dv-team-nav-name {
    font-size: 15px;
    color: #aaa;
    transition: all 0.3s ease;
    letter-spacing: 0.2px;
    line-height: 1.3;
}

.dv-team-nav-btn.active .dv-team-nav-name {
    color: #1f5031;
    font-weight: 600;
}

.dv-team-nav-btn:hover .dv-team-nav-name {
    color: #1f5031;
}

/* --- Header --- */

.dv-team-content {
    display: contents;
}

.dv-team-header {
    margin-bottom: 0;
    order: 1;
}

body #page-container .dv-team-header h2,
body .et_pb_section .dv-team-header h2,
body.et_divi_theme .dv-team-header h2 {
    font-family: 'Playfair Display', serif !important;
    font-size: clamp(1rem, 4vw + 0.5rem, 3.5rem) !important;
    font-weight: 400 !important;
    color: #1f5031 !important;
    line-height: 1.15 !important;
    margin: 0 0 0.5em 0 !important;
    padding-bottom: 0 !important;
    letter-spacing: -0.01em !important;
}

body #page-container .dv-team-header p,
body .et_pb_section .dv-team-header p,
body.et_divi_theme .dv-team-header p {
    font-family: 'Barlow', sans-serif !important;
    font-size: clamp(0.95rem, 1.2vw, 1.1rem) !important;
    color: #999 !important;
    margin: 0 !important;
    padding-bottom: 0 !important;
    letter-spacing: 0.2px;
}

/* --- Carousel --- */

.dv-team-carousel {
    position: relative;
    overflow: hidden;
    border-radius: 12px;
    -webkit-user-select: none;
    user-select: none;
    order: 3;
}

.dv-team-track {
    display: flex;
    gap: 24px;
    transition: transform 0.65s cubic-bezier(0.32, 0.72, 0, 1);
    will-change: transform;
}

/* --- Cards --- */

.dv-team-card {
    flex-shrink: 0;
    width: calc(38% - 12px);
    aspect-ratio: 5 / 6;
    max-height: 380px;
    border-radius: 12px;
    overflow: hidden;
    position: relative;
    background: #f5f0eb;
    cursor: pointer;
}

.dv-team-card:not(:first-child) {
    width: calc(30% - 12px);
}

.dv-team-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 30%;
    display: block;
    transition: transform 0.6s ease;
}

.dv-team-card:hover img {
    transform: scale(1.04);
}

/* Gradient overlay — Bottle Green */
.dv-team-card::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 65%;
    background: linear-gradient(
        to top,
        rgba(31, 80, 49, 0.9) 0%,
        rgba(31, 80, 49, 0.5) 35%,
        transparent 100%
    );
    pointer-events: none;
    z-index: 1;
    transition: opacity 0.3s ease;
}

/* Card info overlay */
.dv-team-card-info {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: clamp(20px, 3vw, 36px);
    z-index: 2;
    transform: translateY(0);
    transition: transform 0.4s cubic-bezier(0.32, 0.72, 0, 1);
}

.dv-team-card:hover .dv-team-card-info {
    transform: translateY(-6px);
}

.dv-team-card-name {
    font-family: 'Playfair Display', serif;
    font-size: clamp(1.25rem, 2vw + 0.25rem, 1.85rem);
    font-weight: 500;
    color: #ffffff;
    margin: 0 0 4px 0;
    line-height: 1.15;
}

.dv-team-card-role {
    font-family: 'Barlow', sans-serif;
    font-size: clamp(0.75rem, 0.9vw + 0.1rem, 0.9rem);
    color: #d6c0aa;
    margin: 0 0 18px 0;
    text-transform: uppercase;
    letter-spacing: 1.8px;
    font-weight: 500;
}

/* Social links */
.dv-team-card-links {
    display: flex;
    gap: 10px;
}

.dv-team-card-link {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: rgba(214, 192, 170, 0.15);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
    text-decoration: none !important;
    border: 1px solid rgba(214, 192, 170, 0.2);
}

.dv-team-card-link:hover {
    background: rgba(214, 192, 170, 0.35);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.dv-team-card-link svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: #ffffff;
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* Secondary cards — smaller text */
.dv-team-card:not(:first-child) .dv-team-card-name {
    font-size: clamp(1rem, 1.4vw + 0.2rem, 1.3rem);
}

.dv-team-card:not(:first-child) .dv-team-card-role {
    font-size: clamp(0.65rem, 0.7vw + 0.1rem, 0.78rem);
    margin-bottom: 14px;
}

.dv-team-card:not(:first-child) .dv-team-card-link {
    width: 32px;
    height: 32px;
}

.dv-team-card:not(:first-child) .dv-team-card-link svg {
    width: 14px;
    height: 14px;
}

/* Fade edge */
.dv-team-fade {
    position: absolute;
    top: 0;
    right: 0;
    width: 100px;
    height: 100%;
    background: linear-gradient(to left, #ffffff, transparent);
    pointer-events: none;
    z-index: 3;
}

/* --- Progress indicators --- */

.dv-team-progress {
    display: flex;
    gap: 6px;
    margin-top: 24px;
    order: 4;
}

.dv-team-progress-bar {
    flex: 1;
    height: 3px;
    background: rgba(214, 192, 170, 0.25);
    border-radius: 3px;
    overflow: hidden;
    cursor: pointer;
    position: relative;
    transition: background 0.3s ease;
}

.dv-team-progress-bar:hover {
    background: rgba(214, 192, 170, 0.45);
}

.dv-team-progress-fill {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    background: #1f5031;
    border-radius: 3px;
    transform-origin: left;
    transform: scaleX(0);
}

.dv-team-progress-bar.active .dv-team-progress-fill {
    animation: dv-progress-fill 5s linear forwards;
}

@keyframes dv-progress-fill {
    from { transform: scaleX(0); }
    to { transform: scaleX(1); }
}

/* --- Swipe hint (mobile only) --- */

.dv-team-swipe-hint {
    display: none;
    text-align: center;
    padding: 12px 20px 0;
    order: 5;
}

.dv-team-swipe-hint span {
    font-family: 'Barlow', sans-serif;
    font-size: 12px;
    color: #bbb;
    letter-spacing: 0.5px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.dv-team-swipe-hint svg {
    width: 14px;
    height: 14px;
    stroke: #bbb;
    fill: none;
    stroke-width: 1.5;
    animation: dv-swipe-nudge 2s ease-in-out infinite;
}

.dv-team-swipe-hint.dv-hidden {
    display: none !important;
}

@keyframes dv-swipe-nudge {
    0%, 100% { transform: translateX(0); }
    50% { transform: translateX(5px); }
}

/* --- Divi overrides --- */

.et_pb_code_inner .dv-team,
.et_pb_module .dv-team {
    line-height: 1.5;
}

.et_pb_code_inner .dv-team img,
.et_pb_module .dv-team img {
    max-width: none;
    margin: 0;
    padding: 0;
}

.et_pb_code_inner .dv-team h2,
.et_pb_code_inner .dv-team h3,
.et_pb_code_inner .dv-team p,
.et_pb_module .dv-team h2,
.et_pb_module .dv-team h3,
.et_pb_module .dv-team p {
    padding-bottom: 0 !important;
}

/* ============================================================================
   DV TEAM - RESPONSIVE: TABLET (768px - 1023px)
   ========================================================================= */

@media (min-width: 768px) and (max-width: 1023px) {

    .dv-team-card {
        width: calc(38% - 12px);
    }

    .dv-team-card:not(:first-child) {
        width: calc(30% - 12px);
    }

    .dv-team-fade {
        width: 70px;
    }
}

/* ============================================================================
   DV TEAM - RESPONSIVE: MOBILE (<768px)
   ========================================================================= */

@media (max-width: 767px) {

    .dv-team {
        padding: clamp(36px, 10vw, 60px) 0;
    }

    .dv-team-header {
        padding: 0 20px;
        margin-bottom: 20px;
    }

    .dv-team-carousel {
        border-radius: 0;
        overflow: visible;
        padding: 0 20px;
        -webkit-mask-image: linear-gradient(
            to right,
            transparent 0px,
            black 20px,
            black calc(100% - 40px),
            transparent 100%
        );
        mask-image: linear-gradient(
            to right,
            transparent 0px,
            black 20px,
            black calc(100% - 40px),
            transparent 100%
        );
    }

    .dv-team-track {
        gap: 14px;
    }

    .dv-team-card,
    .dv-team-card:not(:first-child) {
        width: 75vw !important;
        min-width: 75vw !important;
        max-height: none;
        border-radius: 10px;
        aspect-ratio: 3 / 4;
    }

    .dv-team-card img {
        border-radius: 10px;
    }

    .dv-team-card::after {
        border-radius: 10px;
    }

    .dv-team-card-info {
        padding: 24px 22px;
    }

    .dv-team-card-name,
    .dv-team-card:not(:first-child) .dv-team-card-name {
        font-size: 1.35rem;
    }

    .dv-team-card-role,
    .dv-team-card:not(:first-child) .dv-team-card-role {
        font-size: 0.75rem;
        letter-spacing: 1.5px;
        margin-bottom: 14px;
    }

    .dv-team-card-link,
    .dv-team-card:not(:first-child) .dv-team-card-link {
        width: 44px;
        height: 44px;
    }

    .dv-team-card-link svg,
    .dv-team-card:not(:first-child) .dv-team-card-link svg {
        width: 18px;
        height: 18px;
    }

    .dv-team-fade {
        display: none;
    }

    .dv-team-card:hover img {
        transform: none;
    }

    .dv-team-card:hover .dv-team-card-info {
        transform: none;
    }

    .dv-team-nav {
        flex-wrap: nowrap;
        gap: 4px;
        padding: 16px 16px 0;
        margin-top: 0;
        margin-bottom: 0;
        order: 4;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }

    .dv-team-nav::-webkit-scrollbar {
        display: none;
    }

    .dv-team-nav-btn {
        flex-shrink: 0;
        padding: 10px 18px;
        gap: 8px;
        min-height: 44px;
    }

    .dv-team-nav-dot {
        width: 6px;
        height: 6px;
    }

    .dv-team-nav-name {
        font-size: 14px;
        white-space: nowrap;
    }

    .dv-team-progress {
        margin: 16px 20px 0;
        order: 5;
    }

    .dv-team-swipe-hint {
        display: block;
        order: 6;
    }
}

/* ============================================================================
   DV TEAM - RESPONSIVE: SMALL MOBILE (<480px)
   ========================================================================= */

@media (max-width: 479px) {

    .dv-team {
        padding: 32px 0;
    }

    .dv-team-card,
    .dv-team-card:not(:first-child) {
        width: 82vw !important;
        min-width: 82vw !important;
    }

    body #page-container .dv-team-header p,
    body .et_pb_section .dv-team-header p {
        font-size: 0.9rem !important;
    }

    .dv-team-card-info {
        padding: 20px 18px;
    }

    .dv-team-card-name,
    .dv-team-card:not(:first-child) .dv-team-card-name {
        font-size: 1.2rem;
    }

    .dv-team-nav-btn {
        padding: 10px 14px;
    }

    .dv-team-nav-name {
        font-size: 13px;
    }
}

/* ============================================================================
   DV TEAM - RESPONSIVE: LARGE DESKTOP (1440px+)
   ========================================================================= */

@media (min-width: 1440px) {

    .dv-team-card-name {
        font-size: 2rem;
    }
}

/* ============================================================================
   END OF TEAM SECTION STYLES
   ========================================================================= */


/* ============================================================================
   DONNA VINO - VINHUS ATTRIBUTE BLOCK [dv_vinhus]
   Matches webworq heading system + brand typography
   ========================================================================= */

/* Name — matches webworq-h3 system */
.dv-vinhus-name {
    font-family: 'Playfair Display', serif !important;
    font-size: clamp(1.5rem, 2.5vw + 0.5rem, 2.25rem) !important;
    line-height: 1.2 !important;
    font-weight: 500 !important;
    letter-spacing: 0 !important;
    color: #1f5031 !important;
    margin: 0 !important;
}

/* When description is present, add spacing below name */
.dv-vinhus-name + .dv-vinhus-desc {
    margin-top: 12px;
}

/* Description — Barlow body text */
.dv-vinhus-desc {
    font-family: 'Barlow', sans-serif;
    font-size: clamp(0.95rem, 1.2vw + 0.1rem, 1.05rem);
    line-height: 1.7;
    color: #444;
}

.dv-vinhus-desc p {
    margin: 0 0 0.5em 0;
}

.dv-vinhus-desc p:last-child {
    margin-bottom: 0;
}

/* --- Responsive --- */

@media (max-width: 767px) {
    .dv-vinhus {
        padding: 20px 22px;
        margin: 20px 0;
    }
}

/* ============================================================================
   END OF VINHUS ATTRIBUTE STYLES
   ============================================================================ */


/* ============================================================================
   END OF DONNA VINO CUSTOM STYLES
   ============================================================================ */