/**
 * WooCommerce-specific styles – Vinera Theme.
 * Premium wine shop design with elegant product cards.
 *
 * @package Vinera
 */

/* Global: no rounded corners on ANY button/input in the shop */
.woocommerce .button,
.woocommerce button,
.woocommerce input[type="button"],
.woocommerce input[type="submit"],
.woocommerce a.button,
.woocommerce a.button.alt,
.woocommerce button.button,
.woocommerce button.button.alt,
.woocommerce .wc-block-components-button,
.woocommerce-page .button,
.woocommerce-page button,
.woocommerce-page input[type="button"],
.woocommerce-page input[type="submit"],
.wp-block-woocommerce-cart .wc-block-components-button,
.wp-block-woocommerce-checkout .wc-block-components-button,
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button,
.woocommerce .quantity .qty,
.woocommerce .quantity button,
.wc-block-components-quantity-selector {
    border-radius: 0 !important;
}

/* SumUp payment modal submit button: match standard Vinera button style */
button[data-sumup-id="submit_button"],
button[data-testid="submit_button"] {
    background: transparent !important;
    color: var(--vinera-charcoal) !important;
    border: 1px solid var(--vinera-charcoal) !important;
    border-radius: 0 !important;
    font-family: var(--font-heading) !important;
    font-size: 0.85rem !important;
    font-weight: 500 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    padding: 0.8rem 1.5rem !important;
    cursor: pointer !important;
}
button[data-sumup-id="submit_button"] span,
button[data-testid="submit_button"] span {
    color: inherit !important;
}
button[data-sumup-id="submit_button"]:hover,
button[data-testid="submit_button"]:hover {
    background: var(--vinera-charcoal) !important;
    color: #fff !important;
    border-color: var(--vinera-charcoal) !important;
}
button[data-sumup-id="submit_button"]:hover span,
button[data-testid="submit_button"]:hover span {
    color: #fff !important;
}

/* Shop header title removed – nav menu already indicates location */

/* ================================================================
   COMPACT FILTER BAR (in header, shop pages only)
   ================================================================ */

.vinera-filter-bar {
    background: var(--vinera-white);
    border-top: 1px solid var(--vinera-border);
    border-bottom: 1px solid var(--vinera-border);
    padding: 8px 0;
}

.vinera-filter-bar-inner {
    display: flex;
    align-items: center;
    gap: 4px;
    max-width: var(--content-width);
    margin: 0 auto;
    padding: 0 var(--space-md);
    flex-wrap: wrap;
    overflow: visible;
}

/* Search (inline, compact) */
.vinera-bar-search {
    position: relative;
    flex: 1;
    min-width: 140px;
    max-width: 220px;
}

.vinera-search-icon {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--vinera-text-light);
    pointer-events: none;
}

.vinera-search-input {
    width: 100%;
    font-family: var(--font-sans);
    font-size: 0.8rem;
    padding: 7px 10px 7px 30px;
    border: 1px solid var(--vinera-border);
    background: var(--vinera-cream-light);
    color: var(--vinera-charcoal);
    outline: none;
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.vinera-search-input::placeholder {
    color: var(--vinera-text-light);
    opacity: 0.6;
    font-size: 0.78rem;
}

.vinera-search-input:focus {
    border-color: var(--vinera-gold);
    box-shadow: 0 0 0 2px rgba(184, 150, 90, 0.1);
    background: var(--vinera-white);
}

/* Autocomplete */
.vinera-autocomplete {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--vinera-white);
    border: 1px solid var(--vinera-border);
    border-top: none;
    z-index: 200;
    display: none;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    max-height: 320px;
    overflow-y: auto;
}

.vinera-autocomplete.visible {
    display: block;
}

.vinera-ac-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 12px;
    text-decoration: none;
    color: var(--vinera-charcoal);
    font-family: var(--font-sans);
    font-size: 0.8rem;
    transition: background var(--transition-fast);
    border-bottom: 1px solid rgba(0, 0, 0, 0.04);
}

.vinera-ac-item:hover {
    background: var(--vinera-cream-light);
}

.vinera-ac-item:last-child {
    border-bottom: none;
}

.vinera-ac-name {
    font-weight: 500;
}

.vinera-ac-meta {
    font-size: 0.7rem;
    color: var(--vinera-text-light);
    margin-left: var(--space-sm);
    flex-shrink: 0;
}

.vinera-ac-empty {
    padding: 10px 12px;
    font-family: var(--font-sans);
    font-size: 0.8rem;
    color: var(--vinera-text-light);
    text-align: center;
}

/* Dropdown Filters (compact) */
.vinera-filter-dropdown {
    position: relative;
    flex-shrink: 0;
}

.vinera-dropdown-toggle {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-family: var(--font-sans);
    font-size: 0.7rem;
    font-weight: 500;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 6px 8px;
    border: 1px solid var(--vinera-border);
    background: var(--vinera-cream-light);
    color: var(--vinera-text);
    cursor: pointer;
    transition: all var(--transition-fast);
    white-space: nowrap;
}

.vinera-dropdown-toggle:hover {
    border-color: var(--vinera-gold);
    color: var(--vinera-gold);
}

.vinera-dropdown-toggle svg {
    transition: transform var(--transition-fast);
    opacity: 0.5;
}

.vinera-filter-dropdown.open .vinera-dropdown-toggle svg {
    transform: rotate(180deg);
}

.vinera-filter-dropdown.has-selection .vinera-dropdown-toggle {
    border-color: var(--vinera-gold);
    color: var(--vinera-gold);
    background: rgba(184, 150, 90, 0.08);
}

/* Dropdown Panels */
.vinera-dropdown-panel {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    min-width: 200px;
    max-height: 300px;
    background: var(--vinera-white);
    border: 1px solid var(--vinera-border);
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
    z-index: 150;
    display: none;
    overflow: hidden;
}

.vinera-filter-dropdown.open .vinera-dropdown-panel {
    display: flex;
    flex-direction: column;
}

/* Panel inline search */
.vinera-panel-search {
    width: 100%;
    padding: 7px 10px;
    font-family: var(--font-sans);
    font-size: 0.75rem;
    border: none;
    border-bottom: 1px solid var(--vinera-border);
    background: var(--vinera-cream-light);
    color: var(--vinera-charcoal);
    outline: none;
    flex-shrink: 0;
    box-sizing: border-box;
}

.vinera-panel-search::placeholder {
    color: var(--vinera-text-light);
    opacity: 0.5;
}

.vinera-panel-search:focus {
    background: var(--vinera-white);
    border-bottom-color: var(--vinera-gold);
}

.vinera-panel-options {
    overflow-y: auto;
    flex: 1;
    min-height: 0;
}

.vinera-dropdown-option {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 7px 12px;
    font-family: var(--font-sans);
    font-size: 0.78rem;
    color: var(--vinera-text);
    cursor: pointer;
    transition: background var(--transition-fast);
    border-bottom: 1px solid rgba(0, 0, 0, 0.03);
}

.vinera-dropdown-option:last-child {
    border-bottom: none;
}

.vinera-dropdown-option:hover {
    background: var(--vinera-cream-light);
}

.vinera-dropdown-option input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    width: 14px;
    height: 14px;
    border: 1.5px solid var(--vinera-border);
    flex-shrink: 0;
    cursor: pointer;
    position: relative;
    transition: all var(--transition-fast);
}

.vinera-dropdown-option input[type="checkbox"]:checked {
    background: var(--vinera-gold);
    border-color: var(--vinera-gold);
}

.vinera-dropdown-option input[type="checkbox"]:checked::after {
    content: '';
    position: absolute;
    left: 3px;
    top: 0px;
    width: 5px;
    height: 8px;
    border: solid var(--vinera-white);
    border-width: 0 1.5px 1.5px 0;
    transform: rotate(45deg);
}

.vinera-option-count {
    margin-left: auto;
    font-size: 0.68rem;
    color: var(--vinera-text-light);
    opacity: 0.5;
}

/* Custom Sorting Dropdown */
.vinera-sort-dropdown {
    position: relative;
}

.vinera-sort-panel {
    right: 0;
    left: auto;
    min-width: 220px;
}

.vinera-sort-option {
    position: relative;
    padding-left: 28px !important;
}

.vinera-sort-option.active {
    color: var(--vinera-gold);
    font-weight: 500;
}

.vinera-sort-option.active::before {
    content: '✓';
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 0.72rem;
    color: var(--vinera-gold);
    font-weight: 600;
}

.vinera-sort-option:hover {
    background: var(--vinera-cream-light);
}

/* Hide native WooCommerce select */
.woocommerce-ordering select.orderby {
    display: none !important;
}

/* Price Panel */
.vinera-price-panel {
    min-width: 260px;
    padding: 14px 16px;
    max-height: none;
    overflow: visible;
}
/* Price dropdown positioning handled dynamically via JS */

.vinera-price-slider {
    position: relative;
    height: 28px;
    margin-bottom: 4px;
}

.vinera-price-track {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    height: 2px;
    background: var(--vinera-border);
    transform: translateY(-50%);
}

.vinera-price-range {
    position: absolute;
    height: 100%;
    background: var(--vinera-gold);
    left: 0;
    width: 100%;
}

.vinera-range-input {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    -webkit-appearance: none;
    appearance: none;
    background: transparent;
    pointer-events: none;
    margin: 0;
}

.vinera-range-input::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 14px;
    height: 14px;
    background: var(--vinera-white);
    border: 2px solid var(--vinera-gold);
    border-radius: 50%;
    pointer-events: all;
    cursor: pointer;
}

.vinera-range-input::-moz-range-thumb {
    width: 14px;
    height: 14px;
    background: var(--vinera-white);
    border: 2px solid var(--vinera-gold);
    border-radius: 50%;
    pointer-events: all;
    cursor: pointer;
}

.vinera-price-values {
    display: flex;
    justify-content: center;
    gap: 4px;
    font-family: var(--font-sans);
    font-size: 0.72rem;
    color: var(--vinera-text-light);
}

/* Filter Footer (active tags + count) */
.vinera-filter-bar-footer {
    display: flex;
    align-items: center;
    gap: 8px;
    max-width: var(--content-width);
    margin: 0 auto;
    padding: 6px var(--space-lg) 0;
    flex-wrap: wrap;
}

.vinera-active-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.vinera-active-tag {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-family: var(--font-sans);
    font-size: 0.68rem;
    letter-spacing: 0.03em;
    padding: 3px 8px;
    background: var(--vinera-cream);
    border: 1px solid var(--vinera-border);
    color: var(--vinera-text);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.vinera-active-tag:hover {
    border-color: var(--vinera-red);
    color: var(--vinera-red);
}

.vinera-active-tag svg {
    opacity: 0.4;
}

.vinera-active-tag:hover svg {
    opacity: 1;
}

.vinera-result-count {
    font-family: var(--font-sans);
    font-size: 0.72rem;
    color: var(--vinera-text-light);
    margin-left: auto;
    white-space: nowrap;
}

.vinera-filter-reset {
    font-family: var(--font-sans);
    font-size: 0.68rem;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    background: none;
    border: none;
    color: var(--vinera-text-light);
    cursor: pointer;
    text-decoration: underline;
    padding: 0;
    white-space: nowrap;
}

.vinera-filter-reset:hover {
    color: var(--vinera-charcoal);
}

/* Loading State */
.woocommerce ul.products.vinera-loading {
    opacity: 0.4;
    pointer-events: none;
    transition: opacity 0.2s ease;
}

.woocommerce ul.products {
    transition: opacity 0.25s ease;
}

/* ================================================================
   PRODUCT ARCHIVE / SHOP PAGE
   ================================================================ */

/* Hide default WooCommerce page title (we use our custom one) */
.woocommerce-products-header__title {
    display: none !important;
}

/* Shop toolbar (ordering + view toggle) */
.vinera-shop-toolbar {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    margin-bottom: var(--space-md);
    padding-top: var(--space-sm);
}

.vinera-shop-toolbar .woocommerce-result-count {
    font-family: var(--font-sans);
    font-size: 0.8rem;
    color: var(--vinera-text-light);
    margin: 0;
}

.vinera-toolbar-right {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
}

.vinera-shop-toolbar .woocommerce-ordering {
    font-family: var(--font-sans);
    font-size: 0.8rem;
    margin: 0;
}

.vinera-shop-toolbar .woocommerce-ordering select {
    font-family: var(--font-sans);
    font-size: 0.8rem;
    border: 1px solid var(--vinera-border);
    padding: 6px 10px;
    background: var(--vinera-white);
    border-radius: 0;
    cursor: pointer;
}

/* View Toggle (Grid / List) */
.vinera-view-toggle {
    display: flex;
    gap: 0;
    border: 1px solid var(--vinera-border);
}

.vinera-view-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: auto;
    height: auto;
    padding: 8px 9px;
    background: var(--vinera-cream-light);
    border: none;
    border-right: 1px solid var(--vinera-border);
    cursor: pointer;
    color: var(--vinera-text-light);
    transition: all var(--transition-fast);
}

