/*
Theme Name: iTrobes Child - Porta Do Copo
Theme URI: https://portadocopo.co.ao
Author: iTrobes Technologies Private Limited
Description: Child theme for Porta Do Copo - Angolan wine and beverage store. Built and maintained by iTrobes Technologies.
Version: 1.0
Author URI: https://itrobes.com
Template: itrobes-wine
Text Domain: itrobes-wine-child
*/
/*************** ADD YOUR CUSTOM CSS HERE  ***************/

/* ---- Sticky header: solid background to prevent content bleeding through ---- */
header.elementor-location-header {
    background-color: #f9f6f1 !important;
}

/* --- Main nav font size increase --- */
/* Elementor sets --n-menu-title-font-size: 18px on the widget via inline CSS.
   The actual text <span class="e-n-menu-title-text"> uses font-size: var(--n-menu-title-font-size).
   We override the variable AND target the text span directly. */
.elementor-widget-n-menu {
    --n-menu-title-font-size: 22px !important;
    margin-left: 40px !important;
}
.elementor-widget-n-menu .e-n-menu-title-text {
    font-size: 22px !important;
}
.elementor-widget-n-menu .e-n-menu .e-n-menu-item .e-n-menu-title,
.elementor-widget-n-menu .e-n-menu .e-n-menu-item .e-n-menu-title-container,
.elementor-widget-n-menu .e-n-menu .e-n-menu-item .e-n-menu-title-container.e-link,
.elementor-widget-n-menu .e-n-menu-heading {
    font-size: 22px !important;
}

/* --- Mega menu dropdown padding --- */
.elementor-widget-n-menu .e-n-menu-content {
    padding: 20px 24px !important;
}

/* ===== HOMEPAGE CATEGORY INFINITE MARQUEE ===== */
.pdc-marquee-container {
    overflow: hidden !important;
    width: 100% !important;
    position: relative;
}

.pdc-marquee-track {
    display: flex;
    width: max-content;
    animation: pdc-marquee-scroll 25s linear infinite;
}

.pdc-marquee-item {
    flex-shrink: 0;
    width: 200px;
    padding: 0 12px;
    margin: 0;
    box-sizing: content-box;
}

.pdc-marquee-item .item-product-cat,
.pdc-marquee-item .item-product-cat-content {
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
}

.pdc-marquee-item .item-image {
    width: 200px;
    height: 200px;
    overflow: hidden;
    border-radius: 0;
}

.pdc-marquee-item .item-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.pdc-marquee-item .item-title {
    font-family: 'Marcellus', serif !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    text-align: center;
    margin: 10px 0 0 !important;
    padding: 0 !important;
    color: #1a1a1a;
    text-transform: capitalize;
}

.pdc-marquee-item .item-title a {
    color: #1a1a1a !important;
    text-decoration: none !important;
}

.pdc-marquee-item .item-title a:hover {
    color: #8c0f42 !important;
}

/* Hide Slick arrows & dots once marquee is active */
.pdc-marquee-container ~ .slick-arrow,
.pdc-marquee-container ~ .content-category-btn,
.elementor-widget-bwp_product_categories .slick-arrow,
.elementor-widget-bwp_product_categories .button-link {
    display: none !important;
}

@keyframes pdc-marquee-scroll {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

@keyframes pdc-marquee-dynamic {
    0% { transform: translateX(0); }
    100% { transform: translateX(var(--marquee-shift)); }
}

/* Pause on hover */
.pdc-marquee-container:hover .pdc-marquee-track {
    animation-play-state: paused;
}

/* ===== TOP SELLING WINES — banner + cards alignment ===== */
/* Stretch the banner image to match the product grid height */
.elementor-element-53f6b9f {
    align-items: stretch !important;
}
.elementor-element-90ac21d {
    height: auto !important;
    align-self: stretch !important;
    margin-bottom: 0 !important;
    background-size: cover !important;
    background-position: center !important;
}
/* Tighten the gap between card rows so total grid doesn't overflow banner */
.elementor-element-7a8d3fb .products-list.grid .item-product {
    margin-bottom: 10px !important;
}
.elementor-element-7a8d3fb .products-list.grid .item-product:nth-last-child(-n+3) {
    margin-bottom: 0 !important;
}

/* ===== TOP BRANDS MARQUEE — fix SVG image display ===== */
.deensimc-marquee-image {
    min-height: 40px;
    max-height: 80px;
    width: auto !important;
    object-fit: contain;
}

@media (max-width: 767px) {
    .pdc-marquee-item {
        width: 140px;
    }
    .pdc-marquee-item .item-image {
        width: 140px;
        height: 140px;
    }
    .pdc-marquee-item .item-title {
        font-size: 12px !important;
    }
}

.archive-filter-section {
    position: relative;
    padding-bottom: 12px;
    border-bottom: 1px solid #e8e4e6;
    margin-bottom: 22px;

    .collapsible-title {
        color: #000;
        padding: 0 0 10px;
        background: transparent;
        font-weight: 500;
        font-size: 16px;
        margin: 0px !important;
        position: relative;
        line-height: 20px;
        text-transform: uppercase;
        letter-spacing: 0.12em;
        cursor: pointer;
        transition: color 0.2s ease;

        &::before {
        content: '';
            position: absolute;
            top: 8px;
            right: 10px;
            width: 18px;
            height: 18px;
            background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAiIGhlaWdodD0iNiIgdmlld0JveD0iMCAwIDEwIDYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0wLjYwMDA5OCAwLjU5OTYwOUw0LjYwMDEgNC41OTk2MUw4LjYwMDEgMC41OTk2MDkiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iMS4yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+");
            background-repeat: no-repeat;
            background-size: contain;
            transition: transform 0.3s ease;
            pointer-events: none;
        }

        &:hover {
            color: #8c0f42;
        }
    }
}

.filters-wrapper {
    .collapsible-content {
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.35s ease, opacity 0.25s ease;
        opacity: 0;
    }

    .collapsible-item.is-open {
        .collapsible-title::before {
            transform: rotate(180deg);
            top: 0px !important;
        }
        .collapsible-content {
            max-height: 1000px; /* big enough for content */
            opacity: 1;
        }
    }

    .fs-wrap {
        width: 100%;
        height: auto;

        .fs-label-wrap {
            display: none;
        }

        .fs-dropdown {
            display: block;
            position: relative; /* override fSelect's absolute so fs-wrap auto-sizes */
        }

        .fs-options {
            max-height: 300px !important;
            overflow-x: hidden;
            overflow-y: auto;
            margin-bottom: 15px;

            .fs-option {
                cursor: pointer;
                margin-top: 8px;
                padding: 4px 6px;
                display: flex;
                justify-content: space-between;
                align-items: center;
                border-radius: 4px;
                transition: background-color 0.15s ease;

                &:hover {
                    background-color: rgba(140, 15, 66, 0.04);
                }

                &.fs-hidden {
                    display: none;
                }

                &.selected {
                    .fs-checkbox i {
                        background: #8c0f42 !important;
                    }

                    .fs-checkbox i:after {
                        content: "✓";
                        position: absolute;
                        color: #fff;
                        font-size: 13px;
                        top: 0;
                    }
                }
            }

            .fs-option-label {
                padding-left: 28px;
            }
        }
    }

    .fs-search {
        background: transparent;
        margin-bottom: 10px;

        input {
            border: 1.5px solid #8c0f42 !important;
            height: 40px;
            margin-top: 7px;
            padding: 8px 12px !important;
            background: transparent;
            border-radius: 4px;
            font-size: 14px;
            font-family: "inter", sans-serif;
            color: #333;
            transition: border-color 0.2s ease, box-shadow 0.2s ease;
            outline: none;
        }

        input:focus {
            border-color: #8c0f42 !important;
            box-shadow: 0 0 0 3px rgba(140, 15, 66, 0.12);
        }

        input::placeholder {
            color: #aaa;
            font-weight: 400;
        }
    }

    .fs-dropdown {
        background: transparent;
        border: none;
    }

    .fs-option-label {
        color: #3B3B38;
        font-family: "inter", sans-serif;
        font-weight: 400;
        font-size: 15px;
        letter-spacing: 0.01em;
        transition: color 0.2s ease;
    }

    .fs-option:hover .fs-option-label {
        color: #8c0f42;
    }

    .fs-option.selected .fs-option-label {
        color: #8c0f42;
        font-weight: 500;
    }

    .fs-checkbox i {
        content: "";
        width: 18px !important;
        height: 18px !important;
        border: 2px solid #8c0f42 !important;
        background: transparent !important;
        border-radius: 4px;
        display: inline-block;
        flex-shrink: 0;
        transition: background-color 0.2s ease, box-shadow 0.2s ease;
        position: relative;
    }

    .fs-option:hover .fs-checkbox i {
        box-shadow: 0 0 0 3px rgba(140, 15, 66, 0.1);
    }

    .fs-no-results {
        font-weight: 400;
        font-size: 14px;
        font-family: "inter", sans-serif;
        color: #999;
        padding: 8px 0;
        font-style: italic;
    }

    .noUi-horizontal {
        height: 4px;
    }

    .noUi-connect {
        background: #8c0f42;
       border-color: #8c0f42;
    }
    .noUi-target {
        border-color: #8c0f42;
    }

    .noUi-handle {
        border: 1px solid #8c0f42;
        border-radius: 2px;
        background: #8c0f42;
        box-shadow: 0 1px 4px rgba(140, 15, 66, 0.3);
        cursor: pointer;
    }

    .noUi-handle:hover {
        box-shadow: 0 2px 8px rgba(140, 15, 66, 0.4);
    }

    .facetwp-slider-wrap {
        padding-top: 15px;
        width: 100%;
    }

    .noUi-horizontal .noUi-handle {
        width: 10px;
        height: 13px;
        right: -10px;
        top: -5px;
    }

    .facetwp-slider-label {
        font-weight: 400;
        font-size: 16px;
        font-family: "inter";
    }

    .facetwp-slider-reset {
        background-color: #8c0f42;
        color: #fff;
        border: none;
        box-shadow: none;
        padding: 7px 14px;
        border-radius: 4px;
        font-size: 14px;
        line-height: normal;
        cursor: pointer;
        transition: background-color 0.2s ease;
    }

    .facetwp-slider-reset:hover {
        background-color: #6e0c34;
    }

    .facetwp-facet-woo_price {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        gap: 15px;
        align-items: center;
    }
}

.facetwp-facet-woo_result_count {
    margin-bottom: 0 !important;
    padding-top: 10px;
}
.facetwp-selections {
    ul {
        padding-left: 0;
    }
}



/* ---- Filter list scrollbar — always visible, wide enough to grab ---- */
.fs-options {
    overflow-y: scroll !important;       /* always show scrollbar (no auto-hide) */
    scrollbar-width: thin;
    scrollbar-color: transparent transparent;  /* hidden by default (Firefox) */
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}
.fs-options:hover {
    scrollbar-color: #c9a0b0 #f5f5f5;   /* show on hover (Firefox) */
}
/* Tell Lenis to ignore nested scrollable containers */
.fs-options,
.pdc-filter-sidebar,
.majc-body {
    pointer-events: auto;
}
[data-lenis-prevent] {
    overscroll-behavior: contain;
}

/* WebKit/Chrome: custom scrollbar always visible */
.fs-options::-webkit-scrollbar {
    width: 8px;
}

.fs-options::-webkit-scrollbar-track {
    background: transparent;
    border-radius: 6px;
}
.fs-options:hover::-webkit-scrollbar-track {
    background: #f5f5f5;
}

.fs-options::-webkit-scrollbar-thumb {
    background: transparent;
    border-radius: 6px;
    border: 2px solid transparent;
}
.fs-options:hover::-webkit-scrollbar-thumb {
    background: #c9a0b0;
    border: 2px solid #f5f5f5;
}

.fs-options::-webkit-scrollbar-thumb:hover {
    background: #8c0f42;
}

.bwp-filter-ajax #bwp_form_filter_product .fs-options .item-category {
    justify-content: flex-start;
}





.facetwp-facet-woo_brand, 
.facetwp-facet-woo_alcohol_content, 
.facetwp-facet-woo_alcohol_type, 
.facetwp-facet-woo_country, 
.facetwp-facet-woo_volume {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 15px;
    margin-bottom: 18px !important;

    .facetwp-checkbox {
        transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
        background: none;
        margin: 0;
        padding: 0;
        height: 45px;
        border: 1px solid #ddd;
        border-radius: 6px;
        text-align: center;
        display: flex;
        align-content: center;
        align-items: center;
        justify-content: center;
        cursor: pointer;

        &.checked {
            background-color: #8c0f42;
            color: #fff;
            border-color: #8c0f42;
            box-shadow: 0 2px 8px rgba(140, 15, 66, 0.25);
        }

        .facetwp-counter {
            display: none;
        }
    }

    .facetwp-checkbox:hover {
        background-color: #8c0f42;
        color: #fff;
        border-color: #8c0f42;
        box-shadow: 0 2px 8px rgba(140, 15, 66, 0.18);
    }

    .facetwp-display-value {
        font-size: 14px;
        font-family: "inter", sans-serif;
        font-weight: 400;
        letter-spacing: 0.02em;
        margin: 0;
        padding: 0;
    }

    .facetwp-overflow {
        width: 100%;
    }
}

.facetwp-facet-woo_alcohol_content {
    .facetwp-checkbox {
        width: 50px;
    }
}

.facetwp-facet-woo_brand,
.facetwp-facet-woo_alcohol_type,
.facetwp-facet-woo_country, 
.facetwp-facet-woo_volume {
    .facetwp-checkbox {
        height: 52px;
        padding: 0px 10px !important;
    }
}

.facetwp-facet-woo_brand {
    .facetwp-checkbox{
        height: 70px !important;
        padding: 5px !important;
    }
    .facet-term-label {
        display: none;
    }
    .facetwp-display-value {
        height: 100%;
    }
    .facet-term-image {
        height: 100%;
        width: 100%;
    }
}

.facet-selection-top {
    display: flex;
    align-items: center;
}

.facetwp-facet-woo_reset {
    margin-bottom: 0 !important;
    display: flex;

    .facetwp-reset {
        color: #000;
        border: none;
    }
}

.main-archive-product {
    .bwp-top-bar.top {
        margin-bottom: 0;
    }
    .woocommerce-filter-title {
        display: none;
    }
    .sidebar-product {
        padding-top: 25px;
        position: relative;
        z-index: 1;
    }
    .filter-toggle {display: none;}
}

/* ===============================
   FacetWP Pagination (Woo Style)
   =============================== */

.facetwp-pager {
	vertical-align: top;
	float: none;
	padding: 0;
}

/* Pager items */
.facetwp-pager .facetwp-page {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-left: 5px;
	width: 40px;
	height: 40px;
	font-size: 15px;
	line-height: normal;
	text-align: center;
	vertical-align: middle;
	color: #868686;
	border: 1px solid #ddd;
	text-transform: uppercase;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease;
}

/* RTL support */
.rtl .facetwp-pager .facetwp-page {
	margin-right: 5px;
	margin-left: 0;
}

/* Hover & Active */
.facetwp-pager .facetwp-page:hover,
.facetwp-pager .facetwp-page.active {
	color: #fff !important;
	background: #8c0f42;
	border-color: #8c0f42;
}

/* Next / Prev */
.facetwp-pager .facetwp-page.next,
.facetwp-pager .facetwp-page.prev {
	font-size: 0;
}

/* Icons */
.facetwp-pager .facetwp-page.next::before,
.facetwp-pager .facetwp-page.prev::before {
	font-family: eleganticons;
	font-size: 20px;
	color: #868686;
}

/* Prev icon */
.facetwp-pager .facetwp-page.prev::before {
	content: "\34";
}

/* Next icon */
.facetwp-pager .facetwp-page.next::before {
	content: "\35";
}

/* Icon hover */
.facetwp-pager .facetwp-page.next:hover::before,
.facetwp-pager .facetwp-page.prev:hover::before {
	color: #fff;
}

/* First item spacing */
.facetwp-pager .facetwp-page:first-child {
	margin-left: 0;
}

.rtl .facetwp-pager .facetwp-page:first-child {
	margin-right: 0;
	margin-left: 0;
}
.product-type-simple {
    border: none !important;
}

body .content-products-list .products-list.grid .product-wapper .button-atc {
     width: 100% !important;
}
/* FacetWP Reset — "Clear All" text button */
.facetwp-reset {
	display: inline-flex;
	align-items: center;
	cursor: pointer;
	background: transparent;
	border: none;
	font-size: 0;
	padding: 0;
	line-height: 1;
}
.facetwp-reset::after {
	content: "Limpar Tudo";
	font-size: 13px;
	font-family: "inter", sans-serif;
	font-weight: 500;
	color: #8c0f42;
	letter-spacing: 0.03em;
	white-space: nowrap;
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-color: rgba(140, 15, 66, 0.3);
	transition: color 0.2s ease, text-decoration-color 0.2s ease;
}
.facetwp-reset:hover::after {
	color: #6e0c34;
	text-decoration-color: #6e0c34;
}

/* Custom Sort Dropdown — themed replacement for native <select> */
.custom-sort-dropdown {
    position: relative;
    display: inline-block;
    min-width: 210px;
    font-family: inherit;
    z-index: 10;
}
.custom-sort-dropdown .csd-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 0 14px;
    height: 38px;
    line-height: 38px;
    border: 1px solid #d5d5d5;
    border-radius: 4px;
    background: #fff;
    cursor: pointer;
    font-size: 14px;
    color: #333;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    user-select: none;
}
.custom-sort-dropdown .csd-trigger:hover {
    border-color: #8c0f42;
}
.custom-sort-dropdown.open .csd-trigger {
    border-color: #8c0f42;
    box-shadow: 0 0 0 2px rgba(140, 15, 66, 0.12);
}
.custom-sort-dropdown .csd-arrow {
    flex-shrink: 0;
    transition: transform 0.25s ease;
}
.custom-sort-dropdown.open .csd-arrow {
    transform: rotate(180deg);
}
.custom-sort-dropdown .csd-label {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.custom-sort-dropdown .csd-options {
    display: none;
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    background: #fff;
    border: 1px solid #d5d5d5;
    border-radius: 4px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.10);
    overflow: hidden;
    z-index: 100;
}
.custom-sort-dropdown.open .csd-options {
    display: block;
}
.custom-sort-dropdown .csd-option {
    padding: 10px 14px;
    font-size: 14px;
    color: #333;
    cursor: pointer;
    transition: background-color 0.15s ease, color 0.15s ease;
}
.custom-sort-dropdown .csd-option:hover {
    background: #f9f2f5;
    color: #8c0f42;
}
.custom-sort-dropdown .csd-option.selected {
    background: #8c0f42;
    color: #fff;
    font-weight: 500;
}
.custom-sort-dropdown .csd-option.selected:hover {
    background: #6e0c34;
    color: #fff;
}
.custom-sort-dropdown .csd-option.focused {
    background: #f9f2f5;
    color: #8c0f42;
}
.custom-sort-dropdown .csd-option.focused.selected {
    background: #6e0c34;
    color: #fff;
}
/* Focus outline on trigger for keyboard users */
.custom-sort-dropdown .csd-trigger:focus-visible {
    outline: 2px solid #8c0f42;
    outline-offset: 2px;
}

/* Hide the native select (JS hides it inline too, but ensure CSS backup) */
.custom-sort-dropdown select {
    position: absolute !important;
    opacity: 0 !important;
    pointer-events: none !important;
    width: 0 !important;
    height: 0 !important;
}

@media (max-width: 480px) {
    .custom-sort-dropdown {
        min-width: 140px;
    }
    .custom-sort-dropdown .csd-trigger {
        font-size: 12px;
        height: 32px;
        line-height: 32px;
        padding: 0 10px;
    }
    .custom-sort-dropdown .csd-option {
        font-size: 12px;
        padding: 8px 10px;
    }
}

/* Top bar: wraps so filter selections drop to own row */
.main-archive-product .bwp-top-bar.top {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center;
    justify-content: flex-end;
    gap: 8px 10px;
}

/* Collapse empty notices wrapper */
.bwp-top-bar .woocommerce-notices-wrapper:empty {
    display: none;
}
.bwp-top-bar .woocommerce-notices-wrapper {
    flex: 0 0 auto;
    min-width: 0;
}

/* 1. Result count — first */
.bwp-top-bar .woocommerce-result-count,
.bwp-top-bar .woocommerce-result-count-1 {
    order: 1;
    float: none !important;
    flex-shrink: 0;
    white-space: nowrap;
    font-size: 14px;
    line-height: 38px;
    color: #666;
    margin: 0 !important;
    padding: 0;
}

/* 2. Sort dropdown — second */
.bwp-top-bar .woocommerce-ordering {
    order: 2;
    flex-shrink: 0;
    margin: 0 !important;
    float: none !important;
}

/* 3. Grid/list toggle — third */
.bwp-top-bar .display {
    order: 3;
    float: none !important;
    flex-shrink: 0;
}

.bwp-top-bar .mobile-filter {
    flex-shrink: 0;
}

.bwp-top-bar .button-filter-toggle {
    flex-shrink: 0;
}

/* 4. Filter selections — own full-width row below controls */
.bwp-top-bar .facet-selection-top {
    order: 10;
    flex: 0 0 100%;
    width: 100%;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 0 4px;
    border-top: 1px solid #eee;
}

/* ---- Active filter chips — luxury pill styling ---- */
.facetwp-selections ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.facetwp-selections li {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}

.facetwp-selections .facetwp-selection-label {
    font-size: 13px;
    font-weight: 500;
    color: #666;
    letter-spacing: 0.02em;
    margin-right: 2px;
    white-space: nowrap;
}

.facetwp-selections .facetwp-selection-value {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px 4px 12px;
    background: #f9f2f5 !important;
    background-image: none !important;
    border: 1px solid rgba(140, 15, 66, 0.15);
    border-radius: 20px;
    font-size: 13px;
    font-family: "inter", sans-serif;
    color: #8c0f42;
    cursor: pointer;
    white-space: nowrap;
    transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.facetwp-selections .facetwp-selection-value:hover {
    background: #8c0f42 !important;
    color: #fff;
    border-color: #8c0f42;
    box-shadow: 0 2px 6px rgba(140, 15, 66, 0.2);
}

/* × close icon via ::after — replaces FacetWP's background-image PNG */
.facetwp-selections .facetwp-selection-value::after {
    content: "\00d7";
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    font-size: 15px;
    font-weight: 400;
    line-height: 1;
    color: #8c0f42;
    background: rgba(140, 15, 66, 0.08);
    border-radius: 50%;
    flex-shrink: 0;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.facetwp-selections .facetwp-selection-value:hover::after {
    color: #fff;
    background: rgba(255, 255, 255, 0.25);
}

/* Reset button beside selections */
.facet-reset-wrap {
    flex-shrink: 0;
    margin-left: auto;
}

/* Hide the entire selections row when empty (no active filters) */
.bwp-top-bar .facet-selection-top:empty {
    display: none;
}

@media (max-width: 1024px) {
    .bwp-top-bar {
        flex-wrap: wrap !important;
        display: flex;
        justify-content: flex-end;
        align-items: center;
    }
    .bwp-top-bar .woocommerce-result-count-1 {
        display: none;
    }
    /* Keep filter chips visible on tablet */
    .bwp-top-bar .facet-selection-top {
        flex: 0 0 100%;
    }
}

@media (max-width: 480px) {
    .bwp-top-bar .woocommerce-ordering {
        order: 2;
        font-size: 12px;
    }
    .facetwp-selections .facetwp-selection-value {
        padding: 3px 8px;
        font-size: 12px;
    }
    .facetwp-selections .facetwp-selection-label {
        font-size: 12px;
    }
}

/*woo-style*/


.custom-event-wrapper {
    max-width: 900px;
    margin: auto;
}

.event-month-title {
    font-size: 22px;
    font-weight: 400;
    margin: 40px 0 15px;
    color: #a20000;
}

.event-row {
    display: grid;
    grid-template-columns: 100px 180px auto;
    gap: 20px;
    padding: 25px 0;
    border-bottom: 1px solid #e8e8e8;
}

.event-date-box {
    text-align: center;
    font-family: 'Helvetica', sans-serif;
}

.event-date-box .weekday {
    font-size: 14px;
    color: #444;
}

.event-date-box .day {
    font-size: 32px;
    font-weight: bold;
    color: #000;
}

.event-img img {
    width: 100%;
    height: 120px;
    object-fit: cover;
    border-radius: 6px;
}

.event-details {
    display: flex;
    flex-direction: column;
}

.event-title {
    margin: 0 0 8px;
    font-size: 18px;
    font-weight: 700;
}

.event-title a {
    text-decoration: none;
    color: #000;
}

.event-location {
    font-size: 14px;
    margin-bottom: 10px;
    color: #444;
}

.event-excerpt {
    font-size: 14px;
    margin-bottom: 15px;
    color: #555;
}

.event-buttons a {
    display: inline-block;
    margin-right: 10px;
    padding: 6px 14px;
    border-radius: 4px;
    font-size: 13px;
    text-decoration: none;
}

.btn-site {
    background: #8c0f42;
    color: #fff;
}

.btn-wa {
    background: #009900;
    color: #fff;
}

.event-pagination ul {
    display: flex;
    gap: 8px;
    list-style: none;
    justify-content: center;
    padding: 30px 0;
}

.event-pagination ul li a,
.event-pagination ul li span {
    padding: 8px 12px;
    border: 1px solid #ddd;
    text-decoration: none;
    color: #444;
    border-radius: 4px;
}

/* The live /eventos/ AJAX pagination renders <a.event-page-link> directly inside
 * .event-pagination (no ul/li). Clean, box-free pagination that matches the
 * theme: plain numbers, the current page shown as a filled maroon circle. */
.event-pagination {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    padding: 30px 0;
}
.event-pagination .event-page-link {
    min-width: 42px;
    height: 42px;
    padding: 0 12px !important;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none !important;
    border-radius: 999px;
    background: transparent;
    color: #444;
    text-decoration: none;
    font-weight: 500;
    transition: background-color .2s ease, color .2s ease;
}
.event-pagination .event-page-link:hover {
    color: #8C0F42;
    background: rgba(140, 15, 66, .08);
}
.event-pagination .event-page-link.active {
    background-color: #8C0F42;
    color: #fff;
}
/* Prev/next are now real, separate arrow links (rendered in functions.php).
 * Neutralise the old pseudo-element arrows that were stuck on the first/last
 * number, and style the real arrows + their disabled (first/last page) state. */
#cat-style .event-pagination a:first-child::before,
#cat-style .event-pagination a:last-child::after {
    content: none !important;
    display: none !important;
}
#cat-style .event-pagination .event-nav,
.event-pagination .event-nav {
    color: #8C0F42 !important;
    background: transparent !important;
    font-size: 22px;
    line-height: 1;
}
/* Keep the arrow clearly visible on hover (darker maroon, no faint pill that
 * made it look like it disappeared). */
#cat-style .event-pagination .event-nav:hover,
.event-pagination .event-nav:hover {
    color: #5e0a2c !important;
    background: transparent !important;
}
#cat-style .event-pagination .event-nav.disabled,
.event-pagination .event-nav.disabled {
    color: #c2c2c2 !important;
    opacity: 1 !important;
    pointer-events: none;
    cursor: default;
}

/* Blog cards (listing /blogs/ + "Related/Recent" loops on single posts) —
 * equal-height + space under the title. The Elementor loop cells already
 * stretch equally, but the inner card box (6eaa45a) only filled to its content,
 * so cards with shorter titles left a gap below. Make the box fill its cell and
 * add room under the title (which also re-balances the heights). */
.e-loop-item:has(.elementor-element-6eaa45a) {
    display: flex;
    flex-direction: column;
}
.e-loop-item:has(.elementor-element-6eaa45a) > * {
    flex-grow: 1;
}
.e-loop-item .elementor-element-6eaa45a {
    height: 100%;
}
.e-loop-item .elementor-element-a7db127 {
    margin-bottom: 18px !important;
}

/* Product-card title (shop + category/FacetWP grids). The title had a fixed
 * height:16px (one line) on top of -webkit-line-clamp:2, so two-line titles
 * were clipped to a single line and, at higher browser zoom, the text spilled/
 * hid behind the price. Let the title use its natural height (still clamped to
 * 2 lines) and reserve two lines so the cards stay uniform; make the text box
 * grow instead of clipping. */
.products-entry .product-title {
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
    line-clamp: 2;
    overflow: hidden !important;
    height: auto !important;
    min-height: 32px !important;
}
.products-entry .products-content {
    height: auto !important;
    min-height: 80px !important;
}

/* Product-category (shop archive) banner — make it full-width. The banner sits
 * in its own Elementor section whose inner box was capped at 1440px and centred
 * (≈40px gutters). Remove the cap/centring/padding so the banner spans the full
 * width. The section holds only the banner, so the product grid is unaffected. */
.elementor-element-312a3d2 {
    padding-left: 0 !important;
    padding-right: 0 !important;
}
.elementor-element-312a3d2 > .e-con-inner {
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* =============================================
   QA Round 2 Fixes — March 2026
   ============================================= */

/* --- Fix 2.14: Product hover flicker effect --- */
/* Add transition to hover-image for smooth cross-fade */
.products-list.grid .product-wapper .products-thumb .product-thumb-hover .hover-image {
    -webkit-transition: opacity 0.5s ease;
    transition: opacity 0.5s ease;
}
/* GPU compositing stability to prevent flicker */
.products-list.grid .product-wapper .products-thumb .product-thumb-hover .wp-post-image,
.products-list.grid .product-wapper .products-thumb .product-thumb-hover .hover-image {
    will-change: opacity;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}
/* Product-card hover highlight. Base reserves a 1px transparent border so the
 * coloured hover border causes no layout shift. #9 (2026-05-27): the hover state
 * used to be transparent too, which removed the brand "red highlight" the client
 * expects when hovering a product (Shop + category grids share this rule). */
.products-list.grid .product-wapper {
    border: 1px solid transparent !important;
    border-radius: 4px;
    transition: border-color .2s ease, box-shadow .2s ease;
}
.products-list.grid .product-wapper:hover {
    border: 1px solid #8B0F41 !important;
    box-shadow: 0 4px 16px rgba(139, 15, 65, 0.15);
}

/* --- Product card: equal-height cards with uncropped images --- */
/* Make each grid column stretch so all cards in a row are the same height */
.products-list.grid .item-product {
    display: flex !important;
}
/* Card entry becomes a flex column filling the full column height */
.products-list.grid .product-wapper {
    display: flex !important;
    flex-direction: column !important;
    width: 100%;
}
/* Fixed-height image container with flex centering — no cropping */
.products-list.grid .product-wapper .products-thumb {
    height: 220px;
    margin-bottom: 4px;
    display: flex !important;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.products-list.grid .product-wapper .products-thumb a {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}
.products-list.grid .product-wapper .products-thumb img {
    max-height: 200px;
    max-width: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    margin: 0 auto;
    display: block;
}
/* Content area grows to fill remaining card space — pushes price to bottom */
.products-list.grid .product-wapper .products-content {
    padding: 12px 15px 14px !important;
    flex: 1 1 auto;
    display: flex !important;
    flex-direction: column !important;
}
/* Inner contents wrapper */
.products-list.grid .product-wapper .products-content .contents {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
}
/* Compact star rating row */
.products-list.grid .product-wapper .products-content .content-top {
    margin-bottom: 2px;
    line-height: 1;
}
.products-list.grid .product-wapper .products-content .content-top .star-rating {
    margin: 0;
    font-size: 12px;
}
/* Title takes only the space it needs */
.products-list.grid .product-wapper .products-content h3.product-title {
    margin-bottom: 2px;
}
/* Price pushed to the bottom of the content area */
.products-list.grid .product-wapper .products-content .price {
    margin-bottom: 0;
    margin-top: auto;
}
/* Reduce button top margin */
.products-list.grid .product-wapper .button-atc {
    margin-top: 8px !important;
}

/* #6 — Related Products carousel: cards had unequal heights because the product
 * title wraps to 1 or 2 lines depending on name length, pushing the price row
 * out of alignment between cards. These slick cards use .products-entry directly
 * (no .product-wapper wrapper), so the grid equal-height flex rules above don't
 * reach them. Reserve a uniform 2-line title height and clamp long names to two
 * lines so every card's price lines up. */
.related .products-entry .products-content h3.product-title {
    min-height: 32px;            /* 2 × 16px line-height */
    margin-bottom: 2px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* --- List view: compact, clean, wine-themed --- */
/* Reduce gap between product rows */
.products-list.list .product-wapper {
    margin-bottom: 20px !important;
    padding-bottom: 20px !important;
    border-bottom: 1px solid #eee;
}
/* Smaller image in list view */
.products-list.list .product-wapper .products-thumb {
    max-width: 180px;
}
.products-list.list .product-wapper .products-thumb a {
    display: flex;
    align-items: center;
    justify-content: center;
    max-height: 180px;
    overflow: hidden;
}
.products-list.list .product-wapper .products-thumb img {
    max-height: 180px;
    width: auto;
    object-fit: contain;
}
/* Tighter content area */
.products-list.list .product-wapper .products-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-left: 10px;
}
/* Stars row compact */
.products-list.list .product-wapper .products-content .rating {
    margin-bottom: 4px;
}
.products-list.list .product-wapper .products-content .star-rating {
    font-size: 12px;
    margin: 0;
}
/* Product title — smaller, tighter */
.products-list.list .product-wapper .products-content h3.product-title {
    font-size: 18px !important;
    margin-bottom: 6px !important;
    line-height: 1.3;
}
.products-list.list .product-wapper .products-content h3.product-title a {
    font-size: 18px;
}
/* Price — less bottom margin */
.products-list.list .product-wapper .products-content .price {
    font-size: 16px;
    margin-bottom: 10px !important;
}
/* ADD TO CART — wine-colored */
.products-list.list .product-wapper .product-button .button,
.products-list.list .product-wapper .product-button .button.add_to_cart_button {
    background-color: #8c0f42 !important;
    color: #fff !important;
    border: none;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.05em;
    padding: 0 24px;
    height: 40px;
    line-height: 40px;
    transition: background-color 0.2s ease, box-shadow 0.2s ease;
}
.products-list.list .product-wapper .product-button .button:hover,
.products-list.list .product-wapper .product-button .button.add_to_cart_button:hover {
    background-color: #6e0c34 !important;
    box-shadow: 0 2px 8px rgba(140, 15, 66, 0.25);
}
/* Wishlist button — wine outline */
.products-list.list .product-wapper .product-button .woosw-btn {
    background-color: transparent !important;
    color: #8c0f42 !important;
    border: 1.5px solid #8c0f42 !important;
    border-radius: 4px;
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.2s ease, color 0.2s ease;
}
.products-list.list .product-wapper .product-button .woosw-btn::before {
    content: "\e901" !important;
    font-family: icomoon !important;
    font-size: 16px !important;
    color: #8c0f42 !important;
    position: absolute;
    left: 0;
    width: 100%;
    text-align: center;
}
.products-list.list .product-wapper .product-button .woosw-btn:hover {
    background-color: #8c0f42 !important;
    color: #fff !important;
}
.products-list.list .product-wapper .product-button .woosw-btn:hover::before {
    color: #fff !important;
}
/* ==========================================================================
   LIST VIEW FIX — handles both server-rendered list template AND
   client-side JS toggle (grid template HTML with .list class)
   ========================================================================== */

/* --- A. Server-rendered list template (has .row > .col-sm-4 + .col-sm-8) --- */
.products-list.list .product-wapper .row > .col-sm-4 {
    flex: 0 0 200px !important;
    max-width: 200px !important;
}
.products-list.list .product-wapper .row > .col-sm-8 {
    flex: 1 1 0% !important;
    max-width: none !important;
}

/* --- B. Client-side toggle: grid HTML (.content-product1 etc.) shown as list --- */

/* Card → CSS grid: image left, content+buttons right */
.products-list.list .products-entry[class*="content-product"] {
    display: grid !important;
    grid-template-columns: 200px 1fr;
    grid-template-rows: auto auto;
    column-gap: 24px;
    padding: 24px 0;
    border-bottom: 1px solid #e5e5e5;
    margin-bottom: 0 !important;
    position: relative;
}

/* Image area: spans left column, all rows */
.products-list.list .products-entry[class*="content-product"] > .products-thumb {
    grid-column: 1;
    grid-row: 1 / -1;
    position: relative;
    max-width: 200px;
}

/* Content area: right column, row 1 */
.products-list.list .products-entry[class*="content-product"] > .products-content {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
}

/* Product title */
.products-list.list .products-entry[class*="content-product"] .products-content h3 {
    font-size: 20px;
    margin-top: 0;
    margin-bottom: 8px;
}

/* Image hover overlay: disable in list mode */
.products-list.list .products-thumb .product-thumb-hover:before {
    display: none !important;
}

/* Quickview button: hide in list mode */
.products-list.list .products-thumb .product-quickview {
    display: none !important;
}

/* --- C. Product buttons: make visible & properly styled in ALL list scenarios --- */

/* For grid-template cards in list mode: .product-button is inside
   .products-thumb but we need it to appear in the content column.
   Use absolute positioning to break out of the image column. */
.products-list.list .products-entry[class*="content-product"] > .products-thumb {
    overflow: visible !important;
}
.products-list.list .products-entry[class*="content-product"] > .products-thumb > .product-button {
    position: absolute !important;
    left: calc(100% + 24px); /* right edge of image + gap = content column */
    bottom: 0;
    width: max-content;
    display: flex !important;
    align-items: center;
    gap: 8px;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    z-index: 1;
}

/* Universal: every .product-button in list mode (server-rendered template) */
.products-list.list .product-wapper .products-content > .product-button {
    display: flex !important;
    align-items: center;
    gap: 8px;
    position: static !important;
    width: auto !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    margin-top: 14px;
}

/* All children of .product-button: undo grid hover hide effects */
.products-list.list .product-wapper .product-button > * {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    transition: none !important;
    float: none !important;
}

/* Add-to-cart button */
.products-list.list .product-wapper .product-button .add_to_cart_button,
.products-list.list .product-wapper .product-button .product_type_grouped,
.products-list.list .product-wapper .product-button .product_type_external,
.products-list.list .product-wapper .product-button .product_type_variable,
.products-list.list .product-wapper .product-button .added_to_cart {
    display: inline-block !important;
    position: static !important;
    float: none !important;
    height: 42px;
    line-height: 42px;
    padding: 0 24px;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    background: #8c0f42 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 0 !important;
    clear: none !important;
}

/* Wishlist button */
.products-list.list .product-wapper .product-button .woosw-btn {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    position: relative !important;
    float: none !important;
    width: 42px !important;
    height: 42px !important;
    line-height: 42px !important;
    border: 1px solid #ddd !important;
    background: transparent !important;
    border-radius: 0 !important;
    font-size: 0;
    text-align: center;
}

/* .button-atc (layout 3 & 5): show in list mode */
.products-list.list .products-entry[class*="content-product"] .button-atc {
    display: block !important;
    margin-top: 12px;
}

/* --- D. Responsive --- */
@media (max-width: 767px) {
    /* Grid-template cards in list mode: single column on mobile */
    .products-list.list .products-entry[class*="content-product"] {
        grid-template-columns: 1fr !important;
        grid-template-rows: auto auto auto;
    }
    .products-list.list .products-entry[class*="content-product"] > .products-thumb {
        grid-column: 1;
        grid-row: 1;
        max-width: 100%;
    }
    .products-list.list .products-entry[class*="content-product"] > .products-content {
        grid-column: 1;
        grid-row: 2;
    }
    /* Button: back to static, below content */
    .products-list.list .products-entry[class*="content-product"] > .products-thumb > .product-button {
        position: static !important;
        left: auto;
        bottom: auto;
        width: auto;
        margin-top: 12px;
    }
    /* Server-rendered list template: also stack on mobile */
    .products-list.list .product-wapper .row > .col-sm-4 {
        flex: none !important;
        max-width: 100% !important;
    }
}

/* --- Fix 9.4: Mobile product grid — 2 columns --- */
@media (max-width: 575px) {
    .main-archive-product .products-list.grid .product-wapper,
    ul.products-list.grid .product-wapper {
        width: 50% !important;
        flex: 0 0 50% !important;
        max-width: 50% !important;
    }
    /* Tighter padding for 2-col mobile */
    .main-archive-product .products-list.grid .product-wapper .product-inner,
    ul.products-list.grid .product-wapper .product-inner {
        padding: 5px;
    }
    .main-archive-product .products-list.grid .product-wapper .products-content h3.product-title,
    ul.products-list.grid .product-wapper .products-content h3.product-title {
        font-size: 13px;
        line-height: 1.3;
    }
    .main-archive-product .products-list.grid .product-wapper .products-content .price,
    ul.products-list.grid .product-wapper .products-content .price {
        font-size: 13px;
    }
}

/* --- Fix 2.4: Price slider value display --- */
.bwp-filter-price .price-filter-content {
    font-size: 14px;
    color: #333;
    margin-top: 5px;
}
.bwp-filter-price #bwp_slider_price .ui-slider-handle {
    width: 16px;
    height: 16px;
    top: -5px;
}

/* --- Back-to-top button --- */
#back-to-top {
    z-index: 999999 !important;
}
/* Hide on mobile — bottom nav provides navigation, iOS status bar scrolls up */
@media (max-width: 767px) {
    #back-to-top {
        display: none !important;
    }
}

/* --- Header search: hidden by default, shown on toggle --- */
.top-search {
    display: none !important;
}
.top-search.active,
.top-search.e-focus {
    display: block !important;
}
.top-search.elementor-widget-search.active,
.top-search.elementor-widget-search.e-focus {
    left: auto !important;
    right: 140px !important;
    width: 300px !important;
    max-width: none !important;
    z-index: 10;
}
/* Search form container — rounded, wine-bordered */
.top-search.active .e-search-form,
.top-search.e-focus .e-search-form {
    border: 1.5px solid #8c0f42 !important;
    border-radius: 6px !important;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(140, 15, 66, 0.10);
    background: #fff;
}
/* Search input — clean, no inner border */
.top-search.active .e-search-input,
.top-search.e-focus .e-search-input {
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    font-size: 14px;
    font-family: "inter", sans-serif;
    color: #333;
    padding: 10px 14px !important;
    background: transparent;
    height: 42px;
}
.top-search.active .e-search-input::placeholder,
.top-search.e-focus .e-search-input::placeholder {
    color: #aaa;
    font-weight: 400;
}
.top-search.active .e-search-input:focus,
.top-search.e-focus .e-search-input:focus {
    outline: none !important;
    box-shadow: none !important;
}
/* Submit button — wine-colored, flush right */
.top-search.active .e-search-submit,
.top-search.e-focus .e-search-submit {
    background-color: #8c0f42 !important;
    border: none !important;
    border-radius: 0 4px 4px 0 !important;
    color: #fff !important;
    min-width: 48px;
    height: 42px;
    cursor: pointer;
    transition: background-color 0.2s ease;
}
.top-search.active .e-search-submit:hover,
.top-search.e-focus .e-search-submit:hover {
    background-color: #6e0c34 !important;
}
.top-search.active .e-search-submit svg,
.top-search.e-focus .e-search-submit svg {
    fill: #fff !important;
}

/* ===== DESKTOP FULL-SCREEN SEARCH OVERLAY ===== */
body.dsk-search-no-scroll { overflow: hidden; }

.dsk-search-overlay {
    position: fixed;
    inset: 0;
    z-index: 100002;
    background: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}
.dsk-search-overlay.dsk-open {
    opacity: 1;
    visibility: visible;
}

.dsk-search-card {
    background: #fff;
    border-radius: 16px;
    padding: 48px 40px 40px;
    width: 90%;
    max-width: 600px;
    position: relative;
    transform: translateY(-20px);
    transition: transform 0.3s ease;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
}
.dsk-search-overlay.dsk-open .dsk-search-card {
    transform: translateY(0);
}

.dsk-search-close {
    position: absolute;
    top: 16px;
    right: 20px;
    background: none !important;
    border: none !important;
    font-size: 28px;
    color: #999;
    cursor: pointer;
    line-height: 1;
    padding: 4px;
    border-radius: 0 !important;
    box-shadow: none !important;
    transition: color 0.2s ease;
}
.dsk-search-close:hover { color: #8c0f42; }

.dsk-search-title {
    font-family: "Marcellus", serif;
    font-size: 24px;
    color: #8c0f42;
    margin: 0 0 24px;
    text-align: center;
    font-weight: 400;
}

.dsk-search-form { margin: 0; }

.dsk-search-field {
    display: flex;
    border: 2px solid #e0d6da;
    border-radius: 12px;
    overflow: hidden;
    transition: border-color 0.2s ease;
}
.dsk-search-field:focus-within {
    border-color: #8c0f42;
    box-shadow: 0 0 0 3px rgba(140, 15, 66, 0.1);
}

.dsk-search-input {
    flex: 1;
    border: none !important;
    outline: none !important;
    padding: 16px 20px;
    font-size: 18px;
    font-family: "inter", sans-serif;
    color: #333;
    background: transparent;
    box-shadow: none !important;
}
.dsk-search-input::placeholder {
    color: #aaa;
}

.dsk-search-submit {
    background: #8c0f42 !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    color: #fff;
    padding: 16px 20px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.2s ease;
}
.dsk-search-submit:hover { background: #6e0c34 !important; }
.dsk-search-submit svg { stroke: #fff; }

/* Hide overlay on mobile — mobile uses its own mbn-search-overlay */
@media (max-width: 767px) {
    .dsk-search-overlay { display: none !important; }
}

/* --- Footer: Social icons above payment methods ---
   "Siga-nos" heading is JS-injected (functions.php L1340-1357) so it doesn't
   inherit Elementor's widget typography. Match the surrounding column titles
   (Categorias / Ajuda / Métodos de Pagamento — all Inter 19px/500 #000).
*/
.footer-follow-us-heading .elementor-heading-title {
    margin-bottom: 10px;
}
#footer-social-above-payment {
    margin-bottom: 30px !important;
}
/* --- Footer: Spacing between payment icons & contact info --- */
.elementor-element-5b67202 .elementor-widget-html {
    margin-bottom: 25px !important;
}
.elementor-element-5b67202 .elementor-widget-shortcode {
    margin-top: 5px !important;
}
#footer-social-above-payment .elementor-social-icons-wrapper {
    justify-content: flex-start !important;
    gap: 10px;
}
#footer-social-above-payment .elementor-social-icon {
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    font-size: 16px !important;
    background-color: #8c0f42 !important;
    color: #fff !important;
    transition: background-color 0.2s ease;
}
#footer-social-above-payment .elementor-social-icon:hover {
    background-color: #6e0c34 !important;
}
#footer-social-above-payment .elementor-social-icon i {
    color: #fff !important;
}
#footer-social-above-payment .elementor-social-icon svg {
    fill: #fff !important;
}
/* Hide original social icons in the copyright bar */
.elementor-element-ad19d52 {
    display: none !important;
}
/* Center the copyright text now that social icons are removed from right */
.elementor-element-3d8ca75 {
    width: 100% !important;
    text-align: center !important;
}
.elementor-element-3d8ca75 .elementor-heading-title {
    text-align: center !important;
}

/* --- Footer: WordPress menus replacing Elementor icon lists --- */
.footer-wp-menu {
    list-style: none;
    padding: 0;
    margin: 0;
}
.footer-wp-menu li {
    margin-bottom: 8px;
}
.footer-wp-menu li a {
    color: #555;
    text-decoration: none;
    font-size: 15px;
    font-family: "inter", sans-serif;
    transition: color 0.2s ease;
    line-height: 1.6;
}
.footer-wp-menu li a:hover {
    color: #8c0f42;
}

/* =============================================
   MY ACCOUNT AREA — Complete Redesign
   ============================================= */

/* --- Phase 1.3: Sidebar Navigation — Active State & Styling --- */
/* !important needed to override Redux dynamic inline styles */
.woocommerce-account .woocommerce-MyAccount-navigation {
    background: #faf7f8 !important;
    border: 1px solid #ece6e9 !important;
    border-radius: 8px;
    padding: 24px 28px;
    margin-bottom: 40px;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li {
    border-bottom: 1px solid rgba(140, 15, 66, 0.08);
    padding: 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li:last-child {
    border-bottom: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
    display: block;
    padding: 12px 16px;
    font-size: 14px;
    font-weight: 500;
    font-family: "Inter", sans-serif;
    color: #333 !important;
    text-decoration: none;
    border-radius: 6px;
    transition: all 0.2s ease;
    position: relative;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
    color: #8c0f42 !important;
    background: rgba(140, 15, 66, 0.04);
}

/* Active menu item — wine accent with left border indicator */
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a {
    color: #8c0f42 !important;
    background: rgba(140, 15, 66, 0.06);
    font-weight: 600;
    border-left: 3px solid #8c0f42;
    padding-left: 13px;
}

/* Logout link — subtle styling */
.woocommerce-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout a {
    color: #999 !important;
    font-weight: 400;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout a:hover {
    color: #c0392b !important;
    background: rgba(192, 57, 43, 0.04);
}

/* --- Phase 1.4: Remove debug border / Redux inline border from content --- */
.woocommerce-account .woocommerce-MyAccount-content {
    border: none !important;
    border-left: none !important;
}

/* --- Phase 1.5: Mobile Responsive Layout --- */
@media (max-width: 991px) {
    .woocommerce-account .woocommerce-MyAccount-navigation,
    .woocommerce-account .woocommerce-MyAccount-content {
        width: 100% !important;
        float: none !important;
    }

    .woocommerce-account .woocommerce-MyAccount-navigation {
        margin-bottom: 24px;
        padding: 16px 20px;
    }

    .woocommerce-account .woocommerce-MyAccount-navigation ul {
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
    }

    .woocommerce-account .woocommerce-MyAccount-navigation ul li {
        border-bottom: none;
        flex: 0 0 auto;
    }

    .woocommerce-account .woocommerce-MyAccount-navigation ul li a {
        padding: 8px 14px;
        font-size: 13px;
        white-space: nowrap;
        border: 1px solid #ece6e9;
        border-radius: 20px;
    }

    .woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a {
        background: #8c0f42;
        color: #fff !important;
        border-color: #8c0f42;
        border-left: 1px solid #8c0f42;
        padding-left: 14px;
    }
}

@media (max-width: 575px) {
    .woocommerce-account .woocommerce-MyAccount-navigation ul {
        overflow-x: auto;
        flex-wrap: nowrap;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        padding-bottom: 4px;
    }

    .woocommerce-account .woocommerce-MyAccount-navigation ul::-webkit-scrollbar {
        display: none;
    }

    .woocommerce-account .woocommerce-MyAccount-navigation ul li a {
        font-size: 12px;
        padding: 7px 12px;
    }
}

/* --- Phase 4.5 + 4.6: Button Styling — Wine Theme --- */
/* All My Account submit buttons: Save Address, Save Account, etc. */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Button,
.woocommerce-account .woocommerce-MyAccount-content button[type="submit"],
.woocommerce-account .woocommerce-MyAccount-content input[type="submit"],
.woocommerce-account .woocommerce-MyAccount-content .button {
    background-color: #8c0f42 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 6px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    font-family: "Inter", sans-serif !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    padding: 12px 32px !important;
    cursor: pointer;
    transition: background-color 0.2s ease, box-shadow 0.2s ease !important;
    min-height: 48px;
    line-height: 1.4 !important;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Button:hover,
.woocommerce-account .woocommerce-MyAccount-content button[type="submit"]:hover,
.woocommerce-account .woocommerce-MyAccount-content input[type="submit"]:hover,
.woocommerce-account .woocommerce-MyAccount-content .button:hover {
    background-color: #6e0c34 !important;
    box-shadow: 0 4px 12px rgba(140, 15, 66, 0.25) !important;
}

/* --- Phase 7.1: Error Messages — Vertical List (not horizontal) --- */
.woocommerce-account .woocommerce-error {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    padding: 0 !important;
    background: #fdf0f0 !important;
    border: 1px solid #e8c4c4 !important;
    border-left: 4px solid #c0392b !important;
    border-radius: 6px !important;
    margin-bottom: 24px !important;
    list-style: none !important;
}

.woocommerce-account .woocommerce-error::before {
    display: none !important;
}

.woocommerce-account .woocommerce-error li {
    padding: 10px 16px !important;
    margin: 0 !important;
    font-size: 14px !important;
    color: #7a1f1f !important;
    border-bottom: 1px solid rgba(192, 57, 43, 0.1);
    line-height: 1.5 !important;
    list-style: none !important;
    position: relative;
    padding-left: 36px !important;
}

.woocommerce-account .woocommerce-error li::before {
    content: "⚠";
    position: absolute;
    left: 14px;
    top: 10px;
    font-size: 14px;
}

.woocommerce-account .woocommerce-error li:last-child {
    border-bottom: none;
}

/* --- Phase 7.2: Success Messages — Wine themed --- */
.woocommerce-account .woocommerce-message {
    background: #f0f7f0 !important;
    border: 1px solid #c6dcc6 !important;
    border-left: 4px solid #27ae60 !important;
    border-radius: 6px !important;
    color: #1e6e3e !important;
    font-size: 14px !important;
    padding: 14px 20px 14px 42px !important;
    position: relative;
}

.woocommerce-account .woocommerce-message::before {
    content: "✓" !important;
    font-family: inherit !important;
    color: #27ae60 !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    position: absolute !important;
    left: 16px !important;
    top: 14px !important;
}

/* --- Phase 7.3: Info Messages --- */
.woocommerce-account .woocommerce-info {
    background: #fdf8fa !important;
    border: 1px solid #ece6e9 !important;
    border-left: 4px solid #8c0f42 !important;
    border-radius: 6px !important;
    color: #333 !important;
    font-size: 14px !important;
    padding: 14px 20px 14px 42px !important;
}

.woocommerce-account .woocommerce-info::before {
    content: "ℹ" !important;
    font-family: inherit !important;
    color: #8c0f42 !important;
    font-size: 18px !important;
    position: absolute !important;
    left: 16px !important;
    top: 14px !important;
}

/* --- Phase 4.2 + 4.3: Form Field Styling --- */
.woocommerce-account .woocommerce-MyAccount-content input[type="text"],
.woocommerce-account .woocommerce-MyAccount-content input[type="email"],
.woocommerce-account .woocommerce-MyAccount-content input[type="tel"],
.woocommerce-account .woocommerce-MyAccount-content input[type="password"],
.woocommerce-account .woocommerce-MyAccount-content select,
.woocommerce-account .woocommerce-MyAccount-content textarea {
    border: 1.5px solid #ddd;
    border-radius: 6px;
    padding: 10px 14px;
    font-size: 14px;
    font-family: "Inter", sans-serif;
    color: #333;
    background: #fff;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    width: 100%;
    height: auto;
    min-height: 44px;
}

.woocommerce-account .woocommerce-MyAccount-content input[type="text"]:focus,
.woocommerce-account .woocommerce-MyAccount-content input[type="email"]:focus,
.woocommerce-account .woocommerce-MyAccount-content input[type="tel"]:focus,
.woocommerce-account .woocommerce-MyAccount-content input[type="password"]:focus,
.woocommerce-account .woocommerce-MyAccount-content select:focus,
.woocommerce-account .woocommerce-MyAccount-content textarea:focus {
    border-color: #8c0f42;
    box-shadow: 0 0 0 3px rgba(140, 15, 66, 0.1);
    outline: none;
}

/* Form labels */
.woocommerce-account .woocommerce-MyAccount-content label {
    font-size: 14px;
    font-weight: 500;
    color: #333;
    margin-bottom: 6px;
    display: block;
    font-family: "Inter", sans-serif;
}

/* Required asterisk */
.woocommerce-account .woocommerce-MyAccount-content label .required {
    color: #c0392b;
}

/* Field validation error state — red border on invalid fields */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-invalid input,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-invalid select {
    border-color: #c0392b !important;
    box-shadow: 0 0 0 3px rgba(192, 57, 43, 0.1) !important;
}

/* Select dropdown styling */
.woocommerce-account .woocommerce-MyAccount-content select {
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAiIGhlaWdodD0iNiIgdmlld0JveD0iMCAwIDEwIDYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0wLjYwMDA5OCAwLjU5OTYwOUw0LjYwMDEgNC41OTk2MUw4LjYwMDEgMC41OTk2MDkiIHN0cm9rZT0iIzY2NiIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4=");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-size: 10px;
    padding-right: 36px;
}

/* --- Phase 3.1: Orders Table Styling --- */
.woocommerce-account .woocommerce-orders-table {
    border-collapse: separate;
    border-spacing: 0;
    border: 1px solid #ece6e9;
    border-radius: 8px;
    overflow: hidden;
    width: 100%;
}

.woocommerce-account .woocommerce-orders-table thead th {
    background: #faf7f8 !important;
    color: #333 !important;
    font-size: 12px !important;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding: 14px 16px;
    border-bottom: 2px solid #ece6e9;
    font-family: "Inter", sans-serif;
}

.woocommerce-account .woocommerce-orders-table tbody td {
    padding: 14px 16px;
    font-size: 14px;
    border-bottom: 1px solid #f5f2f3;
    vertical-align: middle;
}

.woocommerce-account .woocommerce-orders-table tbody tr:last-child td {
    border-bottom: none;
}

.woocommerce-account .woocommerce-orders-table tbody tr:hover {
    background: rgba(140, 15, 66, 0.02);
}

/* Order status badges */
.woocommerce-account .woocommerce-orders-table .woocommerce-orders-table__cell-order-status {
    font-weight: 500;
}

/* View order button in table */
.woocommerce-account .woocommerce-orders-table .woocommerce-button.button.view {
    background: transparent !important;
    color: #8c0f42 !important;
    border: 1.5px solid #8c0f42 !important;
    border-radius: 4px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    padding: 6px 16px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    min-height: auto !important;
}

.woocommerce-account .woocommerce-orders-table .woocommerce-button.button.view:hover {
    background: #8c0f42 !important;
    color: #fff !important;
    box-shadow: 0 2px 8px rgba(140, 15, 66, 0.2) !important;
}

/* --- Phase 3.2: Orders table responsive --- */
@media (max-width: 767px) {
    .woocommerce-account .woocommerce-orders-table thead {
        display: none;
    }

    .woocommerce-account .woocommerce-orders-table tbody tr {
        display: block;
        margin-bottom: 16px;
        border: 1px solid #ece6e9;
        border-radius: 8px;
        padding: 16px;
    }

    .woocommerce-account .woocommerce-orders-table tbody td {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 8px 0;
        border-bottom: 1px solid #f5f2f3;
    }

    .woocommerce-account .woocommerce-orders-table tbody td::before {
        content: attr(data-title);
        font-weight: 600;
        font-size: 12px;
        text-transform: uppercase;
        color: #888;
        letter-spacing: 0.05em;
        flex: 0 0 auto;
        margin-right: 12px;
    }

    .woocommerce-account .woocommerce-orders-table tbody td:last-child {
        border-bottom: none;
        justify-content: center;
        padding-top: 12px;
    }
}

/* --- Phase 5.2: Wishlist Table Styling --- */
.woocommerce-account .woosw-list table {
    border-collapse: separate;
    border-spacing: 0;
    border: 1px solid #ece6e9;
    border-radius: 8px;
    overflow: hidden;
}

.woocommerce-account .woosw-list table th {
    background: #faf7f8;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 12px 16px;
}

.woocommerce-account .woosw-list table td {
    padding: 12px 16px;
    border-bottom: 1px solid #f5f2f3;
}

/* --- Phase 2.1: Dashboard Content Styling --- */
.woocommerce-account .woocommerce-MyAccount-content > p:first-of-type {
    font-size: 15px;
    line-height: 1.7;
    color: #555;
    margin-bottom: 24px;
}

.woocommerce-account .woocommerce-MyAccount-content > p a {
    color: #8c0f42;
    font-weight: 600;
    text-decoration: none;
    transition: color 0.2s ease;
}

.woocommerce-account .woocommerce-MyAccount-content > p a:hover {
    color: #6e0c34;
    text-decoration: underline;
}

/* --- Phase 4.7: Address cards styling --- */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title {
    background: #faf7f8 !important;
    border-radius: 6px 6px 0 0;
    padding: 14px 16px !important;
    border: 1px solid #ece6e9;
    border-bottom: none;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title h3 {
    font-size: 16px !important;
    font-weight: 600;
    color: #333;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title a {
    color: #8c0f42;
    font-weight: 500;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.woocommerce-account .woocommerce-MyAccount-content address {
    border: 1px solid #ece6e9 !important;
    border-radius: 0 0 6px 6px;
    padding: 16px !important;
    font-size: 14px;
    line-height: 1.7;
    color: #555;
    font-style: normal;
}

/* --- Phase 4.8: Password change section separator --- */
.woocommerce-account .woocommerce-MyAccount-content fieldset {
    border: none;
    border-top: 1px solid #ece6e9;
    padding-top: 24px;
    margin-top: 32px;
}

.woocommerce-account .woocommerce-MyAccount-content fieldset legend {
    font-size: 16px;
    font-weight: 600;
    color: #333;
    padding: 0 12px 0 0;
    font-family: "Inter", sans-serif;
}

/* --- Phase 6.2: Content headings --- */
.woocommerce-account .woocommerce-MyAccount-content h2 {
    font-size: 20px;
    font-weight: 600;
    color: #333;
    margin-bottom: 20px;
    padding-bottom: 12px;
    border-bottom: 2px solid #ece6e9;
    font-family: "Inter", sans-serif;
}

.woocommerce-account .woocommerce-MyAccount-content h3 {
    font-size: 16px;
    font-weight: 600;
    color: #333;
}

/* --- Phase 5.1: Empty state styling (Subscriptions, no orders) --- */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info:only-child,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Message--info {
    text-align: center;
    padding: 48px 24px !important;
    background: #fdf8fa !important;
    border: 1px dashed #d9c4cd !important;
    border-left: 1px dashed #d9c4cd !important;
    border-radius: 8px !important;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info:only-child::before,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Message--info::before {
    display: block !important;
    position: static !important;
    font-size: 32px !important;
    margin-bottom: 12px !important;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Button--next,
.woocommerce-account .woocommerce-MyAccount-content a.woocommerce-Button {
    display: inline-block;
    margin-top: 16px;
}

/* --- Subscriptions page browse products CTA --- */
.woocommerce-account .woocommerce-MyAccount-content .button.wc-forward {
    background: #8c0f42 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 6px !important;
    padding: 12px 28px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    font-size: 13px !important;
    display: inline-block;
    margin-top: 12px;
}

.woocommerce-account .woocommerce-MyAccount-content .button.wc-forward:hover {
    background: #6e0c34 !important;
    box-shadow: 0 4px 12px rgba(140, 15, 66, 0.25) !important;
}

/* --- General content area cleanup --- */
.woocommerce-account .woocommerce-MyAccount-content {
    min-height: 300px;
}

/* --- Fix parent theme float layout to flexbox --- */
.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) {
    display: flex !important;
    flex-wrap: wrap;
    gap: 30px;
}

.woocommerce-account .woocommerce > .woocommerce-MyAccount-navigation {
    flex: 0 0 260px;
    float: none !important;
    width: auto !important;
}

.woocommerce-account .woocommerce > .woocommerce-MyAccount-content {
    flex: 1 1 0%;
    float: none !important;
    width: auto !important;
    min-width: 0;
}

@media (max-width: 991px) {
    .woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) {
        flex-direction: column;
        gap: 16px;
    }

    .woocommerce-account .woocommerce > .woocommerce-MyAccount-navigation {
        flex: 0 0 auto;
    }
}

/* --- Toast notification animation (used by JS in functions.php) --- */
#itrobes-toast {
    font-family: "Inter", sans-serif !important;
}

/* --- Redux inline override: Table header/cell text colors --- */
/* Redux sets white text for elements meant for dark backgrounds */
.woocommerce-account .woocommerce-MyAccount-content table th,
.woocommerce-account .woocommerce-MyAccount-content table td,
.woocommerce-account .woocommerce-MyAccount-content table td a {
    color: #333 !important;
}

.woocommerce-account .woocommerce-orders-table td a {
    color: #8c0f42 !important;
}

.woocommerce-account .woocommerce-orders-table td a:hover {
    color: #6e0c34 !important;
}

/* --- Password visibility toggle icons --- */
.woocommerce-account .woocommerce-MyAccount-content .show-password-input,
.woocommerce-account .woocommerce-MyAccount-content .password-input .show-password-input {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    background: #f5f5f5 !important;
    border: 1px solid #ddd;
    border-radius: 4px;
    cursor: pointer;
    margin-top: 6px;
    transition: all 0.2s ease;
    color: #666 !important;
}

.woocommerce-account .woocommerce-MyAccount-content .show-password-input:hover {
    background: #8c0f42 !important;
    color: #fff !important;
    border-color: #8c0f42;
}

.woocommerce-account .woocommerce-MyAccount-content .show-password-input::after {
    color: inherit !important;
}

/* --- Redux override: Dashboard / content text colors --- */
.woocommerce-account .woocommerce-MyAccount-content,
.woocommerce-account .woocommerce-MyAccount-content p,
.woocommerce-account .woocommerce-MyAccount-content span {
    color: #333 !important;
}

.woocommerce-account .woocommerce-MyAccount-content a {
    color: #8c0f42 !important;
}

.woocommerce-account .woocommerce-MyAccount-content a:hover {
    color: #6e0c34 !important;
}

/* Ensure error message colors override the generic rule above */
.woocommerce-account .woocommerce-error li {
    color: #7a1f1f !important;
}

.woocommerce-account .woocommerce-message {
    color: #1e6e3e !important;
}

/* --- Logout link color override (don't inherit wine from generic a rule) --- */
.woocommerce-account .woocommerce-MyAccount-content p a[href*="logout"],
.woocommerce-account .woocommerce-MyAccount-content a.logout {
    color: #999 !important;
}

/* --- Address card edit link --- */
.woocommerce-account .woocommerce-Address-title a {
    color: #8c0f42 !important;
}

.woocommerce-account .woocommerce-Address-title a:hover {
    color: #6e0c34 !important;
}

/* --- Phase 3.1: Order Status Color-Coded Badges --- */
.woocommerce-account .woocommerce-orders-table .woocommerce-orders-table__cell-order-status {
    font-size: 13px;
}

/* Status badge base style */
.woocommerce-account .woocommerce-orders-table .woocommerce-orders-table__cell-order-status span,
.woocommerce-account .woocommerce-orders-table .woocommerce-orders-table__cell-order-status {
    position: relative;
}

/* Status pills — applied via PHP (spans injected) or via CSS with content matching */
.woocommerce-account .order-status-badge {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.03em;
    line-height: 1.4;
    white-space: nowrap;
}

.woocommerce-account .order-status-badge--processing {
    background: #fff3e0;
    color: #e65100;
    border: 1px solid #ffcc80;
}

.woocommerce-account .order-status-badge--completed {
    background: #e8f5e9;
    color: #2e7d32;
    border: 1px solid #a5d6a7;
}

.woocommerce-account .order-status-badge--on-hold {
    background: #fffde7;
    color: #f57f17;
    border: 1px solid #fff176;
}

.woocommerce-account .order-status-badge--cancelled {
    background: #fce4ec;
    color: #c62828;
    border: 1px solid #ef9a9a;
}

.woocommerce-account .order-status-badge--refunded {
    background: #f5f5f5;
    color: #616161;
    border: 1px solid #bdbdbd;
}

.woocommerce-account .order-status-badge--failed {
    background: #ffebee;
    color: #b71c1c;
    border: 1px solid #e57373;
}

.woocommerce-account .order-status-badge--pending {
    background: #e3f2fd;
    color: #1565c0;
    border: 1px solid #90caf9;
}

/* Default for custom / unknown statuses */
.woocommerce-account .order-status-badge--default {
    background: #f3e5f5;
    color: #6a1b9a;
    border: 1px solid #ce93d8;
}

/* --- Phase 6.6: Page Headings for My Account Subpages --- */
.woocommerce-account .itrobes-myaccount-heading {
    font-size: 22px;
    font-weight: 600;
    color: #333 !important;
    margin: 0 0 24px 0;
    padding-bottom: 14px;
    border-bottom: 2px solid #ece6e9;
    font-family: "Inter", sans-serif;
}

/* --- Phase 4.10: Cancel Button on Edit Forms --- */
.woocommerce-account .itrobes-form-actions {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-top: 8px;
}

.woocommerce-account .itrobes-cancel-link {
    display: inline-block;
    padding: 12px 24px;
    font-size: 14px;
    font-weight: 500;
    color: #666 !important;
    text-decoration: none;
    border: 1.5px solid #ddd;
    border-radius: 6px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    transition: all 0.2s ease;
    min-height: 48px;
    line-height: 1.4;
    display: inline-flex;
    align-items: center;
    font-family: "Inter", sans-serif;
}

.woocommerce-account .itrobes-cancel-link:hover {
    border-color: #999;
    color: #333 !important;
    background: #f9f9f9;
}

/* --- Phase 11.1: Loading/Spinner on Submit Buttons --- */
.woocommerce-account .woocommerce-MyAccount-content button[type="submit"].itrobes-loading,
.woocommerce-account .woocommerce-MyAccount-content input[type="submit"].itrobes-loading,
.woocommerce-account .woocommerce-MyAccount-content .button.itrobes-loading {
    position: relative;
    pointer-events: none;
    opacity: 0.75;
    color: transparent !important;
}

.woocommerce-account .woocommerce-MyAccount-content button[type="submit"].itrobes-loading::after,
.woocommerce-account .woocommerce-MyAccount-content input[type="submit"].itrobes-loading::after,
.woocommerce-account .woocommerce-MyAccount-content .button.itrobes-loading::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 20px;
    height: 20px;
    margin: -10px 0 0 -10px;
    border: 2px solid rgba(255, 255, 255, 0.3);
    border-top-color: #fff;
    border-radius: 50%;
    animation: itrobes-spin 0.6s linear infinite;
}

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

/* --- Phase 2.1+2.2: Dashboard Personalization Styling --- */
.woocommerce-account .itrobes-dashboard {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
}

.woocommerce-account .itrobes-dashboard-welcome {
    background: linear-gradient(135deg, #fdf8fa 0%, #f5eef1 100%);
    border: 1px solid #ece6e9;
    border-radius: 10px;
    padding: 28px 32px;
}

.woocommerce-account .itrobes-dashboard-welcome h2 {
    font-size: 22px;
    font-weight: 600;
    color: #333 !important;
    margin: 0 0 6px 0;
    padding: 0;
    border: none;
    font-family: "Inter", sans-serif;
}

.woocommerce-account .itrobes-dashboard-welcome p {
    font-size: 14px;
    color: #666 !important;
    margin: 0;
    line-height: 1.6;
}

/* Quick Action Cards */
.woocommerce-account .itrobes-quick-actions {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 12px;
}

.woocommerce-account .itrobes-quick-action {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 20px 16px;
    background: #fff;
    border: 1px solid #ece6e9;
    border-radius: 8px;
    text-decoration: none;
    transition: all 0.2s ease;
    text-align: center;
}

.woocommerce-account .itrobes-quick-action:hover {
    border-color: #8c0f42;
    box-shadow: 0 2px 12px rgba(140, 15, 66, 0.1);
    transform: translateY(-2px);
}

.woocommerce-account .itrobes-quick-action .action-icon {
    font-size: 28px;
    margin-bottom: 8px;
    display: block;
}

.woocommerce-account .itrobes-quick-action .action-label {
    font-size: 13px;
    font-weight: 600;
    color: #333 !important;
    font-family: "Inter", sans-serif;
}

/* Recent Orders on Dashboard */
.woocommerce-account .itrobes-recent-orders {
    background: #fff;
    border: 1px solid #ece6e9;
    border-radius: 8px;
    overflow: hidden;
}

.woocommerce-account .itrobes-recent-orders-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 20px;
    background: #faf7f8;
    border-bottom: 1px solid #ece6e9;
}

.woocommerce-account .itrobes-recent-orders-header h3 {
    font-size: 15px;
    font-weight: 600;
    color: #333;
    margin: 0;
    font-family: "Inter", sans-serif;
}

.woocommerce-account .itrobes-recent-orders-header a {
    font-size: 13px;
    color: #8c0f42 !important;
    text-decoration: none;
    font-weight: 500;
}

.woocommerce-account .itrobes-recent-orders-header a:hover {
    color: #6e0c34 !important;
    text-decoration: underline;
}

.woocommerce-account .itrobes-recent-order-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 20px;
    border-bottom: 1px solid #f5f2f3;
    transition: background 0.15s ease;
}

.woocommerce-account .itrobes-recent-order-item:last-child {
    border-bottom: none;
}

.woocommerce-account .itrobes-recent-order-item:hover {
    background: rgba(140, 15, 66, 0.02);
}

.woocommerce-account .itrobes-recent-order-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.woocommerce-account .itrobes-recent-order-number {
    font-size: 14px;
    font-weight: 600;
    color: #333 !important;
}

.woocommerce-account .itrobes-recent-order-date {
    font-size: 12px;
    color: #888 !important;
}

.woocommerce-account .itrobes-recent-order-right {
    display: flex;
    align-items: center;
    gap: 12px;
}

.woocommerce-account .itrobes-recent-order-total {
    font-size: 14px;
    font-weight: 500;
    color: #333 !important;
}

/* Dashboard empty state (no recent orders) */
.woocommerce-account .itrobes-no-orders {
    text-align: center;
    padding: 32px 20px;
    color: #888;
}

.woocommerce-account .itrobes-no-orders .empty-icon {
    font-size: 40px;
    display: block;
    margin-bottom: 12px;
}

.woocommerce-account .itrobes-no-orders p {
    margin: 0 0 16px 0;
    font-size: 14px;
    color: #888 !important;
}

.woocommerce-account .itrobes-no-orders a {
    display: inline-block;
    padding: 10px 24px;
    background: #8c0f42;
    color: #fff !important;
    border-radius: 6px;
    text-decoration: none;
    font-weight: 600;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.woocommerce-account .itrobes-no-orders a:hover {
    background: #6e0c34;
}

/* --- Dashboard responsive --- */
@media (max-width: 767px) {
    .woocommerce-account .itrobes-quick-actions {
        grid-template-columns: repeat(2, 1fr);
    }

    .woocommerce-account .itrobes-dashboard-welcome {
        padding: 20px;
    }

    .woocommerce-account .itrobes-recent-order-item {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }

    .woocommerce-account .itrobes-recent-order-right {
        width: 100%;
        justify-content: space-between;
    }
}

/* --- Phase 3.2: Orders Pagination Styling --- */
.woocommerce-account .woocommerce-pagination,
.woocommerce-account .itrobes-orders-pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid #ece6e9;
}

.woocommerce-account .itrobes-orders-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 36px;
    padding: 0 10px;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    color: #333;
    text-decoration: none;
    transition: all 0.2s ease;
    font-family: "Inter", sans-serif;
}

.woocommerce-account .itrobes-orders-pagination .page-numbers:hover {
    border-color: #8c0f42;
    color: #8c0f42;
}

.woocommerce-account .itrobes-orders-pagination .page-numbers.current {
    background: #8c0f42;
    color: #fff;
    border-color: #8c0f42;
}

.woocommerce-account .itrobes-orders-pagination .page-numbers.prev,
.woocommerce-account .itrobes-orders-pagination .page-numbers.next {
    font-size: 18px;
    padding: 0 8px;
}

/* --- Phone field required indicator --- */
.woocommerce-account .woocommerce-MyAccount-content #billing_phone_field label .optional {
    display: none;
}

/* --- Phase 7.1: Error Messages — Vertical Stacking --- */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-error {
    display: block !important;
    list-style: none !important;
    padding: 16px 20px !important;
    margin: 0 0 24px 0 !important;
    background: #fef2f2 !important;
    border: 1px solid #fecaca !important;
    border-left: 4px solid #dc2626 !important;
    border-radius: 6px !important;
    color: #991b1b !important;
    font-size: 14px;
    line-height: 1.5;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-error li {
    display: block !important;
    padding: 6px 0 6px 24px !important;
    margin: 0 !important;
    line-height: 1.5;
    position: relative;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-error li::before {
    content: "⚠";
    position: absolute;
    left: 0;
    top: 6px;
    font-size: 13px;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-error li + li {
    border-top: 1px solid #fecaca;
    margin-top: 4px !important;
    padding-top: 10px !important;
}

/* --- Phase 4.9: Success Message Styling --- */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-message {
    display: block !important;
    padding: 16px 20px !important;
    margin: 0 0 24px 0 !important;
    background: #f0fdf4 !important;
    border: 1px solid #bbf7d0 !important;
    border-left: 4px solid #16a34a !important;
    border-radius: 6px !important;
    color: #166534 !important;
    font-size: 14px;
    line-height: 1.5;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-message::before {
    content: "✓ ";
    font-weight: 700;
}

/* --- Phase 4.9: Info/Notice Message Styling --- */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info,
.woocommerce-account .woocommerce-MyAccount-content .wc-block-components-notice-banner.is-info {
    display: block !important;
    padding: 16px 20px !important;
    margin: 0 0 24px 0 !important;
    background: #fdf8fa !important;
    border: 1px solid #ece6e9 !important;
    border-left: 4px solid #8c0f42 !important;
    border-radius: 6px !important;
    color: #333 !important;
    font-size: 14px;
    line-height: 1.5;
}

/* --- Phase 7.2: Inline Field-Level Validation Error Highlight --- */
.woocommerce-account .woocommerce-MyAccount-content .form-row.itrobes-field-error input,
.woocommerce-account .woocommerce-MyAccount-content .form-row.itrobes-field-error select,
.woocommerce-account .woocommerce-MyAccount-content .form-row.itrobes-field-error textarea,
.woocommerce-account .woocommerce-MyAccount-content .form-row.itrobes-field-error .select2-selection {
    border-color: #dc2626 !important;
    box-shadow: 0 0 0 1px rgba(220, 38, 38, 0.2) !important;
}

.woocommerce-account .woocommerce-MyAccount-content .form-row.itrobes-field-error label {
    color: #dc2626 !important;
}

/* Transition for smooth error state change */
.woocommerce-account .woocommerce-MyAccount-content .form-row input,
.woocommerce-account .woocommerce-MyAccount-content .form-row select,
.woocommerce-account .woocommerce-MyAccount-content .form-row textarea {
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.woocommerce-account .woocommerce-MyAccount-content .form-row label {
    transition: color 0.2s ease;
}

/* --- Phase 4.10: Cancel button inside form actions container --- */
.woocommerce-account .woocommerce-MyAccount-content .itrobes-form-actions {
    display: flex !important;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

/* --- Edit Address form <h3> heading styling --- */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-address-fields h3,
.woocommerce-account .woocommerce-MyAccount-content form > h3 {
    font-size: 18px;
    font-weight: 600;
    color: #333 !important;
    margin: 0 0 20px 0;
    padding-bottom: 12px;
    border-bottom: 1px solid #ece6e9;
    font-family: "Inter", sans-serif;
}

/* ==========================================================================
   MEGA MENU — Smooth Animation & CSS Polish
   ========================================================================== */

/* --- Dropdown container: smooth fade + slide animation --- */
.e-n-menu .e-n-menu-content {
    opacity: 0 !important;
    visibility: hidden !important;
    transform: translateY(-10px) !important;
    transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1),
                transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
                visibility 0.3s !important;
    pointer-events: none !important;
    overflow-x: clip !important;
    overflow-y: visible !important;
    max-width: 100vw !important;
}

.e-n-menu .e-n-menu-content.e-active {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(0) !important;
    pointer-events: auto !important;
    background: #fff !important;
}

/* --- White dropdown panel: shadow, radius, accent border --- */
.e-n-menu .e-n-menu-content .elementor-element-7d75613 {
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.10),
                0 4px 12px rgba(0, 0, 0, 0.06) !important;
    border-radius: 0 0 12px 12px !important;
    overflow: hidden !important;
    padding: 28px 40px !important;
    position: relative !important;
    border-top: 3px solid #8c0f42 !important;
}

/* --- Outer section: reduce gap + clip horizontal overflow --- */
.e-n-menu .e-n-menu-content .elementor-element-6553078 {
    margin-top: 10px !important;
    overflow-x: clip !important;
    max-width: 100vw !important;
}

/* --- Inner flex layout: tight distribution --- */
.e-n-menu .e-n-menu-content .elementor-element-db7ab18 {
    width: 100% !important;
    gap: 0 !important;
}

/* --- Left columns container: tight, content-based --- */
.e-n-menu .e-n-menu-content .elementor-element-cffbded {
    flex: 1 1 auto !important;
    gap: 0 !important;
    justify-content: flex-start !important;
}

/* --- Category columns: natural width, can shrink, consistent gap --- */
.e-n-menu .e-n-menu-content .elementor-element-cffbded > .elementor-element {
    flex: 0 1 auto !important;
    min-width: 0 !important;
    padding-right: 32px !important;
    box-sizing: border-box !important;
}

/* Last category column: smaller gap before promo */
.e-n-menu .e-n-menu-content .elementor-element-cffbded > .elementor-element:last-child {
    padding-right: 20px !important;
}

/* --- Right promo column: push to the right --- */
.e-n-menu .e-n-menu-content .elementor-element-41fc005 {
    flex: 0 0 280px !important;
    max-width: 280px !important;
    margin-left: auto !important;
    border-radius: 8px !important;
    overflow: hidden !important;
}

/* --- Category headings: scaled down (Nav 22px > Headings 16px > Items 14px) --- */
.e-n-menu .e-n-menu-content .elementor-heading-title {
    font-size: 16px !important;
    font-weight: 700 !important;
    margin-bottom: 12px !important;
    padding-bottom: 8px !important;
    border-bottom: 2px solid rgba(140, 15, 66, 0.15);
    letter-spacing: 0.5px;
}

/* --- List item links: scaled down + hover transition --- */
.e-n-menu .e-n-menu-content .elementor-icon-list-item a {
    font-size: 14px !important;
    transition: color 0.2s ease, transform 0.2s ease !important;
    padding: 5px 0 !important;
    display: inline-block;
}

.e-n-menu .e-n-menu-content .elementor-icon-list-item a:hover {
    color: #8c0f42 !important;
    transform: translateX(3px);
}

/* --- List item vertical spacing --- */
.e-n-menu .e-n-menu-content .elementor-icon-list-items .elementor-icon-list-item + .elementor-icon-list-item {
    margin-top: 2px !important;
}

/* --- Nav menu item font size bump (18px → 22px) --- */
.e-n-menu .e-n-menu-item .e-n-menu-title {
    font-size: 22px !important;
    position: relative;
}

.e-n-menu .e-n-menu-item .e-n-menu-title::after {
    content: "";
    position: absolute;
    bottom: -2px;
    left: 50%;
    width: 0;
    height: 2px;
    background: #8c0f42;
    transition: width 0.3s ease, left 0.3s ease;
}

.e-n-menu .e-n-menu-item:hover > .e-n-menu-title::after,
.e-n-menu .e-n-menu-item .e-n-menu-title:focus::after {
    width: 100%;
    left: 0;
}

/* --- Prevent horizontal page scroll from wide dropdown --- */
body.elementor-page {
    overflow-x: hidden;
}

/* ==========================================================================
   EDIT ADDRESS FORM — Proper Field Layout & UX
   ========================================================================== */

/* --- Field wrapper: 2-column grid layout --- */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-address-fields__field-wrapper {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 16px 24px !important;
}

/* --- Form rows: stack labels above inputs --- */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-address-fields .form-row {
    display: flex !important;
    flex-direction: column !important;
    margin-bottom: 0 !important;
    padding: 0 !important;
}

/* --- Half-width rows side by side --- */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-address-fields .form-row-first,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-address-fields .form-row-last {
    width: calc(50% - 12px) !important;
    flex: 0 0 calc(50% - 12px) !important;
}

/* --- Full-width rows --- */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-address-fields .form-row-wide {
    width: 100% !important;
    flex: 0 0 100% !important;
}

/* --- Labels: above inputs, consistent style --- */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-address-fields .form-row label {
    display: block !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #444 !important;
    margin-bottom: 6px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.3px !important;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-address-fields .form-row label .required {
    color: #dc2626 !important;
}

/* --- Inputs: full-width, modern styling --- */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-address-fields .form-row input[type="text"],
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-address-fields .form-row input[type="email"],
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-address-fields .form-row input[type="tel"],
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-address-fields .form-row select,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-address-fields .form-row textarea {
    width: 100% !important;
    max-width: 100% !important;
    padding: 10px 14px !important;
    font-size: 14px !important;
    line-height: 1.5 !important;
    border: 1px solid #d1d5db !important;
    border-radius: 6px !important;
    background: #fff !important;
    color: #333 !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
    box-sizing: border-box !important;
    -webkit-appearance: none !important;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-address-fields .form-row input:focus,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-address-fields .form-row select:focus,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-address-fields .form-row textarea:focus {
    border-color: #8c0f42 !important;
    box-shadow: 0 0 0 3px rgba(140, 15, 66, 0.1) !important;
    outline: none !important;
}

/* --- Select dropdown styling --- */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-address-fields .form-row select {
    appearance: auto !important;
    -webkit-appearance: auto !important;
    cursor: pointer;
}

/* --- Select2 overrides (for country/state dropdowns) --- */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-address-fields .select2-container {
    width: 100% !important;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-address-fields .select2-container .select2-selection--single {
    height: 42px !important;
    border: 1px solid #d1d5db !important;
    border-radius: 6px !important;
    padding: 6px 14px !important;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-address-fields .select2-container .select2-selection--single .select2-selection__rendered {
    line-height: 28px !important;
    padding-left: 0 !important;
    color: #333 !important;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-address-fields .select2-container .select2-selection--single .select2-selection__arrow {
    height: 40px !important;
}

/* --- Optional label text --- */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-address-fields .form-row .optional {
    font-weight: 400 !important;
    font-size: 11px !important;
    color: #999 !important;
    text-transform: none !important;
}

/* --- Form actions row (Save + Cancel) --- */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-address-fields .itrobes-form-actions {
    margin-top: 8px !important;
}

/* =============================================================
   MOBILE & TABLET HEADER / UX FIXES
   Both Elementor header templates: 26657 (Home/Shop) + 24577 (General)
   ============================================================= */

/* ===== MOBILE HEADER FIX (≤767px) ===== */
@media (max-width: 767px) {
    /* Hide search widget on mobile — both headers */
    .elementor-element-33d6726,
    .elementor-element-5f9fed0 {
        display: none !important;
    }

    /* Hide the transparent/hidden icon */
    .elementor-element-4149664,
    .elementor-element-e0a34ce {
        display: none !important;
    }

    /* Hide cart icon from top header (moved to bottom nav) */
    .elementor-element-6f7690c,
    .elementor-element-3b3c1f5 {
        display: none !important;
    }

    /* Hide account icon from top header (moved to bottom nav) */
    .elementor-element-e2e66d9,
    .elementor-element-75aaa55 {
        display: none !important;
    }

    /* Icons container: auto width, flex, visible */
    .elementor-element-2ece98d,
    .elementor-element-e120da2 {
        --width: auto !important;
        flex: 0 0 auto !important;
        width: auto !important;
        display: flex !important;
        align-items: center !important;
        gap: 12px !important;
        overflow: visible !important;
    }

    /* Main row: CSS Grid single-cell overlay so logo centers over full width */
    .elementor-element-7db7cf4,
    .elementor-element-93ceb37 {
        display: grid !important;
        grid-template-columns: 1fr !important;
        align-items: center !important;
    }

    /* Logo container: centered across entire row */
    .elementor-element-9c27616,
    .elementor-element-0798f3f {
        grid-column: 1 !important;
        grid-row: 1 !important;
        justify-self: center !important;
        z-index: 1 !important;
    }

    /* Logo image: cap at 100px on mobile */
    .elementor-element-8303f8c img,
    .elementor-element-c6e9aca img {
        max-width: 100px !important;
        height: auto !important;
    }

    /* Icons: same grid cell, right-aligned, above logo */
    .elementor-element-2ece98d,
    .elementor-element-e120da2 {
        grid-column: 1 !important;
        grid-row: 1 !important;
        justify-self: end !important;
        z-index: 2 !important;
        gap: 8px !important;
    }

    /* Hide mega menu widget + nav container on mobile (bottom nav handles navigation) */
    .elementor-element-26a8191,
    .elementor-element-49014f3,
    .elementor-element-6d89fee {
        display: none !important;
    }

    /* Hide active filter selections on mobile (redundant with filter sidebar) */
    .facet-selection-top {
        display: none !important;
    }

    /* Announcement bar: smaller text to prevent wrapping */
    .elementor-element-0fc5bb3 .elementor-widget-container,
    .elementor-element-f34a6ad .elementor-widget-container {
        font-size: 11px !important;
    }
}

/* ===== TABLET HEADER FIX (768–1024px) ===== */
@media (min-width: 768px) and (max-width: 1024px) {
    /* Hide search widget on tablet */
    .elementor-element-33d6726,
    .elementor-element-5f9fed0 {
        display: none !important;
    }

    /* Hide the transparent/hidden icon */
    .elementor-element-4149664,
    .elementor-element-e0a34ce {
        display: none !important;
    }

    /* Icons container: auto width */
    .elementor-element-2ece98d,
    .elementor-element-e120da2 {
        --width: auto !important;
        flex: 0 0 auto !important;
        display: flex !important;
        align-items: center !important;
        gap: 16px !important;
    }

    /* Logo: flexible */
    .elementor-element-9c27616,
    .elementor-element-0798f3f {
        --width: auto !important;
        flex: 1 1 0% !important;
    }

    /* Logo image: cap at 150px */
    .elementor-element-8303f8c img,
    .elementor-element-c6e9aca img {
        max-width: 150px !important;
        height: auto !important;
    }

    /* Hide desktop mega menu on tablet */
    .elementor-element-26a8191,
    .elementor-element-49014f3 {
        display: none !important;
    }
}

/* ===== HIDE HERO BANNER ON UTILITY PAGES ===== */
body.woocommerce-cart .page-title.bwp-title,
body.woocommerce-checkout .page-title.bwp-title,
body.woocommerce-account .page-title.bwp-title {
    display: none !important;
}

body.woocommerce-cart .elementor-element-4ff7175,
body.woocommerce-cart .elementor-element-972200a,
body.woocommerce-checkout .elementor-element-4ff7175,
body.woocommerce-checkout .elementor-element-972200a,
body.woocommerce-account .elementor-element-4ff7175,
body.woocommerce-account .elementor-element-972200a {
    display: none !important;
}

/* ===== MOBILE SHOP GRID ===== */
@media (max-width: 767px) {
    /* 2-column product grid on mobile */
    ul.products {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 12px !important;
    }
    ul.products li.product {
        width: 100% !important;
        max-width: 100% !important;
        flex: none !important;
        margin: 0 !important;
        padding: 0 !important;
        box-sizing: border-box !important;
    }
    /* Override inner wrapper — must match or exceed specificity of existing rules */
    .main-archive-product .products-list.grid .product-wapper,
    ul.products-list.grid .product-wapper,
    ul.products li.product .product-wapper {
        width: 100% !important;
        max-width: 100% !important;
        flex: 0 0 100% !important;
    }
    .products-list.grid .product-wapper .products-thumb,
    ul.products li.product .products-thumb {
        width: 100% !important;
        min-height: 180px !important;
        height: auto !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 10px 8px 0 !important;
        overflow: visible !important;
    }
    .products-list.grid .product-wapper .products-thumb .product-thumb-hover {
        width: 100% !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        flex: 1 1 auto !important;
    }
    .products-list.grid .product-wapper .products-thumb a.woocommerce-LoopProduct-link {
        width: 100% !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        min-height: 150px !important;
    }
    .products-list.grid .product-wapper .products-thumb img,
    ul.products li.product .products-thumb img {
        max-height: 170px !important;
        max-width: 100% !important;
        width: auto !important;
        height: auto !important;
        object-fit: contain !important;
    }
    /* Sale badge: prominent pill */
    .products-list.grid .product-wapper .onsale,
    .products-list.grid .product-wapper .product-lable .onsale {
        position: absolute !important;
        top: 10px !important;
        left: 10px !important;
        z-index: 3 !important;
        font-size: 11px !important;
        font-weight: 700 !important;
        padding: 4px 10px !important;
        border-radius: 6px !important;
        background: #8c0f42 !important;
        color: #fff !important;
        letter-spacing: 0.3px !important;
        line-height: 1.3 !important;
        min-width: 0 !important;
    }
    .products-list.grid .product-wapper .products-content,
    ul.products li.product .products-content {
        width: 100% !important;
        padding: 8px 4px !important;
    }
    /* Product title: compact */
    ul.products li.product .woocommerce-loop-product__title {
        font-size: 13px !important;
        line-height: 1.3 !important;
    }
    /* Price: compact */
    ul.products li.product .price {
        font-size: 14px !important;
    }
}

/* ===== MOBILE MY ACCOUNT / LOGIN FORM ===== */
@media (max-width: 767px) {
    .woocommerce-account .u-columns {
        flex-direction: column !important;
    }
    .woocommerce-account .u-columns .u-column1,
    .woocommerce-account .u-columns .u-column2 {
        width: 100% !important;
        max-width: 100% !important;
        flex: 0 0 100% !important;
        padding: 0 15px !important;
    }
}

/* ===== MOBILE FLOATING ELEMENTS CLEANUP ===== */

/* --- Hide Tidio on mobile (WhatsApp is primary chat for Angola) --- */
@media (max-width: 767px) {
  #tidio-chat-iframe,
  #tidio-chat,
  iframe[src*="tidio"],
  div[class*="tidio"] { display: none !important; visibility: hidden !important; }
}

/* --- Reposition WhatsApp above bottom nav --- */
@media (max-width: 767px) {
  .chatbot,
  .ht-ctc-chat {
    bottom: 74px !important;
    right: 12px !important;
    z-index: 99998 !important;
  }
  .chatbot .chatbot_img,
  .ht-ctc-chat .ht-ctc-icon img,
  .ht-ctc-chat svg {
    width: 44px !important;
    height: 44px !important;
  }
  /* Hide CTA tooltip */
  .ht-ctc-chat .ht-ctc-cta,
  .ctc_cta { display: none !important; }
}

/* --- Cookie Banner: compact toast above bottom nav --- */

/* Cookie banner must sit above Tidio (z:999999999) and WhatsApp (z:99999999) */
.moove-gdpr-info-bar-container,
#moove_gdpr_cookie_info_bar {
    z-index: 2147483647 !important; /* max 32-bit int — always on top */
}

@media (max-width: 767px) {
  .moove-gdpr-info-bar-container,
  #moove_gdpr_cookie_info_bar {
    bottom: 64px !important;
    left: 8px !important;
    right: 8px !important;
    width: auto !important;
    border-radius: 12px !important;
    padding: 12px 16px !important;
    box-shadow: 0 4px 20px rgba(0,0,0,0.15) !important;
    font-size: 12px !important;
    line-height: 1.4 !important;
  }
  .moove-gdpr-info-bar-container .moove-gdpr-info-bar-content p {
    font-size: 12px !important;
    margin: 0 0 8px !important;
  }
  .moove-gdpr-info-bar-container .moove-gdpr-cookie-notice-buttons {
    display: flex !important;
    gap: 8px !important;
  }
  .moove-gdpr-info-bar-container .moove-gdpr-cookie-notice-buttons button,
  .moove-gdpr-info-bar-container .moove-gdpr-cookie-notice-buttons a {
    padding: 6px 16px !important;
    font-size: 12px !important;
    border-radius: 6px !important;
    flex: 1 !important;
    text-align: center !important;
  }
}

/* ===== Age Gate Modal ===== */
.age-gate-overlay {
    position: fixed;
    inset: 0;
    z-index: 999999;
    background: rgba(0, 0, 0, 0.7);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    transition: opacity 0.3s ease;
}
.age-gate-modal {
    display: grid;
    grid-template-columns: 1fr 1fr;
    max-width: 820px;
    width: 100%;
    background: #fff;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 24px 64px rgba(0, 0, 0, 0.3);
}
.age-gate-image {
    position: relative;
    overflow: hidden;
}
.age-gate-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.age-gate-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 48px 40px;
}
.age-gate-content h2 {
    font-size: 32px;
    line-height: 1.2;
    color: #8c0f42;
    margin: 0 0 16px;
}
.age-gate-content p {
    font-size: 16px;
    line-height: 1.6;
    color: #555;
    margin: 0 0 32px;
}
.age-gate-buttons {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.age-gate-btn {
    display: block;
    width: 100%;
    padding: 16px 24px;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    text-align: center;
    border-radius: 4px;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease;
    text-decoration: none;
    box-sizing: border-box;
}
.age-gate-btn--yes {
    background: #fff !important;
    color: #222 !important;
    border: 1px solid #ccc !important;
    border-radius: 4px !important;
    box-shadow: none !important;
}
.age-gate-btn--yes:hover {
    background: #f5f5f5 !important;
    border-color: #8c0f42 !important;
    color: #8c0f42 !important;
}
.age-gate-btn--no {
    background: #8c0f42 !important;
    color: #fff !important;
    border: 1px solid #8c0f42 !important;
    border-radius: 4px !important;
    box-shadow: none !important;
}
.age-gate-btn--no:hover {
    background: #6e0c34 !important;
    border-color: #6e0c34 !important;
}

/* Hide overlapping elements & scroll when age gate is active */
body.age-gate-active {
    overflow: hidden !important;
}
body.age-gate-active header,
body.age-gate-active .bwp-header,
body.age-gate-active .elementor-location-header {
    display: none !important;
}
body.age-gate-active .mobile-bottom-nav,
body.age-gate-active .mbn-backdrop,
body.age-gate-active .mbn-panel,
body.age-gate-active .mbn-search-overlay,
body.age-gate-active .gdpr-infobar,
body.age-gate-active [class*="gdpr"],
body.age-gate-active [class*="cookie-notice"],
body.age-gate-active #tidio-chat,
body.age-gate-active .click-to-chat-main,
body.age-gate-active .ht-ctc,
body.age-gate-active #ht-ctc-chat,
body.age-gate-active .slick-arrow,
body.age-gate-active .elementor-swiper-button,
body.age-gate-active .majc-cart-popup,
body.age-gate-active .majc-toggle-button {
    display: none !important;
}

/* Mobile: single-column stacked layout */
@media (max-width: 767px) {
    .age-gate-overlay {
        padding: 16px;
    }
    .age-gate-modal {
        grid-template-columns: 1fr;
        max-height: calc(100dvh - 32px);
        overflow-y: auto;
    }
    .age-gate-image {
        max-height: 22vh;
        overflow: hidden;
    }
    .age-gate-image img {
        height: auto;
        max-height: 22vh;
    }
    .age-gate-content {
        padding: 20px;
    }
    .age-gate-content h2 {
        font-size: 24px;
        text-align: center;
        margin-bottom: 10px;
    }
    .age-gate-content p {
        font-size: 14px;
        text-align: center;
        margin-bottom: 20px;
    }
}

/* ===== PRODUCT CARD ALIGNMENT ===== */
/* Align product name, rating, and price consistently to the left */
.products-list.grid .product-wapper .products-content,
.products .product .products-content {
    text-align: left !important;
}
.products-list.grid .product-wapper .products-content h3.product-title,
.archive .products-list.grid .product-wapper .products-content h3.product-title {
    text-align: left !important;
    margin: 0 !important;
}
.products .product .price,
.bwp-single-product .price,
.product-card .price,
ul.products li.product .price {
    text-align: left !important;
}

/* ===== WINE CLUB — Equal card sizes ===== */
.wine-club .products .product,
.woocommerce .products .product-type-subscription {
    display: flex;
    flex-direction: column;
}
.wine-club .products .product .product-image,
.woocommerce .products .product-type-subscription .product-image {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
}
.wine-club .products .product .product-image img,
.woocommerce .products .product-type-subscription .product-image img {
    max-height: 280px;
    width: auto;
    object-fit: contain;
}

/* ===== PDP QUANTITY + ADD TO CART LAYOUT ===== */
/* Ensure qty and add-to-cart button are inline, not stacked */
.quantity-button {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    flex-wrap: nowrap !important;
}
.quantity-button .quantity {
    /* Issue 14 (2026-05-16): widened from 130px to 144px so both - and + buttons
       fit alongside the input. At 130px the + (38px wide) overflowed past the
       container and sat *behind* the ADICIONAR AO CARRINHO button, making it
       invisible. 144px = 38 (minus) + 68 (input) + 38 (plus). */
    flex: 0 0 144px !important;
    width: 144px !important;
    max-width: 144px !important;
    display: flex !important;
    align-items: center !important;
}
/* Shrink the qty input to fit inside the widened .quantity wrapper without
   pushing - and + out. The number input only ever shows 1-3 digits. */
.quantity-button .quantity input.qty {
    flex: 0 0 68px !important;
    width: 68px !important;
    min-width: 0 !important;
    max-width: 68px !important;
    text-align: center !important;
    padding: 0 4px !important;
}
.quantity-button .single_add_to_cart_button {
    flex: 0 0 auto !important;
    white-space: nowrap !important;
}
/* B1: PDP +/- buttons render the literal "+" / "-" characters directly in
 * Arial. Earlier (2026-03-19) this was implemented via font-size:0 + ::after
 * to swap the parent theme's icon-font character, but the combined-CSS
 * cascade on Hostinger ate the ::after rule and left both buttons blank.
 * Showing the literal HTML text in a guaranteed sans-serif is more robust. */
.quantity button.plus,
.quantity button.minus,
.quantity-button .quantity button.plus,
.quantity-button .quantity button.minus {
    font-family: Arial, "Helvetica Neue", sans-serif !important;
    font-size: 18px !important;
    line-height: 1 !important;
    color: #333 !important;
    text-indent: 0 !important;
    overflow: visible !important;
    min-width: 32px !important;
    min-height: 32px !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: transparent !important;
    border: 1px solid #ddd !important;
    cursor: pointer !important;
}
/* Suppress any inherited ::after icon-font glyph from the parent theme so we
 * don't render two characters layered on top of each other. */
.quantity button.plus::after,
.quantity button.minus::after,
.quantity button.plus::before,
.quantity button.minus::before {
    content: none !important;
}

/* ===== PRODUCT ZOOM & GALLERY Z-INDEX ===== */
/* Keep zoom window and gallery controls below the sticky header */
.zoomContainer, .zoomWindow, .zoomWindowContainer,
div[style*="z-index: 100"][style*="position: absolute"] {
    z-index: 99 !important;
}
.bwp-single-product .images,
.bwp-single-product .woocommerce-product-gallery,
.bwp-single-product .image-additional,
.bwp-single-product .view-gallery {
    z-index: 1 !important;
    position: relative;
}
/* Only lower header z-index on single product pages (for gallery zoom fix).
   On archive/category pages the header needs z-index 9999+ so the mega menu
   dropdown appears above the sidebar filters. */
.single-product .bwp-header,
.single-product #bwp-header,
.single-product .header-sticky,
.single-product header.elementor-location-header {
    z-index: 999 !important;
}

/* ===== MOBILE PDP DESCRIPTION TAB FIX ===== */
/* Fix description tab label overlapping on mobile */
@media (max-width: 767px) {
    .bwp-single-product .woocommerce-tabs .full-desc .title-desc,
    .bwp-single-product .full-content .title-desc {
        display: block !important;
        width: 100% !important;
        overflow: visible !important;
        white-space: normal !important;
        font-size: 18px !important;
        padding: 8px 0 !important;
        margin-bottom: 8px !important;
        border: none !important;
        background: none !important;
    }
}

/* ===== MOBILE CATEGORY BANNER ===== */
/* Ensure category/archive banner image is fully visible on mobile */
@media (max-width: 767px) {
    .bwp-breadscrumb,
    .page-title-inner,
    .breadcrumb-bg {
        min-height: 120px !important;
        background-size: cover !important;
        background-position: center !important;
    }
}

/* ===== MINI CART SIDEBAR FIX ===== */
/* Ensure mini cart sidebar is above chat widget and buttons are visible */
.msuspended-suspended-cart,
.mini-cart-ajax-sidebar,
.bwp-minicart-sidebar {
    z-index: 999999 !important;
}
/* Ensure the cart action buttons (View Cart / Checkout) are always visible */
.mini-cart-ajax-sidebar .view-cart,
.mini-cart-ajax-sidebar .view-checkout,
.msuspended-suspended-cart .view-cart,
.msuspended-suspended-cart .view-checkout,
.bwp-minicart-sidebar .buttons,
.bwp-minicart-sidebar .button-action {
    position: relative;
    z-index: 10;
}

/* ===== MOBILE FILTER BUTTON FIX ===== */
/* Prevent "Ver Resultados" from overlapping filter checkboxes */
@media (max-width: 767px) {
    .wpfFilterButton {
        position: sticky !important;
        bottom: 0;
        z-index: 10;
        margin-top: 12px;
        box-shadow: 0 -4px 12px rgba(0,0,0,0.1);
    }
    /* Add padding at bottom of filter list so last items aren't hidden behind button */
    .wpfFilterWrapper .wpfFilterContent {
        padding-bottom: 60px;
    }
}

/* ===== STICKY MOBILE BOTTOM NAV — 6-item with panels ===== */
.mobile-bottom-nav {
    display: none;
}
.mbn-backdrop,
.mbn-panel,
.mbn-search-overlay {
    display: none;
}

@media (max-width: 1024px) {

    /* --- Nav bar: 6 items (z-index above all panels) --- */
    .mobile-bottom-nav {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 100001;
        background: #fff;
        display: flex;
        justify-content: space-around;
        align-items: center;
        padding: 6px 0 calc(6px + env(safe-area-inset-bottom));
        box-shadow: 0 -1px 12px rgba(0,0,0,0.08);
        border-top: 1px solid #f0f0f0;
    }
    .mobile-bottom-nav a,
    .mobile-bottom-nav button {
        display: flex;
        flex-direction: column;
        align-items: center;
        color: #999;
        text-decoration: none;
        font-size: 10px;
        font-weight: 400;
        gap: 3px;
        position: relative;
        line-height: 1;
        transition: color 0.2s ease;
        padding: 4px 6px 0;
        -webkit-tap-highlight-color: transparent;
        background: none !important;
        border: none !important;
        border-radius: 0 !important;
        cursor: pointer;
        font-family: inherit;
    }
    .mobile-bottom-nav a.active,
    .mobile-bottom-nav button.active {
        color: #8c0f42;
        font-weight: 600;
        background: none !important;
    }
    .mobile-bottom-nav svg {
        width: 22px;
        height: 22px;
        stroke: currentColor;
        fill: none;
        stroke-width: 1.5;
    }
    /* Active SVGs: color only, no fill (clean & elegant) */
    .mobile-bottom-nav .cart-count {
        position: absolute;
        top: -4px;
        right: -2px;
        background: #8c0f42;
        color: #fff;
        border-radius: 50%;
        min-width: 18px;
        height: 18px;
        font-size: 10px;
        line-height: 18px;
        text-align: center;
        font-weight: 600;
        font-style: normal;
    }
    /* Active indicator: color + weight only (no dot, no fill — clean & elegant) */

    /* --- Body padding for bottom nav clearance --- */
    body {
        padding-bottom: 62px !important;
    }

    /* --- Backdrop overlay --- */
    .mbn-backdrop {
        display: block;
        position: fixed;
        inset: 0;
        background: rgba(0,0,0,0.4);
        z-index: 99998;
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.3s ease, visibility 0.3s ease;
    }
    .mbn-backdrop.mbn-open {
        opacity: 1;
        visibility: visible;
    }

    /* --- Bottom sheet panels (categories / more) --- */
    .mbn-panel {
        display: block;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 100000;
        background: #fff;
        border-radius: 16px 16px 0 0;
        max-height: 70vh;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior: contain;
        transform: translateY(100%);
        transition: transform 0.35s cubic-bezier(0.32, 0.72, 0, 1);
        padding-bottom: calc(62px + env(safe-area-inset-bottom));
        box-shadow: 0 -4px 30px rgba(0,0,0,0.12);
    }
    .mbn-panel.mbn-open {
        transform: translateY(0);
    }
    .mbn-panel-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 16px 20px 12px;
        border-bottom: 1px solid #f0f0f0;
        position: sticky;
        top: 0;
        background: #fff;
        border-radius: 16px 16px 0 0;
        z-index: 1;
    }
    .mbn-panel-title {
        font-size: 17px;
        font-weight: 600;
        color: #1a1a1a;
    }
    .mbn-panel-close {
        background: none;
        border: none;
        font-size: 24px;
        color: #999;
        cursor: pointer;
        padding: 4px 8px;
        line-height: 1;
        -webkit-tap-highlight-color: transparent;
    }
    .mbn-panel-body {
        padding: 8px 16px 16px;
    }

    /* --- Category items --- */
    .mbn-cat-item {
        display: flex;
        align-items: center;
        gap: 12px;
        padding: 14px 12px;
        font-size: 15px;
        color: #333;
        text-decoration: none;
        border-radius: 10px;
        transition: background 0.15s ease;
    }
    .mbn-cat-item:active {
        background: rgba(140, 15, 66, 0.06);
    }
    .mbn-cat-emoji {
        font-size: 22px;
        width: 32px;
        text-align: center;
        flex-shrink: 0;
    }
    .mbn-cat-viewall {
        display: block;
        text-align: center;
        padding: 14px 12px;
        margin-top: 4px;
        color: #8c0f42;
        font-weight: 600;
        font-size: 14px;
        text-decoration: none;
        border-top: 1px solid #f0f0f0;
    }

    /* --- Category groups with subcategories --- */
    .mbn-cat-group {
        border-bottom: 1px solid #f5f5f5;
    }
    .mbn-cat-group:last-of-type {
        border-bottom: none;
    }
    .mbn-cat-row {
        display: flex;
        align-items: center;
    }
    .mbn-cat-row .mbn-cat-item {
        flex: 1;
        min-width: 0;
    }
    .mbn-cat-toggle {
        background: none !important;
        border: none !important;
        box-shadow: none !important;
        outline: none !important;
        padding: 14px 16px;
        cursor: pointer;
        color: #bbb;
        transition: transform 0.25s ease, color 0.2s;
        flex-shrink: 0;
        -webkit-appearance: none;
        -webkit-tap-highlight-color: transparent;
        border-radius: 0 !important;
    }
    .mbn-cat-toggle[aria-expanded="true"] {
        transform: rotate(180deg);
        color: #8c0f42;
    }
    .mbn-subcats {
        padding: 0 0 8px 44px;
    }
    .mbn-subcat-item {
        display: block;
        padding: 8px 12px;
        font-size: 14px;
        color: #555;
        text-decoration: none;
        border-radius: 8px;
        transition: background 0.15s ease;
    }
    .mbn-subcat-item:active {
        background: rgba(140, 15, 66, 0.06);
    }
    .mbn-subcat-count {
        color: #999;
        font-size: 12px;
        margin-left: 4px;
    }

    /* --- More menu items --- */
    .mbn-more-item {
        display: flex;
        align-items: center;
        gap: 12px;
        padding: 14px 12px;
        font-size: 15px;
        color: #333;
        text-decoration: none;
        border-radius: 10px;
        transition: background 0.15s ease;
    }
    .mbn-more-item:active {
        background: rgba(140, 15, 66, 0.06);
    }
    .mbn-more-icon {
        font-size: 18px;
        width: 28px;
        text-align: center;
        flex-shrink: 0;
    }
    .mbn-more-cta {
        display: block;
        text-align: center;
        background: #8c0f42;
        color: #fff !important;
        padding: 14px 20px;
        border-radius: 10px;
        font-size: 15px;
        font-weight: 600;
        text-decoration: none;
        margin: 4px 0 8px;
        transition: background 0.2s ease;
    }
    .mbn-more-cta:active {
        background: #6d0b33;
    }
    .mbn-more-divider {
        height: 1px;
        background: #f0f0f0;
        margin: 4px 12px;
    }
    .mbn-more-logout {
        color: #c0392b !important;
    }

    /* --- Search overlay --- */
    .mbn-search-overlay {
        position: fixed;
        inset: 0;
        z-index: 100000;
        background: rgba(0,0,0,0.5);
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.3s ease, visibility 0.3s ease;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 20px 20px calc(80px + env(safe-area-inset-bottom));
    }
    .mbn-search-overlay.mbn-open {
        opacity: 1;
        visibility: visible;
    }
    .mbn-search-card {
        background: #fff;
        border-radius: 14px;
        padding: 16px;
        width: calc(100% - 32px);
        max-width: 400px;
        position: relative;
        transform: translateY(-20px);
        transition: transform 0.3s cubic-bezier(0.32, 0.72, 0, 1);
        box-shadow: 0 8px 30px rgba(0,0,0,0.15);
        box-sizing: border-box;
    }
    .mbn-search-overlay.mbn-open .mbn-search-card {
        transform: translateY(0);
    }
    .mbn-search-close {
        position: absolute;
        top: -40px;
        right: 0;
        background: none !important;
        border: none !important;
        box-shadow: none !important;
        font-size: 28px;
        color: #fff;
        cursor: pointer;
        padding: 6px;
        line-height: 1;
        -webkit-tap-highlight-color: transparent;
        z-index: 1;
    }
    .mbn-search-form {
        display: flex;
        gap: 8px;
        margin-top: 0;
        width: 100%;
        box-sizing: border-box;
    }
    .mbn-search-input {
        flex: 1;
        min-width: 0;
        border: 1.5px solid #ddd;
        border-radius: 10px;
        padding: 12px 14px;
        font-size: 16px; /* 16px prevents iOS auto-zoom on focus */
        outline: none;
        transition: border-color 0.2s ease;
        -webkit-appearance: none;
        touch-action: manipulation;
        box-sizing: border-box;
    }
    .mbn-search-input:focus {
        border-color: #8c0f42;
    }
    .mbn-search-submit {
        background: #8c0f42;
        color: #fff;
        border: none;
        border-radius: 10px;
        padding: 12px 18px;
        font-size: 14px;
        font-weight: 600;
        cursor: pointer;
        white-space: nowrap;
        -webkit-tap-highlight-color: transparent;
        transition: background 0.2s ease;
    }
    .mbn-search-submit:active {
        background: #6d0b33;
    }

    /* --- Body scroll lock (iOS compatible — uses CSS var for scroll offset) --- */
    body.mbn-no-scroll {
        overflow: hidden !important;
        position: fixed !important;
        top: var(--mbn-scroll-y, 0) !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        touch-action: none;
    }
}

/* ===== QUANTITY SELECTOR FIX — reorder buttons + hide native spinners ===== */
.quantity {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    position: relative !important;
    overflow: visible !important;
}
.quantity .minus,
.quantity .plus {
    position: static !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    flex-shrink: 0 !important;
}
.quantity .minus {
    order: 1 !important;
}
.quantity input.qty {
    order: 2 !important;
    position: static !important;
    -moz-appearance: textfield !important;
    flex: 0 0 auto !important;
    text-align: center !important;
}
.quantity input.qty::-webkit-inner-spin-button,
.quantity input.qty::-webkit-outer-spin-button {
    -webkit-appearance: none !important;
    margin: 0 !important;
    display: none !important;
}
.quantity .plus {
    order: 3 !important;
}

/* Hide WooCommerce +/- inside mini-cart (plugin provides its own) */
.majc-mini-cart .quantity .plus,
.majc-mini-cart .quantity .minus {
    display: none !important;
}

/* ===== CART COUPON FIELD — override Customizer hide rule ===== */
.woocommerce-cart .coupon {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    flex-wrap: wrap !important;
}
.woocommerce-cart .coupon input#coupon_code {
    flex: 1 1 auto !important;
    min-width: 150px !important;
}
.woocommerce-cart .coupon button[name="apply_coupon"] {
    flex: 0 0 auto !important;
    white-space: nowrap !important;
}
@media (max-width: 767px) {
    .woocommerce-cart .coupon {
        flex-wrap: nowrap !important;
    }
    .woocommerce-cart .coupon label { display: none !important; }
    .woocommerce-cart .coupon input#coupon_code {
        min-width: 0 !important;
        font-size: 14px !important;
    }
    .woocommerce-cart .coupon button[name="apply_coupon"] {
        font-size: 12px !important;
        padding: 8px 14px !important;
    }
}

/* ===== MOBILE PRODUCT GALLERY SLIDER ===== */
@media (max-width: 767px) {
  /* Hide thumbnail row on mobile product pages */
  .woocommerce-product-gallery .image-thumbnail,
  .woocommerce-product-gallery .image-thumbnail.slick-initialized {
    display: none !important;
  }
  /* Hide the col wrapping thumbnails */
  .woocommerce-product-gallery .row > .col-sm-12:last-child:has(.image-thumbnail) {
    display: none !important;
  }

  /* CSS scroll-snap gallery slider */
  .mobile-gallery-slider {
    width: 100% !important;
    border-radius: 8px;
    overflow: hidden !important;
    position: relative !important;
  }
  .mobile-gallery-track {
    display: flex !important;
    overflow-x: auto !important;
    scroll-snap-type: x mandatory !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-behavior: smooth !important;
    scrollbar-width: none !important;
  }
  .mobile-gallery-track::-webkit-scrollbar {
    display: none !important;
  }
  .mobile-gallery-slide {
    flex: 0 0 100% !important;
    width: 100% !important;
    scroll-snap-align: center !important;
  }
  .mobile-gallery-slide img {
    width: 100% !important;
    height: auto !important;
    display: block !important;
    object-fit: contain !important;
    background: #fff !important;
  }

  /* Hide zoom/gallery overlay icons on mobile */
  .woocommerce-product-gallery .image-additional .view-gallery,
  .woocommerce-product-gallery .image-additional .view-product {
    display: none !important;
  }
}

/* ===== MOBILE CATEGORY / SHOP — Show Add-to-Cart & Wishlist ===== */
@media (max-width: 767px) {
  /* Make the product card a flex column so we can reorder */
  .products-list.grid .product-wapper {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
  }

  /* Image area stays on top */
  .products-list.grid .product-wapper .products-thumb {
    position: relative !important;
    flex: 0 0 auto !important;
  }

  /* Content area grows */
  .products-list.grid .product-wapper .products-content {
    flex: 1 1 auto !important;
    display: flex !important;
    flex-direction: column !important;
  }

  /* Show the product-button container — move it out of absolute overlay */
  .products-list.grid .product-wapper .product-button,
  .products-list.grid .product-wapper .products-thumb .product-button {
    display: flex !important;
    position: static !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    padding: 8px 6px 4px !important;
    order: 10 !important;
    margin-top: auto !important;
    width: 100% !important;
    right: auto !important;
    bottom: auto !important;
    z-index: 1 !important;
    box-sizing: border-box !important;
  }

  /* Add to Cart button: icon-only outlined pill (matches wishlist) */
  .products-list.grid .product-wapper .product-button .add_to_cart_button,
  .products-list.grid .product-wapper .products-thumb .product-button .add_to_cart_button,
  .products-list.grid .product-wapper .products-thumb .product-button .product_type_simple,
  .products-list.grid .product-wapper .products-thumb .product-button a.button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    background: #fff !important;
    color: #8c0f42 !important;
    border: 1.5px solid #e8e0e3 !important;
    border-radius: 8px !important;
    font-size: 0 !important;
    width: 34px !important;
    height: 34px !important;
    min-width: 0 !important;
    max-width: 34px !important;
    flex: 0 0 34px !important;
    padding: 0 !important;
    overflow: hidden !important;
    text-indent: -9999px !important;
    cursor: pointer !important;
    box-shadow: none !important;
  }
  .products-list.grid .product-wapper .product-button .add_to_cart_button::before,
  .products-list.grid .product-wapper .products-thumb .product-button .add_to_cart_button::before,
  .products-list.grid .product-wapper .products-thumb .product-button .product_type_simple::before,
  .products-list.grid .product-wapper .products-thumb .product-button a.button::before {
    content: "\f07a" !important;
    font-family: "Font Awesome 5 Free" !important;
    font-weight: 900 !important;
    font-size: 14px !important;
    color: #8c0f42 !important;
    text-indent: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
  }
  /* Cart button "added" state — wine filled with checkmark */
  .products-list.grid .product-wapper .product-button .add_to_cart_button.added,
  .products-list.grid .product-wapper .products-thumb .product-button .add_to_cart_button.added,
  .products-list.grid .product-wapper .products-thumb .product-button .product_type_simple.added {
    background: #8c0f42 !important;
    border-color: #8c0f42 !important;
  }
  .products-list.grid .product-wapper .product-button .add_to_cart_button.added::before,
  .products-list.grid .product-wapper .products-thumb .product-button .add_to_cart_button.added::before,
  .products-list.grid .product-wapper .products-thumb .product-button .product_type_simple.added::before {
    content: "\f00c" !important;
    color: #fff !important;
  }

  /* Wishlist button: heart pill (same size as cart) */
  .products-list.grid .product-wapper .product-button .woosw-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    width: 34px !important;
    height: 34px !important;
    min-width: 34px !important;
    flex: 0 0 34px !important;
    border-radius: 8px !important;
    border: 1.5px solid #e8e0e3 !important;
    background: #fff !important;
    font-size: 0 !important;
    padding: 0 !important;
    color: #8c0f42 !important;
    box-shadow: none !important;
    cursor: pointer !important;
  }
  .products-list.grid .product-wapper .product-button .woosw-btn::before {
    font-size: 14px !important;
    color: #8c0f42 !important;
  }

  /* Hide Quick View on mobile */
  .products-list.grid .product-wapper .product-button .product-quickview {
    display: none !important;
  }

  /* Product title: max 2 lines */
  .products-list.grid .product-wapper h3.product-title {
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    min-height: 0 !important;
    line-height: 1.35 !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    margin-bottom: 2px !important;
  }

  /* Product card: rounded + shadow */
  .products-list.grid .product-wapper {
    border-radius: 10px !important;
    border: 1px solid #f0eded !important;
    overflow: hidden !important;
    box-shadow: 0 1px 6px rgba(0,0,0,0.05) !important;
    background: #fff !important;
  }

  /* Price: wine color */
  .products-list.grid .product-wapper .products-content .price {
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #8c0f42 !important;
  }
  .products-list.grid .product-wapper .products-content .price del {
    font-size: 11px !important;
    color: #aaa !important;
    font-weight: 400 !important;
  }
  .products-list.grid .product-wapper .products-content .price ins {
    text-decoration: none !important;
    font-weight: 600 !important;
  }

  /* Fix .button-atc add-to-cart button: compact sizing for 2-col grid */
  .products-list.grid .product-wapper .button-atc {
    margin-top: 6px !important;
    padding: 0 !important;
  }
  .products-list.grid .product-wapper .button-atc .add_to_cart_button,
  .products-list.grid .product-wapper .button-atc .product_type_simple,
  .products-list.grid .product-wapper .button-atc .product_type_variable {
    display: block !important;
    width: 100% !important;
    text-align: center !important;
    background: #8c0f42 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 4px !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.3px !important;
    line-height: 1.3 !important;
    padding: 10px 6px !important;
    min-height: 0 !important;
    box-sizing: border-box !important;
  }

  /* Product title: ensure 2-line clamp with ellipsis for long names */
  .products-list.grid .product-wapper .products-content h3.product-title {
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    min-height: 2.6em !important;
    line-height: 1.3 !important;
    font-size: 12px !important;
    margin-bottom: 4px !important;
  }
  .products-list.grid .product-wapper .products-content h3.product-title a {
    font-size: inherit !important;
    line-height: inherit !important;
  }
}

/* ===== CART ICON — Font Awesome override (all screens) ===== */
.products-list.grid .product-wapper .products-thumb .product-button .add_to_cart_button::before,
.products-list.grid .product-wapper .products-thumb .product-button .product_type_simple::before,
.products-list.grid .product-wapper .products-thumb .product-button .product_type_grouped::before,
.products-list.grid .product-wapper .products-thumb .product-button .product_type_external::before,
.products-list.grid .product-wapper .products-thumb .product-button a.button::before {
  content: "\f07a" !important;
  font-family: "Font Awesome 5 Free" !important;
  font-weight: 900 !important;
}

/* ===== MOBILE PRODUCT CARDS — Compact & Polished ===== */
@media (max-width: 767px) {
  /* --- Card: rounded, subtle shadow, soft border --- */
  .item-product .product-wapper {
    border-radius: 10px !important;
    border: 1px solid #f0eded !important;
    overflow: hidden !important;
    box-shadow: 0 1px 6px rgba(0,0,0,0.05) !important;
    background: #fff !important;
  }

  /* --- Even column spacing --- */
  .products-list.grid.row > .item-product.col-6 {
    padding: 0 6px !important;
    margin-bottom: 12px !important;
  }

  /* --- Thumb area: compact --- */
  .item-product .product-wapper .products-thumb {
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    position: relative !important;
    padding: 10px 8px 0 !important;
  }
  .item-product .product-wapper .products-thumb > a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-height: 140px !important;
  }
  .item-product .product-wapper .products-thumb img {
    max-height: 140px !important;
    max-width: 100% !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
  }

  /* --- Button bar: below image, compact row --- */
  .item-product .product-wapper .products-thumb .product-button {
    display: flex !important;
    position: static !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 6px 0 2px !important;
    background: transparent !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    transition: none !important;
    justify-content: flex-start !important;
  }
  .item-product .product-wapper .products-thumb .product-button > * {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
  }

  /* --- Add to cart: icon-only outlined pill (matches wishlist) --- */
  .item-product .products-entry.product-wapper .products-thumb .product-button .add_to_cart_button,
  .item-product .products-entry.product-wapper .products-thumb .product-button .product_type_simple,
  .item-product .products-entry.product-wapper .products-thumb .product-button a.button {
    font-size: 0 !important;
    width: 34px !important;
    height: 34px !important;
    min-width: 0 !important;
    max-width: 34px !important;
    flex: 0 0 34px !important;
    padding: 0 !important;
    background: #fff !important;
    color: #8c0f42 !important;
    border-radius: 8px !important;
    border: 1.5px solid #e8e0e3 !important;
    box-shadow: none !important;
    line-height: 1 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    overflow: hidden !important;
    text-indent: -9999px !important;
  }
  .item-product .products-entry.product-wapper .products-thumb .product-button .add_to_cart_button::before,
  .item-product .products-entry.product-wapper .products-thumb .product-button .product_type_simple::before,
  .item-product .products-entry.product-wapper .products-thumb .product-button a.button::before {
    content: "\f07a" !important;
    font-family: "Font Awesome 5 Free" !important;
    font-weight: 900 !important;
    font-size: 14px !important;
    color: #8c0f42 !important;
    margin: 0 !important;
    text-indent: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
  /* Cart button "added" state — wine filled with checkmark */
  .item-product .products-entry.product-wapper .products-thumb .product-button .add_to_cart_button.added,
  .item-product .products-entry.product-wapper .products-thumb .product-button .product_type_simple.added {
    background: #8c0f42 !important;
    border-color: #8c0f42 !important;
  }
  .item-product .products-entry.product-wapper .products-thumb .product-button .add_to_cart_button.added::before,
  .item-product .products-entry.product-wapper .products-thumb .product-button .product_type_simple.added::before {
    content: "\f00c" !important;
    color: #fff !important;
  }

  /* --- Wishlist: heart pill (same size as cart) --- */
  .item-product .product-wapper .product-button .woosw-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 34px !important;
    height: 34px !important;
    flex: 0 0 34px !important;
    border-radius: 8px !important;
    border: 1.5px solid #e8e0e3 !important;
    background: #fff !important;
    box-shadow: none !important;
    padding: 0 !important;
    font-size: 0 !important;
    color: #8c0f42 !important;
    cursor: pointer !important;
  }
  .item-product .product-wapper .product-button .woosw-btn::before {
    font-size: 14px !important;
    color: #8c0f42 !important;
  }

  /* --- Hide Quick View on mobile --- */
  .item-product .product-wapper .product-button .product-quickview {
    display: none !important;
  }

  /* --- Sale badge: prominent pill --- */
  .item-product .product-wapper .onsale {
    position: absolute !important;
    top: 10px !important;
    left: 10px !important;
    z-index: 3 !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    padding: 4px 10px !important;
    border-radius: 6px !important;
    background: #8c0f42 !important;
    color: #fff !important;
    letter-spacing: 0.3px !important;
    line-height: 1.3 !important;
  }

  /* --- Content area: tight & clean --- */
  .item-product .product-wapper .products-content {
    padding: 6px 10px 10px !important;
  }

  /* --- Title: 2-line clamp --- */
  .item-product .product-wapper .products-content h3.product-title {
    font-size: 13px !important;
    font-weight: 500 !important;
    line-height: 1.35 !important;
    margin-bottom: 2px !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    color: #1a1a1a !important;
  }
  .item-product .product-wapper .products-content h3.product-title a {
    color: inherit !important;
    text-decoration: none !important;
  }

  /* --- Rating: shrink or hide empty stars --- */
  .item-product .product-wapper .products-content .rating {
    margin: 0 0 2px !important;
    font-size: 11px !important;
    line-height: 1 !important;
    height: auto !important;
    min-height: 0 !important;
  }

  /* --- Price: clean typography --- */
  .item-product .product-wapper .products-content .price {
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #8c0f42 !important;
    line-height: 1.3 !important;
  }
  .item-product .product-wapper .products-content .price del {
    font-size: 11px !important;
    font-weight: 400 !important;
    color: #aaa !important;
  }
  .item-product .product-wapper .products-content .price ins {
    text-decoration: none !important;
    font-weight: 600 !important;
  }
}

/* ===== MOBILE ADD-TO-CART — "added" state transforms to checkmark ===== */
/* Hide the extra .added_to_cart "View Cart" link WooCommerce injects.
   Instead, the cart button itself transforms: cart icon → checkmark (brand color). */
@media (max-width: 767px) {
  /* Hide the injected "View Cart" link entirely */
  .products-list.grid .product-wapper .product-button .added_to_cart,
  .products-list.grid .product-wapper .products-thumb .product-button .added_to_cart,
  .item-product .products-entry.product-wapper .products-thumb .product-button .added_to_cart,
  .item-product .product-wapper .products-thumb .product-button .added_to_cart {
    display: none !important;
  }

  /* Cart button "added" state — checkmark icon, wine background stays */
  .products-list.grid .product-wapper .product-button .add_to_cart_button.added::before,
  .products-list.grid .product-wapper .products-thumb .product-button .add_to_cart_button.added::before,
  .products-list.grid .product-wapper .products-thumb .product-button .product_type_simple.added::before,
  .item-product .products-entry.product-wapper .products-thumb .product-button .add_to_cart_button.added::before,
  .item-product .product-wapper .products-thumb .product-button .add_to_cart_button.added::before,
  .item-product .products-entry.product-wapper .products-thumb .product-button .product_type_simple.added::before {
    content: "\f00c" !important;
    font-family: "Font Awesome 5 Free" !important;
    font-weight: 900 !important;
  }
}

/* ================================================================
   MOBILE SORT & FILTER — sticky bar, sort sheet, filter improvements
   ================================================================ */

/* --- Sticky bar: hidden on desktop --- */
.msf-bar { display: none; }
.msf-overlay { display: none; }
.msf-sheet { display: none; }

@media (max-width: 1024px) {

    /* --- Hide desktop top-bar sort/grid on tablet & mobile --- */
    .bwp-top-bar .woocommerce-ordering,
    .bwp-top-bar .display,
    .bwp-top-bar .button-filter-toggle:not(.hidden-lg),
    .bwp-top-bar .mobile-filter {
        display: none !important;
    }

    /* --- Sticky Sort & Filter Bar --- */
    .msf-bar {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 99996;
        background: #fff;
        display: flex;
        align-items: center;
        padding: 0 0 env(safe-area-inset-bottom);
        box-shadow: 0 -2px 16px rgba(0,0,0,0.08);
        border-top: 1px solid #eee;
    }
    .msf-btn {
        flex: 1;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        padding: 14px 16px;
        background: none !important;
        border: none !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        cursor: pointer;
        font-family: "inter", sans-serif;
        font-size: 14px;
        font-weight: 500;
        color: #333 !important;
        -webkit-tap-highlight-color: transparent;
        transition: color 0.2s ease, background-color 0.2s ease;
        position: relative;
        line-height: 1;
    }
    .msf-btn:hover {
        background: #f9f2f5 !important;
        color: #8c0f42 !important;
    }
    .msf-btn:active {
        background: #f0e4ea !important;
        color: #8c0f42 !important;
    }
    .msf-btn svg {
        flex-shrink: 0;
    }
    .msf-divider {
        width: 1px;
        height: 28px;
        background: #e0e0e0;
        flex-shrink: 0;
    }
    /* Filter active count badge */
    .msf-badge {
        display: none;
        min-width: 18px;
        height: 18px;
        line-height: 18px;
        text-align: center;
        font-size: 11px;
        font-weight: 600;
        color: #fff;
        background: #8c0f42;
        border-radius: 10px;
        padding: 0 5px;
    }
    .msf-badge.is-visible {
        display: inline-block;
    }

    /* --- Overlays (sort sheet + filter sidebar) --- */
    .msf-overlay {
        display: none;
        position: fixed;
        inset: 0;
        background: rgba(0,0,0,0.4);
        z-index: 100002;
        opacity: 0;
        transition: opacity 0.3s ease;
    }
    .msf-overlay.is-active {
        display: block;
        opacity: 1;
    }

    /* --- Sort Bottom Sheet --- */
    .msf-sheet {
        display: block;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 100003;
        background: #fff;
        border-radius: 16px 16px 0 0;
        padding: 0 0 calc(20px + env(safe-area-inset-bottom));
        transform: translateY(100%);
        transition: transform 0.35s cubic-bezier(0.32, 0.72, 0, 1);
        max-height: 70vh;
        overflow-y: auto;
    }
    .msf-sheet.is-open {
        transform: translateY(0);
    }
    .msf-sheet-handle {
        width: 36px;
        height: 4px;
        background: #d5d5d5;
        border-radius: 2px;
        margin: 12px auto 0;
    }
    .msf-sheet-title {
        font-family: "inter", sans-serif;
        font-size: 16px;
        font-weight: 600;
        color: #000;
        padding: 16px 20px 12px;
        letter-spacing: 0.01em;
    }
    .msf-sheet-options {
        padding: 0;
    }
    .msf-sheet-opt {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 14px 20px;
        font-family: "inter", sans-serif;
        font-size: 15px;
        color: #333 !important;
        cursor: pointer;
        transition: background-color 0.15s ease;
        border: none !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        background: none !important;
        width: 100%;
        text-align: left;
        line-height: 1.3;
    }
    .msf-sheet-opt + .msf-sheet-opt {
        border-top: 1px solid #f0f0f0 !important;
    }
    .msf-sheet-opt:hover {
        background: #f9f2f5 !important;
    }
    .msf-sheet-opt:active {
        background: #f0e4ea !important;
    }
    .msf-sheet-opt.is-selected {
        color: #8c0f42 !important;
        font-weight: 600;
    }
    .msf-sheet-opt.is-selected::after {
        content: "";
        width: 20px;
        height: 20px;
        border-radius: 50%;
        background: #8c0f42;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
        background-repeat: no-repeat;
        background-position: center;
        background-size: 12px;
        flex-shrink: 0;
    }

    /* --- Filter sidebar backdrop (new) --- */
    #msf-filter-overlay {
        z-index: 100002;
    }

    /* Sidebar above mobile nav when open */
    .main-archive-product.active .bwp-sidebar.sidebar-product {
        z-index: 100003 !important;
    }

    /* --- Filter sidebar improvements --- */
    /* "See Results" sticky button at bottom of sidebar */
    .msf-see-results {
        position: sticky;
        bottom: 0;
        left: 0;
        right: 0;
        background: #8c0f42 !important;
        color: #fff !important;
        border: none !important;
        border-radius: 0 !important;
        padding: 14px 20px;
        font-family: "inter", sans-serif;
        font-size: 15px;
        font-weight: 600;
        cursor: pointer;
        width: 100%;
        text-align: center;
        letter-spacing: 0.02em;
        margin-top: 20px;
        transition: background-color 0.2s ease;
    }
    .msf-see-results:hover {
        background: #a01350 !important;
    }
    .msf-see-results:active {
        background: #6e0c34 !important;
    }

    /* Improve sidebar close button */
    .sidebar .bwp-sidebar .button-filter-toggle,
    .filter_drawer .bwp-sidebar .button-filter-toggle {
        display: flex !important;
        align-items: center;
        justify-content: flex-end;
        gap: 6px;
        font-size: 13px;
        font-weight: 500;
        text-transform: uppercase;
        letter-spacing: 0.08em;
        color: #666;
        cursor: pointer;
        padding: 0 0 16px;
        margin-bottom: 10px;
        border-bottom: 1px solid #eee;
    }
    .sidebar .bwp-sidebar .button-filter-toggle::after,
    .filter_drawer .bwp-sidebar .button-filter-toggle::after {
        content: "\00d7";
        font-size: 22px;
        font-weight: 300;
        line-height: 1;
        color: #999;
    }

    /* Extra body padding on archive pages for the sticky bar */
    body.post-type-archive-product,
    body.tax-product_cat,
    body.tax-product_tag {
        padding-bottom: 52px !important;
    }
}

/* ================================================================
   MOBILE MY-ACCOUNT / LOGIN PAGE
   ================================================================ */

@media (max-width: 767px) {

    /* --- Hide floating cart on login page (overlaps labels) --- */
    .woocommerce-account .mini-cart-header,
    .woocommerce-account .bwp-cart-icon,
    .woocommerce-account .majc-toggle-button {
        display: none !important;
    }

    /* --- Tabbed Login/Register --- */
    .act-tabs {
        display: flex;
        background: #f5f5f5;
        border-radius: 10px;
        padding: 4px;
        margin: 0 0 16px;
        gap: 4px;
    }
    .act-tab {
        flex: 1;
        padding: 12px 16px;
        font-family: "inter", sans-serif;
        font-size: 15px;
        font-weight: 500;
        color: #666;
        background: none !important;
        border: none !important;
        border-radius: 8px !important;
        cursor: pointer;
        transition: all 0.2s ease;
        text-align: center;
        box-shadow: none !important;
    }
    .act-tab.is-active {
        background: #fff !important;
        color: #8c0f42 !important;
        font-weight: 600;
        box-shadow: 0 1px 4px rgba(0,0,0,0.08) !important;
    }
    .act-tab:hover:not(.is-active) {
        color: #333;
        background: rgba(255,255,255,0.5) !important;
    }

    /* Hidden panel */
    #customer_login .act-panel-hidden {
        display: none !important;
    }

    /* --- Card-style form wrapper (single visible panel) --- */
    #customer_login .col-lg-6 {
        background: #fff;
        border: 1px solid #eee;
        border-radius: 10px;
        padding: 24px 20px !important;
        margin: 0 !important;
        box-shadow: 0 1px 6px rgba(0,0,0,0.04);
    }

    /* No separator needed with tabs */
    #customer_login .col-lg-6:first-child::after {
        display: none;
    }

    /* --- Input fields: rounded corners --- */
    #customer_login input[type="text"],
    #customer_login input[type="email"],
    #customer_login input[type="password"] {
        border-radius: 8px !important;
        border: 1px solid #d5d5d5 !important;
        height: 50px !important;
        font-size: 15px;
        padding: 0 16px !important;
        transition: border-color 0.2s ease;
    }
    #customer_login input[type="text"]:focus,
    #customer_login input[type="email"]:focus,
    #customer_login input[type="password"]:focus {
        border-color: #8c0f42 !important;
        outline: none;
        box-shadow: 0 0 0 3px rgba(140, 15, 66, 0.08);
    }

    /* --- Submit buttons: larger text, rounded --- */
    #customer_login input[type="submit"].button,
    #customer_login button[type="submit"].button {
        font-size: 15px !important;
        font-weight: 600 !important;
        letter-spacing: 0.04em;
        border-radius: 8px !important;
        height: 50px !important;
        width: 100%;
        background: #8c0f42 !important;
        color: #fff !important;
        border: none !important;
        cursor: pointer;
        transition: background-color 0.2s ease;
    }
    #customer_login input[type="submit"].button:hover,
    #customer_login button[type="submit"].button:hover {
        background: #a01350 !important;
    }
    #customer_login input[type="submit"].button:active,
    #customer_login button[type="submit"].button:active {
        background: #6e0c34 !important;
    }

    /* --- Lost password link: styled as link --- */
    #customer_login .lost_password a,
    #customer_login .woocommerce-LostPassword a {
        color: #8c0f42 !important;
        text-decoration: underline;
        font-size: 14px;
        font-weight: 500;
    }
    #customer_login .lost_password a:hover,
    #customer_login .woocommerce-LostPassword a:hover {
        color: #6e0c34 !important;
    }

    /* --- Remember me + Lost password row: flex align --- */
    #customer_login .form-row.rememberme-row,
    #customer_login .login .form-row:has(.woocommerce-form__label-for-checkbox) {
        display: flex;
        align-items: center;
        justify-content: space-between;
        flex-wrap: wrap;
        gap: 8px;
    }

    /* --- Labels: slightly bolder --- */
    #customer_login label {
        font-size: 14px !important;
        font-weight: 500;
        color: #333;
        margin-bottom: 6px;
    }

    /* --- Form field spacing --- */
    #customer_login .username,
    #customer_login .password,
    #customer_login .email-field,
    #customer_login .form-row {
        margin-bottom: 16px;
    }
}

/* Tablet — same fixes but lighter card */
@media (min-width: 768px) and (max-width: 1024px) {
    #customer_login .box-form-login h2 {
        font-weight: 600 !important;
    }
    #customer_login input[type="text"],
    #customer_login input[type="email"],
    #customer_login input[type="password"] {
        border-radius: 6px !important;
    }
    #customer_login input[type="submit"].button,
    #customer_login button[type="submit"].button {
        font-size: 14px !important;
        font-weight: 600 !important;
        border-radius: 6px !important;
    }
    #customer_login .lost_password a,
    #customer_login .woocommerce-LostPassword a {
        color: #8c0f42 !important;
        text-decoration: underline;
    }
}

/* --- Mobile & tablet: bar sits ABOVE the bottom nav (68px) --- */
@media (max-width: 1024px) {
    .msf-bar {
        bottom: calc(68px + env(safe-area-inset-bottom));
        padding-bottom: 0;
    }
    /* Extra body padding: bottom nav (68px) + sort/filter bar (~48px) */
    body.post-type-archive-product,
    body.tax-product_cat,
    body.tax-product_tag {
        padding-bottom: 120px !important;
    }
}

/* ================================================================
   PREMIUM CART PAGE REDESIGN
   ================================================================ */

/* --- Design tokens --- */
body.woocommerce-cart {
    --pc-wine: #8c0f42;
    --pc-wine-dark: #6e0c34;
    --pc-wine-deeper: #5e0a2c;
    --pc-gold: #c8a96e;
    --pc-gold-light: #d4b87a;
    --pc-cream: #faf8f5;
    --pc-cream-warm: #f5f0ea;
    --pc-ivory: #fffdf9;
    --pc-text: #1a1a1a;
    --pc-text-secondary: #555;
    --pc-text-muted: #888;
    --pc-border: #e8e2da;
    --pc-border-light: #f0ebe4;
    --pc-shadow: rgba(140, 15, 66, 0.06);
    --pc-radius-card: 12px;
    --pc-radius-btn: 10px;
    --pc-radius-input: 8px;
}

/* --- Page background --- */
body.woocommerce-cart {
    background-color: var(--pc-cream) !important;
}
body.woocommerce-cart .main-content,
body.woocommerce-cart .site-content,
body.woocommerce-cart .content-area {
    background: transparent !important;
}

/* --- Override parent theme page header & bootstrap grid --- */
body.woocommerce-cart .woocommerce-page-header {
    display: none !important;
}
body.woocommerce-cart .woocommerce-cart-page.row {
    display: none !important;
}
body.woocommerce-cart .woocommerce-cart-form {
    border-right: none !important;
    margin-bottom: 0 !important;
}

/* --- Progress indicator --- */
.pc-progress {
    max-width: 480px;
    margin: 0 auto 48px;
    padding: 0 20px;
}
.pc-progress-track {
    display: flex;
    align-items: center;
    justify-content: center;
}
.pc-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    position: relative;
    z-index: 1;
}
.pc-step-num {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Marcellus', serif;
    font-size: 15px;
    background: var(--pc-border);
    color: var(--pc-text-muted);
    transition: all 0.3s ease;
}
.pc-step.is-active .pc-step-num {
    background: var(--pc-wine);
    color: #fff;
    box-shadow: 0 0 0 4px rgba(140, 15, 66, 0.12);
}
.pc-step.is-done .pc-step-num {
    background: var(--pc-gold);
    color: #fff;
}
.pc-step-label {
    font-size: 12px;
    font-weight: 500;
    color: var(--pc-text-muted);
    letter-spacing: 0.03em;
    text-transform: uppercase;
}
.pc-step.is-active .pc-step-label {
    color: var(--pc-wine);
    font-weight: 600;
}
.pc-step-connector {
    flex: 1;
    height: 2px;
    background: var(--pc-border);
    margin: 0 12px;
    margin-bottom: 26px;
    min-width: 40px;
    max-width: 80px;
    border-radius: 1px;
}
.pc-step-connector.is-done {
    background: var(--pc-gold);
}

/* --- Layout: CSS Grid (main + sidebar) --- */
.pc-cart-layout {
    display: grid !important;
    grid-template-columns: 1fr 380px;
    gap: 40px;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

/* --- Cart heading --- */
.pc-cart-heading {
    display: flex;
    align-items: baseline;
    gap: 12px;
    margin-bottom: 24px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--pc-border);
}
.pc-cart-heading h2 {
    font-family: 'Marcellus', serif !important;
    font-size: 28px !important;
    font-weight: 400 !important;
    color: var(--pc-text) !important;
    margin: 0 !important;
    background: none !important;
    padding: 0 !important;
    text-transform: none !important;
    letter-spacing: 0.01em;
    line-height: 1.3;
}
.pc-item-count {
    font-size: 14px;
    color: var(--pc-text-muted);
    font-weight: 400;
}

/* --- Cart items container --- */
.pc-cart-items {
    border: none !important;
    margin: 0 !important;
}

/* --- Cart item card --- */
.pc-cart-item {
    display: grid !important;
    grid-template-columns: 100px 1fr auto;
    gap: 20px;
    align-items: center;
    background: var(--pc-ivory) !important;
    border: 1px solid var(--pc-border-light) !important;
    border-radius: var(--pc-radius-card) !important;
    padding: 20px !important;
    margin-bottom: 16px !important;
    transition: box-shadow 0.3s ease, transform 0.3s ease, opacity 0.4s ease;
}
.pc-cart-item:hover {
    box-shadow: 0 4px 20px var(--pc-shadow);
}

/* Remove animation */
.pc-cart-item.is-removing {
    opacity: 0;
    transform: translateX(-30px) scale(0.97);
    max-height: 0;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    overflow: hidden;
    transition: opacity 0.35s ease, transform 0.35s ease, max-height 0.4s ease 0.1s,
                margin 0.4s ease 0.1s, padding 0.4s ease 0.1s;
}

/* --- Product image --- */
.pc-item-image {
    width: 100px !important;
    min-width: 100px !important;
}
.pc-item-image a {
    display: block !important;
    border-radius: 8px !important;
    overflow: hidden !important;
    background: var(--pc-cream-warm);
}
.pc-item-image img {
    width: 100% !important;
    height: auto !important;
    display: block !important;
    border-radius: 8px !important;
    object-fit: cover;
}

/* --- Product details --- */
.pc-item-details {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.pc-item-details .product-name {
    display: block !important;
    margin: 0 !important;
}
.pc-item-details .product-name a {
    font-family: 'Marcellus', serif !important;
    font-size: 17px !important;
    color: var(--pc-text) !important;
    text-decoration: none !important;
    transition: color 0.2s ease;
    line-height: 1.4;
}
.pc-item-details .product-name a:hover {
    color: var(--pc-wine) !important;
}
.pc-item-unit-price .woocommerce-Price-amount {
    font-size: 14px;
    color: var(--pc-text-secondary);
    font-weight: 500;
}
.pc-item-details .variation,
.pc-item-details dl.variation {
    font-size: 13px;
    color: var(--pc-text-muted);
    margin-top: 2px;
}

/* --- Quantity selector (premium pill) --- */
.pc-item-qty .quantity {
    display: inline-flex !important;
    align-items: center !important;
    border: 1.5px solid var(--pc-border) !important;
    border-radius: 24px !important;
    overflow: hidden !important;
    background: #fff !important;
    height: 40px !important;
    min-width: 110px !important;
    transition: border-color 0.2s ease;
}
.pc-item-qty .quantity:hover {
    border-color: var(--pc-wine) !important;
}
.pc-item-qty .quantity .minus,
.pc-item-qty .quantity .plus {
    width: 34px !important;
    height: 38px !important;
    border: none !important;
    background: none !important;
    color: var(--pc-text) !important;
    font-size: 18px !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: background-color 0.15s ease, color 0.15s ease;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    line-height: 1 !important;
}
.pc-item-qty .quantity .minus:hover,
.pc-item-qty .quantity .plus:hover {
    background: rgba(140, 15, 66, 0.06) !important;
    color: var(--pc-wine) !important;
}
.pc-item-qty .quantity input.qty {
    width: 42px !important;
    height: 38px !important;
    text-align: center !important;
    border: none !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    color: var(--pc-text) !important;
    background: transparent !important;
    padding: 0 !important;
    -moz-appearance: textfield;
}
.pc-item-qty .quantity input.qty::-webkit-outer-spin-button,
.pc-item-qty .quantity input.qty::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* --- Subtotal --- */
.pc-item-subtotal .woocommerce-Price-amount {
    font-size: 16px;
    font-weight: 600;
    color: var(--pc-text);
}

/* --- Remove button --- */
.pc-item-remove a.remove {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 32px !important;
    height: 32px !important;
    border-radius: 50% !important;
    background: transparent !important;
    color: var(--pc-text-muted) !important;
    font-size: 20px !important;
    transition: all 0.2s ease !important;
    text-decoration: none !important;
    position: static !important;
}
.pc-item-remove a.remove:hover {
    background: rgba(220, 53, 69, 0.08) !important;
    color: #dc3545 !important;
}

/* --- Item actions (qty + subtotal + remove group) --- */
.pc-item-actions {
    display: flex;
    align-items: center;
    gap: 16px;
}

/* --- Cart actions row --- */
.pc-cart-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 16px !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 24px 0 0 !important;
    border: none !important;
    margin-top: 8px;
}
.pc-coupon {
    display: flex !important;
    gap: 8px !important;
    align-items: center !important;
    flex: 1 1 300px !important;
    max-width: 400px;
}
.pc-coupon input#coupon_code {
    flex: 1 !important;
    height: 44px !important;
    border: 1.5px solid var(--pc-border) !important;
    border-radius: var(--pc-radius-input) !important;
    padding: 0 16px !important;
    font-size: 14px !important;
    background: #fff !important;
    color: var(--pc-text) !important;
    transition: border-color 0.2s ease;
    min-width: 0 !important;
}
.pc-coupon input#coupon_code:focus {
    border-color: var(--pc-wine) !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(140, 15, 66, 0.08) !important;
}
.pc-coupon-btn {
    height: 44px !important;
    padding: 0 20px !important;
    background: var(--pc-wine) !important;
    color: #fff !important;
    border: none !important;
    border-radius: var(--pc-radius-input) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    letter-spacing: 0.03em !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
    white-space: nowrap !important;
    transition: background-color 0.2s ease !important;
    box-shadow: none !important;
}
.pc-coupon-btn:hover {
    background: var(--pc-wine-dark) !important;
}

/* Cart buttons */
.pc-cart-buttons {
    display: flex;
    gap: 12px;
    align-items: center;
    margin-left: auto;
}
.pc-continue-shopping {
    display: inline-flex !important;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: var(--pc-text-secondary) !important;
    text-decoration: none !important;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-weight: 500;
    transition: color 0.2s ease;
}
.pc-continue-shopping:hover {
    color: var(--pc-wine) !important;
}
.pc-continue-shopping svg {
    width: 16px;
    height: 16px;
    stroke: currentColor;
    fill: none;
}
.pc-update-btn {
    height: 44px !important;
    padding: 0 24px !important;
    background: transparent !important;
    color: var(--pc-text) !important;
    border: 1.5px solid var(--pc-border) !important;
    border-radius: var(--pc-radius-input) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    letter-spacing: 0.03em !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    line-height: 44px !important;
    box-shadow: none !important;
}
.pc-update-btn:hover {
    border-color: var(--pc-wine) !important;
    color: var(--pc-wine) !important;
}
.pc-update-btn:disabled {
    opacity: 0.4 !important;
    cursor: not-allowed !important;
    background: transparent !important;
    color: var(--pc-text-muted) !important;
}

/* ===== ORDER SUMMARY SIDEBAR ===== */

.pc-cart-sidebar {
    position: relative;
}
.pc-summary {
    background: var(--pc-ivory) !important;
    border: 1px solid var(--pc-border-light) !important;
    border-radius: var(--pc-radius-card) !important;
    padding: 28px 24px !important;
    position: sticky;
    top: 20px;
}

/* Summary header */
.pc-summary-header {
    margin-bottom: 20px;
}
.pc-summary-header h2 {
    font-family: 'Marcellus', serif !important;
    font-size: 22px !important;
    font-weight: 400 !important;
    color: var(--pc-text) !important;
    margin: 0 0 12px !important;
    background: none !important;
    padding: 0 !important;
    text-transform: none !important;
    letter-spacing: 0.01em;
    line-height: 1.3;
}
.pc-gold-line {
    width: 40px;
    height: 2px;
    background: var(--pc-gold);
    border-radius: 1px;
}

/* Summary rows */
.pc-summary-body {
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
.pc-summary-row {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding: 12px 0 !important;
    border-bottom: 1px solid var(--pc-border-light) !important;
}
.pc-summary-label {
    font-size: 14px;
    color: var(--pc-text-secondary);
    font-weight: 400;
}
.pc-summary-value {
    font-size: 14px;
    color: var(--pc-text);
    font-weight: 500;
    text-align: right;
}

/* Total row */
.pc-summary-total {
    border-bottom: none !important;
    padding-top: 16px !important;
    margin-top: 4px;
}
.pc-summary-total .pc-summary-label {
    font-family: 'Marcellus', serif;
    font-size: 18px;
    color: var(--pc-text);
    font-weight: 400;
}
.pc-summary-total .pc-summary-value,
.pc-summary-total .pc-summary-value .woocommerce-Price-amount,
.pc-summary-total .woocommerce-Price-amount {
    font-family: 'Marcellus', serif !important;
    font-size: 26px !important;
    color: var(--pc-wine) !important;
    font-weight: 400 !important;
}

/* Coupon discount (green) */
.pc-coupon-row .pc-summary-value {
    color: #28a745;
}

/* Shipping section within summary */
.pc-summary .woocommerce-shipping-totals {
    padding: 12px 0 !important;
    border-bottom: 1px solid var(--pc-border-light);
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
}
.pc-summary .woocommerce-shipping-totals h2 {
    font-size: 14px !important;
    color: var(--pc-text-secondary) !important;
    font-weight: 400 !important;
    background: none !important;
    padding: 0 !important;
    margin: 0 !important;
    text-transform: none !important;
    font-family: inherit !important;
}

/* Shipping radio buttons in summary */
.pc-summary .woocommerce-shipping-methods {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
.pc-summary .woocommerce-shipping-methods li label:before {
    border-color: var(--pc-border) !important;
}
.pc-summary .woocommerce-shipping-methods li .shipping_method:checked + label:before {
    background: var(--pc-wine) !important;
    border-color: var(--pc-wine) !important;
}

/* --- Checkout CTA --- */
.pc-checkout-cta {
    margin-top: 24px;
    padding: 0 !important;
}
.pc-checkout-cta a.wc-forward,
.pc-checkout-cta a.checkout-button {
    display: block !important;
    width: 100% !important;
    padding: 16px 24px !important;
    background: var(--pc-wine) !important;
    color: #fff !important;
    font-family: 'Marcellus', serif !important;
    font-size: 15px !important;
    font-weight: 400 !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    text-align: center !important;
    border-radius: var(--pc-radius-btn) !important;
    text-decoration: none !important;
    transition: background-color 0.2s ease, box-shadow 0.2s ease, transform 0.1s ease !important;
    box-shadow: 0 4px 12px rgba(140, 15, 66, 0.2) !important;
    box-sizing: border-box !important;
}
.pc-checkout-cta a.wc-forward:hover,
.pc-checkout-cta a.checkout-button:hover {
    background: var(--pc-wine-dark) !important;
    box-shadow: 0 6px 20px rgba(140, 15, 66, 0.3) !important;
}
.pc-checkout-cta a.wc-forward:active,
.pc-checkout-cta a.checkout-button:active {
    background: var(--pc-wine-deeper) !important;
    transform: translateY(1px);
}

/* --- Trust badges --- */
.pc-trust-badges {
    display: flex;
    justify-content: center;
    gap: 24px;
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid var(--pc-border-light);
}
.pc-trust-item {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: var(--pc-text-muted);
    font-weight: 400;
}
.pc-trust-item svg {
    width: 16px;
    height: 16px;
    stroke: var(--pc-gold);
    fill: none;
    stroke-width: 1.5;
}

/* --- Override parent theme residual styles --- */
body.woocommerce-cart .cart-collaterals {
    background: transparent !important;
    padding-bottom: 0 !important;
    max-width: none !important;
    margin-left: 0 !important;
}
body.woocommerce-cart .cart-collaterals h2,
body.woocommerce-cart .cart-col .cart-collaterals h2,
body.woocommerce-cart .cart-col .cart-collaterals .pc-summary-header h2 {
    background: none !important;
    background-color: transparent !important;
}
body.woocommerce-cart .cart_totals .wc-proceed-to-checkout {
    padding: 0 !important;
}

/* --- Mobile sticky checkout CTA --- */
.pc-mobile-checkout-sticky {
    display: none;
}

/* ===== TABLET (768-1024px) ===== */
@media (max-width: 1024px) {
    .pc-cart-layout {
        grid-template-columns: 1fr !important;
        gap: 32px !important;
    }
    .pc-summary {
        position: static !important;
    }
    .pc-cart-heading h2 {
        font-size: 24px !important;
    }
}

/* ===== MOBILE (767px and below) ===== */
@media (max-width: 767px) {

    /* Accommodate mobile bottom nav (68px) + sticky checkout CTA */
    body.woocommerce-cart {
        padding-bottom: calc(68px + env(safe-area-inset-bottom) + 72px) !important;
    }

    .pc-cart-layout {
        grid-template-columns: 1fr !important;
        gap: 24px !important;
        padding: 0 12px !important;
    }

    /* Progress compact */
    .pc-progress {
        margin-bottom: 24px;
    }
    .pc-step-num {
        width: 28px;
        height: 28px;
        font-size: 12px;
    }
    .pc-step-label {
        font-size: 10px;
    }
    .pc-step-connector {
        min-width: 24px;
        margin-bottom: 20px;
    }

    /* Heading */
    .pc-cart-heading h2 {
        font-size: 22px !important;
    }

    /* Cart item — stacked 2-row layout */
    .pc-cart-item {
        grid-template-columns: 80px 1fr !important;
        grid-template-rows: auto auto;
        gap: 12px !important;
        padding: 16px !important;
        position: relative;
    }
    .pc-item-image {
        width: 80px !important;
        min-width: 80px !important;
        grid-row: 1 / 3;
    }
    .pc-item-details {
        grid-column: 2;
        grid-row: 1;
        padding-right: 28px;
    }
    .pc-item-actions {
        grid-column: 2;
        grid-row: 2;
        display: flex !important;
        align-items: center;
        gap: 12px;
    }
    .pc-item-subtotal {
        margin-left: auto;
    }
    .pc-item-remove {
        position: absolute !important;
        top: 8px;
        right: 8px;
    }
    .pc-item-remove a.remove {
        width: 28px !important;
        height: 28px !important;
        font-size: 16px !important;
    }
    .pc-item-details .product-name a {
        font-size: 15px !important;
    }

    /* Compact quantity pill */
    .pc-item-qty .quantity {
        min-width: 94px !important;
        height: 36px !important;
    }
    .pc-item-qty .quantity .minus,
    .pc-item-qty .quantity .plus {
        width: 30px !important;
        height: 34px !important;
        font-size: 16px !important;
    }
    .pc-item-qty .quantity input.qty {
        width: 34px !important;
        height: 34px !important;
        font-size: 13px !important;
    }

    /* Actions stacked */
    .pc-cart-actions {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 12px !important;
    }
    .pc-coupon {
        flex: 0 0 auto !important;
        max-width: none !important;
    }
    .pc-cart-buttons {
        flex-direction: column !important;
        gap: 10px;
        margin-left: 0;
    }
    .pc-continue-shopping {
        justify-content: center !important;
        font-size: 12px !important;
        order: 2;
    }
    .pc-update-btn {
        width: 100% !important;
        text-align: center !important;
        font-size: 12px !important;
        height: 40px !important;
        line-height: 40px !important;
        order: 1;
    }

    /* Summary */
    .pc-summary {
        position: static !important;
        padding: 20px 16px !important;
    }
    .pc-summary-header h2 {
        font-size: 20px !important;
    }
    .pc-summary-total .pc-summary-value,
    .pc-summary-total .pc-summary-value .woocommerce-Price-amount,
    .pc-summary-total .woocommerce-Price-amount {
        font-size: 22px !important;
    }

    /* Mobile sticky checkout CTA */
    .pc-mobile-checkout-sticky {
        display: flex !important;
        position: fixed;
        bottom: calc(68px + env(safe-area-inset-bottom));
        left: 0;
        right: 0;
        z-index: 99999;
        background: #fff;
        border-top: 1px solid var(--pc-border-light);
        padding: 12px 16px;
        align-items: center;
        justify-content: space-between;
        box-shadow: 0 -2px 12px rgba(0, 0, 0, 0.06);
    }
    .pc-mobile-checkout-sticky .pc-sticky-total-label {
        font-size: 11px;
        color: var(--pc-text-muted);
        text-transform: uppercase;
        letter-spacing: 0.05em;
        display: block;
    }
    .pc-mobile-checkout-sticky .pc-sticky-total {
        font-family: 'Marcellus', serif;
        font-size: 20px;
        color: var(--pc-text);
    }
    .pc-mobile-checkout-sticky .pc-sticky-cta {
        padding: 12px 24px;
        background: var(--pc-wine);
        color: #fff !important;
        border-radius: var(--pc-radius-btn);
        font-family: 'Marcellus', serif;
        font-size: 14px;
        letter-spacing: 0.1em;
        text-transform: uppercase;
        text-decoration: none !important;
        white-space: nowrap;
        transition: background 0.2s ease;
    }
    .pc-mobile-checkout-sticky .pc-sticky-cta:active {
        background: var(--pc-wine-dark);
    }

    /* Trust badges stack */
    .pc-trust-badges {
        gap: 16px;
    }
}


/* ===== PREMIUM EMPTY STATE ===== */
/* Branded empty state for product categories with no products */

.pdc-empty-state {
    text-align: center;
    max-width: 520px;
    margin: 40px auto 60px;
    padding: 60px 40px 50px;
    background: #fffdf9;
    border: 1px solid #f0ebe4;
    border-radius: 16px;
    box-shadow: 0 4px 24px rgba(140, 15, 66, 0.05);
}

/* --- Icon container --- */
.pdc-empty-icon {
    position: relative;
    display: inline-block;
    width: 90px;
    height: 100px;
    margin-bottom: 28px;
}

.pdc-empty-icon .pdc-glass {
    width: 90px;
    height: 100px;
    color: #8c0f42;
    animation: pdc-float 3.5s ease-in-out infinite;
}

/* --- Sparkle stars --- */
.pdc-sparkle {
    position: absolute;
    color: #c8a96e;
    animation: pdc-sparkle 2.4s ease-in-out infinite;
}

.pdc-sparkle--1 {
    width: 18px;
    height: 18px;
    top: -4px;
    right: -12px;
    animation-delay: 0s;
}

.pdc-sparkle--2 {
    width: 12px;
    height: 12px;
    top: 14px;
    left: -10px;
    animation-delay: 0.8s;
}

.pdc-sparkle--3 {
    width: 14px;
    height: 14px;
    bottom: 22px;
    right: -16px;
    animation-delay: 1.6s;
}

/* --- Heading --- */
.pdc-empty-heading {
    font-family: 'Marcellus', serif !important;
    font-size: 28px !important;
    font-weight: 400 !important;
    color: #8c0f42 !important;
    margin: 0 0 4px !important;
    letter-spacing: 0.02em;
    line-height: 1.3;
}

/* --- Gold accent line --- */
.pdc-gold-line {
    width: 60px;
    height: 2px;
    background: linear-gradient(90deg, transparent, #c8a96e, transparent);
    margin: 16px auto 20px;
    border-radius: 2px;
}

/* --- Description text --- */
.pdc-empty-text {
    font-family: 'Inter', sans-serif;
    font-size: 15px;
    line-height: 1.7;
    color: #777;
    max-width: 380px;
    margin: 0 auto 32px;
}

/* --- CTA button --- */
.pdc-empty-cta {
    display: inline-block !important;
    background: #8c0f42 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 10px !important;
    padding: 14px 36px !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    cursor: pointer;
    transition: background-color 0.25s ease, transform 0.2s ease, box-shadow 0.25s ease;
    box-shadow: 0 4px 16px rgba(140, 15, 66, 0.2) !important;
}

.pdc-empty-cta:hover {
    background: #6e0c34 !important;
    color: #fff !important;
    transform: translateY(-1px);
    box-shadow: 0 6px 24px rgba(140, 15, 66, 0.3) !important;
    text-decoration: none !important;
}

.pdc-empty-cta:active {
    transform: translateY(0);
    box-shadow: 0 2px 10px rgba(140, 15, 66, 0.2) !important;
}

/* --- Animations --- */
@keyframes pdc-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-8px); }
}

@keyframes pdc-sparkle {
    0%, 100% {
        opacity: 0;
        transform: scale(0.4) rotate(0deg);
    }
    50% {
        opacity: 1;
        transform: scale(1) rotate(15deg);
    }
}

/* --- Hide generic WC info bar when our empty state shows --- */
.pdc-empty-state ~ .woocommerce-info,
.woocommerce-info + .pdc-empty-state ~ .woocommerce-info {
    display: none !important;
}

/* --- Mobile responsive --- */
@media (max-width: 767px) {
    .pdc-empty-state {
        margin: 24px 12px 40px;
        padding: 40px 24px 36px;
        border-radius: 12px;
    }

    .pdc-empty-icon {
        width: 70px;
        height: 80px;
        margin-bottom: 22px;
    }

    .pdc-empty-icon .pdc-glass {
        width: 70px;
        height: 80px;
    }

    .pdc-sparkle--1 { width: 14px; height: 14px; }
    .pdc-sparkle--2 { width: 10px; height: 10px; }
    .pdc-sparkle--3 { width: 11px; height: 11px; }

    .pdc-empty-heading {
        font-size: 22px !important;
    }

    .pdc-empty-text {
        font-size: 14px;
    }

    .pdc-empty-cta {
        padding: 12px 28px !important;
        font-size: 12px !important;
    }
}


/* ===== PDP ENHANCEMENTS ===== */

/* --- Description/Specs Section — align with product layout (50px gutters) --- */
.woocommerce-tabs.description-style-full-content {
    padding-left: 50px;
    padding-right: 50px;
}

.woocommerce-tabs.description-style-full-content .content-woocommerce-tabs {
    padding-left: 0;
    padding-right: 0;
    max-width: 100%;
}

.woocommerce-tabs.description-style-full-content .content-tab-woocommerce .tab-content {
    padding-left: 0 !important;
    margin-bottom: 40px;
}

@media (max-width: 767px) {
    .woocommerce-tabs.description-style-full-content {
        padding-left: 20px;
        padding-right: 20px;
    }
}

@media (min-width: 768px) and (max-width: 1024px) {
    .woocommerce-tabs.description-style-full-content {
        padding-left: 30px;
        padding-right: 30px;
    }
}

/* --- Overflow Protection (PDP-wide) --- */

/* Product summary column — prevent long titles, descriptions, URLs from breaking layout */
.bwp-single-info,
.summary.entry-summary {
    overflow: hidden;
    overflow-wrap: break-word;
    word-break: break-word;
}

/* Product title — clamp very long names */
.product_title {
    overflow-wrap: break-word;
    word-break: break-word;
}

/* Breadcrumbs — truncate on overflow, allow wrapping */
.bwp-single-info .breadcrumb-noheading .breadcrumb,
.bwp-single-info .bwp-breadcrumb {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Description / tab content — prevent long unbroken strings or images from overflowing */
.woocommerce-tabs .tab-content,
.woocommerce-tabs .content-woocommerce-tabs {
    overflow-wrap: break-word;
    word-break: break-word;
    overflow: hidden;
}

.woocommerce-tabs .tab-content img {
    max-width: 100%;
    height: auto;
}

/* Specs table — fixed layout prevents columns from blowing out */
.shop_attributes {
    table-layout: fixed;
    width: 100%;
}

.shop_attributes th,
.shop_attributes td {
    overflow-wrap: break-word;
    word-break: break-word;
    overflow: hidden;
    text-overflow: ellipsis;
}

.shop_attributes th {
    width: 40%;
}

/* Quantity selector — fix misaligned +/- buttons (plus has line-height:24px, minus inherits 13px) */
.single-product .bwp-single-info .quantity button.plus,
.single-product .bwp-single-info .quantity button.minus {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
}

.single-product .bwp-single-info .quantity button.plus::before,
.single-product .bwp-single-info .quantity button.minus::before {
    top: 0 !important;
    position: relative;
    line-height: 1 !important;
}

/* Related products — contain the carousel */
.related {
    overflow: hidden;
}

.related .products-entry .product-title a {
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

/* Product meta (categories, brand) — prevent long tag chains from overflowing */
.product_meta {
    overflow-wrap: break-word;
    word-break: break-word;
}

/* --- Trust & Delivery Badges --- */
.pdc-trust-badges {
    display: flex;
    justify-content: center;
    gap: 24px;
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid #eee;
}

.pdc-trust-badge {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    flex: 1;
    max-width: 120px;
    min-width: 0;
    overflow: hidden;
}

.pdc-trust-badge svg {
    color: #8c0f42;
    margin-bottom: 8px;
    flex-shrink: 0;
}

.pdc-trust-badge span {
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    font-weight: 500;
    color: #666;
    line-height: 1.3;
}

/* --- Social Share Buttons --- */
.pdc-share {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid #eee;
}

.pdc-share label {
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    font-weight: 500;
    color: #333;
    margin: 0;
}

.pdc-share a,
.pdc-share button {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 36px !important;
    height: 36px !important;
    border-radius: 50% !important;
    background: #f5f5f5 !important;
    border: none !important;
    box-shadow: none !important;
    color: #555 !important;
    cursor: pointer;
    transition: all 0.2s ease;
    position: relative;
    padding: 0 !important;
    min-width: unset !important;
}

.pdc-share a:hover,
.pdc-share button:hover {
    background: #8c0f42 !important;
    color: #fff !important;
}

.pdc-share a svg,
.pdc-share button svg {
    flex-shrink: 0;
}

.pdc-share .pdc-share-wa:hover {
    background: #25D366 !important;
    color: #fff !important;
}

.pdc-share .pdc-share-fb:hover {
    background: #1877F2 !important;
    color: #fff !important;
}

/* Copy link tooltip */
.pdc-copied {
    position: absolute;
    bottom: calc(100% + 6px);
    left: 50%;
    transform: translateX(-50%) translateY(4px);
    background: #333;
    color: #fff;
    font-family: 'Inter', sans-serif;
    font-size: 11px;
    font-weight: 500;
    padding: 4px 10px;
    border-radius: 4px;
    white-space: nowrap;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease, transform 0.2s ease;
    pointer-events: none;
}

.pdc-copied::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    border: 4px solid transparent;
    border-top-color: #333;
}

.pdc-copied.show {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0);
}

/* --- Related Products "Ver Todos" Link --- */
.pdc-view-all {
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    font-weight: 500;
    color: #8c0f42;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    white-space: nowrap;
    transition: opacity 0.2s ease;
    flex-shrink: 0;
}

.pdc-view-all:hover {
    opacity: 0.7;
    text-decoration: underline;
    color: #8c0f42;
}

.pdc-view-all svg {
    flex-shrink: 0;
}

/* --- Hide Floating Cart on ALL pages (mobile) — redundant with bottom nav cart icon --- */
@media (max-width: 767px) {
    .majc-toggle-button,
    .mini-cart-header,
    .bwp-cart-icon {
        display: none !important;
    }

    .pdc-trust-badges {
        gap: 12px;
    }

    .pdc-trust-badge {
        max-width: none;
    }

    .pdc-trust-badge svg {
        width: 24px;
        height: 24px;
    }

    .pdc-trust-badge span {
        font-size: 11px;
    }

    .pdc-share {
        flex-wrap: wrap;
        gap: 8px;
    }

    .pdc-share label {
        font-size: 13px;
        width: 100%;
    }
}


/* ===== H. PRODUCT IMAGE SIZE — constrain so thumbnails visible above fold =====
 * Problem: Main product image (767×767px on col-lg-7) exceeds viewport height,
 * pushing thumbnails below the fold where users can't discover them.
 * Fix: Cap image height with viewport-relative max-height so image + thumbnails
 * fit on screen together. Uses min() for adaptive sizing.
 * =============================================================================== */

@media (min-width: 992px) {
    /* Constrain the main image container */
    .single-product .image-additional {
        max-height: min(520px, 60vh);
        display: flex !important;
        align-items: center;
        justify-content: center;
    }

    /* Constrain the gallery image wrapper inside */
    .single-product .image-additional .woocommerce-product-gallery__image {
        max-height: min(520px, 60vh);
        display: flex;
        align-items: center;
        justify-content: center;
    }

    /* Constrain the actual product image */
    .single-product .image-additional img#image {
        max-height: min(500px, 58vh);
        width: auto !important;
        max-width: 100%;
        object-fit: contain;
        display: block;
        margin: 0 auto;
    }
}

/* Tablet — slightly more room */
@media (min-width: 768px) and (max-width: 991px) {
    .single-product .image-additional {
        max-height: 55vh;
        display: flex !important;
        align-items: center;
        justify-content: center;
    }

    .single-product .image-additional .woocommerce-product-gallery__image {
        max-height: 55vh;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .single-product .image-additional img#image {
        max-height: 53vh;
        width: auto !important;
        max-width: 100%;
        object-fit: contain;
        display: block;
        margin: 0 auto;
    }
}

/* Mobile — cap image so title/price/ATC visible above fold */
@media (max-width: 767px) {
    .single-product .image-additional {
        max-height: 42vh;
        display: flex !important;
        align-items: center;
        justify-content: center;
        overflow: hidden;
    }

    .single-product .image-additional .woocommerce-product-gallery__image {
        max-height: 42vh;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .single-product .image-additional img#image {
        max-height: 40vh;
        width: auto !important;
        max-width: 100%;
        object-fit: contain;
        display: block;
        margin: 0 auto;
    }

    /* Thumbnail gallery — smaller on mobile */
    .single-product .image-thumbnail .img-thumbnail {
        max-width: 56px !important;
        max-height: 56px !important;
    }
}


/* ===== I. WISHLIST BUTTON — keep inline with ATC button =====
 * Problem: Portuguese "ADICIONAR AO CARRINHO" text makes the ATC button
 * wider than English "ADD TO CART", causing the wishlist button to wrap
 * to its own line in the flex-wrap cart form.
 * Fix: Make quantity-button shrinkable so wishlist always fits on same row.
 * ============================================================== */

.single-product form.cart .quantity-button {
    flex: 1 1 auto;
    min-width: 0;
    max-width: calc(100% - 65px);
}

.single-product form.cart .woosw-btn {
    flex: 0 0 auto;
}

.single-product form.cart .button.quick-buy {
    flex: 0 0 100%;
}


/* ===== J. CART NOTIFICATION — polished "added to cart" banner =====
 * Refines the wine-colored notification banner on product pages.
 * - Removes clashing black border-top from parent theme
 * - Adds border-radius for modern look
 * - Replaces wpbingofont icon with a clean checkmark
 * - Styles the "Ver Carrinho" button to match theme
 * ================================================================== */

/* Base notification refinement
 * Overrides Royal Elementor's row-reverse flex (frontend.min.css)
 * and fixes layout to: ✓ checkmark → text → [Ver Carrinho] button */
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-message {
    border-top: none !important;
    border-radius: 8px;
    font-size: 15px;
    font-weight: 400;
    letter-spacing: 0.01em;
    display: flex !important;
    flex-direction: row !important;
    justify-content: flex-start !important;
    align-items: center;
    gap: 8px;
    padding: 14px 20px !important;
    margin: 12px auto 20px !important;
    text-transform: none !important;
}

/* Hide parent theme's wpbingofont ::before icon —
 * we use an inline ✓ in the PHP text for proper baseline alignment */
.woocommerce-message::before {
    display: none !important;
    content: none !important;
}

/* Text paragraph (Royal Elementor wraps text in <p>) */
.woocommerce-message p {
    margin: 0 !important;
    padding: 0 !important;
    order: 0;
}

/* "Ver Carrinho" button — white pill, wine text (readable on wine bg)
 * Overrides WP Customizer CSS that sets white bg + white text (invisible) */
.woocommerce-message .button.wc-forward {
    order: 2;
    margin-left: auto !important;
    float: none !important;
    border-radius: 20px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    padding: 7px 18px !important;
    letter-spacing: 0.04em;
    white-space: nowrap;
    text-decoration: none !important;
    text-transform: uppercase;
    line-height: 1.4 !important;
    background: #fff !important;
    color: #8c0f42 !important;
    border: 1px solid #fff !important;
    transition: background-color 0.2s ease, opacity 0.2s ease;
}

.woocommerce-message .button.wc-forward:hover {
    background: rgba(255, 255, 255, 0.85) !important;
    color: #6e0c34 !important;
    border-color: rgba(255, 255, 255, 0.85) !important;
}

/* Hide the eleganticons arrow after the button text */
.woocommerce-message .button.wc-forward::after {
    display: none !important;
}

/* Hide the ::after clear:both pseudo (causes layout issues in flex) */
.woocommerce-message::after {
    display: none !important;
}

/* Mobile: stack button below text */
@media (max-width: 767px) {
    .woocommerce-notices-wrapper .woocommerce-message,
    .woocommerce-message {
        flex-direction: row !important;
        flex-wrap: wrap;
        font-size: 14px;
        padding: 12px 16px !important;
        gap: 6px;
        border-radius: 6px;
    }

    .woocommerce-message .button.wc-forward {
        margin-left: 0 !important;
        margin-top: 4px;
        flex: 0 0 auto;
    }
}


/* ===== CHECKOUT ENHANCEMENTS — COMPACT & POLISHED =====
 * Companion CSS for inc/checkout-enhancements.php
 * Overhaul: tightens spacing, shrinks oversized headings,
 * reduces input height, removes dead space throughout.
 * ======================================================= */

/* (Floating cart now hidden globally on mobile — see line 6138) */

/* ---- A. TAB BAR — compact nav ---- */
.woocommerce-checkout .woocommerce-page-header,
.woocommerce-page-header {
    margin-bottom: 20px !important;
}

.woocommerce-page-header ul {
    gap: 24px;
}

.woocommerce-page-header li a {
    font-size: 14px !important;
    letter-spacing: 0.02em;
}

.woocommerce-page-header li a .cart-count {
    font-size: 13px;
}

/* ---- B. LOGIN / COUPON BARS — slimmer ---- */
.woocommerce-checkout .checkout-top {
    margin-top: 0 !important;
    margin-bottom: 20px !important;
    gap: 12px;
}

.woocommerce-checkout .checkout-top .woocommerce-info {
    padding: 12px 16px !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
    min-height: auto !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    background-color: rgba(140, 15, 66, 0.04) !important;
    border-color: rgba(140, 15, 66, 0.15) !important;
    color: #555 !important;
}

.woocommerce-checkout .checkout-top .woocommerce-info a {
    color: #8c0f42 !important;
    font-weight: 600 !important;
}

.woocommerce-checkout .checkout-top .woocommerce-info::before {
    font-size: 18px !important;
    margin-right: 8px !important;
    color: #8c0f42 !important;
}

.woocommerce-checkout .content-left-checkout,
.woocommerce-checkout .content-right-checkout {
    margin-bottom: 0 !important;
}

/* ---- C. BACK TO CART LINK — subtle ---- */
.woocommerce-checkout .back-to-cart {
    font-size: 13px !important;
    color: #888 !important;
    margin-bottom: 4px !important;
    display: inline-block;
}

.woocommerce-checkout .back-to-cart .arrow_right {
    font-size: 11px !important;
}

/* ---- D. BILLING HEADING — smaller, tighter ---- */
.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout .woocommerce-shipping-fields h3 {
    font-size: 22px !important;
    margin-bottom: 16px !important;
    line-height: 1.3 !important;
}

/* ---- E. FORM INPUTS — compact 44px height ---- */
.woocommerce-checkout .woocommerce-input-wrapper input.input-text,
.woocommerce-checkout select,
.woocommerce-checkout .checkout-top input.input-text {
    height: 44px !important;
    padding: 0 14px !important;
    font-size: 14px !important;
    border-radius: 8px !important;
    border: 1px solid #ddd !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}

.woocommerce-checkout .woocommerce-input-wrapper textarea {
    padding: 10px 14px !important;
    font-size: 14px !important;
    line-height: 1.5 !important;
    border-radius: 8px !important;
    border: 1px solid #ddd !important;
    min-height: 80px !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}

/* Focus ring */
.woocommerce-checkout .woocommerce-input-wrapper input.input-text:focus,
.woocommerce-checkout .woocommerce-input-wrapper textarea:focus,
.woocommerce-checkout select:focus,
.woocommerce-checkout .checkout-top input.input-text:focus {
    border-color: #8c0f42 !important;
    box-shadow: 0 0 0 3px rgba(140, 15, 66, 0.08) !important;
    outline: none !important;
}

/* ---- E2. SELECT2 DROPDOWN — compact & brand-colored ---- */
/* Closed state — match input height */
.woocommerce-checkout .select2-container .select2-selection--single {
    height: 44px !important;
    border-radius: 8px !important;
    border: 1px solid #ddd !important;
    padding: 0 14px !important;
    display: flex !important;
    align-items: center !important;
}

.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__rendered {
    font-size: 14px !important;
    color: #333 !important;
    line-height: 1.4 !important;
    padding: 0 !important;
}

.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__arrow {
    height: 44px !important;
    right: 10px !important;
}

/* Focus state */
.woocommerce-checkout .select2-container--open .select2-selection--single {
    border-color: #8c0f42 !important;
    box-shadow: 0 0 0 3px rgba(140, 15, 66, 0.08) !important;
}

/* Dropdown panel */
.select2-container--default .select2-dropdown {
    border: 1px solid #ddd !important;
    border-radius: 8px !important;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1) !important;
    overflow: hidden;
}

/* Search input inside dropdown */
.select2-container--default .select2-search--dropdown .select2-search__field {
    height: 36px !important;
    padding: 0 10px !important;
    font-size: 13px !important;
    border: 1px solid #ddd !important;
    border-radius: 6px !important;
    outline: none !important;
}

.select2-container--default .select2-search--dropdown .select2-search__field:focus {
    border-color: #8c0f42 !important;
    box-shadow: 0 0 0 2px rgba(140, 15, 66, 0.08) !important;
}

.select2-container--default .select2-search--dropdown {
    padding: 8px !important;
}

/* Dropdown options */
.select2-container--default .select2-results__option {
    padding: 8px 12px !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
    color: #333 !important;
}

/* Hover / highlighted — wine color instead of blue */
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted {
    background-color: #8c0f42 !important;
    color: #fff !important;
}

/* Selected (already picked) */
.select2-container--default .select2-results__option[aria-selected=true] {
    background-color: rgba(140, 15, 66, 0.08) !important;
    color: #8c0f42 !important;
}

.select2-container--default .select2-results__option[aria-selected=true].select2-results__option--highlighted {
    background-color: #8c0f42 !important;
    color: #fff !important;
}

/* Results list max height */
.select2-container--default .select2-results > .select2-results__options {
    max-height: 220px !important;
}

/* Form labels — tighter */
.woocommerce-checkout .form-row label {
    font-size: 13px !important;
    margin-bottom: 4px !important;
    font-weight: 500 !important;
}

/* Form row spacing */
.woocommerce-checkout .form-row {
    margin-bottom: 12px !important;
}

/* ---- F. ADDITIONAL INFO SECTION — compact ---- */
.woocommerce-checkout .woocommerce-additional-fields h3 {
    font-size: 18px !important;
    margin: 8px 0 10px !important;
    line-height: 1.3 !important;
}

/* ---- G. ORDER SUMMARY SIDEBAR — tighter layout ---- */
.woocommerce-checkout .checkout-review-order-table-wrapper {
    padding: 16px !important;
}

/* Product heading */
.woocommerce-checkout .title-product-name {
    font-size: 16px !important;
    padding-bottom: 10px !important;
    margin-bottom: 0 !important;
}

/* Product rows */
.woocommerce-checkout .shop_table .cart_item {
    padding: 10px 0 !important;
}

.woocommerce-checkout .shop_table .cart_item .product-thumble img {
    width: 50px !important;
    height: auto !important;
}

.woocommerce-checkout .shop_table .product-name {
    font-size: 13px !important;
    text-transform: capitalize;
}

.woocommerce-checkout .shop_table .product-quantity {
    font-size: 11px !important;
}

.woocommerce-checkout .shop_table .product-total {
    font-size: 14px !important;
    color: #8c0f42 !important;
    font-weight: 600 !important;
}

/* Subtotal / IVA / Total rows — wine-colored values */
.woocommerce-checkout .shop_table .cart-subtotal,
.woocommerce-checkout .shop_table .tax-rate,
.woocommerce-checkout .shop_table .tax-total {
    padding: 8px 0 !important;
    margin-top: 0 !important;
}

.woocommerce-checkout .shop_table .cart-subtotal .subtotal-price,
.woocommerce-checkout .shop_table .tax-rate div:last-child,
.woocommerce-checkout .shop_table .tax-total div:last-child {
    color: #8c0f42 !important;
    font-weight: 600 !important;
}

.woocommerce-checkout .shop_table .cart-subtotal {
    margin-top: 10px !important;
}

.woocommerce-checkout .shop_table .cart-subtotal h2,
.woocommerce-checkout .shop_table .order-total h2 {
    font-size: 14px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: none !important;
    line-height: 1.4 !important;
    height: auto !important;
}

.woocommerce-checkout .shop_table .order-total {
    padding: 10px 0 4px !important;
}

.woocommerce-checkout .shop_table .order-total .total-price {
    font-size: 20px !important;
    line-height: 1.4 !important;
    height: auto !important;
}

/* ---- H. PAYMENT METHODS — compact & aligned ---- */
.woocommerce-checkout .wc_payment_methods_wrap,
.woocommerce-checkout .woocommerce-checkout-payment {
    margin-top: 12px !important;
}

/* Payment list wrapper — kill bloated padding/margin */
.woocommerce-checkout .wc_payment_methods {
    padding: 12px !important;
    margin-bottom: 8px !important;
}

/* Individual payment method */
.woocommerce-checkout .wc_payment_methods .wc_payment_method {
    margin-bottom: 0 !important;
    padding: 0 !important;
    border-bottom: 1px solid #f0f0f0;
}

.woocommerce-checkout .wc_payment_methods .wc_payment_method:last-child {
    border-bottom: none;
}

/* Radio + label alignment */
/* Note: real <input> is display:none; the visible radio is
   label::before (position:absolute, left:0, 12px circle).
   We must leave enough padding-left to clear it. */
.woocommerce-checkout .wc_payment_method label {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px;
    font-size: 14px !important;
    font-weight: 500 !important;
    padding: 10px 4px 10px 24px !important;
    margin-bottom: 0 !important;
    cursor: pointer;
}

/* Center the radio circle vertically */
.woocommerce-checkout .wc_payment_method label::before {
    top: 50% !important;
    transform: translateY(-50%) !important;
    left: 4px !important;
}

/* Payment description box */
.woocommerce-checkout .wc_payment_method .payment_box {
    font-size: 12px !important;
    padding: 4px 4px 10px 26px !important;
    margin: 0 !important;
    line-height: 1.5;
    color: #888;
}

/* Privacy policy text */
.woocommerce-checkout .woocommerce-privacy-policy-text {
    font-size: 12px !important;
    line-height: 1.5 !important;
    margin: 12px 0 !important;
}

.woocommerce-checkout .woocommerce-privacy-policy-text p {
    font-size: 12px !important;
    margin: 0 !important;
}

.woocommerce-checkout .woocommerce-privacy-policy-text a {
    color: #8c0f42 !important;
    text-decoration: underline !important;
}

/* ---- I. PLACE ORDER BUTTON — correct height ---- */
.woocommerce-checkout #place_order {
    border-radius: 8px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    letter-spacing: 0.08em !important;
    padding: 14px 24px !important;
    text-transform: uppercase;
    min-height: auto !important;
    height: auto !important;
    line-height: 1.4 !important;
    transition: background-color 0.2s ease, box-shadow 0.2s ease !important;
}

.woocommerce-checkout #place_order:hover {
    box-shadow: 0 4px 16px rgba(140, 15, 66, 0.25) !important;
}

/* ---- J. DELIVERY ESTIMATE — compact ---- */
.pdc-delivery-estimate {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 0;
    border-bottom: 1px solid #eee;
}

.pdc-delivery-estimate svg {
    color: #8c0f42;
    flex-shrink: 0;
    width: 14px;
    height: 14px;
}

.pdc-delivery-estimate span {
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    color: #666;
    line-height: 1.4;
}

/* ---- K. TRUST BADGES — compact ---- */
.pdc-checkout-trust {
    display: flex;
    justify-content: center;
    gap: 16px;
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid #eee;
}

.pdc-checkout-trust-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 4px;
}

.pdc-checkout-trust-item svg {
    color: #8c0f42;
    flex-shrink: 0;
    width: 18px;
    height: 18px;
}

.pdc-checkout-trust-item span {
    font-family: 'Inter', sans-serif;
    font-size: 10px;
    font-weight: 500;
    color: #999;
    line-height: 1.3;
}

/* ---- L. PRODUCT NAME CASING ---- */
.woocommerce-checkout-review-order-table .product-name,
.checkout-review-order-table-wrapper .product-name {
    text-transform: capitalize;
}

/* ---- M. CHECKOUT MOBILE (≤767px) ---- */
@media (max-width: 767px) {
    /* Tab navigation: horizontal scroll, pill-style steps */
    .woocommerce-page-header {
        margin-bottom: 14px !important;
        padding: 0 12px !important;
    }

    .woocommerce-page-header ul {
        display: flex !important;
        gap: 8px !important;
        justify-content: center !important;
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch;
        padding: 4px 0 !important;
    }

    .woocommerce-page-header li {
        flex-shrink: 0 !important;
    }

    body .check-sec .woocommerce-page-header ul li a,
    body.woocommerce-checkout .check-sec .woocommerce-page-header ul li a {
        font-size: 11px !important;
        padding: 6px 12px !important;
        border-radius: 20px !important;
        background: #f5f5f5 !important;
        background-color: #f5f5f5 !important;
        color: #666 !important;
        text-decoration: none !important;
        white-space: nowrap !important;
        display: inline-flex !important;
        align-items: center !important;
        gap: 4px !important;
        font-weight: 500 !important;
        letter-spacing: 0 !important;
        transition: background 0.2s, color 0.2s !important;
    }

    /* Active step: wine color pill */
    body .check-sec .woocommerce-page-header ul li.active a,
    body .check-sec .woocommerce-page-header ul li.current a {
        background: rgba(140, 15, 66, 0.12) !important;
        background-color: rgba(140, 15, 66, 0.12) !important;
        color: #8c0f42 !important;
        font-weight: 600 !important;
    }

    /* Step number badge */
    body .check-sec .woocommerce-page-header ul li a .cart-count {
        font-size: 10px !important;
        background: rgba(0,0,0,0.08) !important;
        border-radius: 50% !important;
        width: 18px !important;
        height: 18px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        line-height: 1 !important;
    }

    body .check-sec .woocommerce-page-header ul li.active a .cart-count {
        background: #8c0f42 !important;
        color: #fff !important;
    }

    .woocommerce-checkout .checkout-top {
        margin-bottom: 14px !important;
    }

    .woocommerce-checkout .woocommerce-billing-fields h3 {
        font-size: 20px !important;
        margin-bottom: 12px !important;
    }

    .woocommerce-checkout .woocommerce-additional-fields h3 {
        font-size: 16px !important;
    }

    .pdc-checkout-trust {
        gap: 10px;
    }

    .pdc-checkout-trust-item svg {
        width: 16px;
        height: 16px;
    }

    .pdc-checkout-trust-item span {
        font-size: 9px;
    }

    .pdc-delivery-estimate span {
        font-size: 11px;
    }

    /* Checkout bottom padding for mobile nav */
    .woocommerce-checkout .content-page {
        padding-bottom: calc(80px + env(safe-area-inset-bottom)) !important;
    }
}

/* =========================================================================
   PRODUCT COUNTDOWN — Brand Colors & Polish
   ========================================================================= */

/* Heading: smaller, wine color, icon vertically aligned */
.single-product .countdown-single .title-countdown,
.quickview-container .countdown-single .title-countdown {
    color: #8c0f42 !important;
    font-size: 14px;
    font-weight: 600;
    font-family: 'Inter', sans-serif;
    letter-spacing: 0.3px;
    line-height: 1.4;
    padding-left: 24px;
    margin-bottom: 14px;
}

/* Clock icon: smaller, vertically centered with text */
.single-product .countdown-single .title-countdown:before,
.quickview-container .countdown-single .title-countdown:before {
    width: 16px;
    height: 16px;
    top: 50%;
    transform: translateY(-50%);
    filter: brightness(0) saturate(100%) invert(12%) sepia(60%) saturate(4500%) hue-rotate(325deg) brightness(85%) contrast(95%);
}

/* Countdown circles: compact, wine brand border */
.single-product .countdown-single .product-countdown .countdown-content .countdown-amount,
.quickview-container .countdown-single .product-countdown .countdown-content .countdown-amount {
    border-color: #8c0f42 !important;
    color: #1a1a1a;
    font-weight: 500;
    font-size: 16px;
    width: 46px;
    height: 46px;
    line-height: 44px;
    border-width: 1.5px;
    transition: background-color 0.2s ease, color 0.2s ease;
}

/* Spacing between countdown items */
.single-product .countdown-single .product-countdown .countdown-content > span,
.quickview-container .countdown-single .product-countdown .countdown-content > span {
    margin-right: 12px;
}

/* Subtle hover on countdown circles */
.single-product .countdown-single .product-countdown .countdown-content > span:hover .countdown-amount {
    background-color: #8c0f42;
    color: #fff;
}

/* Countdown labels: compact */
.single-product .countdown-single .product-countdown .countdown-content .countdown-text,
.quickview-container .countdown-single .product-countdown .countdown-content .countdown-text {
    color: #555;
    font-size: 10px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-top: 5px;
}

/* Less bottom margin on the countdown block */
.single-product .countdown-single,
.quickview-container .countdown-single {
    margin-bottom: 20px;
}

/* -25% Sale badge: wine brand color instead of red */
.single-product .bwp-single-info .onsale,
.single-product .summary .onsale {
    background: transparent !important;
    color: #8c0f42 !important;
    border: 1px solid #8c0f42 !important;
    border-radius: 6px !important;
    padding: 2px 8px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
}

/* Sale badge on product cards / archive */
.onsale {
    background: #8c0f42 !important;
    color: #fff !important;
    border-color: #8c0f42 !important;
    font-weight: 700 !important;
    border-radius: 6px !important;
    padding: 4px 10px !important;
    font-size: 12px !important;
    line-height: 1.3 !important;
}

/* Mobile adjustments */
@media (max-width: 480px) {
    .single-product .countdown-single .product-countdown .countdown-content .countdown-amount,
    .quickview-container .countdown-single .product-countdown .countdown-content .countdown-amount {
        width: 42px;
        height: 42px;
        line-height: 40px;
        font-size: 14px;
    }

    .single-product .countdown-single .title-countdown,
    .quickview-container .countdown-single .title-countdown {
        font-size: 13px;
    }

    .single-product .countdown-single .product-countdown .countdown-content .countdown-text {
        font-size: 9px;
    }
}

/* ==========================================================================
   STICKY HEADER
   Fixed header that stays at top on scroll, with shadow on scroll
   ========================================================================== */

.elementor-location-header {
    position: sticky !important;
    top: 0;
    z-index: 999;
    transition: box-shadow 0.3s ease;
    will-change: box-shadow;
}

/* Shadow appears when page is scrolled */
.elementor-location-header.header-scrolled {
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
}

/* Ensure the main header row has a solid background (not transparent) when sticky */
.elementor-26657 .elementor-element.elementor-element-543f8c2 {
    background-color: #F9F6F1 !important;
}

/* Admin bar offset: when WP admin bar is visible, push header below it */
.admin-bar .elementor-location-header {
    top: 32px;
}

@media (max-width: 782px) {
    .admin-bar .elementor-location-header {
        top: 46px;
    }
}

/* ==========================================================================
   MY ACCOUNT AREA — Full Overhaul
   Addresses audit items 1.1–6.6 from MY-ACCOUNT-AUDIT.md
   ========================================================================== */

/* --- 1.7 Remove debug-style border on content area --- */
.woocommerce-MyAccount-content {
    border: none !important;
    outline: none !important;
}

/* --- 1.3 Sidebar active state indicator --- */
.woocommerce-MyAccount-navigation ul li.is-active a {
    color: #8c0f42 !important;
    font-weight: 600 !important;
    border-left: 3px solid #8c0f42 !important;
    padding-left: 12px !important;
    background-color: rgba(140, 15, 66, 0.04) !important;
}
.woocommerce-MyAccount-navigation ul li a {
    display: flex !important;
    align-items: center;
    gap: 10px;
    padding: 10px 15px !important;
    color: #333 !important;
    font-size: 14px;
    transition: all 0.2s ease;
    border-left: 3px solid transparent !important;
    text-decoration: none !important;
}
.woocommerce-MyAccount-navigation ul li a:hover {
    color: #8c0f42 !important;
    background-color: rgba(140, 15, 66, 0.04) !important;
    border-left-color: rgba(140, 15, 66, 0.3) !important;
}

/* --- 1.4 Logout visual separation --- */
.woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout {
    margin-top: 12px !important;
    padding-top: 12px !important;
    border-top: 1px solid #e5e5e5 !important;
}
.woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout a {
    color: #999 !important;
    font-size: 13px !important;
}
.woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout a:hover {
    color: #8c0f42 !important;
}

/* --- 1.5 Sidebar icons via Dashicons --- */
.woocommerce-MyAccount-navigation ul li a::before {
    font-family: 'dashicons' !important;
    font-size: 18px;
    width: 20px;
    text-align: center;
    flex-shrink: 0;
    color: inherit;
}
.woocommerce-MyAccount-navigation-link--dashboard a::before { content: '\f480' !important; }     /* grid */
.woocommerce-MyAccount-navigation-link--orders a::before { content: '\f481' !important; }        /* clipboard */
.woocommerce-MyAccount-navigation-link--subscriptions a::before { content: '\f463' !important; } /* update */
.woocommerce-MyAccount-navigation-link--wishlist a::before { content: '\f487' !important; }      /* heart */
.woocommerce-MyAccount-navigation-link--edit-address a::before { content: '\f230' !important; }  /* location */
.woocommerce-MyAccount-navigation-link--edit-account a::before { content: '\f110' !important; }  /* admin-users */
.woocommerce-MyAccount-navigation-link--customer-logout a::before { content: '\f489' !important; } /* exit */

/* --- 1.6 Mobile responsive: sidebar becomes horizontal scroll on mobile --- */
@media (max-width: 767px) {
    .woocommerce-account .woocommerce-MyAccount-navigation,
    .woocommerce-account .woocommerce-MyAccount-content {
        float: none !important;
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 !important;
    }
    .woocommerce-MyAccount-navigation {
        margin-bottom: 20px !important;
        border-bottom: 1px solid #e5e5e5;
        padding-bottom: 0 !important;
    }
    .woocommerce-MyAccount-navigation ul {
        display: flex !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch;
        white-space: nowrap !important;
        gap: 0 !important;
        padding: 0 !important;
        margin: 0 !important;
        list-style: none !important;
        scrollbar-width: none;
    }
    .woocommerce-MyAccount-navigation ul::-webkit-scrollbar {
        display: none;
    }
    .woocommerce-MyAccount-navigation ul li {
        flex-shrink: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    .woocommerce-MyAccount-navigation ul li a {
        padding: 10px 14px !important;
        border-left: none !important;
        border-bottom: 2px solid transparent !important;
        font-size: 13px !important;
        gap: 6px !important;
    }
    .woocommerce-MyAccount-navigation ul li a::before {
        font-size: 16px !important;
    }
    .woocommerce-MyAccount-navigation ul li.is-active a {
        border-left: none !important;
        border-bottom: 2px solid #8c0f42 !important;
        background: none !important;
        padding-left: 14px !important;
    }
    /* Logout: inline on mobile, no top border */
    .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout {
        margin-top: 0 !important;
        padding-top: 0 !important;
        border-top: none !important;
    }
    /* Tables: horizontal scroll */
    .woocommerce-MyAccount-content table {
        display: block !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch;
    }
}

/* --- Page heading styling --- */
.myaccount-page-heading {
    font-family: 'Marcellus', serif;
    font-size: 24px;
    color: #1a1a1a;
    margin-bottom: 24px;
    padding-bottom: 12px;
    border-bottom: 1px solid #e8e4e6;
}

/* --- 2.1 Dashboard welcome --- */
.myaccount-dashboard-welcome h2 {
    font-family: 'Marcellus', serif;
    font-size: 26px;
    color: #8c0f42;
    margin-bottom: 8px;
}
.myaccount-dashboard-welcome p {
    color: #555;
    font-size: 15px;
    margin-bottom: 24px;
}

/* --- 2.3 Quick action cards --- */
.myaccount-quick-actions {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-bottom: 32px;
}
.quick-action-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 20px 12px;
    border: 1px solid #e8e4e6;
    border-radius: 8px;
    text-decoration: none !important;
    transition: all 0.2s ease;
    background: #fff;
}
.quick-action-card:hover {
    border-color: #8c0f42;
    box-shadow: 0 2px 8px rgba(140, 15, 66, 0.1);
    transform: translateY(-2px);
}
.quick-action-icon {
    font-size: 28px !important;
    width: 28px !important;
    height: 28px !important;
    color: #8c0f42;
    margin-bottom: 8px;
}
.quick-action-label {
    font-size: 13px;
    font-weight: 500;
    color: #333;
}
.quick-action-card:hover .quick-action-label {
    color: #8c0f42;
}

@media (max-width: 767px) {
    .myaccount-quick-actions {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
    }
    .quick-action-card {
        padding: 14px 10px;
    }
}

/* --- 2.2 Recent orders on dashboard --- */
.myaccount-recent-orders h3 {
    font-family: 'Marcellus', serif;
    font-size: 18px;
    color: #1a1a1a;
    margin-bottom: 12px;
}
.recent-orders-table {
    width: 100% !important;
    border-collapse: collapse;
}
.recent-orders-table th {
    background: #f9f6f1 !important;
    color: #333;
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: 10px 14px !important;
    text-align: left;
}
.recent-orders-table td {
    padding: 10px 14px !important;
    font-size: 14px;
    border-bottom: 1px solid #eee;
}
.recent-orders-table td a {
    color: #8c0f42;
    font-weight: 500;
}
.view-all-orders {
    display: inline-block;
    margin-top: 12px;
    color: #8c0f42 !important;
    font-size: 14px;
    font-weight: 500;
    text-decoration: none !important;
}
.view-all-orders:hover {
    text-decoration: underline !important;
}

/* --- 3.1 Order status color-coded badges --- */
.order-status-badge,
.woocommerce-orders-table__cell-order-status mark {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 600;
    text-transform: capitalize;
    line-height: 1.4;
}
/* Processing = amber */
.order-status-badge.status-processing,
mark.order-status--processing {
    background: #fef3cd !important;
    color: #856404 !important;
}
/* Completed = green */
.order-status-badge.status-completed,
mark.order-status--completed {
    background: #d4edda !important;
    color: #155724 !important;
}
/* On-hold = light blue */
.order-status-badge.status-on-hold,
mark.order-status--on-hold {
    background: #cce5ff !important;
    color: #004085 !important;
}
/* Cancelled = red */
.order-status-badge.status-cancelled,
mark.order-status--cancelled {
    background: #f8d7da !important;
    color: #721c24 !important;
}
/* Refunded = grey */
.order-status-badge.status-refunded,
mark.order-status--refunded {
    background: #e2e3e5 !important;
    color: #383d41 !important;
}
/* Failed = dark red */
.order-status-badge.status-failed,
mark.order-status--failed {
    background: #f8d7da !important;
    color: #721c24 !important;
}
/* Pending = light blue */
.order-status-badge.status-pending,
mark.order-status--pending-payment {
    background: #e0f0ff !important;
    color: #0056b3 !important;
}

/* WooCommerce orders table: style the status marks */
.woocommerce-orders-table__cell-order-status mark {
    background: none;
}
.woocommerce-orders-table__cell-order-status mark::after {
    content: none; /* Remove default WC icon */
}

/* --- 4.5 Button styling: Wine theme instead of black --- */
.woocommerce-MyAccount-content input[type="submit"],
.woocommerce-MyAccount-content button[type="submit"],
.woocommerce-MyAccount-content .button,
.woocommerce-MyAccount-content .woocommerce-button {
    background: #8c0f42 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 6px !important;
    padding: 12px 28px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    transition: background 0.2s ease !important;
    cursor: pointer;
}
.woocommerce-MyAccount-content input[type="submit"]:hover,
.woocommerce-MyAccount-content button[type="submit"]:hover,
.woocommerce-MyAccount-content .button:hover {
    background: #6e0c34 !important;
}

/* Cancel edit link */
.cancel-edit-link {
    display: inline-block;
    margin-left: 16px;
    color: #777 !important;
    font-size: 14px;
    text-decoration: none !important;
    vertical-align: middle;
    line-height: 42px;
}
.cancel-edit-link:hover {
    color: #8c0f42 !important;
    text-decoration: underline !important;
}

/* --- 4.6 Form field consistency --- */
.woocommerce-MyAccount-content .form-row input[type="text"],
.woocommerce-MyAccount-content .form-row input[type="email"],
.woocommerce-MyAccount-content .form-row input[type="tel"],
.woocommerce-MyAccount-content .form-row input[type="password"],
.woocommerce-MyAccount-content .form-row input[type="number"],
.woocommerce-MyAccount-content .form-row textarea,
.woocommerce-MyAccount-content .form-row select,
.woocommerce-MyAccount-content .form-row .select2-selection {
    width: 100% !important;
    padding: 10px 14px !important;
    border: 1px solid #ddd !important;
    border-radius: 6px !important;
    font-size: 14px !important;
    color: #333 !important;
    background: #fff !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
    box-sizing: border-box !important;
}
.woocommerce-MyAccount-content .form-row input:focus,
.woocommerce-MyAccount-content .form-row textarea:focus,
.woocommerce-MyAccount-content .form-row select:focus {
    border-color: #8c0f42 !important;
    box-shadow: 0 0 0 3px rgba(140, 15, 66, 0.08) !important;
    outline: none !important;
}
.woocommerce-MyAccount-content .form-row label {
    font-size: 14px !important;
    font-weight: 500 !important;
    color: #333 !important;
    margin-bottom: 4px !important;
    display: block !important;
}
.woocommerce-MyAccount-content .form-row {
    margin-bottom: 16px !important;
}

/* --- 4.9 Success/error/info message styling --- */
.woocommerce-MyAccount-content .woocommerce-message,
.woocommerce-account .woocommerce-message {
    background: #d4edda !important;
    color: #155724 !important;
    border: 1px solid #c3e6cb !important;
    border-top: none !important;
    border-left: 4px solid #28a745 !important;
    padding: 14px 18px !important;
    border-radius: 6px !important;
    margin-bottom: 20px !important;
    font-size: 14px !important;
}
.woocommerce-MyAccount-content .woocommerce-error,
.woocommerce-account .woocommerce-error {
    background: #f8d7da !important;
    color: #721c24 !important;
    border: 1px solid #f5c6cb !important;
    border-top: none !important;
    border-left: 4px solid #dc3545 !important;
    padding: 14px 18px !important;
    border-radius: 6px !important;
    margin-bottom: 20px !important;
    font-size: 14px !important;
}
.woocommerce-MyAccount-content .woocommerce-info,
.woocommerce-account .woocommerce-info {
    background: #f9f3f6 !important;
    color: #5a0d2d !important;
    border: 1px solid #e8d4de !important;
    border-top: none !important;
    border-left: 4px solid #8c0f42 !important;
    padding: 14px 18px !important;
    border-radius: 6px !important;
    margin-bottom: 20px !important;
    font-size: 14px !important;
}

/* --- Empty states --- */
.myaccount-empty-orders,
.woocommerce-MyAccount-content .woocommerce-info {
    text-align: center;
}

/* --- Address cards styling --- */
.woocommerce-MyAccount-content .woocommerce-Addresses .woocommerce-Address {
    border: 1px solid #e8e4e6;
    border-radius: 8px;
    padding: 20px;
    margin-bottom: 16px;
}
.woocommerce-MyAccount-content .woocommerce-Address-title h3 {
    font-family: 'Marcellus', serif;
    font-size: 16px;
    color: #1a1a1a;
    margin-bottom: 8px;
}
.woocommerce-MyAccount-content .woocommerce-Address-title .edit {
    color: #8c0f42 !important;
    font-size: 13px;
    text-decoration: none !important;
}
.woocommerce-MyAccount-content .woocommerce-Address-title .edit:hover {
    text-decoration: underline !important;
}

/* --- Orders table styling --- */
.woocommerce-orders-table {
    border-collapse: collapse !important;
    width: 100% !important;
}
.woocommerce-orders-table th {
    background: #f9f6f1 !important;
    color: #333 !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.03em !important;
    padding: 12px 14px !important;
    text-align: left !important;
}
.woocommerce-orders-table td {
    padding: 12px 14px !important;
    font-size: 14px !important;
    border-bottom: 1px solid #eee !important;
    vertical-align: middle !important;
}
.woocommerce-orders-table td a.woocommerce-button {
    padding: 6px 16px !important;
    font-size: 12px !important;
}

/* --- Wishlist table improvements --- */
.woosw-items .woosw-item {
    border-bottom: 1px solid #eee;
    padding: 12px 0;
}

/* --- Password change section --- */
.woocommerce-MyAccount-content fieldset {
    border: 1px solid #e8e4e6 !important;
    border-radius: 8px !important;
    padding: 20px !important;
    margin-top: 24px !important;
}
.woocommerce-MyAccount-content fieldset legend {
    font-family: 'Marcellus', serif !important;
    font-size: 16px !important;
    color: #1a1a1a !important;
    padding: 0 8px !important;
}

/* =========================================================================
   RECURRING TOTALS — WooCommerce Subscriptions (div-based overrides)
   ========================================================================= */

/* Section wrapper */
.pc-recurring-section {
    margin-top: 8px;
    padding-top: 12px;
    border-top: 1px dashed var(--pc-border-light, #e8e4e6);
}

/* Section header */
.pc-recurring-header {
    font-family: 'Marcellus', serif;
    font-size: 16px;
    font-weight: 400;
    color: var(--pc-text, #1a1a1a);
    margin-bottom: 4px;
    padding-bottom: 8px;
}

/* Recurring rows — inherits .pc-summary-row but lighter border */
.pc-recurring-row {
    border-bottom-style: dashed !important;
}

/* Recurring total row — bold like main total but smaller */
.pc-recurring-total-row {
    border-bottom: none !important;
    padding-top: 14px !important;
    margin-top: 2px;
}
.pc-recurring-total-row .pc-summary-label {
    font-family: 'Marcellus', serif;
    font-size: 16px;
    color: var(--pc-text, #1a1a1a);
    font-weight: 400;
}
.pc-recurring-total-row .pc-summary-value,
.pc-recurring-total-row .pc-summary-value .woocommerce-Price-amount {
    font-family: 'Marcellus', serif !important;
    font-size: 20px !important;
    color: var(--pc-wine, #8c0f42) !important;
    font-weight: 400 !important;
}

/* First renewal date (small note under recurring total) */
.pc-recurring-total-row .pc-summary-value .first-payment-date,
.pc-recurring-total-row .pc-summary-value small {
    display: block;
    font-family: 'Inter', sans-serif !important;
    font-size: 11px !important;
    color: var(--pc-text-secondary, #777) !important;
    font-weight: 400 !important;
    margin-top: 4px;
    line-height: 1.4;
}

/* Hide any leftover table elements that might leak through */
.pc-recurring-section tr,
.pc-recurring-section th,
.pc-recurring-section td {
    display: block !important;
}

/* Mobile adjustments */
@media (max-width: 767px) {
    .pc-recurring-header {
        font-size: 15px;
    }
    .pc-recurring-total-row .pc-summary-value,
    .pc-recurring-total-row .pc-summary-value .woocommerce-Price-amount {
        font-size: 18px !important;
    }
}


/* ===== MOBILE AUDIT FIXES (2026-03-18) ===== */

/* --- PDP Mobile: Compact product page layout ---
 * Redesigned for mobile:
 * 1. Smaller title & price
 * 2. Compact quantity selector (fixed width ~110px)
 * 3. ATC button gets remaining space — full text visible
 * 4. Smaller wishlist icon, no border
 * 5. Thinner Quick Buy button
 * ================================================= */
@media (max-width: 767px) {

    /* -- Title & Price -- */
    .single-product .product_title.entry-title {
        font-size: 22px !important;
        margin-bottom: 6px !important;
        line-height: 1.3 !important;
    }
    .single-product .price-single {
        margin-bottom: 10px !important;
    }
    .single-product .price-single .price {
        font-size: 18px !important;
    }

    /* -- Cart form container -- */
    .single-product form.cart {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 6px !important;
        align-items: stretch !important;
    }

    /* -- Quantity-button wrapper (holds qty + ATC) -- */
    .single-product form.cart .quantity-button {
        flex: 1 1 auto !important;
        max-width: calc(100% - 46px) !important; /* room for wishlist */
        min-width: 0 !important;
        display: flex !important;
        flex-direction: row !important;
        gap: 6px !important;
    }

    /* -- Quantity selector: compact fixed width --
     * B2 (2026-05-19): widened from 100px → 116px so the right "+" button is
     * never clipped behind the ADICIONAR AO CARRINHO button. Also drops the
     * font-size:0 + ::before icon-font trick that B1 retired on desktop —
     * literal "+" / "-" text rendered in Arial is more robust against
     * combined-CSS regressions on Hostinger. */
    .single-product form.cart .quantity-button .quantity {
        width: 116px !important;
        min-width: 116px !important;
        max-width: 116px !important;
        flex-shrink: 0 !important;
        overflow: visible !important;
        height: 40px !important;
        border: 1px solid #ccc !important;
        border-radius: 4px !important;
    }
    .single-product form.cart .quantity-button .quantity input.qty {
        flex: 1 1 auto !important;
        min-width: 36px !important;
        width: 36px !important;
        height: 38px !important;
        font-size: 14px !important;
        padding: 0 2px !important;
    }
    .single-product form.cart .quantity-button .quantity .minus,
    .single-product form.cart .quantity-button .quantity .plus {
        width: 38px !important;
        height: 38px !important;
        font-family: Arial, "Helvetica Neue", sans-serif !important;
        font-size: 18px !important;
        line-height: 1 !important;
        color: #333 !important;
        text-indent: 0 !important;
        padding: 0 !important;
        background: none !important;
        border: none !important;
        box-shadow: none !important;
        border-radius: 0 !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        overflow: visible !important;
    }
    /* Cancel any inherited icon-font pseudo-element from the parent theme. */
    .single-product form.cart .quantity-button .quantity .minus::before,
    .single-product form.cart .quantity-button .quantity .plus::before,
    .single-product form.cart .quantity-button .quantity .minus::after,
    .single-product form.cart .quantity-button .quantity .plus::after {
        content: none !important;
    }

    /* -- ATC button: takes remaining space, full text visible -- */
    .single-product form.cart .quantity-button .single_add_to_cart_button {
        flex: 1 1 auto !important;
        min-width: 0 !important;
        font-size: 11px !important;
        padding: 8px 10px !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        height: 40px !important;
        line-height: 1.2 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        text-transform: uppercase !important;
        letter-spacing: 0.5px !important;
    }

    /* -- Wishlist button: compact, no border -- */
    .single-product form.cart .woosw-btn,
    .single-product form.cart .woosw-btn:focus,
    .single-product form.cart .woosw-btn:active {
        flex: 0 0 40px !important;
        width: 40px !important;
        height: 40px !important;
        min-width: 40px !important;
        padding: 0 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        border: none !important;
        outline: none !important;
        background: none !important;
        box-shadow: none !important;
        border-radius: 0 !important;
        font-size: 0 !important;  /* hide text */
        -webkit-appearance: none !important;
    }
    .single-product form.cart .woosw-btn::before {
        font-size: 20px !important;
    }

    /* -- Quick Buy (Comprar Agora): thinner -- */
    .single-product form.cart .button.quick-buy {
        flex: 0 0 100% !important;
        height: 38px !important;
        font-size: 13px !important;
        padding: 0 12px !important;
        line-height: 38px !important;
        letter-spacing: 1px !important;
    }

    /* -- Trust badges: tighter -- */
    .single-product .pdc-trust-badges {
        margin-top: 10px !important;
        margin-bottom: 8px !important;
        gap: 8px !important;
    }
    .single-product .pdc-trust-badges .trust-icon {
        font-size: 20px !important;
    }
    .single-product .pdc-trust-badges .trust-label {
        font-size: 11px !important;
    }

    /* -- Product meta (Category/Brand): compact -- */
    .single-product .product_meta {
        font-size: 13px !important;
        margin-top: 8px !important;
        margin-bottom: 8px !important;
        line-height: 1.6 !important;
    }

    /* -- Social share: compact -- */
    .single-product .pdc-share {
        margin-top: 6px !important;
        margin-bottom: 6px !important;
    }
}

/* --- H5: Category carousel label truncated on mobile ---
 * "Promoções E Lançamentos" gets cut off in the horizontal scroll.
 * Allow wrapping and set a sensible min-width for each category card. */
.elementor-widget-wpr-grid .product-cat-name,
.bwp-category-box .item-product-cat-content .product-cat-name,
.bwp-category-box .item-product-cat-content .cat-name,
.product-cat-content .product-cat-name,
.category-name,
.cat-name {
    white-space: normal !important;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
    text-align: center !important;
    font-size: 13px !important;
    line-height: 1.3 !important;
}
@media (max-width: 767px) {
    .bwp-category-box .item-product-cat,
    .product-cat-wrap {
        min-width: 90px !important;
        max-width: 110px !important;
    }
}

/* --- M2: My Account orders table TOTAL column clipped ---
 * Table overflows viewport — make it horizontally scrollable. */
.woocommerce-MyAccount-content table.woocommerce-orders-table,
.woocommerce-MyAccount-content table.shop_table {
    display: block !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    width: 100% !important;
}
.woocommerce-MyAccount-content table.woocommerce-orders-table thead,
.woocommerce-MyAccount-content table.woocommerce-orders-table tbody,
.woocommerce-MyAccount-content table.shop_table thead,
.woocommerce-MyAccount-content table.shop_table tbody {
    min-width: 500px !important;
    display: table !important;
    width: 100% !important;
}

/* --- M3: Checkout tab label "Acompanhar Encomend..." truncated ---
 * Make the checkout step tabs scrollable on mobile. */
@media (max-width: 767px) {
    .woocommerce-page-header,
    .bwp-checkout-page .checkout-tabs,
    .checkout-tabs {
        display: flex !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
        flex-wrap: nowrap !important;
        gap: 4px !important;
        padding-bottom: 4px !important;
    }
    .woocommerce-page-header a,
    .bwp-checkout-page .checkout-tabs li,
    .checkout-tabs li {
        flex-shrink: 0 !important;
        white-space: nowrap !important;
        font-size: 12px !important;
    }
}

/* ===== HOMEPAGE CATEGORY TABS — horizontal scrollable pills on mobile ===== */
@media (max-width: 767px) {
    .bwp-filter-homepage.tab-category-default .bwp-filter-heading .category-tab-nav {
        display: flex !important;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        flex-wrap: nowrap !important;
        gap: 8px;
        padding-bottom: 4px;
    }
    .bwp-filter-homepage.tab-category-default .bwp-filter-heading .category-tab-nav::-webkit-scrollbar {
        display: none;
    }
    .bwp-filter-homepage.tab-category-default .bwp-filter-heading .filter-category {
        display: flex !important;
        flex-wrap: nowrap !important;
        gap: 8px;
        padding: 0;
        margin: 0;
        list-style: none;
    }
    .bwp-filter-homepage.tab-category-default .bwp-filter-heading .filter-category li {
        margin: 0 !important;
        display: inline-flex !important;
        width: auto !important;
        padding: 0 !important;
        background: none !important;
        flex-shrink: 0;
    }
    .bwp-filter-homepage.tab-category-default .filter-category li a {
        display: inline-block;
        padding: 8px 20px !important;
        border-radius: 20px;
        font-size: 14px !important;
        white-space: nowrap;
        background: #f5f5f5;
        color: #333;
        text-decoration: none;
        transition: all 0.2s ease;
    }
    .bwp-filter-homepage.tab-category-default .filter-category li.active a {
        background: #8c0f42 !important;
        color: #fff !important;
    }
}

/* ===== CATEGORY PAGE BANNER — full width on mobile ===== */
@media (max-width: 767px) {
    .bwp-category-banner,
    .bwp-breadcrumb,
    .woocommerce-products-header,
    .page-title-wrapper,
    .category-banner,
    .archive .bwp-banner {
        width: 100% !important;
        overflow: hidden;
    }
    .bwp-category-banner img,
    .category-banner img,
    .archive .bwp-banner img {
        width: 100% !important;
        height: auto !important;
        object-fit: cover;
    }
}

/* ===== PDP TABS — horizontal scrollable on mobile ===== */
@media (max-width: 767px) {
    .woocommerce-tabs ul.tabs,
    .wc-tabs {
        display: flex !important;
        flex-wrap: nowrap !important;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        gap: 0;
        padding: 0;
        margin: 0;
        list-style: none;
        border-bottom: 2px solid #eee;
    }
    .woocommerce-tabs ul.tabs::-webkit-scrollbar,
    .wc-tabs::-webkit-scrollbar {
        display: none;
    }
    .woocommerce-tabs ul.tabs li,
    .wc-tabs li {
        flex-shrink: 0;
        margin: 0 !important;
        padding: 0 !important;
        border: none !important;
        background: none !important;
    }
    .woocommerce-tabs ul.tabs li a,
    .wc-tabs li a {
        display: block;
        padding: 10px 16px !important;
        font-size: 14px;
        white-space: nowrap;
        color: #666;
        text-decoration: none;
        border-bottom: 2px solid transparent;
        margin-bottom: -2px;
    }
    .woocommerce-tabs ul.tabs li.active a,
    .wc-tabs li.active a {
        color: #8c0f42;
        border-bottom-color: #8c0f42;
        font-weight: 600;
    }
}

/* ===== FOOTER MOBILE — Center Siga-nos & Payment Methods ===== */
@media (max-width: 767px) {
    /* Siga-nos + Métodos de Pagamento container */
    .elementor-element-5b67202 {
        text-align: center;
        align-items: center !important;
    }
    .elementor-element-5b67202 .elementor-heading-title {
        text-align: center !important;
    }
    .elementor-element-5b67202 .elementor-widget-social-icons,
    .elementor-element-5b67202 .elementor-social-icons-wrapper {
        justify-content: center !important;
    }
    .elementor-element-5b67202 .elementor-widget-image {
        text-align: center !important;
    }
    .elementor-element-5b67202 .elementor-widget-image img {
        margin: 0 auto;
    }
}

/* =====================================================================
   SPRINT 6A: E2E Purchase Flow CSS Fixes
   ===================================================================== */

/* 6A-1: Hide duplicate heading on orders page */
.woocommerce-MyAccount-content .myaccount-page-heading {
    display: none !important;
}

/* 6A-4: Fix order detail table header — dark text on dark background */
/* 6A-4: Order DETAIL table header (not the orders LIST) */
.woocommerce-MyAccount-content .woocommerce-table--order-details thead th,
.woocommerce-MyAccount-content .woocommerce-table--order-details thead td,
.woocommerce-MyAccount-content .shop_table.order_details thead th,
table.woocommerce-table.order_details thead th {
    color: #fff !important;
    background: #3b3b38 !important;
    font-weight: 600 !important;
    padding: 12px 16px !important;
}

/* 6A-5: Style checkout dropdowns to match wine theme */
.woocommerce-checkout select,
.woocommerce-checkout .select2-container .select2-selection--single {
    border: 1.5px solid #ddd !important;
    border-radius: 6px !important;
    padding: 10px 14px !important;
    height: auto !important;
    min-height: 48px;
    font-size: 15px;
    color: #333;
    background: #fff;
    transition: border-color 0.2s ease;
}
.woocommerce-checkout select:focus,
.woocommerce-checkout .select2-container--focus .select2-selection--single {
    border-color: #8c0f42 !important;
    outline: none;
    box-shadow: 0 0 0 2px rgba(140, 15, 66, 0.1);
}
.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__rendered {
    line-height: 28px !important;
    padding: 0 !important;
    color: #333;
}
.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__arrow {
    height: 100% !important;
    right: 8px;
}
/* Select2 dropdown matches theme */
.select2-dropdown {
    border: 1.5px solid #ddd !important;
    border-radius: 6px !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}
.select2-results__option--highlighted[aria-selected] {
    background-color: #8c0f42 !important;
    color: #fff !important;
}
.select2-search--dropdown .select2-search__field {
    border: 1.5px solid #ddd !important;
    border-radius: 4px !important;
    padding: 8px 12px;
}
.select2-search--dropdown .select2-search__field:focus {
    border-color: #8c0f42 !important;
    outline: none;
}

/* 6A-6: Fix checkout order summary overflow on mobile */
@media (max-width: 767px) {
    .bwp-checkout-page .order-review,
    .woocommerce-checkout-review-order,
    .checkout-review-order-table,
    .woocommerce-checkout .order-summary-wrapper {
        max-height: 50vh;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        border: 1px solid #eee;
        border-radius: 8px;
        padding: 12px;
    }
}

/* Order detail — return/refund action box */
.order-actions-extra {
    margin: 20px 0;
    padding: 16px;
    background: #faf5f7;
    border-radius: 8px;
    border-left: 3px solid #8c0f42;
}

/* 6B-1: Order status timeline */
.order-status-timeline {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin: 0 0 30px;
    padding: 20px 0;
    position: relative;
}
.order-status-timeline::before {
    content: '';
    position: absolute;
    top: 36px;
    left: 10%;
    right: 10%;
    height: 3px;
    background: #e0e0e0;
    z-index: 0;
}
.timeline-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
    z-index: 1;
    flex: 1;
}
.timeline-icon {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    background: #f0f0f0;
    border: 3px solid #e0e0e0;
    margin-bottom: 8px;
}
.timeline-step.completed .timeline-icon {
    background: #eaf7ea;
    border-color: #2a7d2a;
}
.timeline-step.active .timeline-icon {
    background: #faf0f4;
    border-color: #8c0f42;
    box-shadow: 0 0 0 4px rgba(140, 15, 66, 0.15);
    transform: scale(1.1);
}
.timeline-step.pending .timeline-icon {
    opacity: 0.5;
}
.timeline-label {
    font-size: 11px;
    font-weight: 600;
    color: #999;
    text-align: center;
    max-width: 80px;
}
.timeline-step.completed .timeline-label { color: #2a7d2a; }
.timeline-step.active .timeline-label { color: #8c0f42; font-weight: 700; }

@media (max-width: 480px) {
    .timeline-label { font-size: 9px; max-width: 55px; }
    .timeline-icon { width: 32px; height: 32px; font-size: 14px; }
}

/* Cancel button styling on order detail */
.woocommerce-MyAccount-content .cancel {
    display: inline-block;
    padding: 8px 20px;
    background: #f0f0f0;
    color: #c00;
    border-radius: 6px;
    text-decoration: none;
    font-size: 14px;
    font-weight: 500;
    transition: background 0.2s;
    margin-top: 12px;
}
.woocommerce-MyAccount-content .cancel:hover {
    background: #fee;
}

/* ===== ORDERS TABLE — Modern Card Redesign ===== */
.woocommerce-MyAccount-content table.woocommerce-orders-table,
.woocommerce-MyAccount-content table.my_account_orders,
table.woocommerce-orders-table.shop_table {
    border-collapse: separate !important;
    border-spacing: 0 8px !important;
    border: none !important;
    width: 100%;
}
/* Orders list thead — transparent bg, grid layout */
.woocommerce-MyAccount-content table.woocommerce-orders-table > thead,
.woocommerce-MyAccount-content table.my_account_orders > thead,
table.shop_table.my_account_orders > thead {
    display: block !important;
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
    visibility: visible !important;
    height: auto !important;
    overflow: visible !important;
}
.woocommerce-MyAccount-content table.woocommerce-orders-table > thead > tr,
.woocommerce-MyAccount-content table.my_account_orders > thead > tr,
table.shop_table.my_account_orders > thead > tr {
    display: grid !important;
    grid-template-columns: 80px 110px 1fr 130px 130px;
    padding: 0 16px;
    background: transparent !important;
    border: none !important;
}
.woocommerce-MyAccount-content table.woocommerce-orders-table > thead th,
.woocommerce-MyAccount-content table.my_account_orders > thead th,
table.shop_table.my_account_orders > thead th {
    background: transparent !important;
    background-color: transparent !important;
    color: #999 !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.8px;
    padding: 10px 6px !important;
    border: none !important;
    display: block !important;
    border-bottom: 1px solid #eee !important;
}
/* Each row = card */
/* Each row = card with CSS grid for perfect column alignment */
.woocommerce-MyAccount-content table.woocommerce-orders-table tbody tr,
table.shop_table.my_account_orders tbody tr {
    display: grid !important;
    grid-template-columns: 80px 110px 1fr 130px 130px;
    align-items: center;
    padding: 14px 16px;
    background: #fff;
    border: 1px solid #eee;
    border-radius: 10px;
    transition: box-shadow 0.2s, border-color 0.2s;
}
table.shop_table.my_account_orders tbody tr:hover {
    border-color: #ddd;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}
table.shop_table.my_account_orders td {
    border: none !important;
    padding: 0 6px !important;
    background: none !important;
}
/* Order number — no background box */
td.woocommerce-orders-table__cell-order-number {
    font-weight: 700;
    font-size: 14px;
}
td.woocommerce-orders-table__cell-order-number a {
    color: #8c0f42 !important;
    text-decoration: none !important;
    background: none !important;
    padding: 0 !important;
    border: none !important;
}
/* Date */
td.woocommerce-orders-table__cell-order-date {
    color: #777;
    font-size: 13px;
}
/* Status — centered in its column */
td.woocommerce-orders-table__cell-order-status {
    text-align: center;
    justify-self: center;
}
/* Total — right-aligned */
td.woocommerce-orders-table__cell-order-total {
    font-weight: 700;
    font-size: 14px;
    color: #1a1a1a;
    text-align: right;
}
/* Actions — right-aligned icons */
td.woocommerce-orders-table__cell-order-actions {
    display: flex !important;
    gap: 6px;
    align-items: center;
    justify-content: flex-end;
}
/* ---- Icon buttons: hide text, show emoji icon ---- */
td.woocommerce-orders-table__cell-order-actions a,
td.woocommerce-orders-table__cell-order-actions a.button,
td.woocommerce-orders-table__cell-order-actions .button,
td.woocommerce-orders-table__cell-order-actions a.woocommerce-button,
td.woocommerce-orders-table__cell-order-actions a.woocommerce-button.button,
.woocommerce-MyAccount-content td.woocommerce-orders-table__cell-order-actions a.cancel,
.woocommerce-MyAccount-content td.woocommerce-orders-table__cell-order-actions a.pay,
.woocommerce .woocommerce-MyAccount-content td.woocommerce-orders-table__cell-order-actions a,
table.my_account_orders td a.cancel,
table.my_account_orders td a.pay {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 36px !important;
    height: 36px !important;
    max-height: 36px !important;
    min-height: unset !important;
    min-width: 36px !important;
    padding: 0 !important;
    margin: 0 !important;
    font-size: 0 !important;
    line-height: 1 !important;
    color: transparent !important;
    text-indent: -9999px;
    border-radius: 8px !important;
    box-sizing: border-box !important;
    transition: all 0.15s;
    position: relative;
    text-decoration: none !important;
}
/* View — eye SVG icon */
td.woocommerce-orders-table__cell-order-actions a.view,
td.woocommerce-orders-table__cell-order-actions a.button:not(.cancel):not(.pay) {
    background: #f9f9f9 !important;
    border: 1.5px solid #ddd !important;
}
td.woocommerce-orders-table__cell-order-actions a.view::after,
td.woocommerce-orders-table__cell-order-actions a.button:not(.cancel):not(.pay)::after {
    content: '';
    width: 18px;
    height: 18px;
    text-indent: 0;
    position: absolute;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%238c0f42' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") no-repeat center;
}
td.woocommerce-orders-table__cell-order-actions a.view:hover,
td.woocommerce-orders-table__cell-order-actions a.button:not(.cancel):not(.pay):hover {
    background: #f0dce5 !important;
    border-color: #8c0f42 !important;
}
/* Cancel — X icon (nuclear specificity) */
td.woocommerce-orders-table__cell-order-actions a.cancel,
td.woocommerce-orders-table__cell-order-actions a.woocommerce-button.button.cancel,
.woocommerce-MyAccount-content td a.cancel,
.woocommerce-MyAccount-content td a.woocommerce-button.cancel,
.woocommerce .woocommerce-MyAccount-content td a.cancel,
table.my_account_orders td a.cancel,
table.my_account_orders td a.woocommerce-button.cancel {
    background: #f8f8f8 !important;
    border: 1.5px solid #e0e0e0 !important;
    width: 36px !important;
    height: 36px !important;
    max-height: 36px !important;
    min-width: 36px !important;
    min-height: unset !important;
    padding: 0 !important;
}
td.woocommerce-orders-table__cell-order-actions a.cancel::after,
.woocommerce-MyAccount-content td a.cancel::after,
table.my_account_orders td a.cancel::after {
    content: '';
    width: 16px;
    height: 16px;
    text-indent: 0;
    position: absolute;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2.5' stroke-linecap='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E") no-repeat center;
}
td.woocommerce-orders-table__cell-order-actions a.cancel:hover,
.woocommerce-MyAccount-content td a.cancel:hover,
table.my_account_orders td a.cancel:hover {
    background: #fff0f0 !important;
    border-color: #e66 !important;
}
td.woocommerce-orders-table__cell-order-actions a.cancel:hover::after {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23c00' stroke-width='2.5' stroke-linecap='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E");
}
/* Pay — card SVG icon (same light style as others) */
td.woocommerce-orders-table__cell-order-actions a.pay,
td.woocommerce-orders-table__cell-order-actions a.woocommerce-button.button.pay,
.woocommerce-MyAccount-content td a.pay,
.woocommerce-MyAccount-content td a.woocommerce-button.pay,
.woocommerce .woocommerce-MyAccount-content td a.pay,
table.my_account_orders td a.pay,
table.my_account_orders td a.woocommerce-button.pay {
    background: #faf0f4 !important;
    border: 1.5px solid #e8c5d4 !important;
    width: 36px !important;
    height: 36px !important;
    max-height: 36px !important;
    min-height: unset !important;
    min-width: 36px !important;
    padding: 0 !important;
}
td.woocommerce-orders-table__cell-order-actions a.pay::after,
.woocommerce-MyAccount-content td a.pay::after,
table.my_account_orders td a.pay::after {
    content: '';
    width: 18px;
    height: 18px;
    text-indent: 0;
    position: absolute;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%238c0f42' stroke-width='2' stroke-linecap='round'%3E%3Crect x='1' y='4' width='22' height='16' rx='2' ry='2'/%3E%3Cline x1='1' y1='10' x2='23' y2='10'/%3E%3C/svg%3E") no-repeat center;
}
td.woocommerce-orders-table__cell-order-actions a.pay:hover,
.woocommerce-MyAccount-content td a.pay:hover,
table.my_account_orders td a.pay:hover {
    background: #6d0b33 !important;
}

/* ---- Search box ---- */
.dopa-orders-search {
    position: relative;
    max-width: 220px;
}
.dopa-orders-search input {
    width: 100%;
    padding: 9px 14px 9px 36px;
    border: 1.5px solid #ddd;
    border-radius: 8px;
    font-size: 13px;
    outline: none;
    transition: border-color 0.2s;
    box-sizing: border-box;
    background: #fafafa url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E") no-repeat 12px center;
}
.dopa-orders-search input:focus {
    border-color: #8c0f42;
    background-color: #fff;
}

/* Mobile: 2-column grid */
@media (max-width: 767px) {
    .woocommerce-MyAccount-content table.woocommerce-orders-table tbody tr,
    table.shop_table.my_account_orders tbody tr {
        grid-template-columns: auto 1fr !important;
        grid-template-rows: auto auto auto;
        gap: 4px 10px;
        padding: 12px 14px;
    }
    td.woocommerce-orders-table__cell-order-number { grid-column: 1; grid-row: 1; }
    td.woocommerce-orders-table__cell-order-date { grid-column: 2; grid-row: 1; text-align: right; }
    td.woocommerce-orders-table__cell-order-status { grid-column: 1; grid-row: 2; text-align: left; justify-self: start; }
    td.woocommerce-orders-table__cell-order-total { grid-column: 2; grid-row: 2; text-align: right; }
    td.woocommerce-orders-table__cell-order-actions {
        grid-column: 1 / -1;
        grid-row: 3;
        justify-content: flex-end;
        padding-top: 8px !important;
        border-top: 1px solid #f0f0f0;
        margin-top: 4px;
    }
}

/* ===== ORDERS TOOLBAR — filter pills ===== */
.dopa-orders-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 16px;
    gap: 12px;
    flex-wrap: wrap;
}
.dopa-orders-filters {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}
.dopa-filter-pill {
    display: inline-block;
    padding: 6px 16px;
    font-size: 13px;
    font-weight: 500;
    color: #666;
    background: #f5f5f5;
    border: 1.5px solid transparent;
    border-radius: 20px;
    text-decoration: none !important;
    transition: all 0.2s;
    white-space: nowrap;
}
.dopa-filter-pill:hover {
    background: #faf0f4;
    color: #8c0f42;
    border-color: #e8c5d4;
}
.dopa-filter-pill.active,
.woocommerce-MyAccount-content a.dopa-filter-pill.active,
.woocommerce-MyAccount-content span.dopa-filter-pill.active,
a.dopa-filter-pill.active,
span.dopa-filter-pill.active {
    background: #8c0f42 !important;
    color: #fff !important;
    border-color: #8c0f42 !important;
}

@media (max-width: 767px) {
    .dopa-orders-toolbar {
        flex-direction: column;
        align-items: stretch;
    }
    .dopa-orders-filters {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        flex-wrap: nowrap;
        padding-bottom: 4px;
    }
}

/* ===== ORDERS PAGINATION ===== */
.dopa-orders-pagination {
    display: flex;
    justify-content: center;
    gap: 6px;
    margin: 24px 0 8px;
    flex-wrap: wrap;
}
.dopa-page-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 12px;
    border: 1.5px solid #ddd;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 500;
    color: #333;
    text-decoration: none !important;
    transition: all 0.2s;
}
.dopa-page-link:hover {
    border-color: #8c0f42;
    color: #8c0f42;
    background: #faf0f4;
}
.woocommerce-MyAccount-content .dopa-page-link.current,
.dopa-orders-pagination a.dopa-page-link.current,
a.dopa-page-link.current {
    background: #8c0f42 !important;
    color: #fff !important;
    border-color: #8c0f42 !important;
    font-weight: 700;
}

/* ===== SUBSCRIPTIONS TABLE — override grid for 5 columns ===== */
.woocommerce-MyAccount-content table.my_account_subscriptions > thead,
table.shop_table.my_account_subscriptions > thead {
    display: block !important;
    background: transparent !important;
    border: none !important;
}
.woocommerce-MyAccount-content table.my_account_subscriptions > thead > tr,
.woocommerce-MyAccount-content table.my_account_subscriptions > tbody > tr,
table.shop_table.my_account_subscriptions > thead > tr,
table.shop_table.my_account_subscriptions > tbody > tr {
    grid-template-columns: 80px 70px 1fr 170px 50px !important;
}
.woocommerce-MyAccount-content table.my_account_subscriptions > thead th,
table.shop_table.my_account_subscriptions > thead th {
    background: transparent !important;
    color: #999 !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.8px;
    padding: 10px 6px !important;
    border: none !important;
    border-bottom: 1px solid #eee !important;
    display: block !important;
}

/* ===== GLOBAL: Maroon buttons must have white text ===== */
.woocommerce-MyAccount-content .button,
.woocommerce-MyAccount-content a.button,
.woocommerce-MyAccount-content .woocommerce-button,
.woocommerce .woocommerce-MyAccount-content .button,
.woocommerce .woocommerce-MyAccount-content a.button {
    color: #fff !important;
}
/* Except outline-style buttons (view icons etc) */
.woocommerce-MyAccount-content .button.view,
.woocommerce-MyAccount-content a.button.cancel {
    color: transparent !important;
}

/* ===== SUBSCRIPTIONS PAGE ===== */
/* Empty state */
.woocommerce-MyAccount-content .woocommerce-message.woocommerce-message--info,
.woocommerce-MyAccount-content .woocommerce-info {
    text-align: center;
    padding: 40px 24px !important;
    background: #faf8f5 !important;
    border: 1px solid #ece5dc !important;
    border-radius: 12px !important;
    color: #777 !important;
    font-size: 15px;
    margin-bottom: 20px !important;
}
.woocommerce-MyAccount-content .woocommerce-message.woocommerce-message--info::before,
.woocommerce-MyAccount-content .woocommerce-info::before {
    content: '🍷' !important;
    display: block !important;
    font-size: 40px;
    margin-bottom: 12px;
    position: static !important;
    float: none !important;
    color: transparent;
}
/* "Explore Products" button */
.woocommerce-MyAccount-content .woocommerce-message.woocommerce-message--info .button,
.woocommerce-MyAccount-content .woocommerce-info .button {
    display: inline-block !important;
    margin-top: 16px;
    padding: 12px 28px !important;
    background: #8c0f42 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 8px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    text-decoration: none !important;
    float: none !important;
}
.woocommerce-MyAccount-content .woocommerce-message.woocommerce-message--info .button:hover,
.woocommerce-MyAccount-content .woocommerce-info .button:hover {
    background: #6d0b33 !important;
    color: #fff !important;
}

/* WooCommerce Next/Previous buttons — match pagination style */
.woocommerce-MyAccount-content .woocommerce-button--next,
.woocommerce-MyAccount-content .woocommerce-button--previous,
.woocommerce-MyAccount-content .woocommerce-Button--next,
.woocommerce-MyAccount-content .woocommerce-Button--previous,
.woocommerce-MyAccount-content a.woocommerce-button.woocommerce-button--next,
.woocommerce-MyAccount-content a.woocommerce-button.woocommerce-button--previous,
.woocommerce .woocommerce-MyAccount-content a.woocommerce-button--next,
.woocommerce .woocommerce-MyAccount-content a.woocommerce-button--previous {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 20px !important;
    height: 40px !important;
    min-height: unset !important;
    max-height: 40px !important;
    background: #8c0f42 !important;
    color: #fff !important;
    border: 1.5px solid #8c0f42 !important;
    border-radius: 8px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 12px;
}
.woocommerce-MyAccount-content .woocommerce-button--next:hover,
.woocommerce-MyAccount-content .woocommerce-button--previous:hover,
.woocommerce-MyAccount-content .woocommerce-Button--next:hover,
.woocommerce-MyAccount-content .woocommerce-Button--previous:hover,
.woocommerce .woocommerce-MyAccount-content a.woocommerce-button--next:hover,
.woocommerce .woocommerce-MyAccount-content a.woocommerce-button--previous:hover {
    background: #6d0b33 !important;
    color: #fff !important;
}

/* ===== MY ACCOUNT DASHBOARD — Alignment & Styling ===== */
.myaccount-dashboard-welcome {
    padding: 0 0 20px;
}
.myaccount-dashboard-welcome h2 {
    font-size: 28px;
    font-weight: 700;
    color: #1a1a1a;
    margin: 0 0 8px;
}
.myaccount-dashboard-welcome p {
    font-size: 15px;
    color: #777;
    margin: 0;
    line-height: 1.5;
}
.myaccount-quick-actions {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    margin: 24px 0 32px;
}
.quick-action-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 20px 12px;
    background: #fff;
    border: 1.5px solid #eee;
    border-radius: 10px;
    text-decoration: none !important;
    color: #333 !important;
    transition: border-color 0.2s, box-shadow 0.2s;
}
.quick-action-card:hover {
    border-color: #8c0f42;
    box-shadow: 0 2px 12px rgba(140, 15, 66, 0.08);
}
.quick-action-icon {
    font-size: 24px !important;
    width: 24px !important;
    height: 24px !important;
    color: #8c0f42;
}
.quick-action-label {
    font-size: 13px;
    font-weight: 600;
}
.myaccount-recent-orders {
    margin-top: 8px;
}
.myaccount-recent-orders h3 {
    font-size: 18px;
    font-weight: 700;
    color: #1a1a1a;
    margin: 0 0 14px;
}
.myaccount-recent-orders .shop_table {
    width: 100%;
    border-collapse: collapse;
}
.myaccount-recent-orders .shop_table thead th {
    color: #fff !important;
    background: #3b3b38 !important;
    font-weight: 600 !important;
    padding: 12px 16px !important;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.myaccount-recent-orders .shop_table td {
    padding: 12px 16px;
    border-bottom: 1px solid #f0f0f0;
    font-size: 14px;
}
.view-all-orders {
    display: inline-block;
    margin-top: 14px;
    color: #8c0f42 !important;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none !important;
}
.view-all-orders:hover {
    text-decoration: underline !important;
}

@media (max-width: 767px) {
    .myaccount-quick-actions {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
    }
    .quick-action-card {
        padding: 16px 10px;
    }
    .myaccount-dashboard-welcome h2 {
        font-size: 22px;
    }
}

/* ===== REFUND REQUEST FORM — Premium Design ===== */
.dopa-refund-page {
    max-width: 640px;
    margin: 0 auto 60px;
    font-family: 'Inter', -apple-system, sans-serif;
}
.dopa-refund-header {
    text-align: center;
    margin-bottom: 36px;
    padding-bottom: 28px;
    border-bottom: 1px solid #eee;
}
.dopa-refund-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: #faf0f4;
    margin-bottom: 16px;
}
.dopa-refund-title {
    font-size: 28px;
    font-weight: 700;
    color: #1a1a1a;
    margin: 0 0 10px;
}
.dopa-refund-subtitle {
    font-size: 15px;
    color: #777;
    line-height: 1.6;
    max-width: 480px;
    margin: 0 auto;
}

/* Success state */
.dopa-refund-success {
    text-align: center;
    padding: 40px 24px;
    background: #f0faf0;
    border-radius: 12px;
    border: 1px solid #c3e6c3;
}
.dopa-success-icon { margin-bottom: 16px; }
.dopa-refund-success h3 {
    font-size: 22px;
    color: #2a7d2a;
    margin: 0 0 10px;
}
.dopa-refund-success p {
    color: #555;
    font-size: 15px;
    line-height: 1.6;
    margin: 0 0 24px;
}

/* Error */
.dopa-refund-error {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 18px;
    background: #fff5f5;
    border: 1px solid #fcc;
    border-radius: 8px;
    color: #c00;
    font-size: 14px;
    margin-bottom: 24px;
}

/* Form */
.dopa-refund-form {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 12px;
    padding: 32px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.04);
}
.dopa-form-group {
    margin-bottom: 24px;
}
.dopa-form-group label {
    display: block;
    font-size: 14px;
    font-weight: 600;
    color: #333;
    margin-bottom: 8px;
}
.dopa-label-icon {
    margin-right: 4px;
}
.dopa-form-group .required {
    color: #8c0f42;
}
.dopa-form-group select {
    display: none !important; /* hidden — replaced by custom dropdown */
}
.dopa-form-group textarea {
    width: 100%;
    padding: 12px 16px;
    border: 1.5px solid #ddd;
    border-radius: 8px;
    font-size: 15px;
    color: #333;
    background: #fafafa;
    transition: border-color 0.2s, box-shadow 0.2s;
    -webkit-appearance: none;
    box-sizing: border-box;
    resize: vertical;
    min-height: 100px;
}
.dopa-form-group textarea:focus {
    border-color: #8c0f42;
    box-shadow: 0 0 0 3px rgba(140, 15, 66, 0.1);
    outline: none;
    background-color: #fff;
}

/* Validation error states */
.dopa-custom-select.error .dopa-select-trigger {
    border-color: #c00 !important;
    box-shadow: 0 0 0 3px rgba(200, 0, 0, 0.1);
    animation: dopa-shake 0.4s ease;
}
.dopa-field-error {
    color: #c00;
    font-size: 13px;
    margin-top: 6px;
    display: flex;
    align-items: center;
    gap: 4px;
}
.dopa-field-error::before {
    content: '⚠';
    font-size: 14px;
}
@keyframes dopa-shake {
    0%, 100% { transform: translateX(0); }
    20% { transform: translateX(-6px); }
    40% { transform: translateX(6px); }
    60% { transform: translateX(-4px); }
    80% { transform: translateX(4px); }
}

/* Custom dropdown */
.dopa-custom-select {
    position: relative;
    width: 100%;
    box-sizing: border-box;
}
.dopa-select-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 13px 16px;
    border: 1.5px solid #ddd;
    border-radius: 8px;
    background: #fafafa;
    cursor: pointer;
    font-size: 15px;
    color: #333;
    transition: border-color 0.2s, box-shadow 0.2s;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
}
.dopa-select-trigger.placeholder {
    color: #999;
}
.dopa-select-trigger:hover {
    border-color: #bbb;
}
.dopa-custom-select.open .dopa-select-trigger {
    border-color: #8c0f42;
    box-shadow: 0 0 0 3px rgba(140, 15, 66, 0.1);
    background: #fff;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}
.dopa-select-arrow {
    transition: transform 0.25s ease;
    flex-shrink: 0;
    margin-left: 8px;
}
.dopa-custom-select.open .dopa-select-arrow {
    transform: rotate(180deg);
}
.dopa-select-options {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 100;
    background: #fff;
    border: 1.5px solid #8c0f42;
    border-top: none;
    border-radius: 0 0 8px 8px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.1);
    max-height: 240px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}
.dopa-custom-select.open .dopa-select-options {
    display: block;
}
.dopa-select-option {
    padding: 12px 16px;
    font-size: 14px;
    color: #333;
    cursor: pointer;
    transition: background 0.15s;
    border-bottom: 1px solid #f5f5f5;
}
.dopa-select-option:last-child {
    border-bottom: none;
}
.dopa-select-option:hover {
    background: #faf0f4;
    color: #8c0f42;
}
.dopa-select-option.selected {
    background: #8c0f42;
    color: #fff;
    font-weight: 600;
}
.dopa-select-option.selected:hover {
    background: #6d0b33;
    color: #fff;
}
.dopa-form-submit {
    margin-top: 28px;
}
.dopa-refund-btn {
    display: inline-block;
    padding: 14px 36px;
    background: #8c0f42 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 8px;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.2s, transform 0.1s;
    -webkit-tap-highlight-color: transparent;
}
.dopa-refund-btn:hover {
    background: #6d0b33 !important;
}
.dopa-refund-btn:active {
    transform: scale(0.98);
}

/* Info box */
.dopa-refund-info {
    margin-top: 32px;
    padding: 24px;
    background: #faf8f5;
    border-radius: 10px;
    border: 1px solid #ece5dc;
}
.dopa-refund-info h4 {
    font-size: 16px;
    font-weight: 700;
    color: #333;
    margin: 0 0 12px;
}
.dopa-refund-info ul {
    list-style: none;
    padding: 0;
    margin: 0 0 14px;
}
.dopa-refund-info li {
    position: relative;
    padding: 6px 0 6px 24px;
    font-size: 14px;
    color: #555;
    line-height: 1.5;
}
.dopa-refund-info li::before {
    content: '•';
    position: absolute;
    left: 8px;
    color: #8c0f42;
    font-weight: bold;
}
.dopa-refund-policy-link {
    font-size: 13px;
    color: #777;
    margin: 0;
}
.dopa-refund-policy-link a {
    color: #8c0f42;
    text-decoration: underline;
}

/* Mobile responsive */
@media (max-width: 767px) {
    .dopa-refund-page {
        margin: 0 auto 40px;
        padding: 0 4px;
    }
    .dopa-refund-header {
        margin-bottom: 24px;
        padding-bottom: 20px;
    }
    .dopa-refund-icon {
        width: 64px;
        height: 64px;
    }
    .dopa-refund-icon svg { width: 36px; height: 36px; }
    .dopa-refund-title { font-size: 22px; }
    .dopa-refund-subtitle { font-size: 14px; }
    .dopa-refund-form {
        padding: 20px 16px;
        border-radius: 10px;
    }
    .dopa-form-group select,
    .dopa-form-group textarea {
        font-size: 16px; /* prevents iOS zoom */
        padding: 14px;
    }
    .dopa-refund-btn {
        width: 100%;
        text-align: center;
        padding: 16px 24px;
    }
    .dopa-refund-info {
        padding: 18px 16px;
    }
}


/* Footer mobile: prevent flex-wrap on column-direction containers (newsletter overlapping Links/Categorias) */
@media (max-width: 767px) {
    .elementor-25475 .elementor-element.elementor-element-ccb6861,
    .elementor-25475 .elementor-element.elementor-element-5d7f839,
    .elementor-25475 .elementor-element.elementor-element-8a7a4a9 {
        --flex-wrap: nowrap !important;
        --flex-wrap-mobile: nowrap !important;
        flex-wrap: nowrap !important;
    }
    /* Spacing breath between newsletter form and Links/Categorias columns */
    .elementor-25475 .elementor-element.elementor-element-205db10 {
        margin-bottom: 24px !important;
    }
}

/* PDP mobile: tighten deadspace between gallery/summary and the tabs section */
@media (max-width: 767px) {
    .single-product .bwp-single-product.zoom {
        margin-bottom: 20px !important;
    }
    .single-product .woocommerce-tabs.wc-tabs-wrapper {
        padding-top: 20px !important;
        padding-bottom: 30px !important;
    }
}

/* ===========================================================================
 * Issue 17 — Deter casual product-image copying (transparent overlay).
 *
 * Layered approach (Brief Option A + B):
 *   • CSS ::after overlay sits on top of product images, intercepting clicks
 *     so the user can't easily right-click → "Save image as" on the image
 *     itself (they hit the overlay).
 *   • user-select / drag prevention via CSS.
 *   • JS in functions.php blocks contextmenu + dragstart on .product img.
 *
 * Doesn't apply to lightbox/zoom interactions because those handlers
 * (woocommerce-product-gallery__trigger, .lightbox) live above z-index 10.
 * Not 100% protection — anyone with devtools can still grab images. Goal
 * per brief: deter casual copying.
 * =========================================================================== */

/* Containers that wrap product images need positioning so ::after can stack */
.products .product .product-thumbnail,
.products .product .woocommerce-LoopProduct-link,
.woocommerce-product-gallery .woocommerce-product-gallery__image,
.bwp-single-product .bwp-single-thumbnail,
.bwp-single-product .images,
.related .product a,
.elementor-widget-woocommerce-product-images .woocommerce-product-gallery__image {
    position: relative;
}

/* The actual transparent overlay */
.products .product .product-thumbnail::after,
.products .product .woocommerce-LoopProduct-link::after,
.woocommerce-product-gallery .woocommerce-product-gallery__image::after,
.bwp-single-product .bwp-single-thumbnail::after,
.related .product a::after,
.elementor-widget-woocommerce-product-images .woocommerce-product-gallery__image::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 10;
    background: transparent;
    pointer-events: auto;
    cursor: inherit; /* don't change cursor — keep the link affordance */
}

/* Prevent text/image selection + drag on product images */
.products .product img,
.woocommerce-product-gallery img,
.bwp-single-product .images img,
.related img,
.elementor-widget-woocommerce-product-images img {
    -webkit-user-select: none !important;
    -moz-user-select: none !important;
    -ms-user-select: none !important;
    user-select: none !important;
    -webkit-user-drag: none !important;
    pointer-events: none; /* image itself is non-interactive; link wrapper handles clicks */
}

/* But re-enable pointer-events on the wrapping link so clicking still works */
.products .product .woocommerce-LoopProduct-link,
.related .product a {
    pointer-events: auto;
}

/* ===========================================================================
 * Issue 7 (part B) — Chat icon overlapping mobile bottom-nav.
 *
 * The mobile bottom-nav is 68px tall and pinned to the viewport bottom with
 * z-index 100001. The chat-bot-launcher was pinned at bottom:15px right:20px
 * with a max z-index, so it covered the rightmost nav items (Conta / Mais).
 *
 * Fix: raise the chat above the nav on viewports where the bottom-nav exists
 * (mobile + small tablet). The launcher's own greeting bubble is raised by
 * the same delta so it doesn't get cut off either.
 * =========================================================================== */
@media (max-width: 1024px) {
    #chat-bot-launcher-container {
        bottom: 84px !important;  /* 68px nav + 16px gap */
        right: 12px !important;
    }
    /* Greeting bubble that pops out of the launcher */
    #chat-bot-message-container {
        bottom: 156px !important; /* keep its original offset above the launcher */
    }
    /* Click-to-Chat for WhatsApp plugin uses a different id when active */
    .ht-ctc.ht-ctc-style-1,
    .ht-ctc[style*="position: fixed"] {
        bottom: 84px !important;
        right: 12px !important;
    }
}

/* ===========================================================================
 * Issue 2 — Visually distinguish the Login form from the Register form on the
 * /my-account/ page. Per Paulino's brief they should have different styling
 * / layout / background so users can tell them apart at a glance.
 *
 * Approach: keep them side-by-side on desktop, give each its own subtle
 * background tint and card treatment. On mobile they stack vertically as
 * before; the colour differentiation remains.
 * =========================================================================== */

/* This theme uses a custom my-account markup: .col2-set.row > .col-lg-6 each
 * wrapping .box-form-login > .box-content > .form-login or .form-register. */

.woocommerce > .col2-set.row {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 32px !important;
    align-items: stretch !important;
    margin: 32px 0 !important;
}

.woocommerce > .col2-set.row > .col-lg-6 {
    flex: 1 1 360px !important;
    min-width: 0 !important;
    max-width: none !important;
}

.box-form-login {
    height: 100% !important;
}
.box-form-login .box-content {
    height: 100% !important;
    padding: 32px 28px !important;
    border-radius: 12px !important;
    box-shadow: 0 4px 18px rgba(0,0,0,0.06) !important;
}

/* LOGIN card — neutral background */
.col-lg-6:has(.form-login) .box-content {
    background: #ffffff !important;
    border: 1px solid #e8e8e8 !important;
}
.col-lg-6:has(.form-login) .box-content h2,
.box-form-login .form-login > h2,
.box-content > h2 {
    color: #2b2b2b !important;
}

/* REGISTER card — branded but understated. B3 (2026-05-19): rebalanced from
 * the old heavy pink tint + bordeaux #722F37 to brand wine #8C0F42 with a
 * much softer cream wash. Goal: register reads as "the right side" of the
 * two-up layout without dominating the login card visually. */
.col-lg-6:has(.form-register) .box-content {
    background: #FBF7F2 !important;
    border: 1.5px solid #8C0F42 !important;
    box-shadow: 0 4px 18px rgba(140,15,66,0.10) !important;
}
.col-lg-6:has(.form-register) .box-content h2 {
    color: #8C0F42 !important;
    border-bottom: 1.5px solid #8C0F42 !important;
    padding-bottom: 14px !important;
    margin-bottom: 20px !important;
}

/* Login + Register submit buttons */
.form-login button[type="submit"] {
    background: #2b2b2b !important;
    border: 1px solid #2b2b2b !important;
    color: #ffffff !important;
}
.form-register button[type="submit"] {
    background: #8C0F42 !important;
    border: 1px solid #8C0F42 !important;
    color: #ffffff !important;
}
.form-register button[type="submit"]:hover {
    background: #4C0521 !important;
    border-color: #4C0521 !important;
}

/* Inputs */
.woocommerce-form-row input.input-text {
    width: 100% !important;
    padding: 10px 12px !important;
    border: 1px solid #d0d0d0 !important;
    border-radius: 6px !important;
    background: #ffffff !important;
}
.woocommerce-form-row input.input-text:focus {
    border-color: #8C0F42 !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(140,15,66,0.12) !important;
}

/* Mobile: stack + tighter padding */
@media (max-width: 767px) {
    .woocommerce > .col2-set.row {
        gap: 18px !important;
    }
    .box-form-login .box-content {
        padding: 22px 18px !important;
        flex: 1 1 100% !important;
    }
}

/* ===========================================================================
 * Issue 1 — Typography consolidation, aligned to the brand kit.
 *
 * Elementor global kit declares two brand typefaces (verified 2026-05-16):
 *   • Primary Headline   → Marcellus (serif, display)
 *   • Secondary Headline → Inter
 *   • Body Text          → Inter
 *   • Accent Text        → Inter
 *
 * Before this fix the site rendered with 5+ fonts (Inter, Poppins, Marcellus,
 * Marcellus SC, Marcellus serif) because individual widgets overrode the kit.
 * We collapse the chaos down to the brand's intended 2-font system:
 * Marcellus on big headings, Inter everywhere else. Marcellus stays for the
 * brand identity; Inter handles UI / body / form fields for legibility.
 * =========================================================================== */
:root {
    --dopa-font-body:    'Inter', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    --dopa-font-heading: 'Marcellus', 'Playfair Display', Georgia, serif;
}

/* Body + UI: Inter — EXCLUDE headings so the brand's Marcellus rule below
 * can win without a specificity arms race.
 * Also exclude <font> (the wrapper Chrome injects when auto-translating the
 * page) so translated heading text inherits Marcellus instead of Inter. */
body,
body *:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6):not(.elementor-heading-title):not(.elementor-slide-heading):not(.entry-title):not(.page-title):not(.product_title):not(.plan-name):not(.section-title):not([data-display-font]):not(i):not(.fa):not([class*="icon"]):not(svg):not(svg *):not(font):not(font *) {
    font-family: var(--dopa-font-body) !important;
}

/* Re-affirm Inter on Elementor widgets / WC / form / nav */
p, span, a, button, label, input, textarea, select, li, td, th,
.elementor-button,
.elementor-widget-container,
.elementor-icon-list-text,
.elementor-image-box-description,
.elementor-slide-description,
.elementor-slide-button,
.woocommerce-loop-product__title,
.woocommerce-Price-amount,
.product_meta,
.entry-content,
.menu-item a,
.e-n-menu-title-text,
nav a, footer a,
.wpcf7-form *,
form.cart *,
.woocommerce-form *,
.elementor-form * {
    font-family: var(--dopa-font-body) !important;
}

/* HEADINGS — back to the brand's Marcellus per kit's Primary Headline */
h1, h2, h3, h4, h5, h6,
.elementor-heading-title,
.elementor-slide-heading,
.elementor-image-box-title,
.entry-title, .page-title, .site-title,
.bwp-single-product .product_title,
.product-title, .woocommerce h1, .woocommerce h2 {
    font-family: var(--dopa-font-heading) !important;
    font-weight: 400;
    letter-spacing: 0;
}

/* Product-card titles -> Marcellus too (brand: ALL headings use Marcellus, in
 * both languages). Legacy Additional CSS forced these to Inter; these mirror
 * those exact selectors with a `body` prefix to out-specify them (the grid
 * rule is !important at specificity 0,5,1). Only font-family is changed. */
body .products-list.grid .product-wapper .products-content h3.product-title,
body .products-list.grid .product-wapper .products-content h3.product-title a,
body .prod-box .items .product-title,
body .prod-box .items .product-title a,
body .new-prod-box .product-title,
body .new-prod-box .product-title a,
body .tab-prod-box .products-content .contents h3.product-title,
body .tab-prod-box .products-content .contents h3.product-title a {
    font-family: var(--dopa-font-heading) !important;
}

/* ===========================================================================
 * Login / Register (my-account) page polish.
 * =========================================================================== */

/* One box, not two: drop the outer square frame so only the rounded
 * .box-content card shows (applies to both the login and register columns). */
.box-form-login {
    border: 0 !important;
    padding-top: 24px !important;
}

/* Don't stretch the login column to the (taller) register column's height —
 * that left a big empty gap below the login form. */
.woocommerce-account .col2-set.row {
    align-items: flex-start !important;
}

/* Remember-me: the theme left this checkbox position:absolute with no custom
 * visual, so it floated to a wrong spot and looked broken on click. Render it
 * as a normal small brand-coloured checkbox inline before its label. */
.rememberme input#rememberme,
.woocommerce-form-login .rememberme input[name="rememberme"] {
    position: static !important;
    width: 16px !important;
    height: 16px !important;
    min-width: 16px !important;
    margin: 0 8px 0 0 !important;
    vertical-align: middle !important;
    accent-color: #8C0F42 !important;
    -webkit-appearance: auto !important;
    appearance: auto !important;
    opacity: 1 !important;
    box-shadow: none !important;
}
.rememberme {
    display: flex !important;
    align-items: center !important;
}
.rememberme label.inline {
    display: inline-block !important;
    margin: 0 !important;
    vertical-align: middle !important;
    cursor: pointer;
}
/* Hide the theme's off-brand round toggle (label ::before outline + ::after
 * blue-filled circle) so only the clean native maroon checkbox shows. */
.rememberme label[for="rememberme"]::before,
.rememberme label[for="rememberme"]::after {
    content: none !important;
    display: none !important;
}

/* Register: hide WooCommerce's password show/hide button — it renders as a
 * stray maroon square near the privacy notice and isn't wanted on this form. */
form.register .show-password-input { display: none !important; }

/* The consent checkbox label now carries the full privacy notice, so hide
 * WooCommerce's separate standalone privacy text (no duplicated content). */
form.register .woocommerce-privacy-policy-text { display: none !important; }

/* Register: privacy-policy consent checkbox — clean native maroon checkbox
 * inline with its label text (matches the remember-me checkbox). */
.dopa-register-consent { margin-top: 4px; }
.dopa-register-consent label.checkbox {
    display: flex !important;
    align-items: flex-start;
    gap: 8px;
    margin: 0 !important;
    font-weight: 400;
    line-height: 1.5;
    cursor: pointer;
}
.dopa-register-consent input[type="checkbox"] {
    position: static !important;
    width: 16px !important;
    height: 16px !important;
    min-width: 16px !important;
    flex: 0 0 auto;
    margin: 4px 0 0 0 !important;
    accent-color: #8C0F42 !important;
    -webkit-appearance: auto !important;
    appearance: auto !important;
    opacity: 1 !important;
    box-shadow: none !important;
}
.dopa-register-consent label.checkbox::before,
.dopa-register-consent label.checkbox::after { content: none !important; display: none !important; }
.dopa-register-consent a { color: #8C0F42; text-decoration: underline; }

/* Custom validation on the login/register forms: red border on invalid fields.
 * The message itself reuses the theme's existing .dopa-field-error styling
 * (red text + ⚠ icon); the Portuguese text is set by inline JS. */
input.dopa-invalid:not([type="checkbox"]),
textarea.dopa-invalid,
select.dopa-invalid {
    border-color: #c00 !important;
    box-shadow: 0 0 0 2px rgba(204, 0, 0, 0.15) !important;
}

/* Forgot-password (lost password) form — match the login/register card style
 * (white rounded card) instead of the solid maroon box the theme rendered. */
form.lost_reset_password {
    max-width: 560px;
    margin: 40px auto !important;
    background: #fff !important;
    color: #3B3B38 !important;
    border: 1px solid #e8e8e8 !important;
    border-radius: 12px !important;
    padding: 32px !important;
}
form.lost_reset_password p,
form.lost_reset_password label {
    color: #3B3B38 !important;
}
form.lost_reset_password label {
    display: block;
    margin-bottom: 8px;
    font-size: 16px !important;
    font-weight: 600;
    font-family: var(--dopa-font-body) !important;
}
form.lost_reset_password input.input-text,
form.lost_reset_password input[type="text"] {
    width: 100%;
    padding: 12px 14px !important;
    border: 1px solid #d0d0d0 !important;
    border-radius: 6px !important;
    background: #fff !important;
    color: #3B3B38 !important;
}
form.lost_reset_password .woocommerce-Button,
form.lost_reset_password button[type="submit"] {
    background: #8C0F42 !important;
    color: #fff !important;
    border: 0 !important;
}

/* Clube do Vinho membership cards: equal height with the CTA pinned to the
 * bottom. The grid was align-items:start, so cards sized to content and ended
 * uneven; stretch them and flex-column each so the button aligns at the base. */
.plans-grid { align-items: stretch !important; }
.plan-card {
    display: flex !important;
    flex-direction: column !important;
}
.plan-card .btn-plan { margin-top: auto !important; }

/* Mega-menu column headings: keep each on a single line (some, e.g.
 * "Licores e Aperitivos", were wrapping to 2 lines in the narrow columns). */
.e-n-menu-content .elementor-heading-title { white-space: nowrap !important; }

/* Mega-menu third-level items: uppercase consistently — some columns
 * (Promoções/Lançamentos, Packs/Kits) rendered in title case. */
.e-n-menu-content .elementor-icon-list-text { text-transform: uppercase !important; }

/* Preserve icon fonts (we don't want Inter on icon glyphs) */
[class*="eicon-"]::before,
[class^="fa-"], [class*=" fa-"],
.elementor-icon i,
.elementor-icon svg,
i.fas, i.far, i.fab, i.fa,
.dashicons, .dashicons-before::before,
.wpbingofont, .wpbingofont::before, [class*="wpbingofont"]::before,
.eleganticons, .eleganticons::before, [class^="eleganticons"],
[class*=" eleganticons"] {
    font-family: inherit !important; /* keep their own icon font */
}
[class^="eicon-"]::before,
[class*=" eicon-"]::before {
    font-family: 'eicons' !important;
}
.fa, .fas, .far, .fab {
    font-family: 'FontAwesome', 'Font Awesome 6 Free', 'Font Awesome 5 Free' !important;
}
/* Mini-cart (mini-ajax-woo-cart) close + empty-cart glyphs use IcoFont and
 * Material Design Icons. Those class names ("icofont-…", "mdi…") don't contain
 * the substring "icon", so the broad body-font rule above wasn't excluding them
 * and the ::before glyph inherited Inter -> tofu box. Re-assert the icon font on
 * the pseudo-element directly (a direct rule beats the inherited value). */
[class*="icofont-"]::before { font-family: "IcoFont" !important; }
.mdi::before, [class*="mdi-"]::before { font-family: "Material Design Icons" !important; }

/* QA #2 — once the visitor dismisses the Collect.chat greeting balloon, keep it
 * hidden across scrolling/navigation. JS in functions.php toggles the <html>
 * class from a localStorage flag; !important beats Collect.chat's inline display
 * when it tries to re-show the balloon on scroll. Launcher button is untouched. */
html.dopa-cc-dismissed #chat-bot-message-container { display: none !important; }

/* QA #7 — Font Awesome glyphs (events-bar search/view icons + any FA icon) were
 * rendering as tofu: the broad body-font rule overrode FA on the element, and
 * the legacy ".fa{font-family}" rule set it on the element only, so the ::before
 * inherited Inter. Assert FA directly on the pseudo-element. Solid vs regular
 * share the Free family (weight differs, handled by FA's own CSS); brands use
 * the Brands family (declared last so it wins for brand icons). */
.fa::before, .fas::before, .far::before, .fal::before, .fat::before,
.fa-solid::before, .fa-regular::before, .fa-light::before, .fa-thin::before, .fa-sharp::before {
    font-family: "Font Awesome 6 Free", "Font Awesome 5 Free", "FontAwesome" !important;
}
.fab::before, .fa-brands::before {
    font-family: "Font Awesome 6 Brands", "Font Awesome 5 Brands" !important;
}

/* QA #7 — events view switcher: the "Vista de Calendário" button had a fixed
 * width that clipped its label so it collided with the "Vista de Lista" icon.
 * Lay the two buttons out with flex + a real gap and let them size to content. */
#event-filter-area .event-view-switch {
    display: flex !important;
    align-items: center;
    column-gap: 24px;
    flex-wrap: wrap;
}
#event-filter-area .event-view-switch .view-btn {
    position: static !important;   /* were position:absolute with hardcoded left -> overlapped */
    left: auto !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    white-space: nowrap !important;
    overflow: visible !important;
}
#event-filter-area .event-view-switch .view-btn i { margin-right: 7px; }

/* QA #13 — mega-menu promo banner heading was clipped: the menu-heading rule
 * forces white-space:nowrap, which collapsed the heading's <br> line breaks into
 * one long line that the 280px banner (overflow:hidden) then cut off. Let just
 * this banner heading wrap normally so all three lines show. */
.elementor-element-cec059f .elementor-heading-title { white-space: normal !important; line-height: 1.4 !important; } /* line-height from Subha dev25 (banner breathing room), merged with the white-space un-clip */

/* QA #11 — footer newsletter renders the Newsletter-plugin subscribe form
 * (email + privacy consent + button) so submissions actually persist.
 * #2 (2026-05-27): restore the previous compact layout — email field +
 * Subscrever button on a single row, privacy consent compact below — instead
 * of the stacked full-width form the client flagged. */
.elementor-element-205db10 form {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    max-width: 360px;
}
.elementor-element-205db10 .tnp-field { margin: 0; }
.elementor-element-205db10 .tnp-field-email { flex: 1 1 170px; }
.elementor-element-205db10 .tnp-field-email label { display: none; } /* placeholder replaces the label in the compact row */
.elementor-element-205db10 input.tnp-email {
    width: 100%; max-width: none; padding: 10px 12px;
    border: 1px solid #d8c9cf; border-radius: 4px;
    font-size: 14px; font-family: Inter, sans-serif; color: #3B3B38; background: #fff;
}
.elementor-element-205db10 .tnp-field-button { flex: 0 0 auto; order: 2; }
.elementor-element-205db10 input.tnp-submit {
    background: #8B0F41; color: #fff; border: none; padding: 10px 22px;
    border-radius: 4px; font-size: 14px; font-family: Inter, sans-serif;
    font-weight: 500; cursor: pointer; white-space: nowrap;
}
.elementor-element-205db10 input.tnp-submit:hover { background: #6f0c34; }
.elementor-element-205db10 .tnp-privacy-field,
.elementor-element-205db10 .tnp-field-privacy { flex: 1 1 100%; order: 3; margin-top: 4px; }
.elementor-element-205db10 .tnp-privacy-field label,
.elementor-element-205db10 .tnp-field-privacy label {
    display: flex; align-items: flex-start; gap: 6px;
    font-size: 12px; line-height: 1.4; color: #6b5b60;
}

/* QA (2026-05-23) — blog "Etiquetas" (WP tag-cloud) sidebar widget had 45 large
 * pills and overran the sidebar. Make the pills compact (uniform small size,
 * overriding WP's per-tag inline font-size) and cap the height with a subtle
 * scroll so it never dominates the column. */
.elementor-widget-wp-widget-tag_cloud .tagcloud {
    max-height: 170px;
    overflow-y: auto;
    padding-right: 4px;
}
.elementor-widget-wp-widget-tag_cloud .tagcloud a,
.elementor-widget-wp-widget-tag_cloud .tagcloud a.tag-cloud-link {
    font-size: 11px !important;
    line-height: 1.25 !important;
    padding: 4px 10px !important;
    margin: 0 5px 6px 0 !important;
    display: inline-block;
}
.elementor-widget-wp-widget-tag_cloud .tagcloud::-webkit-scrollbar { width: 6px; }
.elementor-widget-wp-widget-tag_cloud .tagcloud::-webkit-scrollbar-thumb {
    background: #c9b3bb; border-radius: 3px;
}

/* QA (2026-05-23) — "Artigos Relacionados" cards were unequal heights because
 * their thumbnails render at native aspect ratio (object-fit:fill → 216px vs
 * 162px). Crop every related-post card image to a uniform height with
 * object-fit:cover so the cards line up. (dfaded7 = the image widget in the
 * related-posts loop card, shared by all cards.) */
.elementor-element-dfaded7 img {
    width: 100% !important;
    height: 190px !important;
    object-fit: cover !important;
    display: block;
}

/* From Subha (dev25, 2026-05-25) — Sobre Nós "A Nossa História" intro has a
 * fixed desktop margin of 0 300px; not responsive, so on tablet/mobile the side
 * margins push text off the right edge (horizontal overflow). Drop them below
 * desktop. (Covers QA #17 sobre-nos mobile alignment.) */
@media (max-width: 1024px) {
    .elementor-element-6565f3d {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
}

/* QA (2026-05-25) — Cart "Envio" (shipping) row in the order summary: the single
 * Luanda method rendered with a custom radio circle (label::before) that broke
 * the label across lines ("Entrega em / ○ Luanda: / 2.500,00 Kz") and looked
 * misaligned. On the cart page only (so multi-method checkout selection is
 * untouched), hide the redundant radio indicator and right-align the method +
 * shipping calculator to line up with the Subtotal / IVA rows. */
/* The summary table is a flex row+wrap; the shipping row shrank to ~181px
 * (label 91 / value 91) instead of spanning the full 330px like Subtotal. Make
 * it full width so the method fits on clean lines. */
.woocommerce-cart .woocommerce-shipping-totals {
    width: 100% !important;
    flex: 1 1 100% !important;
    justify-content: space-between !important;
    align-items: baseline !important;
}
.woocommerce-cart .woocommerce-shipping-totals > div {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    text-align: right !important;
}
.woocommerce-cart .woocommerce-shipping-totals .woocommerce-shipping-methods,
.woocommerce-cart .woocommerce-shipping-totals .woocommerce-shipping-methods li {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}
.woocommerce-cart .woocommerce-shipping-totals .woocommerce-shipping-methods li label::before {
    display: none !important;
}
.woocommerce-cart .woocommerce-shipping-totals .woocommerce-shipping-methods li label {
    display: block !important;
    padding-left: 0 !important;
    text-align: right !important;
    line-height: 1.4 !important;
    font-size: 13px !important;
}
/* keep the price on its own line, not mid-phrase */
.woocommerce-cart .woocommerce-shipping-totals .woocommerce-shipping-methods li label .woocommerce-Price-amount {
    display: block !important;
    font-weight: 600;
}
.woocommerce-cart .woocommerce-shipping-totals .woocommerce-shipping-calculator,
.woocommerce-cart .woocommerce-shipping-totals .shipping-calculator-button,
.woocommerce-cart .woocommerce-shipping-totals .woocommerce-shipping-destination {
    text-align: right !important;
}

/* Keep the Porta Do Copo top-bar / logo branding visually unchanged
 * (logo is a raster image — no font fix needed there). */

/* ===========================================================================
 * Issue 6 — Clube do Vinho page styling.
 * Content lives in Gutenberg blocks on page 28703 (so the client can edit
 * text in wp-admin). All styling lives here, scoped under .cdv-page so it
 * can't bleed into other pages.
 *
 * Uses brand kit: #8C0F42 (secondary), #4C0521 (dark), #F9F6F1 (bg1),
 * Marcellus for headings, Inter for body.
 * =========================================================================== */
.cdv-page { color: #3B3B38; font-size: 14px; line-height: 1.6; background: #F9F6F1; }
.cdv-page > * { max-width: none; }  /* override theme's default content max-width */

/* #14 (2026-05-27) — the hero Elementor container set a text-shadow that, being
 * an inherited property, leaked onto every heading on the page (h1/h2/h3). No
 * other page puts a shadow on headings, so this is what made Clube do Vinho look
 * different. Remove it across the whole page to match the global look. */
.cdv-page, .cdv-page * { text-shadow: none !important; }

/* Reset the inner block wrappers Gutenberg adds (.entry-content typically clamps width) */
body.page-template-page-clube-do-vinho .entry-content,
body.page-template-page-clube-do-vinho .site-content,
body.page-template-page-clube-do-vinho .container,
body.page-template-page-clube-do-vinho .row,
body.page-template-page-clube-do-vinho main {
    max-width: none !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* HERO */
.cdv-page .cdv-hero {
    background: linear-gradient(135deg, rgba(76,5,33,.95) 0%, rgba(140,15,66,.88) 100%);
    color: white; padding: 88px 40px; text-align: center;
}
.cdv-page .cdv-hero h1 {
    font-size: 38px; font-weight: 400; line-height: 1.2; color: white !important;
    margin: 0 auto 16px; max-width: 780px;
}
.cdv-page .cdv-hero h1 strong { font-weight: 700; }
.cdv-page .cdv-hero .hero-sub {
    font-size: 16px; opacity: .92; line-height: 1.7; max-width: 720px;
    margin: 0 auto 32px; color: white;
}
.cdv-page .hero-benefits {
    display: flex; justify-content: center; gap: 28px; flex-wrap: wrap;
    margin: 0 auto 36px; max-width: 780px;
}
.cdv-page .hero-benefit {
    font-size: 13px; opacity: .95; display: inline-flex; align-items: center; gap: 8px;
}
.cdv-page .check-circle {
    background: rgba(255,255,255,.18); border-radius: 50%;
    width: 22px; height: 22px; display: inline-flex;
    align-items: center; justify-content: center;
    font-size: 11px; font-weight: 700; flex-shrink: 0;
}
.cdv-page .cdv-hero .wp-block-buttons { justify-content: center; }
.cdv-page .cdv-hero .wp-block-button__link {
    background: white !important; color: #8C0F42 !important; border-radius: 6px !important;
    font-weight: 700; font-size: 15px; padding: 15px 40px;
    box-shadow: 0 4px 20px rgba(0,0,0,.25);
}

/* SECTION COMMON */
.cdv-page .cdv-section { padding: 72px 40px; }
.cdv-page .cdv-section--white { background: white; }
.cdv-page .cdv-section--cream { background: #F9F6F1; }
.cdv-page .section-title {
    text-align: center; font-size: 28px; font-weight: 400; margin-bottom: 8px; color: #2C2C2A;
}
.cdv-page .section-sub {
    text-align: center; font-size: 14px; color: #888; margin-bottom: 48px;
}

/* HOW IT WORKS */
.cdv-page .steps {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px;
    max-width: 900px; margin: 0 auto;
}
.cdv-page .step { text-align: center; }
.cdv-page .step-num {
    width: 54px; height: 54px; border-radius: 50%;
    background: #F9F6F1; color: #8C0F42; border: 2px solid #8C0F42;
    display: flex; align-items: center; justify-content: center;
    font-size: 22px; font-weight: 700; margin: 0 auto 14px;
}
.cdv-page .step h4 { font-size: 14px; font-weight: 600; margin-bottom: 6px; color: #3B3B38; }
.cdv-page .step p { font-size: 13px; color: #666; line-height: 1.5; }

/* PLANS */
.cdv-page .toggle-wrap { display: flex; justify-content: center; margin-bottom: 40px; }
.cdv-page .toggle {
    display: inline-flex; background: white; border: 1px solid #ddd;
    border-radius: 8px; padding: 4px; box-shadow: 0 1px 4px rgba(0,0,0,.06);
}
.cdv-page .toggle-btn {
    padding: 9px 28px; font-size: 13px; border-radius: 6px; cursor: pointer;
    border: none; background: transparent; color: #555; transition: all .15s;
}
.cdv-page .toggle-btn.active { background: #8C0F42; color: white; font-weight: 600; }
.cdv-page .plans-grid {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px;
    max-width: 980px; margin: 0 auto; align-items: start;
}
.cdv-page .plan-card {
    background: white; border: 1.5px solid #e8e8e8; border-radius: 12px;
    padding: 30px 26px; position: relative; transition: box-shadow .15s;
}
.cdv-page .plan-card:hover { box-shadow: 0 8px 32px rgba(140,15,66,.1); }
.cdv-page .plan-card.featured {
    border: 2.5px solid #8C0F42; transform: translateY(-6px);
    box-shadow: 0 16px 48px rgba(140,15,66,.2);
}
.cdv-page .badge {
    position: absolute; top: -14px; left: 50%; transform: translateX(-50%);
    background: #8C0F42; color: white; padding: 5px 18px; border-radius: 20px;
    font-size: 11px; font-weight: 700; letter-spacing: .5px; white-space: nowrap;
}
.cdv-page .plan-icon { font-size: 34px; margin-bottom: 12px; text-align: center; }
.cdv-page .plan-name {
    font-size: 23px; font-weight: 400; text-align: center; margin-bottom: 4px;
    color: #2C2C2A;
}
.cdv-page .plan-tagline {
    font-size: 12px; color: #999; text-align: center; font-style: italic;
    margin-bottom: 20px; line-height: 1.4;
}
.cdv-page .plan-price-box {
    text-align: center; padding: 18px 0;
    border-top: 1px solid #f0f0f0; border-bottom: 1px solid #f0f0f0;
    margin-bottom: 22px;
}
.cdv-page .price-main { font-size: 27px; font-weight: 700; color: #8C0F42; }
.cdv-page .price-unit { font-size: 13px; color: #aaa; font-weight: 400; }
.cdv-page .price-alt { font-size: 11px; color: #bbb; margin-top: 4px; }
.cdv-page .price-annual { display: none; }
.cdv-page .plan-includes { list-style: none !important; margin: 0 0 20px !important; padding: 0 !important; }
.cdv-page .plan-includes li {
    font-size: 13px; color: #444; padding: 5px 0;
    display: flex; align-items: flex-start; gap: 8px; line-height: 1.4;
    list-style: none !important;
}
.cdv-page .plan-includes li::before {
    content: '✓'; color: #8C0F42; font-weight: 700; font-size: 12px;
    margin-top: 1px; flex-shrink: 0;
}
.cdv-page .plan-ideal {
    font-size: 11px; color: #aaa; text-align: center; font-style: italic;
    margin-bottom: 18px; line-height: 1.5;
}
.cdv-page .btn-plan {
    width: 100%; padding: 13px; border-radius: 6px; font-size: 14px;
    font-weight: 600; cursor: pointer; transition: all .15s;
    text-decoration: none; display: inline-block; text-align: center; box-sizing: border-box;
}
.cdv-page .btn-outline { background: transparent; color: #8C0F42; border: 1.5px solid #8C0F42; }
.cdv-page .btn-outline:hover { background: #F9F6F1; }
.cdv-page .btn-solid { background: #8C0F42; color: white; border: 1.5px solid #8C0F42; }
.cdv-page .btn-solid:hover { background: #4C0521; }
.cdv-page .guarantee {
    text-align: center; margin-top: 28px; font-size: 12px; color: #999; line-height: 1.9;
}
.cdv-page .guarantee b { color: #8C0F42; }

/* WHY JOIN */
.cdv-page .why-grid {
    display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px;
    max-width: 820px; margin: 0 auto;
}
.cdv-page .why-card { background: #F9F6F1; border-radius: 10px; padding: 26px; }
.cdv-page .why-icon { font-size: 28px; margin-bottom: 12px; }
.cdv-page .why-card h4 {
    font-size: 15px; font-weight: 600; color: #4C0521; margin-bottom: 8px;
}
.cdv-page .why-card p { font-size: 13px; color: #3B3B38; line-height: 1.6; }

/* CURATION */
.cdv-page .curation-inner { max-width: 680px; margin: 0 auto; text-align: center; }
.cdv-page .curation-icons {
    display: flex; justify-content: center; gap: 16px; margin: 24px 0;
}
.cdv-page .w-icon {
    width: 56px; height: 56px; border-radius: 50%;
    background: white; border: 1px solid #e0d0c8;
    display: flex; align-items: center; justify-content: center; font-size: 24px;
    box-shadow: 0 2px 8px rgba(140,15,66,.08);
}
.cdv-page .curation-inner p {
    font-size: 14px; color: #555; line-height: 1.8; margin-bottom: 14px;
}
.cdv-page .coming-soon {
    background: white; border: 1px solid #e8e8e8; border-radius: 8px;
    padding: 16px 24px; margin-top: 24px; display: inline-block; text-align: left;
}
.cdv-page .coming-soon p { font-size: 12px; color: #777; margin: 0; line-height: 1.6; }
.cdv-page .coming-soon a {
    color: #8C0F42; font-weight: 600; text-decoration: none;
    border-bottom: 1px solid #8C0F42;
}

/* FAQ */
.cdv-page .faq-list { max-width: 720px; margin: 0 auto; }
.cdv-page .faq-item {
    border: 1px solid #f0f0f0; border-radius: 8px;
    margin-bottom: 8px; overflow: hidden; cursor: pointer; background: white;
}
.cdv-page .faq-q {
    padding: 17px 20px; font-size: 14px; font-weight: 500;
    display: flex; justify-content: space-between; align-items: center;
    transition: background .1s;
}
.cdv-page .faq-item:hover .faq-q { background: #fafafa; }
.cdv-page .faq-item.open .faq-q { background: #FEFBF9; }
.cdv-page .faq-arrow {
    color: #8C0F42; font-size: 11px; transition: transform .2s;
    flex-shrink: 0; margin-left: 12px;
}
.cdv-page .faq-item.open .faq-arrow { transform: rotate(180deg); }
.cdv-page .faq-a { padding: 0 20px 16px; font-size: 13px; color: #666; line-height: 1.7; display: none; }
.cdv-page .faq-item.open .faq-a { display: block; }

/* FINAL CTA */
.cdv-page .cdv-final-cta {
    background: linear-gradient(135deg, #8C0F42 0%, #4C0521 100%);
    color: white; padding: 80px 40px; text-align: center;
}
.cdv-page .cdv-final-cta h2 { color: white !important; font-size: 32px; font-weight: 400; margin-bottom: 12px; }
.cdv-page .cdv-final-cta p { font-size: 16px; opacity: .9; margin-bottom: 36px; color: white; }
.cdv-page .cdv-final-cta .wp-block-buttons { justify-content: center; margin-bottom: 36px; }
.cdv-page .cdv-final-cta .wp-block-button__link {
    background: white !important; color: #8C0F42 !important; border-radius: 6px !important;
    font-weight: 700; font-size: 15px; padding: 15px 48px;
    box-shadow: 0 4px 20px rgba(0,0,0,.25);
}
.cdv-page .contacts {
    display: flex; justify-content: center; gap: 28px; flex-wrap: wrap;
}
.cdv-page .contact {
    font-size: 13px; opacity: .9; display: flex; align-items: center; gap: 8px;
}
.cdv-page .contact a {
    color: white !important; text-decoration: none;
    border-bottom: 1px dotted rgba(255,255,255,.4);
}

/* Responsive */
@media (max-width: 900px) {
    .cdv-page .steps      { grid-template-columns: repeat(2, 1fr); }
    .cdv-page .plans-grid { grid-template-columns: 1fr; max-width: 460px; }
    .cdv-page .plan-card.featured { transform: none; }
}
@media (max-width: 600px) {
    .cdv-page .cdv-hero { padding: 56px 20px; }
    .cdv-page .cdv-hero h1 { font-size: 28px; }
    .cdv-page .cdv-section,
    .cdv-page .cdv-final-cta { padding: 56px 20px; }
    .cdv-page .why-grid { grid-template-columns: 1fr; }
    .cdv-page .contacts { gap: 12px; flex-direction: column; align-items: center; }
}

/* ===========================================================================
 * Batch A — Deepthi UAT round-1 fixes (2026-05-19)
 * =========================================================================== */

/* A5: register / edit-account / login checkboxes were rendering as a solid
 * brand-red filled square in their UNCHECKED state. Reset appearance so the
 * native unchecked outline shows, and use accent-color (modern browsers) to
 * paint only the :checked state in brand wine. */
.woocommerce-account .form-register input[type="checkbox"],
.woocommerce-account .form-login input[type="checkbox"],
.woocommerce-account .woocommerce-MyAccount-content input[type="checkbox"],
.woocommerce-account .woocommerce-EditAccountForm input[type="checkbox"],
.woocommerce-account .woocommerce-privacy-policy-text + p input[type="checkbox"],
.woocommerce-form__input-checkbox {
    appearance: auto !important;
    -webkit-appearance: auto !important;
    -moz-appearance: auto !important;
    background-color: transparent !important;
    background-image: none !important;
    border: 1px solid #888 !important;
    accent-color: #8C0F42; /* brand wine — paints :checked only on modern browsers */
    width: 14px !important;
    height: 14px !important;
    box-shadow: none !important;
}

/* A6: brand-wine outline on plan-card hover (Terroir / Cuvée Prestige). The
 * featured card (Reserva) already carries a 2.5px brand border, so its hover
 * stays as-is. Also kill the default browser focus ring on the plan buttons. */
.cdv-page .plan-card:not(.featured):hover {
    outline: 2px solid #8C0F42;
    outline-offset: -2px;
    box-shadow: 0 8px 32px rgba(140,15,66,.18);
}
.cdv-page .plan-card.featured:hover {
    box-shadow: 0 20px 60px rgba(140,15,66,.28);
}
.cdv-page .btn-plan,
.cdv-page .btn-plan:focus,
.cdv-page .btn-plan:active,
.cdv-page .btn-plan:focus-visible {
    outline: none !important;
    box-shadow: none !important;
}

/* A8: typography consistency between PT (page default) and EN (when users
 * trigger Chrome's Google Translate). The translate engine wraps text in
 * <font> tags which often drop our font-family inheritance, so we explicitly
 * force inherit. Also pin both lang variants to the same Inter/Marcellus
 * pairing so no future :lang(...) override drifts apart. */
font, font * { font-family: inherit !important; font-size: inherit !important; }
/* 2026-05-19 HOTFIX: removed broad ":lang(pt|pt-PT|en) { font-family: Inter
 * !important }" — no icon-font exclusions, broke ElegantIcons glyphs (cart
 * icon tofu, flagged by Deepthi on prod). Body rule already pins Inter on
 * non-icon elements correctly. Heading-specific :lang rules below retained. */
:lang(pt) h1, :lang(pt) h2, :lang(pt) h3, :lang(pt) h4,
:lang(pt-PT) h1, :lang(pt-PT) h2, :lang(pt-PT) h3, :lang(pt-PT) h4,
:lang(en) h1, :lang(en) h2, :lang(en) h3, :lang(en) h4,
:lang(pt) .elementor-heading-title,
:lang(pt-PT) .elementor-heading-title,
:lang(en) .elementor-heading-title {
    font-family: var(--dopa-font-heading) !important;
}

/* ===========================================================================
 * C1 — Enquiry form (DOC-12). Rendered by [dopa_enquiry_form] shortcode from
 * inc/enquiry-form.php. Brand-aligned to #8C0F42 / Inter body / Marcellus
 * heading; mobile collapses fields to comfortable touch targets.
 * =========================================================================== */
.dopa-enquiry {
    max-width: 560px;
    margin: 24px auto;
    padding: 28px 28px 24px;
    background: #ffffff;
    border: 1px solid #ece6dd;
    border-radius: 10px;
    box-shadow: 0 4px 18px rgba(0,0,0,0.04);
    font-family: var(--dopa-font-body, 'Inter', sans-serif);
}
.dopa-enquiry--compact { padding: 20px 22px; max-width: 480px; }
.dopa-enquiry__title {
    font-family: var(--dopa-font-heading, 'Marcellus', serif) !important;
    font-size: 22px;
    color: #4C0521;
    margin: 0 0 18px;
    font-weight: 400;
    border-bottom: 1px solid #8C0F42;
    padding-bottom: 10px;
}
.dopa-enquiry__field { margin: 0 0 14px; }
.dopa-enquiry__field label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: #2b2b2b;
    margin-bottom: 5px;
}
.dopa-enquiry__field .required { color: #8C0F42; }
.dopa-enquiry__field input,
.dopa-enquiry__field textarea {
    width: 100%;
    box-sizing: border-box;
    padding: 10px 12px;
    border: 1px solid #d0d0d0;
    border-radius: 6px;
    background: #ffffff;
    font: inherit;
    color: #2b2b2b;
}
.dopa-enquiry__field textarea { resize: vertical; min-height: 110px; }
.dopa-enquiry__field input:focus,
.dopa-enquiry__field textarea:focus {
    outline: none;
    border-color: #8C0F42;
    box-shadow: 0 0 0 3px rgba(140,15,66,0.12);
}
.dopa-enquiry__submit { margin: 18px 0 0; text-align: right; }
.dopa-enquiry__submit button {
    background: #8C0F42;
    color: #ffffff;
    border: 1px solid #8C0F42;
    padding: 11px 28px;
    border-radius: 6px;
    font-weight: 600;
    letter-spacing: 0.4px;
    cursor: pointer;
    transition: background .15s ease;
}
.dopa-enquiry__submit button:hover { background: #4C0521; border-color: #4C0521; }
.dopa-enquiry__submit button[disabled] { opacity: 0.6; cursor: progress; }
.dopa-enquiry__status {
    margin-top: 14px;
    font-size: 14px;
    min-height: 1.2em;
    line-height: 1.4;
}
.dopa-enquiry__status.is-ok { color: #155724; background: #d4edda; border: 1px solid #c3e6cb; padding: 10px 12px; border-radius: 6px; }
.dopa-enquiry__status.is-error { color: #721c24; background: #f8d7da; border: 1px solid #f5c6cb; padding: 10px 12px; border-radius: 6px; }

@media (max-width: 480px) {
    .dopa-enquiry { padding: 22px 18px; margin: 16px auto; }
    .dopa-enquiry__title { font-size: 19px; }
    .dopa-enquiry__submit { text-align: stretch; }
    .dopa-enquiry__submit button { width: 100%; }
}

/* DOC-08(d) — "Saber Mais" trigger on event PDP + modal wrapper. */
.dopa-event-cta { margin: 6px 0 18px; }
.dopa-event-cta__btn {
    background: transparent;
    color: #8C0F42;
    border: 1.5px solid #8C0F42;
    padding: 11px 22px;
    border-radius: 6px;
    font-weight: 600;
    letter-spacing: 0.4px;
    cursor: pointer;
    transition: background .15s ease, color .15s ease;
}
.dopa-event-cta__btn:hover { background: #8C0F42; color: #ffffff; }
.dopa-modal[hidden] { display: none !important; }
.dopa-modal {
    position: fixed;
    inset: 0;
    z-index: 100000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}
.dopa-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.55);
}
.dopa-modal__panel {
    position: relative;
    background: #ffffff;
    border-radius: 12px;
    box-shadow: 0 24px 60px rgba(0,0,0,0.35);
    max-width: 560px;
    width: 100%;
    max-height: calc(100vh - 48px);
    overflow-y: auto;
    padding: 8px;
}
.dopa-modal__panel .dopa-enquiry { margin: 0; border: none; box-shadow: none; padding: 24px 24px 18px; }
.dopa-modal__close {
    position: absolute;
    top: 8px;
    right: 12px;
    width: 32px;
    height: 32px;
    border: none;
    background: transparent;
    font-size: 28px;
    line-height: 1;
    color: #555;
    cursor: pointer;
    z-index: 2;
}
.dopa-modal__close:hover { color: #8C0F42; }
@media (max-width: 480px) {
    .dopa-modal { padding: 12px; }
    .dopa-modal__panel .dopa-enquiry { padding: 20px 16px 14px; }
}

/* DOC-11 — Product image right-click + drag deterrence (CSS layer; JS layer
 * lives in functions.php wp_footer hook). Visual cue only — does not stop
 * Print Screen or DevTools. Scoped to WC product imagery; payment icons,
 * logos and hero banners are intentionally not covered. */
.woocommerce-product-gallery img,
.attachment-shop_single,
.attachment-shop_catalog,
.bwp-single-product .images img,
.bwp-single-product .image-additional img,
.products-thumb img,
.products-entry img,
.woocommerce ul.products li.product img {
    -webkit-user-drag: none;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

/* ── DOC-10 — Product review form layout fix.
   Parent theme (itrobes-wine/woocommerce/single-product-reviews.php) renders the
   form with flex-wrap + an unclosed .content-info-reviews div, splitting the
   textarea and the name/email/submit block into two uneven 720px columns.
   Scoped to #reviews so blog comment forms are unaffected. ── */
#reviews #commentform.comment-form {
    display: flex;
    flex-wrap: wrap;
    gap: 14px 18px;
    align-items: flex-start;
}
#reviews #commentform.comment-form > p,
#reviews #commentform.comment-form > div {
    flex: 0 0 100%;
    width: 100%;
    max-width: 100%;
    margin: 0;
    box-sizing: border-box;
}
#reviews #commentform .content-info-reviews {
    display: flex;
    flex-wrap: wrap;
    gap: 14px 18px;
}
#reviews #commentform .content-info-reviews > p {
    flex: 0 0 100%;
    margin: 0;
}
#reviews #commentform .content-info-reviews .comment-form-author,
#reviews #commentform .content-info-reviews .comment-form-email {
    flex: 1 1 calc(50% - 9px);
}
#reviews #commentform input[type="text"],
#reviews #commentform input[type="email"],
#reviews #commentform textarea {
    width: 100%;
    box-sizing: border-box;
}
#reviews #commentform .comment-form-rating label {
    display: block;
    margin-bottom: 6px;
}
#reviews #commentform .comment-form-rating .stars {
    white-space: nowrap;
    display: inline-block;
    width: auto;
    margin: 0;
}


/* ── DOC-10b — review form alignment (verified live): rating label vertically
   centered with the stars; consent checkbox aligned to the first line of its
   label. !important is required to win over WooCommerce's star CSS, which
   floats the star anchors and collapses the .stars box. ── */
#reviews #commentform .comment-form-rating {
    display: flex !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: 0 12px !important;
    line-height: 1 !important;
}
#reviews #commentform .comment-form-rating label {
    display: inline-flex !important;
    align-items: center !important;
    margin: 0 !important;
    line-height: 1 !important;
    float: none !important;
}
#reviews #commentform .comment-form-rating .stars {
    display: inline-flex !important;
    align-items: center !important;
    height: auto !important;
    line-height: 1 !important;
    margin: 0 !important;
    float: none !important;
    position: relative !important;
    top: 3px !important;
}
#reviews #commentform .comment-form-rating .stars span {
    display: inline-flex !important;
    align-items: center !important;
    float: none !important;
}
#reviews #commentform .comment-form-cookies-consent {
    display: flex !important;
    align-items: flex-start !important;
    gap: 8px !important;
}
#reviews #commentform .comment-form-cookies-consent input[type="checkbox"] {
    margin: 0 !important;
    width: 16px !important;
    height: 16px !important;
    min-width: 16px !important;
    flex: 0 0 auto !important;
    position: relative !important;
    top: 4px !important;
}
#reviews #commentform .comment-form-cookies-consent label {
    display: inline !important;
    margin: 0 !important;
    line-height: 1.5 !important;
}

/* ===========================================================================
 * Checkout order-summary polish — client briefing 2026-05-27 (issues #1–#5).
 * Scoped to the checkout review-order panel so cart/other pages are untouched.
 * Brand bordeaux #8B0F41; dark text #2C2C2A; hover wash #FAECE7.
 * ======================================================================== */

/* #3 — one typographic family across the panel. Row labels are <h2>, which
 * otherwise inherit the serif heading font while values render in sans —
 * that mismatch is the inconsistency the client flagged. */
.woocommerce-checkout .woocommerce-checkout-review-order-table,
.woocommerce-checkout .woocommerce-checkout-review-order-table h2,
.woocommerce-checkout .woocommerce-checkout-review-order-table span,
.woocommerce-checkout .woocommerce-checkout-review-order-table div,
.woocommerce-checkout .woocommerce-checkout-review-order-table label {
    font-family: "inter", sans-serif !important;
}

/* #3/#4 — labels (Produto, Subtotal, Entrega, IVA): 14px / 600 / dark. */
.woocommerce-checkout .woocommerce-checkout-review-order-table .title-product-name,
.woocommerce-checkout .shop_table .cart-subtotal h2,
.woocommerce-checkout .shop_table .tax-rate > div:first-child,
.woocommerce-checkout .shop_table .tax-total > div:first-child,
.woocommerce-checkout .shop_table .woocommerce-shipping-totals h2 {
    font-size: 14px !important;
    font-weight: 600 !important;
    color: #2C2C2A !important;
}

/* #4 — monetary values: bordeaux, 14px / 600. */
.woocommerce-checkout .shop_table .cart-subtotal .subtotal-price,
.woocommerce-checkout .shop_table .tax-rate > div:last-child,
.woocommerce-checkout .shop_table .tax-total > div:last-child,
.woocommerce-checkout .shop_table .dopa-ship-value {
    font-size: 14px !important;
    font-weight: 600 !important;
    color: #8B0F41 !important;
}

/* #4 — no light grey in the panel; meta text is dark, not grey. */
.woocommerce-checkout .pdc-delivery-estimate span {
    color: #2C2C2A !important;
    font-size: 12px !important;
    font-weight: 400 !important;
}

/* #1 — shipping/Entrega row: label left, value (or quote button) right,
 * mirroring the Subtotal / IVA rows. */
.woocommerce-checkout .shop_table .woocommerce-shipping-totals.dopa-ship-row {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding: 8px 0 !important;
}
.woocommerce-checkout .dopa-ship-row h2 {
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.4 !important;
    background: none !important;
}
.woocommerce-checkout .dopa-ship-content {
    text-align: right !important;
}
.woocommerce-checkout .dopa-ship-methods,
.woocommerce-checkout .dopa-ship-methods li {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}
.woocommerce-checkout .dopa-ship-methods li label {
    display: inline-flex !important;
    align-items: baseline !important;
    gap: 8px !important;
    margin: 0 !important;
    padding: 0 !important;
}
.woocommerce-checkout .dopa-ship-methods li label::before {
    display: none !important; /* kill the parent theme's custom radio circle */
}
.woocommerce-checkout .dopa-ship-meta {
    font-size: 12px !important;
    font-weight: 400 !important;
    color: #2C2C2A !important;
}

/* #1 — "Pedir orçamento →" outline button (outside Luanda). */
.woocommerce-checkout .dopa-quote-btn {
    display: inline-block;
    border: 1.5px solid #8B0F41;
    border-radius: 6px;
    padding: 7px 14px;
    color: #8B0F41 !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    text-decoration: none !important;
    white-space: nowrap;
    transition: background-color .2s ease;
}
.woocommerce-checkout .dopa-quote-btn:hover {
    background: #FAECE7;
    color: #8B0F41 !important;
}

/* #3 — Total: 17px / 700, label dark + value bordeaux. */
.woocommerce-checkout .shop_table .order-total h2 {
    font-size: 17px !important;
    font-weight: 700 !important;
    color: #2C2C2A !important;
}
.woocommerce-checkout .shop_table .order-total .total-price {
    font-size: 17px !important;
    font-weight: 700 !important;
    color: #8B0F41 !important;
}

/* #1 — "+ envio a confirmar" disclaimer under the Total (outside Luanda).
 * Light grey is allowed here as very-secondary helper text. */
.woocommerce-checkout .dopa-total-disclaimer {
    text-align: right;
    font-size: 10px;
    font-style: italic;
    color: #999;
    margin-top: 2px;
}

/* #2 — free-shipping upsell banner: two-line, bordeaux, centred.
 * Shown only below threshold for Luanda (see inc/shipping.php). */
.dopa-free-shipping-bar {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 2px;
    width: 100%;
    flex: 1 1 100%;
    box-sizing: border-box;
    background: #8B0F41;
    border-radius: 8px;
    padding: 16px 18px;
    margin: 12px 0;
}
.dopa-free-shipping-bar .dopa-fsb-primary {
    font-size: 14px;
    font-weight: 700;
    color: #fff;
    line-height: 1.3;
}
.dopa-free-shipping-bar .dopa-fsb-secondary {
    font-size: 11px;
    font-style: italic;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.88);
    line-height: 1.3;
}

/* ===========================================================================
 * Site-wide briefing 2026-05-25 — fixes #1–#16.
 * Grouped here so the whole batch is easy to review/revert.
 * ======================================================================== */

/* #3 — product rating stars rendered as tofu squares. A global Inter rule was
 * overriding the theme's star icon font (font-family: Material, glyph \f27d) and
 * the empty/filled star ::before content was being dropped. Re-assert the full
 * star rendering self-contained so it no longer depends on the parent template
 * CSS load order. */
.star-rating {
    font-family: "Material" !important;
    letter-spacing: normal !important;
}
.star-rating::before {
    content: "\f27d\f27d\f27d\f27d\f27d" !important;
    font-family: "Material" !important;
    color: #e1e1e1 !important;
}
.star-rating span::before {
    content: "\f27d\f27d\f27d\f27d\f27d" !important;
    font-family: "Material" !important;
    color: #8c0f42 !important;
}

/* #12 — blog article listing should show only the title, not the first-paragraph
 * excerpt. The listing is an Elementor loop (template 27955); hide its
 * post-excerpt widget so the title is the sole attention-grabber. */
.elementor-27955 .elementor-widget-theme-post-excerpt {
    display: none !important;
}

/* #7 — cart sidebar (majc Ajax cart) action buttons were stacked/misaligned.
 * Target layout: "Continuar a Comprar" full-width on top, then "Ver Carrinho"
 * and "Finalizar Compra" side by side below. The markup already nests the two
 * checkout buttons in .majc-cart-checkout-btn, so we just enforce the sizing. */
.majc-cart-action-btn-wrap {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    width: 100% !important;
}
.majc-cart-action-btn-wrap .majc-continue-shoping-btn {
    width: 100% !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
}
.majc-cart-action-btn-wrap .majc-cart-checkout-btn {
    display: flex !important;
    align-items: stretch !important; /* equal height so the two buttons align even if one wraps */
    gap: 8px !important;
    width: 100% !important;
}
.majc-cart-action-btn-wrap .majc-cart-checkout-btn .majc-button {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    text-align: center;
}
/* #7 (2026-05-27) — the default 18px/31.5px button text made "Finalizar Compra"
 * wrap to two lines inside the narrow side-by-side button, inflating both to
 * ~85px tall. Tighten the type so all three action buttons are single-line and
 * compact, matching the client's reference layout. */
.majc-cart-action-btn-wrap .majc-button {
    font-size: 15px !important;
    line-height: 1.4 !important;
    padding: 12px 12px !important;
}
.majc-cart-action-btn-wrap .majc-cart-checkout-btn .majc-button {
    white-space: nowrap !important;
}
/* #7/#8 — the Collect.chat launcher (z-index ~2.1e9) sits above the mini-cart
 * drawer (z-index 99999) and overlapped the "Finalizar Compra" button. Hide the
 * launcher while the drawer is open; it's a body sibling that follows the cart
 * wrapper in the DOM, so the general-sibling selector reaches it. */
.majc-main-wrapper.majc-cartbasket-open ~ #chat-bot-launcher-container {
    display: none !important;
}

/* #10 — mega-menu category headers are now wrapped in links (see functions.php).
 * Keep the heading's own colour/size; just add the click affordance + bordeaux
 * hover so it reads as a link to the category page. */
.e-n-menu-item .elementor-heading-title a.dopa-megamenu-cat-link {
    color: inherit;
    text-decoration: none;
    cursor: pointer;
    transition: color .15s ease;
}
.e-n-menu-item .elementor-heading-title a.dopa-megamenu-cat-link:hover {
    color: #8B0F41;
    text-decoration: underline;
}

/* #13 — event location is now dynamic via [dopa_event_venue] (replaces the
 * hardcoded "Peso da Régua, Portugal" icon-list). Match the previous look:
 * bordeaux map-marker icon + Inter text in the "Detalhes do Evento" box. */
.dopa-event-venue,
.dopa-event-dt {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: Inter, sans-serif;
    color: #3B3B38;
    font-size: 17px;
    line-height: 1.5;
}
.dopa-event-venue i,
.dopa-event-dt i {
    color: #8B0F41;
    font-size: 22px;
}
/* The event "Detalhes do Evento" date/time + location read as grey (#3B3B38)
 * while the phone/email below are pure black — make the date/time AND location
 * solid black to match, so the whole detail block is one consistent colour
 * (incl. the <font> nodes Google Translate injects). The maroon icons keep
 * their own colour via the `.dopa-event-* i` rule above. */
.dopa-event-dt,
.dopa-event-dt font,
.dopa-event-dt span,
.dopa-event-venue,
.dopa-event-venue font,
.dopa-event-venue span {
    color: #000 !important;
    font-weight: 400 !important;
}

/* #16 — browsing-history recommendation sections ("Vistos recentemente" /
 * "Recomendados para si"). The grid reuses the shop product-card markup, so it
 * inherits the standard card styling + hover. Here we just space the section and
 * style the heading to match the site's section titles (Marcellus). */
.dopa-rec-section {
    max-width: 1200px;
    margin: 48px auto;
    padding: 0 20px;
}
/* On the single product page, WooCommerce's own content column ("Produtos
 * Relacionados" etc.) is constrained to max-width:1440px and centred (left edge
 * ~233px in a 1905px container). The default 1200px above left the "Vistos
 * recentemente" row narrower and pushed ~120px to the right, so it didn't line
 * up with the rest of the product page. Match the WooCommerce content width here
 * so the row sits flush with "Produtos Relacionados". */
.single-product .dopa-rec-section {
    max-width: 1440px;
}
/* On the HOME page, the surrounding Elementor sections use a 90%-wide centred
 * content column (≈76px gutter each side at desktop). The 1200px cap above made
 * "Recomendados para si" noticeably narrower and inset (~180px left), so its
 * gutters didn't line up with the rest of the page. From tablet up, match the
 * site's 90% content width so the section sits flush with every other section.
 * (Phones keep the 20px padding above; the PDP keeps its own 1440px rule.) */
@media (min-width: 768px) {
    body.home .dopa-rec-section {
        max-width: 90%;
        padding-left: 0;
        padding-right: 0;
    }
}
.dopa-rec-section .dopa-rec-head {
    margin: 0 0 18px;
}
.dopa-rec-section .dopa-rec-head h2 {
    font-family: "Marcellus", serif;
    font-size: 28px;
    font-weight: 400;
    color: #2C2C2A;
    margin: 0;
}
.dopa-rec-grid {
    list-style: none;
}
/* Home page: make "Recomendados para si" cards match the site's product-card
 * design. The cards already use the shared content-product1 template, but the
 * cream box + light border come from the .item-product widget wrapper on the
 * home product grids — the recommendation <li> doesn't have that wrapper, so its
 * cards rendered as bare transparent cards (and 3-up via Bootstrap col-lg-4),
 * which looked out of place. Give them the same cream box and switch desktop to
 * 4 per row. Scoped to body.home so the PDP / cart placements stay as-is. */
body.home .dopa-rec-grid li.product .products-entry {
    background: #F9F6F1 !important;
    border-color: #D9D9D9 !important;
    border-radius: 4px;
}
/* Row spacing between cards. The Bootstrap cols give horizontal gutters but no
 * vertical gap, so the two rows touched. The home product cards use a 20px
 * bottom margin for row spacing — match it. */
body.home .dopa-rec-grid > li.product {
    margin-bottom: 20px;
}
@media (min-width: 992px) {
    body.home .dopa-rec-grid > li.product {
        flex: 0 0 25%;
        max-width: 25%;
    }
}

/* Floating action buttons (cart / back-to-top / chat) on the right edge —
 * unify their size and align them into a single vertical column. The back-to
 * -top button was 46px (vs ~60px for the cart and chat launcher) and the three
 * sat at slightly different right offsets (10px / 20px / 20px), so the stack
 * looked uneven. Normalise the back-to-top to 60px and give all three the same
 * right offset so their centres line up. (back-to-top sets size/right via inline
 * style, so !important is required to override it.) */
#back-to-top {
    width: 60px !important;
    height: 60px !important;
    line-height: 60px !important;
    right: 16px !important;
    /* The default back-to-top is a faded arrow image (opacity 0.9) sitting in a
     * white halo, which didn't match the solid maroon cart/chat buttons. Make it
     * a solid #8C0F42 circle (the brand maroon used by both) at full opacity. */
    background-color: #8C0F42 !important;
    opacity: 1 !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .25) !important;
    overflow: hidden;
    /* Sit midway between the cart (above) and chat (below) so the three icons
     * are evenly spaced — the default 190px left it bunched up near the cart. */
    bottom: 152px !important;
}
/* Hide the bundled arrow image and draw a crisp white up-chevron instead. */
#back-to-top img {
    display: none !important;
}
#back-to-top::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 13px;
    height: 13px;
    border-top: 3px solid #fff;
    border-right: 3px solid #fff;
    transform: translate(-50%, -35%) rotate(-45deg);
}
.majc-toggle-button.majc-round {
    right: 16px !important;
}
#chat-bot-launcher-container {
    right: 16px !important;
}

/* "Online store" (Loja online) mega menu — remove the promotional banner column
 * ("A selection of bottles…" + image + BUY NOW). It took ~22% / 280px on the
 * right and crowded the link columns (the "Promotions and New Releases" heading
 * collided with its neighbour). Hide it and let the link columns fill the full
 * width for even, breathable spacing. */
.elementor-element-41fc005 {
    display: none !important;
}
.elementor-element-cffbded {
    width: 100% !important;
}

/* Footer link columns (Quick Links / Categories / Help) are flex items packed
 * edge-to-edge with no gutter, so a longer label — e.g. the English-translated
 * "Promotions and New Releases" — ran right up against the next column ("Help").
 * Add a right gutter (border-box, so the column width is unchanged and the row
 * doesn't overflow) which gives separation and lets over-long items wrap inside
 * their own column instead of touching the neighbour. */
.elementor-element-dea1688,
.elementor-element-9e53c31,
.elementor-element-9be050c {
    padding-right: 28px !important;
}

/* Category page (/categorias/) hero banner. The banner image (2396x1342, a
 * 1.785:1 wine composition) was set to a wide/short fixed-height box with
 * background-size:cover, so it only showed a cropped slice. Drive the banner
 * height from the image's own aspect ratio so it renders full-width AND shows
 * the whole image (no crop, no letterbox), and stays responsive across screens. */
.elementor-element-b64c9f1 {
    aspect-ratio: 2396 / 1342 !important;
    min-height: 0 !important;
    height: auto !important;
    background-size: cover !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
}

/* =====================================================================
   Unified button system (2026-06-02). The site had several button looks
   (solid maroon, white-on-maroon-text, light-grey, varying weights/sizes)
   with different hover colours. Standardise the text buttons into two
   consistent styles with one shared INVERT hover, and force UPPERCASE text:
     • PRIMARY   — solid maroon (#8C0F42) + white text; hover inverts to
                   white bg + maroon text.
     • SECONDARY — maroon outline (transparent) + maroon text; hover fills
                   solid maroon + white text.
   Icon-only / nav controls (search submit, mega-menu close, quantity +/-,
   swatches) are deliberately NOT matched. =================================*/

/* Shared base (both variants) */
.elementor-button:not(.dsk-search-submit),
.woocommerce a.button:not(.added_to_cart):not(.wc-backward):not(.view):not(.add_to_cart_button),
.woocommerce button.button:not(.dsk-search-submit),
.woocommerce input.button:not(.dsk-search-submit),
.woocommerce #respond input#submit,
.single_add_to_cart_button,
.wc-proceed-to-checkout a.checkout-button,
.checkout-button,
#place_order,
.woocommerce-form-login button[name="login"],
.woocommerce-form-register button[name="register"],
.woocommerce-Button,
.wc-block-components-button,
.wp-element-button,
.tnp-submit,
.age-gate-btn,
.woocommerce a.added_to_cart,
.woocommerce a.button.wc-backward,
.woocommerce a.button.view,
.cdv-page .btn-plan {
    text-transform: uppercase !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    letter-spacing: .3px !important;
    border-radius: 4px !important;
    border: 2px solid #8C0F42 !important;
    transition: background-color .25s ease, color .25s ease, border-color .25s ease !important;
    cursor: pointer !important;
}

/* PRIMARY — solid */
.elementor-button:not(.dsk-search-submit),
.woocommerce a.button:not(.added_to_cart):not(.wc-backward):not(.view):not(.add_to_cart_button),
.woocommerce button.button:not(.dsk-search-submit),
.woocommerce input.button:not(.dsk-search-submit),
.woocommerce #respond input#submit,
.single_add_to_cart_button,
.wc-proceed-to-checkout a.checkout-button,
.checkout-button,
#place_order,
.woocommerce-form-login button[name="login"],
.woocommerce-form-register button[name="register"],
.woocommerce-Button,
.wc-block-components-button,
.wp-element-button,
.tnp-submit,
.age-gate-btn--no,
.cdv-page .btn-plan.btn-solid {
    background-color: #8C0F42 !important;
    color: #fff !important;
}
.elementor-button:not(.dsk-search-submit):hover,
.woocommerce a.button:not(.added_to_cart):not(.wc-backward):not(.view):not(.add_to_cart_button):hover,
.woocommerce button.button:not(.dsk-search-submit):hover,
.woocommerce input.button:not(.dsk-search-submit):hover,
.woocommerce #respond input#submit:hover,
.single_add_to_cart_button:hover,
.wc-proceed-to-checkout a.checkout-button:hover,
.checkout-button:hover,
#place_order:hover,
.woocommerce-form-login button[name="login"]:hover,
.woocommerce-form-register button[name="register"]:hover,
.woocommerce-Button:hover,
.wc-block-components-button:hover,
.wp-element-button:hover,
.tnp-submit:hover,
.age-gate-btn--no:hover,
.cdv-page .btn-plan.btn-solid:hover {
    background-color: #fff !important;
    color: #8C0F42 !important;
    border-color: #8C0F42 !important;
}

/* SECONDARY — outline */
.woocommerce a.added_to_cart,
.woocommerce a.button.wc-backward,
.woocommerce a.button.view,
.age-gate-btn--yes,
.cdv-page .btn-plan.btn-outline {
    background-color: transparent !important;
    color: #8C0F42 !important;
}
.woocommerce a.added_to_cart:hover,
.woocommerce a.button.wc-backward:hover,
.woocommerce a.button.view:hover,
.age-gate-btn--yes:hover,
.cdv-page .btn-plan.btn-outline:hover {
    background-color: #8C0F42 !important;
    color: #fff !important;
    border-color: #8C0F42 !important;
}

/* Single-post enquiry form ("Peça um Orçamento", section cc38cea) sits on a
 * maroon column, so the default solid-maroon submit button blended in. Use a
 * contrasting white (secondary-style) button that inverts to an outline on
 * hover. Higher specificity (+ :not) so it beats the global button system. */
.elementor-element-cc38cea .elementor-button:not(.dsk-search-submit) {
    background-color: #fff !important;
    color: #8C0F42 !important;
    border-color: #fff !important;
}
.elementor-element-cc38cea .elementor-button:not(.dsk-search-submit):hover {
    background-color: transparent !important;
    color: #fff !important;
    border-color: #fff !important;
}

/* Post-content checklists: the ✓ is an inline emoji image jammed against the
 * text. Add a consistent gap after it. (!important is required to beat WordPress'
 * own `img.emoji { margin: 0 .07em !important }`.) */
.elementor-widget-theme-post-content img.emoji {
    margin-right: 6px !important;
}

/* Wine Club (/clube-do-vinho/) typography. This custom page was authored at a
 * much smaller type scale than the rest of the site (13px body vs ~20px on the
 * Elementor pages, 11px badges, etc.), so it read as "too small". Scale every
 * cdv text class up ~20% to a readable size that still fits the compact cards. */
.cdv-page { font-size: 16px !important; }
.cdv-page .cdv-hero h1 { font-size: 44px !important; }
.cdv-page .cdv-hero .hero-sub { font-size: 19px !important; }
.cdv-page .hero-benefit { font-size: 16px !important; }
.cdv-page .check-circle { font-size: 13px !important; }
.cdv-page .section-title { font-size: 33px !important; }
.cdv-page .section-sub { font-size: 17px !important; }
.cdv-page .step-num { font-size: 26px !important; }
.cdv-page .step h4 { font-size: 17px !important; }
.cdv-page .step p { font-size: 16px !important; }
.cdv-page .toggle-btn { font-size: 15px !important; }
.cdv-page .badge { font-size: 13px !important; }
.cdv-page .plan-icon { font-size: 40px !important; }
.cdv-page .plan-name { font-size: 27px !important; }
.cdv-page .plan-tagline { font-size: 15px !important; }
.cdv-page .price-main { font-size: 32px !important; }
.cdv-page .price-unit { font-size: 15px !important; }
.cdv-page .price-alt { font-size: 13px !important; }
.cdv-page .plan-includes li { font-size: 16px !important; }
.cdv-page .plan-ideal { font-size: 14px !important; }
.cdv-page .guarantee { font-size: 14px !important; }
.cdv-page .why-icon { font-size: 33px !important; }
.cdv-page .why-card h4 { font-size: 18px !important; }
.cdv-page .why-card p { font-size: 16px !important; }
.cdv-page .w-icon { font-size: 28px !important; }
.cdv-page .curation-inner p { font-size: 17px !important; }
.cdv-page .coming-soon p { font-size: 15px !important; }
.cdv-page .faq-q { font-size: 17px !important; }
.cdv-page .faq-arrow { font-size: 13px !important; }
.cdv-page .faq-a { font-size: 16px !important; }
.cdv-page .cdv-final-cta h2 { font-size: 38px !important; }
.cdv-page .cdv-final-cta p { font-size: 19px !important; }

/* Wine Club — breathing room after the section sub-titles. The sub-titles
 * ("In 4 simple steps", etc.) sat flush against the content below them (0 gap),
 * and in the hero the sub-text sat flush against the benefits row. Add space
 * after them so each section header has room before its content. */
.cdv-page .section-sub { margin-bottom: 30px !important; }
.cdv-page .hero-sub { margin-bottom: 18px !important; }
/* Space above the final-CTA button ("Join now"), which sat flush under its sub-text. */
.cdv-page .cdv-final-cta .wp-block-buttons { margin-top: 28px !important; }
/* Section headings carried an extra ~50px top margin on top of the section's
 * 72px padding, so each section's top spacing (~122px) was much larger than its
 * bottom (72px). Drop the heading's top margin so top and bottom match. */
.cdv-page .cdv-section .section-title { margin-top: 0 !important; }
/* Final-CTA heading also had a ~57px top margin on top of its 80px padding,
 * making its top spacing larger than the bottom. Zero it so they match. */
.cdv-page .cdv-final-cta h2 { margin-top: 0 !important; }
/* The phone (tel) contact icon is a dark telephone emoji that disappears on the
 * maroon CTA background — recolour just that one to white via a filter. */
.cdv-page .contact:has(a[href^="tel:"]) img.emoji { filter: brightness(0) invert(1); }

/* Blog listing (/blogs/, page-id-27965) — hover effect on the post cards: the
 * card lifts with a soft shadow and its featured image zooms in. The featured
 * image is wrapped (in functions.php) in an <a.dopa-blog-img-link> that links to
 * the post AND acts as the rounded clip box for the zoom — clipping on that
 * wrapper (rather than the Elementor image widget) keeps the image's 20px top
 * corners rounded on hover. The category link stays separate. */
body.page-id-27965 .e-loop-item {
    transition: transform .3s ease, box-shadow .3s ease !important;
}
body.page-id-27965 .e-loop-item:hover {
    transform: translateY(-6px) !important;
    box-shadow: 0 14px 30px rgba(0, 0, 0, .13) !important;
}
body.page-id-27965 .e-loop-item .dopa-blog-img-link {
    display: block;
    width: 100%;
    overflow: hidden;
    border-top-left-radius: 20px;
    border-top-right-radius: 20px;
}
body.page-id-27965 .e-loop-item .dopa-blog-img-link img {
    transition: transform .45s ease !important;
    display: block;
    width: 100%;
}
body.page-id-27965 .e-loop-item:hover .dopa-blog-img-link img {
    transform: scale(1.06) !important;
}

/* Wine Club — make the page full-width. The whole cdv layout sits in one
 * Elementor container whose inner box was capped at 1440px and centred, leaving
 * uneven-looking side gutters. Remove the cap, the centring margins and the
 * section padding so the maroon hero and the content sections span the full
 * width. (Each cdv section keeps its own 40px inner padding, so text/cards stay
 * off the edges.) */
.elementor-element-47d6ca51 {
    padding-left: 0 !important;
    padding-right: 0 !important;
}
.elementor-element-47d6ca51 > .e-con-inner {
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* #1 — footer section-heading typography uniformity (2026-05-17 patch).
 * Categorias / Ajuda / Métodos de Pagamento are Elementor heading widgets that
 * render as Marcellus 19px/500 #000 (the kit's default heading family overrides
 * their inline Inter setting). The other three column titles render differently:
 *   - Subscreva a Newsletter (e6f28c3): Inter 19px
 *   - Links Rápidos          (6e87de2): Inter 19px
 *   - Siga-nos               (.footer-follow-us-heading h5, JS-injected)
 * Force all three to Marcellus 19px/500 #000 so every footer column title matches.
 * Copyright line and other footer body text are untouched.
 */
.elementor-location-footer .elementor-element-e6f28c3 .elementor-heading-title,
.elementor-location-footer .elementor-element-6e87de2 .elementor-heading-title,
.elementor-location-footer .elementor-element-6b41f4e .elementor-heading-title,
.elementor-location-footer .elementor-element-c29b11e .elementor-heading-title,
.elementor-location-footer .elementor-element-668d34f .elementor-heading-title,
.elementor-location-footer .footer-follow-us-heading .elementor-heading-title {
    font-family: "Marcellus", serif !important;
    font-size: 19px !important;
    font-weight: 500 !important;
    color: #000 !important;
    line-height: 1.3 !important;
    margin-bottom: 14px !important;
}

/* #1b — Slick carousel arrows: restore FontAwesome (2026-05-29 patch).
 * Parent theme template.css has `body i.slick-arrow { font-family: wpbingofont }`.
 * The wpbingofont file is no longer bundled with this site, so the browser
 * renders a tofu/missing-glyph box where the chevron should be (visible at the
 * right of the Rocim "Vinhos" featured-product carousel, and any other slick).
 * Restore FA classes + explicit content per chevron direction.
 */
body i.slick-arrow.fa,
body i.slick-arrow.fa-angle-left,
body i.slick-arrow.fa-angle-right,
body i.slick-arrow.fa-angle-up,
body i.slick-arrow.fa-angle-down,
body i.slick-arrow.fa-chevron-left,
body i.slick-arrow.fa-chevron-right {
    font-family: "Font Awesome 6 Free", "Font Awesome 5 Free", FontAwesome !important;
    font-weight: 900 !important;
    font-style: normal !important;
    opacity: 1 !important;     /* parent theme set i opacity:0 to hide broken wpbingofont arrows */
    color: #3b3b38 !important; /* subtle dark grey, matches brand text */
}
body .bwp-woo-categories:hover i.slick-arrow,
body .prod-box:hover i.slick-arrow,
body .content-product-list:hover i.slick-arrow {
    opacity: 1 !important;
}
/* Hover-only arrow glyph (2026-05-29 patch).
 * The parent theme's own hover reveal (`.content-product-list:hover .slick-arrow
 * { visibility:visible }`) is NOT !important and loses to a higher-specificity
 * !important rule that keeps the <i> permanently hidden — so the <i>'s own
 * hover toggle never actually fires. The chevrons only ever appeared because an
 * earlier patch forced `::before { visibility:visible !important }`, which made
 * them show ALL the time (the "hover visibility issue").
 *
 * Fix: drive the glyph from the ::before, which we control with !important.
 * Hidden at rest; revealed only while the carousel container is hovered. A
 * visible ::before shows through even a hidden <i>, so this works regardless of
 * the (broken) <i> toggle, on related-products, /categorias/ and .prod-box. */
body i.slick-arrow.fa-angle-left::before,
body i.slick-arrow.fa-angle-right::before,
body i.slick-arrow.fa-angle-up::before,
body i.slick-arrow.fa-angle-down::before,
body i.slick-arrow.fa-chevron-left::before,
body i.slick-arrow.fa-chevron-right::before {
    visibility: hidden !important;      /* hover-only: hidden at rest */
    display: inline-block !important;
}
body .content-product-list:hover i.slick-arrow::before,
body .bwp-woo-categories:hover i.slick-arrow::before,
body .prod-box:hover i.slick-arrow::before,
body .related:hover i.slick-arrow::before,
body .cross_sell:hover i.slick-arrow::before {
    visibility: visible !important;     /* reveal glyph on carousel hover */
}
body i.slick-arrow.fa-angle-left::before    { content: "\f104" !important; }
body i.slick-arrow.fa-angle-right::before   { content: "\f105" !important; }
body i.slick-arrow.fa-angle-up::before      { content: "\f106" !important; }
body i.slick-arrow.fa-angle-down::before    { content: "\f107" !important; }
body i.slick-arrow.fa-chevron-left::before  { content: "\f053" !important; }
body i.slick-arrow.fa-chevron-right::before { content: "\f054" !important; }

/* #1c — Carousel arrow button restyle (2026-05-29, client feedback).
 * The theme default was a 35px solid-bordeaux circle sitting at left:-15px /
 * right:-15px, i.e. floating in the outer margin (looked oversized and too
 * strong, most obvious on narrow/mobile widths). Restyle to a smaller, neutral
 * white button with a subtle border + shadow, inset onto the carousel edge so
 * it reads as part of the slider rather than a stray dot in the whitespace.
 * Scoped to the product carousels only (related / cross-sell / categorias /
 * homepage product lists) so testimonial/brand sliders are untouched. */
body .content-product-list i.slick-arrow,
body .bwp-woo-categories i.slick-arrow,
body .prod-box i.slick-arrow,
body .related i.slick-arrow,
body .cross_sell i.slick-arrow {
    width: 30px !important;
    height: 30px !important;
    line-height: 30px !important;
    background: #ffffff !important;
    border: 1px solid #e6dcd0 !important;
    box-shadow: 0 1px 6px rgba(0, 0, 0, 0.15) !important;
    color: #8c0f42 !important;          /* bordeaux chevron on white */
    font-size: 13px !important;
    z-index: 5 !important;
    margin-top: -15px !important;       /* re-centre for the smaller height */
}
/* Inset the buttons just inside the carousel edge instead of the outer margin. */
body .content-product-list i.slick-arrow.fa-angle-left,
body .bwp-woo-categories i.slick-arrow.fa-angle-left,
body .prod-box i.slick-arrow.fa-angle-left,
body .related i.slick-arrow.fa-angle-left,
body .cross_sell i.slick-arrow.fa-angle-left {
    left: 4px !important;
    right: auto !important;
}
body .content-product-list i.slick-arrow.fa-angle-right,
body .bwp-woo-categories i.slick-arrow.fa-angle-right,
body .prod-box i.slick-arrow.fa-angle-right,
body .related i.slick-arrow.fa-angle-right,
body .cross_sell i.slick-arrow.fa-angle-right {
    right: 4px !important;
    left: auto !important;
}

/* #1d — Product-card white strip fix (2026-05-29, client feedback).
 * The carousel card (.products-entry) had a 1px border + 4px radius but a
 * TRANSPARENT background, while its image area (.products-thumb) carries a 20px
 * top margin and a cream (#F9F6F1) background. That 20px margin therefore
 * showed the white page through, as a band across the top of the card inside
 * the border. Give the card itself the same cream background so the whole tile
 * reads as one cream surface (the 20px stays as breathing room above the
 * bottle). Scoped to the product carousels. */
body .content-product-list .products-entry,
body .bwp-woo-categories .products-entry,
body .prod-box .products-entry {
    background: #F9F6F1 !important;
}

/* #2 — /categorias/ tile grid (widget c98fc7f, .cat-sec).
 * Fix tile width + height uniformity (2026-05-29 patch).
 *   - Widget had `_flex_align_self: center` (now removed via DB migration) which
 *     constrained it to slick's content width (~966px) instead of filling its
 *     1456px flex container. With the override gone the widget stretches and
 *     each tile fits ~225px.
 *   - Add safety CSS to force full width + min-height on the title so 2-line
 *     titles (Promoções e Lançamentos, Licores e Aperitivos) don't make
 *     neighbouring tiles uneven.
 */
.elementor-element-c98fc7f.cat-sec {
    width: 100% !important;
    align-self: stretch !important;
}
.elementor-element-c98fc7f.cat-sec .content-category {
    width: 100% !important;
}
.elementor-element-c98fc7f.cat-sec .item.item-product-cat {
    height: 100%;
    /* Parent theme set asymmetric padding (15px left / 18px right) which made
     * every tile look subtly skewed when 6 sat side-by-side. Equalise. */
    padding-left: 16px !important;
    padding-right: 16px !important;
}
.elementor-element-c98fc7f.cat-sec .item.item-product-cat h2.item-title {
    min-height: 2.6em; /* room for 2 lines without pushing tiles uneven */
    display: flex;
    align-items: flex-start;
    justify-content: center;
    text-align: center;
}

/* #3 — Product carousel card heights (2026-05-29 patch).
 * Multiple bwp_product_list widgets render product cards in slick carousels
 * across the site (Vinhos, Destilados, Licores e Aperitivos, Promoções e
 * Lançamentos, Packs e Kits, Acessórios sections). Cards with 2-line product
 * titles (e.g. "Monkey Shoulder Blended Malt…") are taller than 1-line cards
 * (e.g. "Hendrick's Gin"), creating an uneven row.
 *
 * Reserve 2 lines of title space on every card so heights stay uniform.
 */
body .prod-box .product-wapper .product-title,
body .elementor-widget-bwp_product_list .product-wapper .product-title,
body .elementor-widget-bwp_product_list .product-wapper h3,
body .elementor-widget-bwp_product_list .product-wapper h4 {
    min-height: 2.6em;
    line-height: 1.25;
    margin-bottom: 6px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
/* Make cards stretch to equal heights inside the slick row */
body .prod-box .slick-track,
body .elementor-widget-bwp_product_list .slick-track {
    display: flex !important;
    align-items: stretch !important;
}
body .prod-box .slick-slide,
body .elementor-widget-bwp_product_list .slick-slide {
    height: auto !important;
}
body .prod-box .slick-slide > div,
body .elementor-widget-bwp_product_list .slick-slide > div {
    height: 100%;
    /* The .slick-slide is a flex item (display:flex), so this .items wrapper
     * only stretched on the cross (height) axis — leaving its width to collapse
     * to content. That made each carousel's card a different width (202-273px)
     * depending on title/image size. Force it to fill the fixed 306px slide so
     * every card across every bwp_product_list carousel is identical width. */
    width: 100%;
    flex: 1 1 100%;
    min-width: 0;
}
body .prod-box .product-wapper,
body .elementor-widget-bwp_product_list .product-wapper {
    height: 100%;
    display: flex;
    flex-direction: column;
}
/* Loading-state polish for product carousels (Vinhos / Destilados / Licores /
 * Promoções / Packs / Acessórios sections on /categorias/).
 * Lazyloaded images take 200-500ms to swap from the 1x1 GIF placeholder to the
 * real product photo. Without a background colour the card looks "empty/broken"
 * during that window. Add a soft cream background that matches the brand
 * palette so the loading state reads as intentional. */
body .prod-box .product-wapper .products-thumb,
body .elementor-widget-bwp_product_list .product-wapper .products-thumb {
    background-color: #F9F6F1;
}
/* Fade-in the image so the swap looks smooth */
body .prod-box .product-wapper .products-thumb img.lazyload,
body .elementor-widget-bwp_product_list .product-wapper .products-thumb img.lazyload {
    opacity: 0;
}
body .prod-box .product-wapper .products-thumb img.lazyloaded,
body .elementor-widget-bwp_product_list .product-wapper .products-thumb img.lazyloaded {
    opacity: 1;
    transition: opacity .25s ease-in;
}
body .prod-box .product-wapper .products-content,
body .elementor-widget-bwp_product_list .product-wapper .products-content {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
}

/* #4 — Shop / grid layout: reveal Add-to-cart + Wishlist buttons on card hover.
 * Parent theme only had these rules for `.products-list.list` view — the grid
 * view (used on /shop/) left .product-button children at opacity:0; visibility:
 * hidden; width:0, so clicks fell through to the underlying product image link
 * which routes to the PDP. Result: hover icons looked broken and add-to-cart
 * always redirected to PDP.
 *
 * Mirror the list-view visibility rules into grid view so the WC ajax_add_to_cart
 * handler can fire normally.
 */
/* Default: hidden — reveal on card hover */
body .products-list.grid .product-wapper .product-button > * {
    opacity: 0;
    visibility: hidden;
    transform: translateX(8px);
    transition: opacity .25s ease, visibility .25s ease, transform .25s ease;
}
/* Reveal on hover */
body .products-list.grid .product-wapper:hover .product-button > *,
body .products-list.grid .product-wapper:focus-within .product-button > * {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
}
body .products-list.grid .product-wapper .product-button .add_to_cart_button,
body .products-list.grid .product-wapper .product-button .product_type_simple,
body .products-list.grid .product-wapper .product-button .product_type_grouped,
body .products-list.grid .product-wapper .product-button .product_type_variable,
body .products-list.grid .product-wapper .product-button .product_type_external,
body .products-list.grid .product-wapper .product-button .woosw-btn,
body .products-list.grid .product-wapper .product-button > a.button,
body .products-list.grid .product-wapper .product-button > .woocommerce > a {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px;
    min-height: 42px;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    position: relative;
    z-index: 100 !important;     /* sit above the woocommerce-LoopProduct-link */
    pointer-events: auto !important;
}
/* Lift the whole .product-button container above the image-wrapping PDP link
 * so clicks on the cart/wishlist buttons aren't swallowed by the underlying
 * <a class="woocommerce-LoopProduct-link"> that wraps the product image. */
body .products-list.grid .product-wapper .product-button {
    z-index: 99 !important;
    pointer-events: none; /* container itself doesn't grab clicks */
}
body .products-list.grid .product-wapper .product-button > * {
    pointer-events: auto !important;
}
/* Slight reveal-on-hover transition so it doesn't feel jarring */
body .products-list.grid .product-wapper .product-button > * {
    transition: opacity .2s ease, transform .2s ease;
}

/* =========================================================================
 * Event enquiry popup (#29404 "Envie-nos uma mensagem") — 2026-06-01
 * Restyle to match the site (light/cream + maroon, Marcellus heading) and
 * remove the inner scrollbar. Elementor Pro renders this popup; we override
 * via the popup wrapper id. Same fields (Nome / E-mail / Telefone / Mensagem).
 * ========================================================================= */
#elementor-popup-modal-29404 .dialog-message { max-height: none !important; overflow: visible !important; }
#elementor-popup-modal-29404 .elementor-element-feb5b63 { background-color: #FBF9F5 !important; border-radius: 14px !important; padding: 26px 30px !important; }
#elementor-popup-modal-29404 .elementor-icon svg path,
#elementor-popup-modal-29404 .elementor-icon svg * { fill: #8C0F42 !important; stroke: #8C0F42 !important; }
#elementor-popup-modal-29404 .elementor-heading-title { color: #8C0F42 !important; }
#elementor-popup-modal-29404 .elementor-field-group { margin-bottom: 14px !important; }
#elementor-popup-modal-29404 .elementor-field-label { color: #3B3B38 !important; font-weight: 500 !important; margin-bottom: 5px !important; }
#elementor-popup-modal-29404 .elementor-field:not(textarea) { background:#fff !important; color:#3B3B38 !important; border:1px solid #e3ddd2 !important; border-radius:6px !important; padding:0 14px !important; line-height:42px !important; min-height:42px !important; box-shadow:none !important; }
#elementor-popup-modal-29404 textarea.elementor-field { background:#fff !important; color:#3B3B38 !important; border:1px solid #e3ddd2 !important; border-radius:6px !important; padding:10px 14px !important; line-height:1.5 !important; min-height:92px !important; box-shadow:none !important; resize:vertical; }
#elementor-popup-modal-29404 .elementor-field::placeholder { color:#a39c92 !important; }
#elementor-popup-modal-29404 .elementor-field:focus { border-color:#8C0F42 !important; outline:none !important; box-shadow:0 0 0 2px rgba(140,15,66,.15) !important; }
#elementor-popup-modal-29404 .elementor-button { background:#8C0F42 !important; color:#fff !important; border:1px solid #8C0F42 !important; border-radius:6px !important; padding:11px 32px !important; font-weight:600 !important; letter-spacing:.4px !important; }
#elementor-popup-modal-29404 .elementor-button:hover { background:#4C0521 !important; border-color:#4C0521 !important; }
#elementor-popup-modal-29404 .dialog-close-button { color:#8C0F42 !important; }
/* Short-viewport safety: keep a scroll only if the modal truly can't fit */
@media (max-height: 560px) { #elementor-popup-modal-29404 .dialog-message { max-height: 100vh !important; overflow: auto !important; } }

/* =========================================================================
 * Homepage product carousels/grids — mobile alignment fix — 2026-06-01
 * The WPBingo product rows use an unbalanced gutter (row margin:0 -15px with
 * only 6px column padding), so on phones the first card clipped ~9-15px off
 * the left edge. One container (54bbc2f) was also width:90% but left-aligned
 * (asymmetric: flush left, gap only on the right). Fix on mobile: make the
 * product containers full width, drop the negative row gutter, and add even
 * 12px side padding so cards sit symmetrically inside the viewport.
 * ========================================================================= */
@media (max-width: 767px) {
    .elementor-element-54bbc2f,
    .elementor-element-85f6fd8 { width: 100% !important; max-width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; }
    .prod-boxs .content.products-list.grid { margin-left: 0 !important; margin-right: 0 !important; }
    .prod-boxs .bwp_product_list { padding-left: 12px !important; padding-right: 12px !important; }
}

/* =========================================================================
 * sobre-nos (About Us) — mobile padding fix — 2026-06-01
 * Two content containers had ASYMMETRIC horizontal padding on phones, shoving
 * text against the left edge so it looked cut off on the right:
 *   .elementor-element-ea0aae3  was padding 5px left / 50px right
 *   .elementor-element-e67283d  was padding 0 left / 10px right (small column)
 * Even them out for balanced spacing.
 * ========================================================================= */
@media (max-width: 767px) {
    .elementor-element-ea0aae3 { padding-left: 20px !important; padding-right: 20px !important; }
    .elementor-element-e67283d { padding-left: 0 !important; padding-right: 10px !important; }
}

/* =========================================================================
 * Events page (/eventos/) + About-Us — mobile polish — 2026-06-01
 * ========================================================================= */
@media (max-width: 767px) {
    /* View-toggle buttons: vertically center the icon with its label
       (the calendar icon sat offset from "Vista de Calendário"). */
    #event-filter-area .event-view-switch .view-btn { display: inline-flex !important; align-items: center !important; gap: 7px; }
    #event-filter-area .event-view-switch .view-btn i { margin-right: 0 !important; }

    /* Month calendar: the 7-column table overflowed the phone (~763px). Make it
       fit with a fixed layout and smaller, readable text. */
    #event-calendar { overflow-x: hidden; }
    .custom-event-calendar { width: 100% !important; table-layout: fixed !important; font-size: 10px !important; }
    .custom-event-calendar th { padding: 6px 2px !important; font-size: 11px !important; }
    .custom-event-calendar td { padding: 4px 2px !important; vertical-align: top !important; word-break: break-word; }
    .custom-event-calendar td strong { font-size: 12px !important; }
    .custom-event-calendar .event-item,
    .custom-event-calendar .event-item a { font-size: 9.5px !important; line-height: 1.25 !important; display: block; }

    /* About-Us: breathing room after the 4-card row before the "Four fronts…" line. */
    .elementor-element-e915400 { margin-top: 34px !important; }
}

/* =========================================================================
 * Events search bar — desktop button placement — 2026-06-01
 * On normal screens the "Procurar Eventos" button looked center-aligned with
 * empty space to its right (the input+button group wasn't filling the bar).
 * Stretch the input and pin the button to the far right.
 * ========================================================================= */
@media (min-width: 768px) {
    #event-filter-area .event-search-box { width: 100% !important; display: flex !important; justify-content: space-between !important; align-items: center; gap: 12px; }
    #event-filter-area .event-search-box #event-search-input { flex: 1 1 auto !important; min-width: 0; width: auto; }
    #event-filter-area .event-search-box #event-search-btn { flex: 0 0 auto !important; white-space: nowrap; }
}

/* =========================================================================
 * Events search button on phones: show only the magnifying-glass icon. The
 * "PROCURAR EVENTOS" label is a bare text node (no wrapping span), so collapse
 * it with font-size:0 and restore the icon's own size, centred in the button.
 * — 2026-06-03
 * ========================================================================= */
@media (max-width: 767px) {
    /* Keep the input and the (icon-only) button on a single row, like desktop,
       instead of stacking them. */
    /* #event-filter-area added to out-specify the parent theme's
       #cat-style .event-search-box {flex-direction:column} mobile rule. */
    #cat-style #event-filter-area .event-search-box { flex-direction: row !important; flex-wrap: nowrap !important; align-items: center !important; gap: 10px !important; }
    #cat-style #event-filter-area .event-search-box #event-search-input { flex: 1 1 auto !important; width: auto !important; min-width: 0 !important; }
    #cat-style #event-filter-area .event-search-box #event-search-btn { flex: 0 0 auto !important; width: 45px !important; height: 45px !important; padding: 0 !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; }
    /* #cat-style prefix needed to out-specify the theme's #cat-style button
       font-size rule (1,0,1) that otherwise keeps the label visible. */
    #cat-style #event-search-btn { font-size: 0 !important; }
    #cat-style #event-search-btn i { font-size: 18px !important; margin: 0 !important; padding: 0 !important; }
}

/* =========================================================================
 * sobre-nos (About Us) — mobile spacing round 2 — 2026-06-01
 * Per request: add top/bottom padding to the main content container (ea0aae3,
 * was only 20px). Also two image widgets carried a 50px LEFT margin that shoved
 * them off-centre on phones — zero it so they centre.
 * ========================================================================= */
@media (max-width: 767px) {
    .elementor-element-ea0aae3 { padding-top: 40px !important; padding-bottom: 40px !important; }
    .elementor-element-7998304,
    .elementor-element-efcd553 { margin-left: 0 !important; margin-right: 0 !important; }
}

/* =========================================================================
 * sobre-nos round 3 — holistic mobile vertical rhythm — 2026-06-01
 * Several top-level boxed content sections had 0 top/bottom padding while
 * others had 40px, and images had no vertical margin (uneven gaps before/after).
 * Normalize across the whole About page (id 9095): every top-level boxed content
 * section gets 40px top/bottom; every content image gets equal 22px above/below.
 * ========================================================================= */
@media (max-width: 767px) {
    body.page-id-9095 .e-con-boxed.e-parent { padding-top: 40px !important; padding-bottom: 40px !important; }
    body.page-id-9095 .elementor-widget-image { margin-top: 22px !important; margin-bottom: 22px !important; }
}

/* =========================================================================
 * Events mobile calendar — dot + tap-to-popup + one-line view toggle — 2026-06-01
 * A 7-col month grid can't show event text on a phone, so on mobile we hide the
 * in-cell text, mark days that have events with a maroon dot, and open a popup
 * (built in event-ajax.js) listing that day's events on tap. Desktop unchanged.
 * ========================================================================= */
@media (max-width: 767px) {
    /* View toggles on a single row */
    #event-filter-area .event-view-switch { display: flex !important; flex-wrap: nowrap; gap: 14px; align-items: center; }
    #event-filter-area .event-view-switch .view-btn { white-space: nowrap; }

    /* Calendar cells: hide inline event text, dot on days with events */
    .custom-event-calendar td .event-item { display: none !important; }
    .custom-event-calendar td.has-events { cursor: pointer; }
    .custom-event-calendar td.has-events::after { content: ""; display: block; width: 7px; height: 7px; border-radius: 50%; background: #8C0F42; margin: 5px auto 0; }
    .custom-event-calendar td { height: 46px; vertical-align: top; }
    .custom-event-calendar td strong { font-size: 13px !important; }

    /* Day popup */
    .dopa-cal-popup { position: fixed; inset: 0; background: rgba(0,0,0,.5); z-index: 99999; align-items: center; justify-content: center; padding: 20px; }
    .dopa-cal-popup-inner { background: #fff; border-radius: 12px; max-width: 340px; width: 100%; max-height: 75vh; overflow: auto; padding: 24px 20px; position: relative; }
    .dopa-cal-popup-close { position: absolute; top: 6px; right: 12px; background: none; border: none; font-size: 28px; line-height: 1; color: #8C0F42; cursor: pointer; }
    .dopa-cal-popup-day { font-family: 'Marcellus', serif; font-size: 22px; color: #8C0F42; margin: 0 0 14px; }
    .dopa-cal-popup-body .event-item { display: block !important; padding: 10px 0; border-bottom: 1px solid #ececec; }
    .dopa-cal-popup-body .event-item:last-child { border-bottom: 0; }
    .dopa-cal-popup-body .event-item a { color: #3B3B38; text-decoration: none; font-size: 14px; line-height: 1.45; display: block; }
}

/* =========================================================================
 * Calendar popup close button fix — 2026-06-01
 * The theme's global button style forced a maroon background; the × was also
 * maroon (invisible) and the box was oversized. Force transparent, sized, with
 * a visible maroon × — high specificity (#id) + !important to beat the theme.
 * ========================================================================= */
@media (max-width: 767px) {
    #dopa-cal-popup .dopa-cal-popup-close {
        position: absolute; top: 4px; right: 8px;
        background: transparent !important; border: 0 !important; box-shadow: none !important;
        width: 34px !important; height: 34px !important; min-width: 0 !important; min-height: 0 !important;
        padding: 0 !important; margin: 0 !important; line-height: 1 !important;
        font-size: 30px !important; color: #8C0F42 !important; cursor: pointer;
        display: flex; align-items: center; justify-content: center;
    }
}

/* =========================================================================
 * Mobile layout batch — 2026-06-01
 * - About "fronts" cards (grid 5a1ce2a): 2 per row instead of 1.
 * - About "Our Promise" heading section (00480a3): the holistic 40px padding was
 *   too much for this heading-only block — tighten it (high specificity to beat
 *   the page-wide boxed-section rule).
 * - Footer payment methods (2991429): 2 per row (2x2) instead of 3+1.
 * ========================================================================= */
@media (max-width: 767px) {
    .elementor-element-5a1ce2a { grid-template-columns: 1fr !important; }
    body.page-id-9095 .e-con-boxed.e-parent.elementor-element-00480a3 { padding-top: 16px !important; padding-bottom: 12px !important; }
    .elementor-element-2991429 div:has(> img) { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 12px !important; justify-items: center; align-items: center; }
    .elementor-element-2991429 div:has(> img) img { width: auto !important; max-width: 100% !important; max-height: 54px; }
}

/* =========================================================================
 * Mobile fixes round — 2026-06-01 (close tap target, footer address, cork gap)
 * ========================================================================= */
@media (max-width: 767px) {
    /* Calendar popup: bigger close tap target */
    #dopa-cal-popup .dopa-cal-popup-close { width: 40px !important; height: 40px !important; }
    /* Footer address: left-aligned, icon + text on one line */
    .elementor-element-4a39d4d, .elementor-element-4a39d4d * { text-align: left !important; }
    .elementor-element-4a39d4d .elementor-icon-box-wrapper { display: flex !important; align-items: center; }
    .elementor-element-4a39d4d .elementor-icon-box-icon { margin: 0 8px 0 0 !important; }
    /* About: tighten the gap after the corkscrew image */
    .elementor-element-cdecd2e { padding-bottom: 6px !important; }
    .elementor-element-7998304 { margin-bottom: 2px !important; }
    .elementor-element-4eb0ecc { padding-top: 12px !important; }
}

/* =========================================================================
 * About-Us mobile round — 2026-06-01 (maroon cards 2-up, pills↔image, curated)
 * ========================================================================= */
@media (max-width: 767px) {
    /* Maroon "fronts" cards (Loja/Eventos/Clube/Blog) — 2 per row */
    .elementor-element-025649d { flex-direction: row !important; flex-wrap: wrap !important; justify-content: center; gap: 12px; }
    .elementor-element-025649d > * { flex: 0 0 45% !important; max-width: 45% !important; }
    /* "We're not a store" section: breathing room between the pills and the image */
    .elementor-element-280d7e4 .elementor-widget-button { margin-bottom: 12px !important; }
    .elementor-element-efcd553 { margin-top: 34px !important; }
    /* "Curated" section icon-boxes: icon + title on one line */
    .elementor-element-09e8c88 .elementor-icon-box-wrapper { display: flex !important; align-items: flex-start; text-align: left !important; }
    .elementor-element-09e8c88 .elementor-icon-box-icon { margin: 0 12px 0 0 !important; }
}

/* =========================================================================
 * Curated section (09e8c88) — icon+title inline + side padding — 2026-06-01
 * The icon-box was flex-direction:column (icon above title); force row so the
 * icon sits beside the title. Also bump the section's L/R padding (was 10px).
 * ========================================================================= */
@media (max-width: 767px) {
    body.page-id-9095 .e-con-boxed.e-parent.elementor-element-09e8c88 { padding-left: 20px !important; padding-right: 20px !important; }
    .elementor-element-09e8c88 .elementor-icon-box-wrapper { flex-direction: row !important; align-items: flex-start !important; text-align: left !important; }
    .elementor-element-09e8c88 .elementor-icon-box-icon { margin: 0 12px 0 0 !important; }
}

/* =========================================================================
 * About/footer mobile tweaks — 2026-06-01 (blockquote gap, card width, follow-us)
 * ========================================================================= */
@media (max-width: 767px) {
    /* "We're not a store" blockquote: space before the pill buttons */
    .elementor-element-d9d0090 { margin-bottom: 18px !important; }
    /* Maroon fronts cards: trim 35px padding + slightly wider so titles fit on fewer lines */
    .elementor-element-025649d { gap: 10px !important; }
    .elementor-element-025649d > * { flex: 0 0 47% !important; max-width: 47% !important; padding: 18px !important; }
    /* Follow Us heading (moved under Quick Links): match the other footer titles' spacing */
    .footer-follow-us-heading { margin-top: 22px !important; margin-bottom: 18px !important; }
}

/* =========================================================================
 * About-Us mobile — 2026-06-01 (ecosystem gap, section padding match, icon align)
 * High specificity (body.page-id) so align-items beats Elementor's own rule.
 * ========================================================================= */
@media (max-width: 767px) {
    /* "We are an ecosystem" heading -> body copy: add top spacing */
    .elementor-element-fab9b4a { margin-top: 16px !important; }
    /* Match the network section's side padding to the icon section (both 20px) */
    body.page-id-9095 .e-con-boxed.e-parent.elementor-element-280d7e4 { padding-left: 20px !important; padding-right: 20px !important; }
    /* Curated icon-boxes: stop the icon stretching; vertically centre the glyph with the title */
    body.page-id-9095 .elementor-element-09e8c88 .elementor-icon-box-wrapper { align-items: flex-start !important; }
    body.page-id-9095 .elementor-element-09e8c88 .elementor-icon-box-icon { align-self: flex-start !important; margin-top: 6px !important; }
}

/* =========================================================================
 * Footer copyright (mobile) — left-align + vertical centring — 2026-06-01
 * The "© ... All rights reserved" heading (font tag in 04796d3) was centered;
 * left-align it. A 70px empty spacer (00d2a01) above pushed it to the bottom —
 * shrink it so the copyright sits balanced (~24px above / 20px footer pad below).
 * ========================================================================= */
@media (max-width: 767px) {
    .elementor-element-04796d3,
    .elementor-element-04796d3 .elementor-heading-title,
    .elementor-element-04796d3 font { text-align: left !important; }
    .elementor-element-00d2a01 { height: 24px !important; min-height: 24px !important; }
}

/* =========================================================================
 * Our Promise items wrapper (mobile) — 2026-06-01
 * The 09e8c88 icon-box items are wrapped (JS) in .dopa-promise-wrap; put the 20px
 * side padding on that wrapper and zero the section's own L/R padding.
 * ========================================================================= */
@media (max-width: 767px) {
    .dopa-promise-wrap { padding-left: 40px !important; padding-right: 40px !important; }
    body.page-id-9095 .e-con-boxed.e-parent.elementor-element-09e8c88 { padding-left: 0 !important; padding-right: 0 !important; }
}

/* =========================================================================
 * About-Us (mobile): reduce the gap after the Wine-Club image to 20px — 2026-06-01
 * The 212px gap before "OUR STORY" came from: an empty 100px section (4df5641),
 * container 46a2781's 40px bottom padding, the e-con-inner 10px, section padding,
 * and the image's 22px bottom margin. Collapse to a clean 20px.
 * ========================================================================= */
@media (max-width: 767px) {
    .elementor-element-4df5641 { display: none !important; }
    .elementor-element-46a2781 { padding-bottom: 0 !important; }
    body.page-id-9095 .e-con-boxed.e-parent.elementor-element-280d7e4 { padding-bottom: 10px !important; }
    body.page-id-9095 .elementor-element-efcd553 { margin-bottom: 0 !important; }
}

/* sobre-nos (mobile): drop f3a25dd's 60px bottom margin — 2026-06-01 */
@media (max-width: 767px) {
    .elementor-element-f3a25dd { margin-bottom: 0 !important; }
}

/* =========================================================================
 * Events search section — full width on desktop — 2026-06-01
 * #cat-style's Elementor CSS sets .event-search-box width:calc(100% - 320px),
 * leaving a 320px gap on the right. Override to 100% (higher specificity wins).
 * The input flex-grows and the button lands at the far right.
 * ========================================================================= */
@media (min-width: 768px) {
    #event-filter-area .event-full .event-search .event-search-box { width: 100% !important; max-width: 100% !important; }
}

/* =========================================================================
 * Events page: top padding so the Vista de Lista/Calendário toggles aren't
 * jammed against the banner above them — 2026-06-01
 * ========================================================================= */
#event-filter-area { padding-top: 40px !important; }

/* =========================================================================
 * About-Us DESKTOP fixes — 2026-06-01
 * - ecosystem section (ea0aae3): add top/bottom padding (was 0 on desktop).
 * - Curated icon-boxes (09e8c88): nudge icon 10px to vertically centre with title.
 * - "We're not a store" blockquote (d9d0090): space before the pills.
 * - Maroon fronts cards (025649d): bigger box + less padding so titles aren't clipped.
 * ========================================================================= */
@media (min-width: 768px) {
    body.page-id-9095 .elementor-element-ea0aae3 { padding-top: 50px !important; padding-bottom: 50px !important; }
    body.page-id-9095 .elementor-element-09e8c88 .elementor-icon-box-icon { margin-top: 10px !important; }
    .elementor-element-d9d0090 { margin-bottom: 20px !important; }
    .elementor-element-025649d > * { padding: 18px !important; min-height: 170px !important; }
}

/* =========================================================================
 * Event enquiry popup (#29404): padding/spacing on the form success message
 * ("A sua subscrição foi realizada com sucesso.") — was cramped against the
 * Enviar button and the modal edge. — 2026-06-01
 * ========================================================================= */
#elementor-popup-modal-29404 .elementor-message,
#elementor-popup-modal-29404 .elementor-message.elementor-message-success,
#elementor-popup-modal-29404 .elementor-message.elementor-message-danger {
    margin-top: 16px !important;
    margin-bottom: 6px !important;
    padding: 10px 12px !important;
    line-height: 1.5 !important;
    border-radius: 6px;
}

/* =========================================================================
 * Contact page (/contacto/) "Customer Reviews" testimonial slider — equal
 * footer alignment. Swiper slides are already equal height (341px), but each
 * inner column only grew to fit its text, so the cream footer (avatar + name
 * + stars) floated at a different height per card depending on review length.
 * Each testimonial card has a UNIQUE Elementor id (not shareable), so target
 * generically by class, scoped to the carousel widget (#3c19b52): make every
 * slide's inner column fill the card height and space-between so the review
 * text stays at the top and the footer pins to the bottom — names/stars then
 * line up across all cards regardless of text length.
 * — 2026-06-03
 * ========================================================================= */
.elementor-element-3c19b52 .swiper-slide > .e-con,
.elementor-element-3c19b52 .swiper-slide > .e-con > .e-con-inner {
    height: 100% !important;
}
/* The testimonial cards come in two Elementor container flavours: e-con-boxed
 * (wraps content in .e-con-inner) and e-con-full (column is a direct child of
 * the card). Target the inner column in BOTH so every card fills the slide and
 * pins its footer to the bottom — earlier only the boxed cards were covered,
 * leaving the full-type cards' (e.g. the active/centre slide's) footer floating
 * with the text, so it sat higher than its neighbours. */
.elementor-element-3c19b52 .swiper-slide > .e-con > .e-con-inner > .e-con,
.elementor-element-3c19b52 .swiper-slide > .e-con > .e-con {
    flex-grow: 1 !important;
    height: 100% !important;
    justify-content: space-between !important;
}

/* =========================================================================
 * Contact page (/contacto/) form submit button ("ENVIAR" / "To send"). The
 * Elementor form widget (#8e2e6e7) sits on a maroon panel and the button is
 * the SAME maroon, so it has no contrast (only the white label is visible).
 * Give it a high-contrast white fill with maroon text; invert on hover to
 * match the site's secondary/invert button system. — 2026-06-03
 * ========================================================================= */
.elementor-element-8e2e6e7 .elementor-button {
    background-color: #fff !important;
    color: #8C0F42 !important;
    border: 2px solid #fff !important;
    transition: background-color .25s ease, color .25s ease, border-color .25s ease;
}
.elementor-element-8e2e6e7 .elementor-button:hover,
.elementor-element-8e2e6e7 .elementor-button:focus {
    background-color: transparent !important;
    color: #fff !important;
    border-color: #fff !important;
}

/* =========================================================================
 * My Account → Moradas (addresses). WooCommerce's my-address.php gives the two
 * address cards the classes `col-1` / `col-2` (meaning column 1 / column 2),
 * which COLLIDE with Bootstrap's .col-1 (8.33%) / .col-2 (16.66%) grid widths
 * in the theme's bootstrap.css — squishing each card to a sliver so every word
 * wraps onto its own line. Lay .woocommerce-Addresses out as a 2-up flex grid
 * and give each card a real column width (wraps to 1-up on small screens).
 * — 2026-06-05
 * ========================================================================= */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 24px !important;
    align-items: stretch !important;
}
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses > .woocommerce-Address {
    flex: 1 1 320px !important;
    max-width: none !important;
    width: auto !important;
    margin-bottom: 0 !important;
}