.vinera-view-btn:last-child {
    border-right: none;
}

.vinera-view-btn svg {
    width: 14px;
    height: 14px;
    opacity: 0.45;
    transition: opacity var(--transition-fast);
}

.vinera-view-btn:hover {
    color: var(--vinera-gold);
}

.vinera-view-btn:hover svg {
    opacity: 0.7;
}

.vinera-view-btn.active {
    background: rgba(184, 150, 90, 0.12);
    color: var(--vinera-gold);
}

.vinera-view-btn.active svg {
    opacity: 1;
    color: var(--vinera-gold);
}

/* Product Grid (default) – 2 columns for horizontal card layout */
.woocommerce ul.products {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: var(--space-lg);
    padding: 0;
    margin: 0;
}

/* Reset default WooCommerce float and width for all loop items */
.woocommerce ul.products li.product {
    width: 100% !important;
    float: none !important;
    margin: 0 !important;
}

/* ================================================================
   LIST VIEW – Clean Table (no images)
   ================================================================ */
.woocommerce ul.products.vinera-list-view {
    grid-template-columns: 1fr !important;
    gap: 0;
}

.woocommerce ul.products.vinera-list-view li.product {
    display: grid !important;
    grid-template-columns: 1fr auto auto;
    grid-template-rows: auto auto;
    align-items: center;
    text-align: left;
    padding: 12px 16px;
    gap: 0 16px;
    border-bottom: 1px solid var(--vinera-border);
    background: var(--vinera-white);
    position: relative;
    min-height: 0 !important;
}

.woocommerce ul.products.vinera-list-view li.product:first-child {
    border-top: 1px solid var(--vinera-border);
}

.woocommerce ul.products.vinera-list-view li.product:hover {
    background: var(--vinera-cream-light);
}

/* Hide image + picture wrapper completely */
.woocommerce ul.products.vinera-list-view li.product > a.woocommerce-LoopProduct-link,
.woocommerce ul.products.vinera-list-view li.product > a.woocommerce-LoopProduct-link > picture {
    display: contents;
}
.woocommerce ul.products.vinera-list-view li.product img {
    display: none !important;
}

/* Title – row 1, col 1 */
.woocommerce ul.products.vinera-list-view li.product .woocommerce-loop-product__title {
    grid-column: 1;
    grid-row: 1;
    font-family: var(--font-heading);
    font-size: 1.05rem;
    font-weight: 400;
    letter-spacing: 0.03em;
    margin: 0;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Meta – row 2, col 1 */
.woocommerce ul.products.vinera-list-view li.product .product-meta,
.woocommerce ul.products.vinera-list-view li.product .vinera-product-meta {
    grid-column: 1;
    grid-row: 2;
    font-size: 0.75rem;
    font-family: var(--font-sans);
    color: var(--vinera-text-light);
    letter-spacing: 0.02em;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Show secondary meta inline in list view */
.woocommerce ul.products li.product .vinera-meta-secondary {
    display: none;
}
.woocommerce ul.products.vinera-list-view li.product .vinera-meta-secondary {
    display: inline;
}

/* Price – row 1-2, col 2 */
.woocommerce ul.products.vinera-list-view li.product .price {
    grid-column: 2;
    grid-row: 1 / 3;
    font-size: 1rem;
    font-family: var(--font-sans);
    font-weight: 700;
    color: var(--vinera-charcoal);
    margin: 0;
    white-space: nowrap;
    text-align: right;
    align-self: center;
}

/* Button – row 1-2, col 3 */
.woocommerce ul.products.vinera-list-view li.product > .button,
.woocommerce ul.products.vinera-list-view li.product > a.add_to_cart_button {
    grid-column: 3;
    grid-row: 1 / 3;
    padding: 0.35rem 0.9rem;
    font-size: 0.6rem;
    margin: 0;
    flex-shrink: 0;
    white-space: nowrap;
    align-self: center;
}

/* "added to cart" link */
.woocommerce ul.products.vinera-list-view li.product > .added_to_cart {
    grid-column: 3;
    grid-row: 1 / 3;
    font-size: 0.6rem;
    align-self: center;
    white-space: nowrap;
    text-align: right;
}


/* ================================================================
   GALLERY VIEW (4-column, image-dominant vertical cards)
   ================================================================ */

/* Gallery grid: 3 columns */
.woocommerce ul.products.vinera-gallery-view {
    grid-template-columns: repeat(3, 1fr) !important;
    gap: var(--space-md);
}

/* Gallery card: vertical layout instead of horizontal grid */
.woocommerce ul.products.vinera-gallery-view li.product {
    display: flex !important;
    flex-direction: column !important;
    align-items: center;
    text-align: center;
    padding: var(--space-sm) var(--space-sm) var(--space-md);
}

/* The <a> wrapper: vertical flex instead of contents */
.woocommerce ul.products.vinera-gallery-view li.product > a.woocommerce-LoopProduct-link {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    text-decoration: none;
    color: inherit;
}

/* Gallery image: large, centered */
.woocommerce ul.products.vinera-gallery-view li.product a img {
    width: auto !important;
    max-width: 100%;
    height: 250px !important;
    max-height: 250px;
    object-fit: contain;
    margin: 0 auto var(--space-sm);
}

/* Gallery placeholder */
.woocommerce ul.products.vinera-gallery-view li.product img.vinera-placeholder {
    height: 250px !important;
    max-height: 250px;
}

/* Gallery title */
.woocommerce ul.products.vinera-gallery-view li.product .woocommerce-loop-product__title {
    font-family: var(--font-heading);
    font-size: 1.25rem;
    font-weight: 400;
    letter-spacing: 0.05em;
    line-height: 1.3;
    margin-top: var(--space-xs);
    text-align: center;
    width: 100%;
}

/* Gallery meta */
.woocommerce ul.products.vinera-gallery-view li.product .product-meta,
.woocommerce ul.products.vinera-gallery-view li.product .vinera-product-meta {
    font-size: 0.78rem;
    font-family: var(--font-sans);
    color: var(--vinera-text-light);
    letter-spacing: 0.03em;
    line-height: 1.6;
    justify-content: center;
}

/* Gallery price */
.woocommerce ul.products.vinera-gallery-view li.product .price {
    font-size: 1.15rem;
    font-family: var(--font-sans);
    font-weight: 700;
    color: var(--vinera-charcoal);
    justify-content: center;
    margin-top: auto;
}

/* Gallery add-to-cart button */
.woocommerce ul.products.vinera-gallery-view li.product > .button,
.woocommerce ul.products.vinera-gallery-view li.product > a.add_to_cart_button {
    margin: var(--space-sm) auto 0;
}

/* Gallery added_to_cart link */
.woocommerce ul.products.vinera-gallery-view li.product > .added_to_cart {
    margin: var(--space-xs) auto 0;
}

/* Remove WooCommerce clearfix pseudo-elements – they become grid items in CSS Grid */
.woocommerce ul.products::before,
.woocommerce ul.products::after {
    content: none !important;
    display: none !important;
}

/* Product Card – horizontal layout (image left, text right) */
.woocommerce ul.products:not([class*="wc-block"]):not(.vinera-list-view):not(.vinera-gallery-view) li.product {
    text-align: left;
    margin: 0 !important;
    padding: var(--space-md);
    background: var(--vinera-cream);
    border: 1px solid var(--vinera-border);
    transition: all var(--transition-base);
    position: relative;
    width: 100% !important;
    float: none !important;
    display: grid !important;
    grid-template-columns: 120px 1fr auto;
    grid-template-rows: auto auto 1fr;
    min-height: 170px;
    gap: 0 var(--space-md);
    align-items: start;
}

.woocommerce ul.products:not([class*="wc-block"]):not(.vinera-list-view):not(.vinera-gallery-view) li.product:hover {
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08);
    transform: translateY(-3px);
    border-color: var(--vinera-gold-light);
}

/* The <a> and <picture> wrappers are transparent so children participate in the card grid */
.woocommerce ul.products:not([class*="wc-block"]):not(.vinera-list-view):not(.vinera-gallery-view) li.product > a.woocommerce-LoopProduct-link,
.woocommerce ul.products:not([class*="wc-block"]):not(.vinera-list-view):not(.vinera-gallery-view) li.product > a.woocommerce-LoopProduct-link > picture {
    display: contents;
    text-decoration: none;
    color: inherit;
}

/* Product Image – column 1, spans all rows, bottom-aligned to match bottle edge */
.woocommerce ul.products:not([class*="wc-block"]):not(.vinera-list-view):not(.vinera-gallery-view) li.product a img {
    grid-column: 1;
    grid-row: 1 / -1;
    width: 100%;
    max-height: 180px;
    object-fit: contain;
    object-position: center bottom;
    mix-blend-mode: multiply;
    margin: 0;
    align-self: end;
}

/* WooCommerce placeholder image styling */
.woocommerce ul.products:not([class*="wc-block"]):not(.vinera-list-view):not(.vinera-gallery-view) li.product .woocommerce-placeholder,
.woocommerce ul.products:not([class*="wc-block"]):not(.vinera-list-view):not(.vinera-gallery-view) li.product img[src*="placeholder"] {
    opacity: 0.15;
    max-height: 200px;
}

/* Product image container – transparent grid participation */
.woocommerce ul.products:not([class*="wc-block"]):not(.vinera-list-view):not(.vinera-gallery-view) li.product a:first-child,
.woocommerce ul.products:not([class*="wc-block"]):not(.vinera-list-view):not(.vinera-gallery-view) li.product a:first-child picture {
    display: contents;
}

/* Product Title – column 2 */
.woocommerce ul.products:not([class*="wc-block"]):not(.vinera-list-view):not(.vinera-gallery-view) li.product .woocommerce-loop-product__title {
    grid-column: 2 / 4;
    grid-row: 1;
    font-family: var(--font-heading);
    font-size: 1.25rem;
    font-weight: 400;
    letter-spacing: 0.05em;
    line-height: 1.3;
    padding: 0;
    margin: 0 0 var(--space-xs) 0;
    color: var(--vinera-charcoal);
}

/* Product Meta (producer, region) – column 2 */
.woocommerce ul.products:not([class*="wc-block"]):not(.vinera-list-view):not(.vinera-gallery-view) li.product .product-meta,
.woocommerce ul.products:not([class*="wc-block"]):not(.vinera-list-view):not(.vinera-gallery-view) li.product .vinera-product-meta {
    grid-column: 2 / 4;
    grid-row: 2;
    font-family: var(--font-sans);
    font-size: 0.78rem;
    color: var(--vinera-text-light);
    letter-spacing: 0.03em;
    line-height: 1.6;
    margin-bottom: var(--space-xs);
    align-self: start;
}

/* Product Price – inside vinera-price-cart-container */
.woocommerce ul.products:not([class*="wc-block"]):not(.vinera-list-view):not(.vinera-gallery-view) li.product .price {
    font-family: var(--font-sans);
    font-size: 1.15rem;
    color: var(--vinera-charcoal);
    font-weight: 700;
    margin-bottom: 0;
    display: block;
}

/* Price/Cart container: pin to bottom row, aligned with bottle base */
.woocommerce ul.products:not([class*="wc-block"]):not(.vinera-list-view):not(.vinera-gallery-view) li.product .vinera-price-cart-container {
    grid-column: 2 / 4;
    grid-row: 3;
    align-self: end;
    display: flex;
    align-items: center;
    gap: var(--space-md);
    padding-top: var(--space-xs);
}

.woocommerce ul.products:not([class*="wc-block"]):not(.vinera-list-view):not(.vinera-gallery-view) li.product .price .woocommerce-Price-currencySymbol {
    font-size: 0.85rem;
    font-weight: 400;
}

/* Add to Cart Button – inside vinera-price-cart-container */
.woocommerce ul.products:not([class*="wc-block"]):not(.vinera-list-view):not(.vinera-gallery-view) li.product > .button,
.woocommerce ul.products:not([class*="wc-block"]):not(.vinera-list-view):not(.vinera-gallery-view) li.product > a.add_to_cart_button {
    justify-self: end;
    align-self: center;
    display: inline-flex;
    margin: 0;
    transition: all var(--transition-fast);
}

.woocommerce ul.products:not([class*="wc-block"]):not(.vinera-list-view):not(.vinera-gallery-view) li.product > .button:hover,
.woocommerce ul.products:not([class*="wc-block"]):not(.vinera-list-view):not(.vinera-gallery-view) li.product > a.add_to_cart_button:hover {
    background: var(--vinera-charcoal);
    color: var(--vinera-white);
}

/* "Added to cart" view-cart link */
.woocommerce ul.products:not([class*="wc-block"]):not(.vinera-list-view):not(.vinera-gallery-view) li.product > .added_to_cart {
    grid-column: 3;
    grid-row: 4;
    justify-self: end;
    font-family: var(--font-sans);
    font-size: 0.7rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

/* ================================================================
   WINE PLACEHOLDER ICON (SVG via CSS)
   ================================================================ */

/* Replace broken placeholder with elegant wine bottle silhouette */
.woocommerce ul.products li.product a:first-child::before {
    content: '';
    display: none;
}

/* Custom placeholder bottle is visible – no need to hide */

/* Load More Button */
.vinera-load-more-wrap {
    text-align: center;
    margin: var(--space-xl) 0;
}

.vinera-load-more-btn {
    font-family: var(--font-sans);
    font-size: 0.8rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    padding: 12px 40px;
    background: transparent;
    color: var(--vinera-text);
    border: 1px solid var(--vinera-text);
    cursor: pointer;
    transition: background 0.2s, color 0.2s;
}

.vinera-load-more-btn:hover {
    background: var(--vinera-text);
    color: var(--vinera-white);
}

/* ================================================================
   PAGINATION
   ================================================================ */

.woocommerce nav.woocommerce-pagination {
    margin: var(--space-2xl) 0 var(--space-xl);
    text-align: center;
}

.woocommerce nav.woocommerce-pagination ul {
    border: none;
    display: inline-flex;
    gap: var(--space-xs);
}

.woocommerce nav.woocommerce-pagination ul li {
    border: none;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
    font-family: var(--font-sans);
    font-size: 0.85rem;
    padding: 0.5rem 0.9rem;
    border: 1px solid var(--vinera-border);
    background: var(--vinera-cream-light);
    color: var(--vinera-text);
    min-width: auto;
    transition: all var(--transition-fast);
}

.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover {
    background: var(--vinera-charcoal);
    border-color: var(--vinera-charcoal);
    color: var(--vinera-white);
}

/* ================================================================
   SINGLE PRODUCT PAGE
   ================================================================ */

/* Single product layout – narrower image for wine bottles */
.woocommerce div.product {
    max-width: var(--content-width);
    margin: var(--space-xl) auto;
    padding: 0 var(--space-lg);
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-xl);
}

.woocommerce div.product div.images {
    background: var(--vinera-cream);
    padding: 4px;
    border: 1px solid var(--vinera-border);
    flex: 0 0 35%;
    max-width: 35%;
    align-self: flex-start;
    text-align: center;
}

/* Disable WooCommerce zoom on product detail page */
.woocommerce div.product div.images .woocommerce-product-gallery__trigger {
    display: none !important;
}
.woocommerce div.product div.images .zoomImg {
    display: none !important;
}

.woocommerce div.product div.images figure.woocommerce-product-gallery__wrapper {
    margin: 0;
}
.woocommerce div.product div.images .woocommerce-product-gallery__image {
    pointer-events: none;
}

/*
 * Both max-width AND max-height on img:
 * Browser scales proportionally to satisfy BOTH constraints simultaneously.
 * No overflow:hidden needed → bottle is NEVER clipped.
 */
.woocommerce div.product div.images img,
.woocommerce div.product div.images img.vinera-placeholder {
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 55vh;
    display: block;
    margin: 0 auto;
}


.woocommerce div.product div.summary {
    flex: 1;
    max-width: 60%;
}

/* Placeholder image in shop grid */
.woocommerce ul.products li.product img.vinera-placeholder {
    object-fit: contain;
    padding: var(--space-md);
    opacity: 0.7;
}

.woocommerce div.product .product_title {
    font-family: var(--font-heading);
    font-size: 2rem;
    letter-spacing: 0.05em;
}

.woocommerce div.product .price {
    font-family: var(--font-sans);
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--vinera-charcoal);
}

/* Product attributes table */
.woocommerce table.shop_attributes {
    border: 1px solid var(--vinera-border);
}

.woocommerce table.shop_attributes th {
    font-family: var(--font-sans);
    font-size: 0.85rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    background: var(--vinera-cream);
    color: var(--vinera-charcoal);
}

.woocommerce table.shop_attributes td {
    font-family: var(--font-body);
    font-size: 1rem;
}

/* Cart checkout button – match Vinera button style (classic + Blocks) */
.woocommerce .wc-proceed-to-checkout a.checkout-button,
.woocommerce a.button.checkout-button,
.woocommerce .cart .button[name="update_cart"],
.woocommerce .cart input.button[name="update_cart"],
.wc-block-cart__submit-button,
a.wc-block-cart__submit-button,
.wc-block-components-button.wc-block-cart__submit-button {
    font-family: var(--font-sans) !important;
    font-size: 0.75rem !important;
    font-weight: 400 !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    padding: 0.7rem 1.8rem !important;
    border: 1px solid var(--vinera-charcoal) !important;
    background: transparent !important;
    color: var(--vinera-charcoal) !important;
    transition: all var(--transition-fast) !important;
    border-radius: 0 !important;
}

.woocommerce .wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce a.button.checkout-button:hover,
.woocommerce .cart .button[name="update_cart"]:hover,
.woocommerce .cart input.button[name="update_cart"]:hover,
.wc-block-cart__submit-button:hover,
a.wc-block-cart__submit-button:hover,
.wc-block-components-button.wc-block-cart__submit-button:hover {
    background: var(--vinera-charcoal) !important;
    color: var(--vinera-white) !important;
}

/* Product navigation (prev/next) on detail page */
.vinera-product-nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: var(--content-max-width);
    margin: 0 auto var(--space-lg);
    padding: 0 var(--content-padding);
    font-family: var(--font-sans);
    font-size: 0.75rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.vinera-product-nav .nav-prev,
.vinera-product-nav .nav-next {
    flex: 1;
}

.vinera-product-nav .nav-next {
    text-align: right;
}

.vinera-product-nav .nav-back {
    flex: 0 0 auto;
}

.vinera-product-nav a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--vinera-charcoal);
    text-decoration: none;
    padding: 6px 14px;
    border: 1px solid var(--vinera-border);
    transition: all var(--transition-fast);
}

.vinera-product-nav .nav-back a {
    border: none;
    color: var(--vinera-text-light);
}

.vinera-product-nav .nav-back a:hover {
    background: none;
    color: var(--vinera-charcoal);
    border: none;
}

.vinera-product-nav a:hover {
    background: var(--vinera-charcoal);
    color: var(--vinera-white);
    border-color: var(--vinera-charcoal);
}

.vinera-product-nav .nav-prev a::before {
    content: '←';
}

.vinera-product-nav .nav-back a::before {
    content: '←';
}

.vinera-product-nav .nav-next a::after {
    content: '→';
}

/* Cart & Checkout general */
.woocommerce .cart-collaterals,
.woocommerce-checkout {
    font-family: var(--font-sans);
}

/* WooCommerce notices */
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-message {
    border-top-color: var(--vinera-olive);
}

.woocommerce .woocommerce-info::before,
.woocommerce .woocommerce-message::before {
    color: var(--vinera-olive);
}

/* ================================================================
   WC BLOCKS TOAST / SNACKBAR NOTICES
   ================================================================ */
.wc-block-components-notice-snackbar,
.wc-block-components-notice-banner {
    background: var(--vinera-cream, #FAF8F5) !important;
    border: 1px solid var(--vinera-border, #E5DDD3) !important;
    border-radius: 8px !important;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08), 0 1px 4px rgba(0, 0, 0, 0.04) !important;
    padding: 12px 16px !important;
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    font-family: var(--font-sans, 'Inter', sans-serif) !important;
    font-size: 0.9rem !important;
    line-height: 1.4 !important;
    color: var(--vinera-charcoal, #2C2C2C) !important;
    max-width: calc(100% - 2rem) !important;
    margin: 0.5rem auto !important;
    position: relative !important;
    z-index: 100 !important;
}

/* Info icon */
.wc-block-components-notice-snackbar > svg,
.wc-block-components-notice-banner > svg {
    flex-shrink: 0 !important;
    width: 20px !important;
    height: 20px !important;
    fill: var(--vinera-charcoal, #2C2C2C) !important;
    opacity: 0.5 !important;
}
.wc-block-components-notice-snackbar > svg path,
.wc-block-components-notice-banner > svg path,
.wc-block-components-notice-snackbar > svg circle,
.wc-block-components-notice-banner > svg circle {
    fill: var(--vinera-charcoal, #2C2C2C) !important;
}

/* Content text */
.wc-block-components-notice-banner__content {
    flex: 1 !important;
    font-size: 0.88rem !important;
    line-height: 1.45 !important;
    color: var(--vinera-charcoal, #2C2C2C) !important;
}

/* Dismiss button: completely hidden – replaced by countdown ring via JS */
.wc-block-components-notice-banner__dismiss {
    display: none !important;
}

/* Countdown ring injected by JS */
.vinera-countdown-ring {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    margin-left: 10px;
}
.vinera-countdown-ring svg {
    width: 22px;
    height: 22px;
    transform: rotate(-90deg);
}
.vinera-countdown-ring circle.vinera-ring-bg {
    fill: none;
    stroke: rgba(0, 0, 0, 0.08);
    stroke-width: 2;
}
.vinera-countdown-ring circle.vinera-ring-progress {
    fill: none;
    stroke: var(--vinera-charcoal, #2C2C2C);
    stroke-width: 2;
    stroke-linecap: round;
    opacity: 0.4;
    stroke-dasharray: 56.55;  /* 2 * π * 9 */
    stroke-dashoffset: 56.55;
    animation: vinera-ring-fill 5s linear forwards;
}
@keyframes vinera-ring-fill {
    to { stroke-dashoffset: 0; }
}

/* Error notices: subtle red tint */
.wc-block-components-notice-snackbar.is-error,
.wc-block-components-notice-banner.is-error {
    border-color: #e8c4c4 !important;
    background: #fef7f7 !important;
}

.wc-block-components-notice-snackbar.is-error > svg,
.wc-block-components-notice-banner.is-error > svg {
    fill: #c0392b !important;
}

/* Success notices: subtle green tint */
.wc-block-components-notice-snackbar.is-success,
.wc-block-components-notice-banner.is-success {
    border-color: #c4d4a8 !important;
    background: #f7faf2 !important;
}

.wc-block-components-notice-snackbar.is-success > svg,
.wc-block-components-notice-banner.is-success > svg {
    fill: var(--vinera-olive, #6B7B3A) !important;
}

/* Wine details table on single product */
.vinera-wine-details {
    margin-top: var(--space-lg);
    padding-top: var(--space-lg);
    border-top: 1px solid var(--vinera-border);
}

.vinera-wine-details h3 {
    font-family: var(--font-heading);
    font-size: 1.1rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin-bottom: var(--space-md);
}

.vinera-details-table {
    width: 100%;
    border-collapse: collapse;
}

.vinera-details-table th,
.vinera-details-table td {
    padding: 8px 12px;
    border-bottom: 1px solid var(--vinera-border);
    text-align: left;
}

.vinera-details-table th {
    font-family: var(--font-sans);
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--vinera-text-light);
    width: 40%;
}

.vinera-details-table td {
    font-family: var(--font-body);
    font-size: 0.95rem;
    color: var(--vinera-charcoal);
}

/* Add to cart form – spacing between qty and button */
.woocommerce div.product form.cart {
    display: flex;
    align-items: center;
    gap: var(--space-lg);
    margin-top: var(--space-lg);
}

/* Add to cart button on product page */
.woocommerce div.product form.cart .button {
    background: transparent;
    color: var(--vinera-charcoal);
    font-family: var(--font-sans);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 12px 30px;
    border: 1px solid var(--vinera-charcoal);
    transition: background var(--transition-fast), color var(--transition-fast);
    cursor: pointer;
}

.woocommerce div.product form.cart .button:hover {
    background: var(--vinera-charcoal);
    color: var(--vinera-white);
}

/* "inkl. MwSt." suffix smaller globally */
.woocommerce .price .woocommerce-price-suffix {
    font-size: 0.65em;
    font-weight: 400;
    color: var(--vinera-text-light);
    margin-left: 2px;
}

/* Hide default WooCommerce SKU in product_meta (we show it below price) */
.woocommerce div.product .product_meta .sku_wrapper {
    display: none;
}

/* Hide category in product_meta – already shown in filters & details */
.woocommerce div.product .product_meta .posted_in {
    display: none;
}

/* Hide compact meta bar on single product – all data is in Weindetails table */
.woocommerce div.product .product-meta {
    display: none;
}

/* Quantity input */
.woocommerce .quantity .qty {
    font-family: var(--font-sans);
    border: 1px solid var(--vinera-border);
    width: 60px;
    padding: 8px;
}

/* Breadcrumbs */
.woocommerce .woocommerce-breadcrumb {
    font-family: var(--font-sans);
    font-size: 0.8rem;
    color: var(--vinera-text-light);
    margin: var(--space-md) 0;
    padding: 0 var(--space-lg);
    max-width: var(--content-width);
    margin-left: auto;
    margin-right: auto;
}

.woocommerce .woocommerce-breadcrumb a {
    color: var(--vinera-olive);
}

/* Tabs on single product – full width in flex layout */
.woocommerce div.product .woocommerce-tabs {
    flex-basis: 100%;
    width: 100%;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
    padding: 0;
    margin: 0;
    list-style: none;
    display: flex;
    gap: 0;
    border-bottom: 2px solid var(--vinera-border);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
    border: none;
    background: transparent;
    padding: 0;
    margin: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
    font-family: var(--font-sans);
    font-size: 0.8rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: var(--space-md) var(--space-lg);
    color: var(--vinera-text-light);
    display: block;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
    color: var(--vinera-charcoal);
    border-bottom: 2px solid var(--vinera-charcoal);
    margin-bottom: -2px;
}

/* Product description displayed inline (without tab) */
.vinera-product-description {
    clear: both;
    flex-basis: 100%;
    width: 100%;
    margin-top: var(--space-xl);
    padding-top: var(--space-xl);
    border-top: 1px solid var(--vinera-border);
}

.vinera-product-description h2 {
    font-family: var(--font-heading);
    font-size: 1.3rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin-bottom: var(--space-md);
    color: var(--vinera-charcoal);
}

.vinera-product-description .vinera-description-content {
    font-family: var(--font-sans);
    font-size: 0.95rem;
    line-height: 1.8;
    color: var(--vinera-text);
}

.vinera-product-description .vinera-description-content h3 {
    font-family: var(--font-heading);
    font-size: 1.05rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    margin-top: var(--space-lg);
    margin-bottom: var(--space-xs);
    color: var(--vinera-charcoal);
}

.vinera-product-description .vinera-description-content p {
    margin-bottom: var(--space-sm);
}

/* Related products – horizontal layout, responsive grid */
.woocommerce div.product .related.products {
    clear: both;
    flex-basis: 100%;
    width: 100%;
    margin-top: var(--space-2xl);
    padding-top: var(--space-2xl);
    border-top: 1px solid var(--vinera-border);
}

.woocommerce div.product .related.products ul.products {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: var(--space-md);
}

/* Related product cards: horizontal layout (image left, text right) */
.woocommerce div.product .related.products ul.products li.product {
    display: block !important;
    padding: var(--space-sm);
    text-align: left;
    grid-template-columns: none;
}

.woocommerce div.product .related.products ul.products li.product > a.woocommerce-LoopProduct-link {
    display: grid !important;
    grid-template-columns: 70px 1fr;
    gap: 0 var(--space-sm);
    align-items: start;
}

.woocommerce div.product .related.products ul.products li.product a img {
    grid-column: 1;
    grid-row: 1 / 20;
    width: 100%;
    max-height: 100px;
    height: auto;
    object-fit: contain;
    object-position: center;
    align-self: center;
    margin: 0;
}

.woocommerce div.product .related.products ul.products li.product .woocommerce-loop-product__title {
    grid-column: 2;
    font-family: var(--font-heading);
    font-size: 1.1rem;
    letter-spacing: 0.05em;
    padding: 0;
    margin-top: 0;
    margin-bottom: 2px;
}

.woocommerce div.product .related.products ul.products li.product .product-meta,
.woocommerce div.product .related.products ul.products li.product .vinera-product-meta {
    grid-column: 2;
    font-size: 0.68rem;
    margin-bottom: 4px;
}

.woocommerce div.product .related.products ul.products li.product .price {
    grid-column: 2;
    font-size: 0.9rem;
    margin-bottom: 0;
}

.woocommerce div.product .related.products ul.products li.product > .button,
.woocommerce div.product .related.products ul.products li.product > a.add_to_cart_button {
    font-size: 0.6rem;
    padding: 0.35rem 0.8rem;
    margin: var(--space-xs) 0 0 calc(70px + var(--space-sm));
    grid-column: auto;
    justify-self: auto;
}

.woocommerce div.product .related.products > h2 {
    font-family: var(--font-heading);
    font-size: 1.4rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    text-align: center;
    margin-bottom: var(--space-xl);
}

/* ================================================================
   CART & CHECKOUT (Classic + Blocks)
   ================================================================ */

/* Classic Cart table */
.woocommerce table.shop_table {
    border: 1px solid var(--vinera-border);
    font-family: var(--font-sans);
}

.woocommerce table.shop_table th {
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    background: var(--vinera-cream);
    padding: 10px 12px;
}

.woocommerce table.shop_table td {
    font-size: 1rem;
    padding: 14px 12px;
}

.woocommerce table.shop_table td.product-name a {
    font-size: 1.1rem;
    color: var(--vinera-charcoal);
    font-weight: 500;
}

/* Classic Checkout */
.woocommerce-checkout .form-row label {
    font-family: var(--font-sans);
    font-size: 0.9rem;
    margin-bottom: 6px;
}

.woocommerce-checkout .form-row input,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row textarea {
    font-family: var(--font-sans);
    font-size: 1rem;
    border: 1px solid var(--vinera-border);
    padding: 10px 12px;
}

#order_review table.shop_table th,
#order_review table.shop_table td {
    font-size: 1rem;
}

/* WooCommerce Cart & Checkout BLOCKS (Gutenberg) */
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout {
    font-family: var(--font-sans);
}

.wc-block-components-product-name {
    font-size: 1.1rem !important;
    font-family: var(--font-heading) !important;
    letter-spacing: 0.05em !important;
    color: var(--vinera-charcoal) !important;
    text-decoration: none !important;
    margin-bottom: 4px;
}

.wc-block-components-product-price .wc-block-components-product-price__value,
.wc-block-cart-item__prices .wc-block-components-product-price__value {
    font-size: 1rem !important;
    color: var(--vinera-charcoal) !important;
}

.wc-block-components-product-metadata {
    font-size: 0.85rem !important;
    color: var(--vinera-text-light) !important;
    line-height: 1.5 !important;
}

.wc-block-components-totals-item__label,
.wc-block-components-totals-item__value {
    font-size: 1rem !important;
    color: var(--vinera-charcoal) !important;
}

.wc-block-components-totals-item__description {
    font-size: 0.85rem !important;
}


/* AJAX Loader Animation */
.vinera-loader-overlay {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    background: rgba(250, 248, 243, 0.5);
    z-index: 999;
    display: block;
    border-radius: var(--border-radius-lg);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
    opacity: 0;
    animation: vinera-fade-in 0.2s ease forwards;
    
    /* Crucial: Absolutely positioned elements must span CSS grids or Safari omits them! */
    grid-column: 1 / -1 !important;
    grid-row: 1 / -1 !important;
    transform: translateZ(0);
}

@keyframes vinera-fade-in {
    from { opacity: 0; }
    to { opacity: 1; }
}

.vinera-spinner {
    position: sticky;
    top: 15vh;
    margin: 0 auto;
    display: block;
    width: 60px;
    height: 60px;
    color: var(--vinera-gold) !important;
    animation: vinera-spin 1.2s infinite cubic-bezier(0.5, 0.1, 0.4, 0.9);
    filter: drop-shadow(0 3px 6px rgba(0,0,0,0.08));
}

@keyframes vinera-spin {
    0% { transform: rotate(0deg) scale(1); }
    50% { transform: rotate(180deg) scale(1.1); }
    100% { transform: rotate(360deg) scale(1); }
}

.woocommerce ul.products.vinera-loading {
    min-height: 200px;
    pointer-events: none;
}

/* Notices */
.woocommerce .woocommerce-error,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-message {
    font-family: var(--font-sans);
    font-size: 1.05rem;
}

/* ================================================================
   WOOCOMMERCE CONTENT WRAPPER
   ================================================================ */

.woocommerce-content {
    padding-top: var(--space-md);
    padding-bottom: var(--space-2xl);
}

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

@media (max-width: 992px) {
    .woocommerce ul.products {
        grid-template-columns: repeat(2, 1fr) !important;
    }

    .woocommerce ul.products.vinera-gallery-view {
        grid-template-columns: repeat(2, 1fr) !important;
    }

    .vinera-shop-title {
        font-size: 1.8rem;
    }

    /* Single product: stack on tablet */
    .woocommerce div.product div.images {
        flex: 0 0 40%;
        max-width: 40%;
    }

    .woocommerce div.product div.summary {
        max-width: 55%;
    }
}

@media (max-width: 768px) {
    .woocommerce ul.products {
        grid-template-columns: 1fr !important;
        gap: var(--space-md);
    }

    /* Cards stay horizontal on mobile but need exact specificity to override desktop */
    .woocommerce ul.products:not([class*="wc-block"]):not(.vinera-list-view):not(.vinera-gallery-view) li.product {
        grid-template-columns: 50px 1fr auto !important;
        grid-template-rows: min-content min-content 1fr min-content !important;
        padding: 14px 12px !important;
        gap: 0 16px !important;
        align-items: start !important;
        min-height: 154px !important;
    }
    
    .woocommerce ul.products:not([class*="wc-block"]):not(.vinera-list-view):not(.vinera-gallery-view) li.product .woocommerce-loop-product__title {
        font-size: 1.05rem !important;
        -webkit-text-size-adjust: 100% !important;
        text-size-adjust: 100% !important;
        word-break: break-word;
        hyphens: auto;
        min-width: 0;
        margin: 0 0 4px 0 !important;
        padding-left: 0 !important;
        text-align: left !important;
        justify-self: start !important;
        height: auto !important;
        display: block !important;
        line-height: 1.4 !important;
    }
    
    .woocommerce ul.products:not([class*="wc-block"]):not(.vinera-list-view):not(.vinera-gallery-view) li.product .product-meta,
    .woocommerce ul.products:not([class*="wc-block"]):not(.vinera-list-view):not(.vinera-gallery-view) li.product .vinera-product-meta {
        font-size: 0.85rem !important;
        line-height: 1.3 !important;
        margin: 0 0 6px 0 !important;
        padding-left: 0 !important;
        text-align: left !important;
        justify-self: start !important;
    }

    .woocommerce ul.products:not([class*="wc-block"]):not(.vinera-list-view):not(.vinera-gallery-view) li.product .price {
        font-size: 1.15rem !important;
        align-self: flex-end !important;
    }
    
    .woocommerce ul.products:not([class*="wc-block"]):not(.vinera-list-view):not(.vinera-gallery-view) li.product .price .woocommerce-price-suffix {
        font-size: 0.75rem !important;
    }

    .woocommerce ul.products:not([class*="wc-block"]):not(.vinera-list-view):not(.vinera-gallery-view) li.product > .button,
    .woocommerce ul.products:not([class*="wc-block"]):not(.vinera-list-view):not(.vinera-gallery-view) li.product > a.add_to_cart_button {
        align-self: flex-end !important;
    }
    
    .woocommerce ul.products:not([class*="wc-block"]):not(.vinera-list-view):not(.vinera-gallery-view) li.product a img {
        grid-row: 1 / -1 !important;
        max-height: 120px !important;
        object-fit: contain;
        margin: 0 !important;
        align-self: center !important;
    }

    /* Remove placeholder scaling which pushed the image bounds out of the card and clipped top/bottom borders */
    .woocommerce ul.products:not([class*="wc-block"]):not(.vinera-gallery-view) li.product a img.vinera-placeholder,
    .woocommerce ul.products:not([class*="wc-block"]):not(.vinera-gallery-view) li.product a img[src*="placeholder"] {
        transform: none !important;
        max-height: 120px !important;
    }

    .vinera-shop-header {
        padding: var(--space-xl) var(--space-md) var(--space-lg);
    }

    .vinera-shop-title {
        font-size: 1.5rem;
        letter-spacing: 0.12em;
    }

    .vinera-filter-bar-inner {
        flex-wrap: wrap;
        gap: 4px;
    }

    .vinera-bar-search {
        min-width: 100%;
        max-width: 100%;
        margin-bottom: 4px;
    }

    .vinera-filter-bar-footer {
        padding: 6px var(--space-md) 0;
    }

    /* Fixed Gallery View for Mobile - strictly 2 columns without overflow */
    .woocommerce ul.products.vinera-gallery-view {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: var(--space-sm) !important;
    }

    .woocommerce ul.products.vinera-gallery-view li.product {
        display: grid !important;
        grid-template-columns: 1fr;
        grid-template-rows: min-content min-content min-content 1fr min-content min-content;
        min-width: 0;
        padding: var(--space-xs);
        height: 100% !important;
    }

    .woocommerce ul.products.vinera-gallery-view li.product > a.woocommerce-LoopProduct-link,
    .woocommerce ul.products.vinera-gallery-view li.product > a.woocommerce-LoopProduct-link > picture {
        display: contents;
    }

    .woocommerce ul.products.vinera-gallery-view li.product a img {
        grid-row: 1;
        justify-self: center;
        height: 160px !important;
        max-height: 160px !important;
        width: auto !important;
        margin: 0 auto var(--space-xs) !important;
    }

    .woocommerce ul.products.vinera-gallery-view li.product img.vinera-placeholder,
    .woocommerce ul.products.vinera-gallery-view li.product img[src*="placeholder"] {
        height: 160px !important;
        max-height: 160px !important;
        transform: scale(1.3) !important;
    }

    .woocommerce ul.products.vinera-gallery-view li.product .woocommerce-loop-product__title {
        grid-row: 2;
        font-size: 1.05rem !important;
        word-wrap: break-word;
        word-break: break-word;
        hyphens: auto;
        margin-bottom: 4px;
    }

    .woocommerce ul.products.vinera-gallery-view li.product .product-meta,
    .woocommerce ul.products.vinera-gallery-view li.product .vinera-product-meta {
        grid-row: 3;
        font-size: 0.85rem !important;
        line-height: 1.3 !important;
        margin: 0 0 6px 0 !important;
        text-align: center;
    }

    .woocommerce ul.products.vinera-gallery-view li.product .price {
        grid-row: 4;
        align-self: flex-end;
        font-size: 1.15rem !important;
        text-align: center;
        width: 100%;
        margin-top: 6px;
    }
    
    .woocommerce ul.products.vinera-gallery-view li.product .price .woocommerce-price-suffix {
        font-size: 0.75rem !important;
    }

    .woocommerce ul.products.vinera-gallery-view li.product > .button,
    .woocommerce ul.products.vinera-gallery-view li.product > a.add_to_cart_button {
        grid-row: 5;
        width: 44px !important;
        height: 44px !important;
        margin: 8px auto 0 !important;
        display: flex !important;
        align-items: center;
        justify-content: center;
        padding: 0 !important;
        border: none !important;
    }
    
    .woocommerce ul.products.vinera-gallery-view li.product > .added_to_cart {
        grid-row: 6;
        text-align: center;
        width: 100%;
        margin-top: 4px;
        padding: 0;
        font-size: 0.75rem !important;
    }

    /* Mobile List View – compact table */
    .woocommerce ul.products.vinera-list-view li.product {
        grid-template-columns: 1fr auto !important;
        grid-template-rows: auto auto !important;
        padding: 10px 12px !important;
        gap: 2px 12px !important;
        min-height: 0 !important;
    }

    /* Title: allow wrapping, max 2 lines */
    .woocommerce ul.products.vinera-list-view li.product .woocommerce-loop-product__title {
        grid-column: 1 !important;
        grid-row: 1 !important;
        font-size: 0.92rem !important;
        white-space: normal !important;
        overflow: hidden;
        display: -webkit-box !important;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        margin: 0 !important;
        line-height: 1.35 !important;
    }

    /* Meta: single line, truncated */
    .woocommerce ul.products.vinera-list-view li.product .product-meta,
    .woocommerce ul.products.vinera-list-view li.product .vinera-product-meta {
        grid-column: 1 !important;
        grid-row: 2 !important;
        font-size: 0.72rem !important;
        margin: 0 !important;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    /* Price: right-aligned, vertically centered */
    .woocommerce ul.products.vinera-list-view li.product .price {
        grid-column: 2 !important;
        grid-row: 1 / 3 !important;
        font-size: 0.9rem !important;
        justify-self: end;
        align-self: center;
    }

    /* Hide "inkl. MwSt." in list view on mobile to save space */
    .woocommerce ul.products.vinera-list-view li.product .price .woocommerce-price-suffix {
        display: none !important;
    }

    .woocommerce ul.products.vinera-list-view li.product > .button,
    .woocommerce ul.products.vinera-list-view li.product > a.add_to_cart_button {
        grid-column: 2 !important;
        grid-row: 2 !important;
        width: auto !important;
        height: auto !important;
        padding: 4px 8px !important;
        font-size: 0.55rem !important;
        justify-self: end;
    }

    .woocommerce ul.products.vinera-list-view li.product > .added_to_cart {
        grid-column: 2 !important;
        grid-row: 2 !important;
        justify-self: end;
        font-size: 0.6rem !important;
    }

    /* Hide the extra meta block entirely on mobile to save vertical space */
    .woocommerce ul.products li.product .vinera-meta-secondary {
        display: none !important;
    }
    .woocommerce ul.products li.product > .added_to_cart {
        grid-column: 2 / 4 !important;
        grid-row: 4 !important;
        justify-self: end !important;
        font-size: 0.7rem !important;
        padding: 8px 0 0 !important;
        margin: 0 !important;
        text-transform: uppercase;
        letter-spacing: 0.05em;
        background: transparent !important;
        display: block;
        width: 100%;
        text-align: right;
    }

    /* Minimal Product Navigation (Mobile) */
    .vinera-product-nav {
        margin-bottom: var(--space-md);
        padding: 0 var(--space-md);
    }
    .vinera-product-nav .nav-prev a,
    .vinera-product-nav .nav-next a {
        font-size: 0 !important; /* Hide long wine names */
        padding: 10px 16px;
        min-width: 44px;
        justify-content: center;
    }
    .vinera-product-nav .nav-prev a::before,
    .vinera-product-nav .nav-next a::after {
        font-size: 1.2rem;
        line-height: 1;
    }
    .vinera-product-nav .nav-back a {
        font-size: 0 !important; /* Hide 'Zurück zur Übersicht' */
    }
    .vinera-product-nav .nav-back a::before {
        display: none;
    }
    .vinera-product-nav .nav-back a::after {
        content: "Übersicht";
        font-size: 0.75rem;
        letter-spacing: 0.1em;
        text-transform: uppercase;
    }

    /* Single product: full width stack on mobile */
    .woocommerce div.product {
        flex-direction: column;
    }

    .woocommerce div.product div.images {
        flex: 0 0 100%;
        max-width: 100%;
    }

    .woocommerce div.product div.images img {
        max-height: 350px;
    }

    .woocommerce div.product div.summary {
        max-width: 100%;
    }

    /* Related products: 2 cols on tablet+ phones, 1 on small phones */
    .woocommerce div.product .related.products ul.products {
        grid-template-columns: repeat(2, 1fr) !important;
    }

    .woocommerce div.product .related.products ul.products li.product > .button,
    .woocommerce div.product .related.products ul.products li.product > a.add_to_cart_button {
        margin-left: calc(70px + var(--space-sm) + var(--space-sm));
    }
}

@media (max-width: 480px) {
    .woocommerce div.product .related.products ul.products {
        grid-template-columns: 1fr !important;
    }
}

/* ================================================================
   PAGINATION – CSS-Only rules removed (now uses AJAX load-more)
   ================================================================ */
/* Old nth-child(n+13) / vinera-show-all / vinera-batch-hidden rules
   have been removed. Product pagination is handled server-side (12
   items per page) with AJAX append via loadMoreProducts(). */

/* ================================================================
   GUTENBERG & WOOCOMMERCE BLOCK FIXES
   ================================================================ */

/* Constrain huge images in WC Handpicked Products / Empty Cart Blocks */
.wc-block-grid__product-image img {
    max-height: 180px !important;
    width: auto !important;
    object-fit: contain;
    margin: 0 auto;
    display: block;
    mix-blend-mode: multiply;
}

/* Fix aspect ratio consistency and background for block images */
.wc-block-grid__product-image {
    background: var(--vinera-cream);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-md);
    margin-bottom: var(--space-md);
    min-height: 180px;
}

/* Make block titles beautiful */
.wc-block-grid__product-title {
    font-family: var(--font-heading);
    font-size: 0.95rem;
    color: var(--vinera-charcoal);
    margin-bottom: var(--space-xs);
    text-align: center;
}

/* Fix add-to-cart button alignment in block */
.wc-block-grid__product-add-to-cart.wp-block-button .wp-block-button__link,
.wc-block-cart .wp-block-button__link {
    font-family: var(--font-sans);
    font-size: 0.7rem;
    font-weight: 400;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    background: transparent !important;
    color: var(--vinera-charcoal) !important;
    border: 1px solid var(--vinera-charcoal) !important;
    border-radius: 0;
    padding: 0.8rem 1.8rem;
    display: inline-block;
    transition: all var(--transition-fast);
}

.wc-block-grid__product-add-to-cart.wp-block-button .wp-block-button__link:hover,
.wc-block-cart .wp-block-button__link:hover {
    background: var(--vinera-charcoal) !important;
    color: var(--vinera-white) !important;
    border-color: var(--vinera-charcoal) !important;
}

/* Fix block products spacing and to be the same height */
.wc-block-grid__products {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: var(--space-xl) var(--space-lg) !important;
}

@media (max-width: 1024px) {
    .wc-block-grid__products {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (max-width: 480px) {
    .wc-block-grid__products {
        grid-template-columns: 1fr !important;
    }
}

.wc-block-grid__products .wc-block-grid__product {
    display: flex;
    flex-direction: column;
    height: 100%;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
}

.wc-block-grid__products .wc-block-grid__product-add-to-cart {
    margin-top: auto;
}

/* ================================================================
   EMPTY CART STYLING
   ================================================================ */

/* Hide "New in store" and horizontal rule */
.wp-block-woocommerce-empty-cart-block hr.wp-block-separator,
.wp-block-woocommerce-empty-cart-block h2.wp-block-heading:not(.wc-block-cart__empty-cart__title) {
    display: none !important;
}

/* Add some extra spacing before the proposed products */
.wp-block-woocommerce-empty-cart-block .wc-block-grid {
    margin-top: 3rem !important;
}

/* Override the default WooCommerce smiley block icon with an elegant wine glass mask */
.wc-block-cart__empty-cart__title {
    font-size: 0 !important; /* hide default english text */
    text-align: center;
}

.wc-block-cart__empty-cart__title::after {
    content: "Der Warenkorb ist leer";
    font-size: 2rem !important;
    display: block;
    margin-top: 1rem;
    font-family: var(--font-heading);
    color: var(--vinera-charcoal);
}

.wc-block-cart__empty-cart__title.with-empty-cart-icon::before {
    content: "" !important;
    display: block;
    width: 60px;
    height: 60px;
    margin: 2rem auto 1.5rem !important;
    /* Cleanly replace the smiley mask with our wine glass */
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 22h8'/%3E%3Cpath d='M12 15v7'/%3E%3Cpath d='M12 15a5.5 5.5 0 0 0 5-5.5V3H7v6.5A5.5 5.5 0 0 0 12 15z'/%3E%3Cpath d='M7 9h10'/%3E%3C/svg%3E") !important;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 22h8'/%3E%3Cpath d='M12 15v7'/%3E%3Cpath d='M12 15a5.5 5.5 0 0 0 5-5.5V3H7v6.5A5.5 5.5 0 0 0 12 15z'/%3E%3Cpath d='M7 9h10'/%3E%3C/svg%3E") !important;
    mask-size: contain !important;
    -webkit-mask-size: contain !important;
    mask-repeat: no-repeat !important;
    -webkit-mask-repeat: no-repeat !important;
    mask-position: center !important;
    -webkit-mask-position: center !important;
    background-color: var(--vinera-charcoal) !important;
    background-image: none !important; /* override the old fix */
}

/* ================================================================
   OFF-CANVAS MINI CART
   ================================================================ */

.vinera-cart-overlay {
    position: fixed;
    top: 0; left: 0; width: 100vw; height: 100vh;
    background: rgba(44, 44, 44, 0.4);
    z-index: 1050;
    opacity: 0; pointer-events: none;
    transition: opacity 0.4s ease;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}
.vinera-cart-overlay.active {
    opacity: 1; pointer-events: auto;
}

.vinera-cart-drawer {
    position: fixed;
    top: 0; right: -500px; width: 100%; max-width: 480px; height: 100vh;
    background: var(--vinera-cream-light);
    z-index: 1051;
    display: flex; flex-direction: column;
    box-shadow: -5px 0 25px rgba(0,0,0,0.1);
    transition: right 0.4s cubic-bezier(0.77, 0, 0.175, 1);
}
.vinera-cart-drawer.open { right: 0; }

.vinera-cart-drawer-header {
    display: flex; align-items: center; justify-content: space-between;
    padding: var(--space-xl) var(--space-lg) var(--space-md);
    border-bottom: 1px solid var(--vinera-border);
}
.vinera-cart-drawer-header h3 {
    margin: 0; font-family: var(--font-heading); font-size: 1.5rem; color: var(--vinera-charcoal); letter-spacing: 0.05em; text-transform: uppercase;
}
.vinera-cart-drawer-close {
    background: none; border: none; cursor: pointer; color: var(--vinera-charcoal);
    display: flex; align-items: center; justify-content: center;
    width: 44px; height: 44px;
    font-size: 1.4rem;
    opacity: 0.5;
    transition: opacity 0.2s, color 0.2s;
    flex-shrink: 0;
}
.vinera-cart-drawer-close:hover { color: var(--vinera-charcoal); opacity: 1; }

.vinera-cart-drawer-content {
    flex: 1; overflow-y: auto; padding: 1rem 1.25rem;
}

/* Format the actual WooCommerce mini-cart widget INSIDE the drawer */
.widget_shopping_cart_content .woocommerce-mini-cart { margin: 0; padding: 0; list-style: none; }
.widget_shopping_cart_content .woocommerce-mini-cart__empty-message { text-align: center; margin-top: var(--space-xl); font-family: var(--font-body); font-style: italic; font-size: 1.2rem; }
.widget_shopping_cart_content .woocommerce-mini-cart-item {
    display: flex; align-items: center;
    margin-bottom: 0.6rem;
    padding-bottom: 0.6rem;
    border-bottom: 1px solid var(--vinera-border);
}
.widget_shopping_cart_content .woocommerce-mini-cart-item img {
    width: 45px;
    height: 55px;
    object-fit: contain;
    object-position: center bottom;
    margin-right: 1rem;
    flex-shrink: 0;
    mix-blend-mode: multiply;
}
/* Product title in drawer: not bold */
.widget_shopping_cart_content .woocommerce-mini-cart-item a:not(.remove_from_cart_button) {
    display: flex; align-items: center; flex: 1;
    font-family: var(--font-heading);
    font-weight: 400;
    color: var(--vinera-charcoal); text-decoration: none; font-size: 0.9rem;
}
.widget_shopping_cart_content .quantity { font-family: var(--font-sans); font-size: 0.85rem; color: var(--vinera-text); white-space: nowrap; margin-left: var(--space-md); }

/* Remove button: circle with pseudo-element × (WC-proof) */
.widget_shopping_cart_content .woocommerce-mini-cart .woocommerce-mini-cart-item .remove_from_cart_button {
    position: relative !important; right: auto !important; top: auto !important;
    margin-right: 0.5rem;
    font-size: 0 !important;       /* hide original × rendered by WooCommerce */
    color: transparent !important;
    text-decoration: none !important;
    background: transparent !important;
    width: 28px !important; height: 28px !important;
    min-width: 28px !important; min-height: 28px !important;
    display: flex !important; align-items: center !important; justify-content: center !important;
    border: none !important;
    transition: transform 0.2s ease, opacity 0.2s ease !important;
    flex-shrink: 0 !important;
    box-sizing: border-box !important;
    opacity: 0.45;
}
/* Inject our own × via pseudo-element – immune to WC overrides */
.widget_shopping_cart_content .woocommerce-mini-cart .woocommerce-mini-cart-item .remove_from_cart_button::after {
    content: '×';
    font-size: 1.4rem;
    line-height: 1;
    color: rgba(0,0,0,0.45);
    display: block;
    transition: color 0.2s ease;
}
.widget_shopping_cart_content .woocommerce-mini-cart .woocommerce-mini-cart-item .remove_from_cart_button:hover {
    opacity: 1 !important;
    transform: scale(1.15) !important;
}
.widget_shopping_cart_content .woocommerce-mini-cart .woocommerce-mini-cart-item .remove_from_cart_button:hover::after {
    color: #8b2332;
}
.widget_shopping_cart_content .woocommerce-mini-cart__total { border-top: 1px solid var(--vinera-border); padding-top: var(--space-md); margin-bottom: var(--space-lg); display: flex; justify-content: space-between; font-family: var(--font-sans); font-size: 1.1rem; font-weight: 700; color: var(--vinera-charcoal); }
.widget_shopping_cart_content .woocommerce-mini-cart__buttons { display: flex; flex-direction: row; gap: var(--space-sm); margin-bottom: var(--space-md); }
/* Warenkorb-Button: Outline / sekundär */
.widget_shopping_cart_content .woocommerce-mini-cart__buttons a.button:not(.checkout) { flex: 1; text-align: center; display: block !important; box-sizing: border-box; background: transparent !important; border: 1px solid var(--vinera-charcoal) !important; color: var(--vinera-charcoal) !important; font-family: var(--font-heading); font-size: 0.85rem; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; padding: 0.8rem 1rem; transition: all 0.3s ease; text-decoration: none !important; }
.widget_shopping_cart_content .woocommerce-mini-cart__buttons a.button:not(.checkout):hover { background: var(--vinera-charcoal) !important; color: var(--vinera-white, #fff) !important; }
/* KASSE-Button: gefüllt / primär */
.widget_shopping_cart_content .woocommerce-mini-cart__buttons .button.checkout { flex: 1; width: auto; text-align: center; display: block; box-sizing: border-box; background: var(--vinera-charcoal) !important; border: 1px solid var(--vinera-charcoal) !important; color: var(--vinera-white, #fff) !important; font-family: var(--font-heading); font-size: 0.85rem; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; padding: 0.8rem 1rem; transition: all 0.3s ease; }
.widget_shopping_cart_content .woocommerce-mini-cart__buttons .button.checkout:hover { background: transparent !important; color: var(--vinera-charcoal) !important; }

/* Hide WooCommerce "View cart" link that appears after AJAX add to cart */
a.added_to_cart {
    display: none !important;
}

/* ================================================================
   LOOP QUANTITY INPUTS
   ================================================================ */

.vinera-loop-add-to-cart-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-xs);
    margin-top: auto;
}

/* Make sure the add-to-cart button doesn't have auto margin anymore since it's in a flex wrapper */
.woocommerce ul.products:not([class*="wc-block"]) li.product .vinera-loop-add-to-cart-wrapper .button,
.woocommerce ul.products:not([class*="wc-block"]) li.product .vinera-loop-add-to-cart-wrapper a.add_to_cart_button {
    margin: 0 !important;
}

.vinera-loop-add-to-cart-wrapper .quantity {
    display: flex;
    align-items: center;
    margin: 0;
}

.vinera-loop-add-to-cart-wrapper .quantity input.qty {
    width: 3.5rem;
    height: 36px;
    padding: 0 0.2rem;
    text-align: center;
    border: 1px solid var(--vinera-border);
    background: transparent;
    color: var(--vinera-charcoal);
    font-family: var(--font-sans);
    font-size: 1rem;
}

/* ---- Quantity Stepper: [ − | qty | + ] [🛒] ---- */
.vinera-qty-stepper {
    display: inline-flex;
    align-items: stretch;
    border: 1px solid var(--vinera-border);
    transition: opacity 0.2s ease;
}

.vinera-qty-stepper.loading {
    opacity: 0.45;
    pointer-events: none;
}

.vinera-qty-btn {
    background: transparent;
    border: none;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--vinera-charcoal);
    line-height: 1;
    padding: 0;
    transition: color 0.2s, background 0.2s;
    font-family: var(--font-sans);
    font-size: 0.95rem;
}

.vinera-qty-btn:hover:not(:disabled):not(.inactive) {
    background: var(--vinera-cream-light);
    color: var(--vinera-gold);
}

.vinera-qty-minus,
.vinera-qty-plus {
    width: 30px;
    height: 30px;
}

.vinera-qty-minus { border-right: 1px solid var(--vinera-border); }
.vinera-qty-plus  { border-left:  1px solid var(--vinera-border); }

.vinera-qty-display {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 32px;
    height: 30px;
    font-family: var(--font-sans);
    font-size: 0.8rem;
    color: var(--vinera-charcoal);
    padding: 0 4px;
    user-select: none;
}

.vinera-qty-add-cart {
    width: 30px;
    height: 30px;
    color: var(--vinera-charcoal);
}

.vinera-qty-add-cart:hover:not(:disabled):not(.inactive) {
    color: var(--vinera-gold);
    background: transparent;
}

.vinera-qty-btn:disabled,
.vinera-qty-btn.inactive {
    opacity: 0.2;
    cursor: default;
    pointer-events: none;
}

/* Specific alignments for list view */
.woocommerce ul.products.vinera-list-view li.product .vinera-loop-add-to-cart-wrapper {
    grid-column: auto;
    grid-row: auto;
    justify-content: flex-end;
    align-self: center;
    margin-left: 0;
}


/* ================================================================
   NEW WRAPPER: PRICE + CART (ALL VIEWS)
   ================================================================ */

/* Default View: price left, stepper + cart-icon right – same row */
.woocommerce ul.products:not([class*="wc-block"]):not(.vinera-list-view):not(.vinera-gallery-view) li.product .vinera-price-cart-container {
    grid-column: 2 / 4;
    grid-row: 3;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    width: 100%;
}
.woocommerce ul.products:not([class*="wc-block"]):not(.vinera-list-view):not(.vinera-gallery-view) li.product .price {
    grid-column: auto; grid-row: auto;
}
/* Stepper + cart icon together on the right */
.woocommerce ul.products:not([class*="wc-block"]):not(.vinera-list-view):not(.vinera-gallery-view) li.product .vinera-loop-add-to-cart-wrapper {
    grid-column: auto; grid-row: auto;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    justify-content: flex-end;
}

/* List View */
.woocommerce ul.products.vinera-list-view li.product .vinera-price-cart-container {
    grid-column: 2 / 4;
    grid-row: 1 / 3;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 12px;
}
@media (max-width: 768px) {
    .woocommerce ul.products.vinera-list-view li.product .vinera-price-cart-container {
        grid-column: 2 !important;
        grid-row: 1 / 3 !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-end !important;
        justify-content: center !important;
        gap: 2px !important;
    }
    /* Hide quantity stepper in list view on mobile – only price + cart icon */
    .woocommerce ul.products.vinera-list-view li.product .vinera-price-cart-container .quantity,
    .woocommerce ul.products.vinera-list-view li.product .vinera-price-cart-container .vinera-loop-add-to-cart-wrapper .quantity {
        display: none !important;
    }
    .woocommerce ul.products.vinera-list-view li.product .vinera-price-cart-container .price {
        font-size: 0.9rem !important;
        white-space: nowrap;
    }
    .woocommerce ul.products.vinera-list-view li.product .vinera-price-cart-container .price .woocommerce-price-suffix {
        display: none !important;
    }
}
.woocommerce ul.products.vinera-list-view li.product .price {
    grid-column: auto; grid-row: auto; min-width: auto;
}

/* Gallery View (3-column): Centered Card Bottom */
.woocommerce ul.products.vinera-gallery-view li.product {
    padding-bottom: var(--space-xl) !important;
}
.woocommerce ul.products.vinera-gallery-view li.product .vinera-price-cart-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    margin-top: 0.5rem;
    gap: 0;
    border-top: none;
    padding-top: 0.25rem;
}
.woocommerce ul.products.vinera-gallery-view li.product .price {
    margin: 0 0 0.4rem 0 !important;
    text-align: center;
    width: 100%;
}
.woocommerce ul.products.vinera-gallery-view li.product .vinera-loop-add-to-cart-wrapper {
    margin: 0 !important;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    width: 100%;
}

/* ================================================================
   CHECKOUT BLOCKS – FINAL NUCLEAR OVERRIDES (max specificity)
   These beat WooCommerce Blocks' own CSS which loads last
   ================================================================ */

/* Country/select dropdown: remove ALL borders */
body .wc-block-components-combobox .wc-blocks-components-select__select,
body .wc-block-components-combobox input,
body .wc-block-components-combobox select,
body.woocommerce-checkout .wc-blocks-components-select__select,
body.woocommerce-checkout select {
    -webkit-appearance: none !important;
    appearance: none !important;
    border: none !important;
    border-bottom: 1px solid rgba(0,0,0,0.18) !important;
    border-radius: 0 !important;
    background-color: transparent !important;
    box-shadow: none !important;
    outline: none !important;
}

/* Shipping row item box */
body .wc-block-components-radio-control__option-layout,
body .wc-block-components-shipping-rates-control__package,
body .wc-block-components-payment-method-accordion,
body .wc-block-components-checkout-payment-method {
    border: none !important;
    border-bottom: 1px solid rgba(0,0,0,0.06) !important;
    background: transparent !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

/* Radio option: minimal overrides, keep WC Blocks layout, only fix Vinera colors */
body .wc-block-components-radio-control__option,
body label.wc-block-components-radio-control__option {
    padding-left: 56px !important;
    border: none !important;
    border-bottom: 1px solid rgba(0,0,0,0.06) !important;
    background: transparent !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    list-style: none !important;
    cursor: pointer !important;
}

/* Radio input: Vinera style - appearance & colors only (keep WC Blocks position) */
body .wc-block-components-radio-control .wc-block-components-radio-control__input {
    -webkit-appearance: none !important;
    appearance: none !important;
    width: 18px !important;
    height: 18px !important;
    border: 1.5px solid #999 !important;
    border-radius: 50% !important;
    background: transparent !important;
    cursor: pointer !important;
    margin: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
    outline: none !important;
}

body .wc-block-components-radio-control .wc-block-components-radio-control__input:checked {
    border: 1.5px solid #2c2c2c !important;
    background: #2c2c2c !important;
    box-shadow: none !important;
}

body .wc-block-components-radio-control .wc-block-components-radio-control__input:hover {
    border-color: #2c2c2c !important;
}

/* Override the WC Blocks black ::before dot with Vinera cream center dot */
body .wc-block-components-radio-control .wc-block-components-radio-control__input:checked::before {
    background: #f5f0e8 !important;
    width: 8px !important;
    height: 8px !important;
    border-radius: 50% !important;
    content: "" !important;
    display: block !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
}

/* Payment box description text */
body .wc-block-components-payment-method-accordion .wc-block-components-radio-control__option,
body .wc-block-components-payment-method-accordion label.wc-block-components-radio-control__option {
    border-bottom: none !important;
}

body .wc-block-components-payment-method-accordion .wc-block-components-radio-control__option-checked,
body .wc-block-components-payment-method-accordion .wc-block-components-radio-control__option:last-child {
    border-bottom: 1px solid rgba(0,0,0,0.06) !important;
}

/* Hide any list-style bullet */
body .wc-block-components-radio-control ul,
body .wc-block-components-radio-control ol {
    list-style: none !important;
    padding-left: 0 !important;
    margin: 0 !important;
}

body .wc-block-components-radio-control li {
    list-style: none !important;
}
/* Hide the WC Blocks SVG circle indicator */
body .wc-block-components-radio-control__option-layout svg,
body .wc-block-components-radio-control__label-group-right svg {
    display: none !important;
}

/* ================================================================
   PREIS ANFRAGEN BUTTON – override gold anchor color in all views
   Beat: .vinera-gallery-view li.product a { color: var(--vinera-gold) }
   ================================================================ */
.woocommerce ul.products li.product a.vinera-preis-anfragen-btn,
.woocommerce ul.products li.product a.vinera-preis-anfragen-btn:visited {
    color: var(--vinera-charcoal, #1a1a1a) !important;
    border: 1px solid var(--vinera-charcoal, #1a1a1a) !important;
    background: transparent !important;
    text-decoration: none !important;
}
.woocommerce ul.products li.product a.vinera-preis-anfragen-btn:hover,
.woocommerce ul.products li.product a.vinera-preis-anfragen-btn:focus {
    color: #fff !important;
    background: var(--vinera-charcoal, #1a1a1a) !important;
    border-color: var(--vinera-charcoal, #1a1a1a) !important;
}

/* Detail-Seite */
.single-product a.vinera-preis-anfragen-btn,
.single-product a.vinera-preis-anfragen-btn:visited {
    color: var(--vinera-charcoal, #1a1a1a) !important;
    border: 1px solid var(--vinera-charcoal, #1a1a1a) !important;
    background: transparent !important;
    text-decoration: none !important;
}
.single-product a.vinera-preis-anfragen-btn:hover {
    color: #fff !important;
    background: var(--vinera-charcoal, #1a1a1a) !important;
}

/* ================================================================
   SINGLE PRODUCT – Vinera Qty Stepper via .quantity flex container
   DOM: .quantity > [−button] [label(hidden)] [input.qty] [+button]
   ================================================================ */
.single-product .cart .quantity {
    display: inline-flex !important;
    align-items: stretch !important;
    border: 1px solid var(--vinera-border, #d4c9b0) !important;
    height: 48px !important;
    margin: 0 !important;
    background: transparent;
}
/* Hide the label – it's only for screen readers */
.single-product .cart .quantity label {
    display: none !important;
}
/* The qty input in between the +/- buttons */
.single-product .cart .quantity input.qty {
    width: 56px !important;
    height: 100% !important;
    text-align: center !important;
    border: none !important;
    border-left: 1px solid var(--vinera-border, #d4c9b0) !important;
    border-right: 1px solid var(--vinera-border, #d4c9b0) !important;
    border-radius: 0 !important;
    background: transparent !important;
    font-family: var(--font-body, serif) !important;
    font-size: 1rem !important;
    color: var(--vinera-charcoal, #1a1a1a) !important;
    padding: 0 4px !important;
    box-shadow: none !important;
    outline: none !important;
    -moz-appearance: textfield !important;
    order: 2;
}
.single-product .cart .quantity input.qty::-webkit-outer-spin-button,
.single-product .cart .quantity input.qty::-webkit-inner-spin-button {
    -webkit-appearance: none !important;
    margin: 0;
}
/* Stepper buttons −/+ */
.single-product .cart .quantity .vinera-qty-btn {
    width: 40px !important;
    height: 100% !important;
    border: none !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: var(--vinera-charcoal, #1a1a1a) !important;
    font-size: 1.1rem !important;
    cursor: pointer;
    transition: background 0.2s;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    flex-shrink: 0;
}
.single-product .cart .quantity .vinera-qty-minus { order: 1; }
.single-product .cart .quantity .vinera-qty-plus  { order: 3; }
.single-product .cart .quantity .vinera-qty-btn:hover:not(:disabled) {
    background: rgba(26,26,26,0.06) !important;
}
.single-product .cart .quantity .vinera-qty-btn:disabled {
    opacity: 0.3;
    cursor: default;
    pointer-events: none;
}
/* Cart row: stepper + button on same line */
.single-product form.cart {
    display: flex !important;
    align-items: center !important;
    gap: 16px !important;
    flex-wrap: wrap;
}

/* ================================================================
   PREIS ANFRAGEN BUTTON – max-specificity override (beats gold link)
   ================================================================ */
body .woocommerce ul.products li.product a.vinera-preis-anfragen-btn,
body .woocommerce ul.products li.product a.vinera-preis-anfragen-btn:visited,
body .woocommerce ul.products li.product a.vinera-preis-anfragen-btn:link {
    color: var(--vinera-charcoal, #1a1a1a) !important;
    border: 1px solid var(--vinera-charcoal, #1a1a1a) !important;
    background: transparent !important;
    text-decoration: none !important;
}
body .woocommerce ul.products li.product a.vinera-preis-anfragen-btn:hover,
body .woocommerce ul.products li.product a.vinera-preis-anfragen-btn:focus {
    color: #fff !important;
    background: var(--vinera-charcoal, #1a1a1a) !important;
    border-color: var(--vinera-charcoal, #1a1a1a) !important;
}
body.single-product a.vinera-preis-anfragen-btn,
body.single-product a.vinera-preis-anfragen-btn:visited {
    color: var(--vinera-charcoal, #1a1a1a) !important;
    border: 1px solid var(--vinera-charcoal, #1a1a1a) !important;
    background: transparent !important;
    text-decoration: none !important;
}
body.single-product a.vinera-preis-anfragen-btn:hover {
    color: #fff !important;
    background: var(--vinera-charcoal, #1a1a1a) !important;
}

/* ================================================================
   PREIS ANFRAGEN – Positionierung aller Ansichten (inkl. default)
   Inline-Style am Button garantiert Farbe; hier nur Layout-Fixes
   ================================================================ */
/* Default grid view: priceless wrapper takes same space as stepper */
.woocommerce ul.products:not(.vinera-list-view):not(.vinera-gallery-view) li.product .vinera-priceless-wrapper {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100%;
}
/* Gallery view: align priceless wrapper to right like stepper */
.woocommerce ul.products.vinera-gallery-view li.product .vinera-priceless-wrapper,
.woocommerce ul.products.vinera-list-view li.product .vinera-priceless-wrapper {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
}
/* Hover override for inline-styled button */
.vinera-preis-anfragen-btn:hover,
.vinera-preis-anfragen-btn:focus {
    color: #fff !important;
    background: #1a1a1a !important;
    border-color: #1a1a1a !important;
}

/* ================================================================
   SINGLE PRODUCT STEPPER – definitiver Fix mit explizitem row
   ================================================================ */
.single-product form.cart .quantity,
.single-product .cart .quantity {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    border: 1px solid #d4c9b0 !important;
    height: 48px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    overflow: hidden;
}
.single-product form.cart .quantity label,
.single-product .cart .quantity label {
    display: none !important;
}
.single-product form.cart .quantity input.qty,
.single-product .cart .quantity input.qty {
    order: 2;
    flex: 0 0 56px !important;
    width: 56px !important;
    height: 100% !important;
    text-align: center !important;
    border: none !important;
    border-left: 1px solid #d4c9b0 !important;
    border-right: 1px solid #d4c9b0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    font-size: 1rem !important;
    color: #1a1a1a !important;
    padding: 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
    -moz-appearance: textfield !important;
    appearance: textfield !important;
}
.single-product form.cart .quantity input.qty::-webkit-outer-spin-button,
.single-product form.cart .quantity input.qty::-webkit-inner-spin-button,
.single-product .cart .quantity input.qty::-webkit-outer-spin-button,
.single-product .cart .quantity input.qty::-webkit-inner-spin-button {
    -webkit-appearance: none !important;
    margin: 0;
}
.single-product form.cart .quantity .vinera-qty-btn,
.single-product .cart .quantity .vinera-qty-btn {
    flex: 0 0 40px !important;
    width: 40px !important;
    height: 100% !important;
    border: none !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #1a1a1a !important;
    font-size: 1.1rem !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    margin: 0 !important;
    line-height: 1 !important;
}
.single-product form.cart .quantity .vinera-qty-minus,
.single-product .cart .quantity .vinera-qty-minus { order: 1; }
.single-product form.cart .quantity .vinera-qty-plus,
.single-product .cart .quantity .vinera-qty-plus  { order: 3; }
.single-product form.cart .quantity .vinera-qty-btn:hover:not(:disabled),
.single-product .cart .quantity .vinera-qty-btn:hover:not(:disabled) {
    background: rgba(26,26,26,0.06) !important;
}
.single-product form.cart .quantity .vinera-qty-btn:disabled,
.single-product .cart .quantity .vinera-qty-btn:disabled {
    opacity: 0.35 !important;
    cursor: default !important;
    pointer-events: none;
}

/* ================================================================
   CHECKOUT & CART – MOBILE-FIRST RESPONSIVE OVERRIDES
   WooCommerce Blocks has NO built-in mobile stacking for the
   sidebar/main layout. These rules fix that completely.
   ================================================================ */

/* --- Desktop: Improve sidebar + order summary --- */
.wc-block-components-product-name {
    word-break: break-word !important;
    overflow-wrap: anywhere !important;
    hyphens: auto !important;
}

/* Order summary product metadata: truncate to 2 lines max */
.wc-block-checkout__sidebar .wc-block-components-product-metadata,
.wc-block-cart__sidebar .wc-block-components-product-metadata {
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
}

/* Order summary product image: consistent sizing */
.wc-block-components-order-summary-item__image img {
    object-fit: contain !important;
    mix-blend-mode: multiply;
}

/* Totals footer: stronger visual weight */
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
    font-family: var(--font-heading) !important;
    font-size: 1.15rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.04em !important;
}

/* --- TABLET: ≤ 992px --- */
@media (max-width: 992px) {
    /* The actual WC Blocks flex container – force column + max-width */
    .wc-block-components-sidebar-layout {
        display: flex !important;
        flex-direction: column !important;
        max-width: 100% !important;
        width: 100% !important;
        overflow-x: hidden !important;
    }

    /* Start stacking main + sidebar */
    .wp-block-woocommerce-checkout,
    .wp-block-woocommerce-cart {
        display: flex !important;
        flex-direction: column !important;
        max-width: 100% !important;
        overflow-x: hidden !important;
    }

    .wc-block-checkout__main,
    .wc-block-cart__main,
    .wc-block-components-sidebar-layout .wc-block-components-main {
        max-width: 100% !important;
        flex: 1 1 100% !important;
        width: 100% !important;
    }

    .wc-block-checkout__sidebar,
    .wc-block-cart__sidebar,
    .wc-block-components-sidebar-layout .wc-block-components-sidebar {
        max-width: 100% !important;
        flex: 1 1 100% !important;
        width: 100% !important;
        position: static !important;
        top: auto !important;
        margin-top: 1.5rem !important;
    }
}

/* --- MOBILE: ≤ 782px (WC Blocks breakpoint) --- */
@media (max-width: 782px) {
    /* Page-level overflow containment */
    .woocommerce-checkout .site-content,
    .woocommerce-cart .site-content,
    .page-content {
        overflow-x: hidden !important;
    }

    /* WC Blocks sidebar-layout: force 100% width */
    .wc-block-components-sidebar-layout {
        max-width: 100% !important;
        width: 100% !important;
        overflow-x: hidden !important;
    }

    /* Checkout container: tighter padding */
    .wp-block-woocommerce-checkout,
    .wp-block-woocommerce-cart {
        padding: 0 !important;
        margin: 0 !important;
        max-width: 100% !important;
    }

    .wc-block-checkout__main,
    .wc-block-cart__main,
    .wc-block-components-sidebar-layout .wc-block-components-main {
        padding: 0 1rem !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    .wc-block-checkout__sidebar,
    .wc-block-cart__sidebar,
    .wc-block-components-sidebar-layout .wc-block-components-sidebar {
        padding: 1rem !important;
        margin-top: 1rem !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        position: static !important;
    }

    /* Checkout steps: tighter spacing */
    .wc-block-components-checkout-step {
        padding: 0.5rem 0 1rem 0 !important;
        margin-bottom: 0 !important;
    }

    /* Step headings: fix overlap between title and login link */
    .wc-block-components-checkout-step__heading {
        font-size: 0.9rem !important;
        margin-bottom: 0.5rem !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 0.25rem !important;
    }

    .wc-block-components-checkout-step__title {
        width: 100% !important;
        letter-spacing: 0.08em !important;
        margin: 0 !important;
        display: block !important;
    }

    .wc-block-components-checkout-step__heading-content {
        position: static !important;
        display: block !important;
        height: auto !important;
        min-height: 1em !important;
        overflow: visible !important;
        margin-top: 0.25rem !important;
        font-size: 0.85rem !important;
    }

    /* Actions block: column layout on mobile (prevent button from going offscreen) */
    .wc-block-checkout__actions {
        display: flex !important;
        flex-direction: column !important;
        flex-wrap: nowrap !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    /* Hide the duplicate order summary inside the actions block on mobile
       (it's already shown as an accordion at the top) */
    .wc-block-checkout__actions > .css-0,
    .wc-block-checkout__actions > [class*="e19lxcc"] {
        display: none !important;
    }

    /* Actions row: full width, stacked on mobile */
    .wc-block-checkout__actions_row {
        width: 100% !important;
        max-width: 100% !important;
        position: static !important;
        padding: 0 !important;
    }

    /* Product name in order summary: smaller + word-wrap */
    .wc-block-components-product-name {
        font-size: 0.9rem !important;
        line-height: 1.35 !important;
    }

    /* Product metadata: max 2 lines, smaller */
    .wc-block-components-product-metadata {
        font-size: 0.75rem !important;
        line-height: 1.4 !important;
        display: -webkit-box !important;
        -webkit-line-clamp: 2 !important;
        -webkit-box-orient: vertical !important;
        overflow: hidden !important;
    }

    /* Place order button: FULL WIDTH, no overflow */
    .wc-block-components-checkout-place-order-button {
        width: 100% !important;
        max-width: 100% !important;
        min-width: unset !important;
        box-sizing: border-box !important;
        padding: 1rem 1.2rem !important;
        font-size: 0.8rem !important;
        letter-spacing: 0.1em !important;
        white-space: normal !important;
        word-break: break-word !important;
    }

    /* Actions row: stack vertically on mobile */
    .wc-block-checkout__actions_row {
        display: flex !important;
        flex-direction: column !important;
        flex-wrap: wrap !important;
        gap: 0.75rem !important;
        padding: 0 !important;
        align-items: stretch !important;
    }

    /* Return-to-cart link: centered below button */
    .wc-block-components-checkout-return-to-cart-button {
        text-align: center !important;
        order: 2 !important;
        white-space: normal !important;
        margin: 0 !important;
    }

    /* Cart item rows: better spacing + fix price truncation */
    .wc-block-cart-items .wc-block-cart-items__row {
        padding: 0.75rem 0 !important;
        gap: 0.5rem !important;
    }
    /* Override WC Blocks grid: image | product info | total price */
    .is-small table.wc-block-cart-items .wc-block-cart-items__row,
    .is-mobile table.wc-block-cart-items .wc-block-cart-items__row,
    .is-medium table.wc-block-cart-items .wc-block-cart-items__row {
        grid-template-columns: 70px 1fr auto !important;
    }
    /* Ensure total price doesn't wrap or truncate */
    table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__total {
        white-space: nowrap !important;
        text-align: right !important;
        min-width: 0 !important;
    }

    /* Cart item image: smaller on mobile */
    .wc-block-cart-item__image img,
    .wc-block-components-order-summary-item__image img {
        max-width: 50px !important;
        height: auto !important;
    }

    /* Order summary item row: prevent squeeze */
    .wc-block-components-order-summary-item {
        gap: 0.5rem !important;
    }

    .wc-block-components-order-summary-item__description {
        min-width: 0 !important;
        overflow: hidden !important;
    }

    /* Quantity selector: proper mobile tap targets */
    .wc-block-components-quantity-selector {
        transform: none !important;
    }
    .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button {
        min-width: 36px !important;
        min-height: 36px !important;
        font-size: 1.2rem !important;
        padding: 0 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }
    .wc-block-components-quantity-selector .wc-block-components-quantity-selector__input {
        min-width: 36px !important;
        min-height: 36px !important;
        font-size: 1rem !important;
    }
    /* Delete/remove button: larger tap target – must match WC Blocks cart.css specificity */
    table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__quantity .wc-block-cart-item__remove-link {
        min-width: 48px !important;
        min-height: 48px !important;
        width: 48px !important;
        height: 48px !important;
        padding: 10px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        box-sizing: border-box !important;
    }
    table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__quantity .wc-block-cart-item__remove-link svg {
        width: 28px !important;
        height: 28px !important;
        min-width: 28px !important;
        min-height: 28px !important;
    }
    /* Align quantity row + delete to bottom of cart item */
    .wc-block-cart-item__quantity {
        margin-top: auto !important;
        align-self: flex-end !important;
        display: flex !important;
        align-items: center !important;
        gap: 8px !important;
    }
    /* Make the product info column use flexbox so quantity pushes to bottom */
    .wc-block-cart-items__row .wc-block-cart-item__wrap {
        display: flex !important;
        flex-direction: column !important;
        justify-content: space-between !important;
        min-height: 100% !important;
    }

    /* Totals: tighter */
    .wc-block-components-totals-wrapper {
        padding: 0.5rem 0 !important;
    }

    /* Coupon field: full width */
    .wc-block-components-totals-coupon .wc-block-components-totals-coupon__content {
        flex-direction: column !important;
        gap: 0.5rem !important;
    }

    .wc-block-components-totals-coupon__content input {
        width: 100% !important;
    }

    .wc-block-components-totals-coupon__content button {
        width: 100% !important;
    }

    /* Fix WC Blocks internal grid that squeezes on mobile */
    .wc-block-checkout__form {
        max-width: 100% !important;
    }

    /* Address fields: full width each */
    .wc-block-components-address-form {
        display: flex !important;
        flex-direction: column !important;
    }

    .wc-block-components-address-form > div {
        width: 100% !important;
        flex: 1 1 100% !important;
    }
}

/* --- SMALL MOBILE: ≤ 480px --- */
@media (max-width: 480px) {
    .wc-block-checkout__main,
    .wc-block-cart__main {
        padding: 0 0.75rem !important;
    }

    .wc-block-checkout__sidebar,
    .wc-block-cart__sidebar {
        padding: 0.75rem !important;
    }

    /* Even smaller product images */
    .wc-block-cart-item__image img {
        max-width: 45px !important;
    }

    /* Place order: tighter */
    .wc-block-components-checkout-place-order-button {
        padding: 0.9rem 1rem !important;
        font-size: 0.75rem !important;
        letter-spacing: 0.08em !important;
    }

    /* Product name: even smaller */
    .wc-block-components-product-name {
        font-size: 0.85rem !important;
    }

    /* Totals text: smaller */
    .wc-block-components-totals-item__label,
    .wc-block-components-totals-item__value {
        font-size: 0.9rem !important;
    }
}
