/**
 * Maho
 *
 * @package    Mage_Page
 * @copyright  Copyright (c) 2025-2026 Maho (https://mahocommerce.com)
 * @license    https://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
 */

body.ilparadisobrugola-theme .pm-visually-hidden {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

body.ilparadisobrugola-theme .pm-product-heading {
    margin: 0;
    font: inherit;
}

/* Alpine.js: hide x-cloak elements until Alpine initializes */
[x-cloak] { display: none !important; }

/* ============================================
   IL PARADISO DELLA BRUGOLA - Hardware Store
   Palette "Officina": antracite + arancione utensile
   ============================================ */

/* CSS Variables */
:root {
    /* Brand palette — antracite (steel) + arancione utensile */
    --pm2-primary: #1F2937;          /* steel anthracite — header, brand */
    --pm2-primary-dark: #111827;     /* near-black — hover on dark surfaces */
    --pm2-primary-light: #374151;    /* lighter steel — borders, subtle bg */

    /* Action color — used ONLY on conversion CTAs (add-to-cart, checkout, place order) */
    --pm2-cta: #F26522;              /* hi-vis tool orange */
    --pm2-cta-dark: #D9501A;         /* hover */
    --pm2-cta-light: #FF8A4C;        /* tints, gradients */
    --pm2-cta-soft: #FFF1E8;         /* soft bg for highlights */
    --pm2-cta-rgb: 242, 101, 34;

    /* Accent — sale badges, savings, attention chips */
    --pm2-accent: #FDB813;           /* safety yellow */
    --pm2-accent-dark: #E0A20D;
    --pm2-accent-light: #FFD46B;

    /* Secondary surfaces (kept as alias of primary tints for backwards-compat) */
    --pm2-secondary: var(--pm2-primary);
    --pm2-secondary-dark: var(--pm2-primary-dark);
    --pm2-secondary-light: var(--pm2-primary-light);

    /* Status colors */
    --pm2-success: #16A34A;
    --pm2-success-dark: #15803D;
    --pm2-success-soft: #DCFCE7;
    --pm2-danger: #DC2626;
    --pm2-danger-dark: #B91C1C;
    --pm2-danger-soft: #FEE2E2;
    --pm2-warning: #F59E0B;
    --pm2-warning-dark: #D97706;
    --pm2-warning-soft: #FEF3C7;
    --pm2-info: #0EA5E9;
    --pm2-info-dark: #0284C7;
    --pm2-info-soft: #E0F2FE;

    /* Override Maho base theme variables */
    --maho-color-primary: var(--pm2-cta);
    --maho-color-primary-hover: var(--pm2-cta-dark);
    --maho-color-primary-rgb: var(--pm2-cta-rgb);

    /* Neutrals */
    --pm2-gray-50: #F9FAFB;
    --pm2-gray-100: #F3F4F6;
    --pm2-gray-200: #E5E7EB;
    --pm2-gray-300: #D1D5DB;
    --pm2-gray-400: #9CA3AF;
    --pm2-gray-500: #6B7280;
    --pm2-gray-600: #4B5563;
    --pm2-gray-700: #374151;
    --pm2-gray-800: #1F2937;
    --pm2-gray-900: #111827;

    /* Typography */
    --pm2-font-display: 'Roboto Condensed', 'Inter', sans-serif;
    --pm2-font-body: 'Inter', sans-serif;

    /* Spacing */
    --pm2-container-max: 100%;
    --pm2-container-padding: 2rem;
    --pm2-section-spacing: 5rem;
    --pm2-section-spacing-mobile: 3rem;

    /* Semantic aliases */
    --pm2-text: var(--pm2-gray-700);
    --pm2-text-dark: var(--pm2-gray-900);
    --pm2-font-heading: var(--pm2-font-display);

    /* Radius & Shadows */
    --pm2-radius-sm: 2px;
    --pm2-radius-md: 3px;
    --pm2-radius: 4px;
    --pm2-radius-lg: 4px;
    --pm2-radius-xl: 6px;
    --pm2-radius-full: 4px;
    --pm2-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);
    --pm2-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    --pm2-shadow-lg: 0 12px 32px rgba(0, 0, 0, 0.12);
    --pm2-shadow-xl: 0 24px 48px rgba(0, 0, 0, 0.16);

    /* Transitions */
    --pm2-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    --pm2-transition-fast: all 0.15s cubic-bezier(0.4, 0, 0.2, 1);
    --pm2-transition-bounce: all 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

/* Base Styles */
.ilparadisobrugola-theme {
    font-family: var(--pm2-font-body);
    color: var(--pm2-gray-800);
    line-height: 1.6;
    overflow-x: hidden;
}

/* Full-width override for base theme wrapper */
.ilparadisobrugola-theme .wrapper {
    max-width: none;
    width: 100%;
    overflow-x: hidden;
}

.ilparadisobrugola-theme .main-container,
.ilparadisobrugola-theme .main {
    max-width: none;
    width: 100%;
}

.ilparadisobrugola-theme .main-container:after,
.ilparadisobrugola-theme .footer-container:after {
    display: none;
}

/* 1-column layout */
.ilparadisobrugola-theme .col1-layout .col-main {
    margin-left: auto;
    margin-right: auto;
    max-width: 100%;
    overflow-x: hidden;
}

/* CMS pages: constrain content that doesn't have its own container */
.ilparadisobrugola-theme.cms-page-view .col1-layout .col-main > .page-title,
.ilparadisobrugola-theme.cms-page-view .col1-layout .col-main > .std:not(:has(.ilparadisobrugola-info-page, .ilparadisobrugola-home-wrapper, .ilparadisobrugola-novita, .ilparadisobrugola-novita__header, .brands-filters, .ambrands-list-container, .ambrands-header-container)) {
    max-width: 860px;
    margin-left: auto;
    margin-right: auto;
    padding: 0 var(--pm2-container-padding, 2rem) 2rem;
}

/* Homepage: full-width col-main — individual sections constrain themselves */
.ilparadisobrugola-theme .col1-layout .col-main:has(.ilparadisobrugola-home-wrapper) {
    max-width: none;
    /* `.main` è un CSS grid (tema base Maho): con `max-width: none` i margini
       auto di `.col-main` annullano lo stretch della grid area, quindi la
       colonna si dimensiona su max-content (~4000px invece di ~1400px) e
       sfonda la viewport. `.wrapper` ha `overflow-x: hidden`, perciò il
       contenuto a destra spariva: griglia Offerte con card da 948px,
       frecce e "Vedi tutte" dei caroselli fuori schermo. */
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
}

/* Home sections (non-hero) get inner padding */
.ilparadisobrugola-home-wrapper .ilparadisobrugola-section {
    margin-left: auto;
    margin-right: auto;
    padding-left: 2rem;
    padding-right: 2rem;
}

/* Override base theme 1260px limits at 771px breakpoint */
@media only screen and (min-width: 771px) {
    .ilparadisobrugola-theme .page-header {
        max-width: none;
        padding: 0;
    }
    .ilparadisobrugola-theme .main-container,
    .ilparadisobrugola-theme .footer-container {
        max-width: none;
        padding: 0;
    }
    .ilparadisobrugola-theme .top-container {
        max-width: none;
        padding: 0;
    }
}

/* ==================================
   2-COLUMN LEFT LAYOUT (Category pages)
   ================================== */

.ilparadisobrugola-theme .col2-left-layout .main {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
    padding: 0 2rem 2rem;
    max-width: none;
    width: 100%;
    margin: 0 auto;
}

.ilparadisobrugola-theme .col2-left-layout .breadcrumbs {
    width: 100%;
    flex: 0 0 100%;
    order: -1;
}

/* Page title in column layout - full width above columns */
.ilparadisobrugola-theme .col2-left-layout .page-title {
    width: 100%;
    flex: 0 0 100%;
    text-align: center;
    margin-bottom: 1rem;
    order: -1;
}

.ilparadisobrugola-theme .col2-left-layout .page-title h1 {
    font-family: var(--pm2-font-display);
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--pm2-gray-900);
    margin: 0;
}

@media (max-width: 768px) {
    .ilparadisobrugola-theme .col2-left-layout .page-title h1 {
        font-size: 1.75rem;
    }
    .ilparadisobrugola-theme .col2-left-layout .page-title {
        padding: 0;
    }
}

.ilparadisobrugola-theme .col2-left-layout .col-left.sidebar,
.ilparadisobrugola-theme .col2-left-layout .col-left-first {
    flex: 0 0 320px;
    width: 320px;
    min-width: 0;
    float: none;
    order: 0;
}

.ilparadisobrugola-theme .col2-left-layout .col-main {
    flex: 1 1 0;
    min-width: 0;
    float: none;
    width: auto;
}

/* Override base float-based column widths */
.ilparadisobrugola-theme .col2-left-layout .col-left {
    float: none;
    width: auto;
    padding: 0;
}

/* Sidebar is shown — layered navigation lives here */

@media (max-width: 1024px) {
    .ilparadisobrugola-theme .col2-left-layout .main {
        flex-direction: column;
        padding: 0 1rem 1.5rem;
    }

    .ilparadisobrugola-theme .col2-left-layout .col-left.sidebar,
    .ilparadisobrugola-theme .col2-left-layout .col-left-first {
        flex: 0 0 auto;
        width: 100%;
        order: -1;
    }

    .ilparadisobrugola-theme .col2-left-layout .col-main {
        order: 1;
    }
}

/* Fix 3: Reset base theme uppercase on headings — Il Paradiso della Brugola uses normal case */
.ilparadisobrugola-theme h1, .ilparadisobrugola-theme .h1,
.ilparadisobrugola-theme h2, .ilparadisobrugola-theme .h2,
.ilparadisobrugola-theme h3, .ilparadisobrugola-theme .h3,
.ilparadisobrugola-theme h4, .ilparadisobrugola-theme .h4,
.ilparadisobrugola-theme h5, .ilparadisobrugola-theme .h5,
.ilparadisobrugola-theme h6, .ilparadisobrugola-theme .h6 {
    text-transform: none;
}

/* Link Styles — readable text links, CTA-orange on hover */
.ilparadisobrugola-theme a {
    color: var(--pm2-gray-800);
    text-decoration: none;
    transition: var(--pm2-transition-fast);
}

.ilparadisobrugola-theme a:hover {
    color: var(--pm2-cta-dark);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.ilparadisobrugola-theme a:visited {
    color: var(--pm2-gray-800);
}

/* Accessible focus ring — only on keyboard navigation */
.ilparadisobrugola-theme a:focus-visible {
    outline: 2px solid var(--pm2-cta);
    outline-offset: 2px;
    border-radius: 2px;
}

/* Button Reset - Override RWD styles */
.ilparadisobrugola-theme button,
.ilparadisobrugola-theme .button {
    font-family: var(--pm2-font-body);
}

/* =====================================================
   CONVERSION CTA — "Aggiungi al carrello"
   Tool-orange, high contrast, visually dominant.
   ===================================================== */
.ilparadisobrugola-theme .btn-cart,
.ilparadisobrugola-theme button.btn-cart,
.ilparadisobrugola-theme .button.btn-cart {
    background: var(--pm2-cta);
    color: #fff;
    border: none;
    border-radius: var(--pm2-radius);
    padding: 0.875rem 1.75rem;
    font-weight: 700;
    font-size: 0.9375rem;
    letter-spacing: 0.01em;
    cursor: pointer;
    transition: background 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
    text-transform: none;
    box-shadow: 0 2px 6px rgba(var(--pm2-cta-rgb), 0.25);
}

.ilparadisobrugola-theme .btn-cart:hover,
.ilparadisobrugola-theme button.btn-cart:hover,
.ilparadisobrugola-theme .button.btn-cart:hover {
    background: var(--pm2-cta-dark);
    color: #fff;
    border: none;
    box-shadow: 0 6px 18px rgba(var(--pm2-cta-rgb), 0.35);
    transform: translateY(-1px);
}

.ilparadisobrugola-theme .btn-cart:active,
.ilparadisobrugola-theme button.btn-cart:active,
.ilparadisobrugola-theme .button.btn-cart:active {
    transform: translateY(0);
    box-shadow: 0 1px 3px rgba(var(--pm2-cta-rgb), 0.25);
}

.ilparadisobrugola-theme button:focus-visible,
.ilparadisobrugola-theme .button:focus-visible {
    outline: 3px solid var(--pm2-cta);
    outline-offset: 2px;
}

/* =====================================================
   GENERIC BUTTON — secondary actions (update cart, etc.)
   Anthracite — distinct from primary CTA orange.
   ===================================================== */
.ilparadisobrugola-theme .button,
.ilparadisobrugola-theme button.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.75rem 1.5rem;
    font-size: 1rem;
    font-weight: 600;
    border-radius: var(--pm2-radius);
    border: none;
    cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease, transform 0.15s ease;
    background: var(--pm2-primary);
    color: #fff;
    text-decoration: none;
}

.ilparadisobrugola-theme .button:hover,
.ilparadisobrugola-theme button.button:hover {
    background: var(--pm2-primary-dark);
    color: #fff;
    text-decoration: none;
}

.ilparadisobrugola-theme .button:active,
.ilparadisobrugola-theme button.button:active {
    transform: translateY(1px);
}

.ilparadisobrugola-theme .button:disabled,
.ilparadisobrugola-theme button.button:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Secondary Button Style — outline anthracite (low-emphasis) */
.ilparadisobrugola-theme .button.btn-secondary,
.ilparadisobrugola-theme button.button.btn-secondary {
    background: #fff;
    color: var(--pm2-primary);
    border: 2px solid var(--pm2-gray-300);
}

.ilparadisobrugola-theme .button.btn-secondary:hover,
.ilparadisobrugola-theme button.button.btn-secondary:hover {
    background: var(--pm2-gray-50);
    color: var(--pm2-primary);
    border-color: var(--pm2-gray-400);
}

/* Messages — semantic status colors */
.ilparadisobrugola-theme .messages {
    margin: 1rem 0;
}

.ilparadisobrugola-theme .messages > li {
    padding: 1rem 1.25rem;
    border-radius: var(--pm2-radius);
    margin-bottom: 0.5rem;
    list-style: none;
}

.ilparadisobrugola-theme .messages > li ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.ilparadisobrugola-theme .messages > li ul li {
    padding: 0;
    margin: 0;
    border-radius: 0;
    background: none;
    border-left: none;
}

.ilparadisobrugola-theme .success-msg,
.ilparadisobrugola-theme .messages .success {
    background: var(--pm2-success-soft);
    border-left: 4px solid var(--pm2-success);
    color: var(--pm2-success-dark);
}

.ilparadisobrugola-theme .error-msg,
.ilparadisobrugola-theme .messages .error {
    background: var(--pm2-danger-soft);
    border-left: 4px solid var(--pm2-danger);
    color: var(--pm2-danger-dark);
}

.ilparadisobrugola-theme .notice-msg,
.ilparadisobrugola-theme .messages .notice {
    background: var(--pm2-warning-soft);
    border-left: 4px solid var(--pm2-warning);
    color: var(--pm2-warning-dark);
}

.ilparadisobrugola-theme .info-msg,
.ilparadisobrugola-theme .messages .info {
    background: var(--pm2-info-soft);
    border-left: 4px solid var(--pm2-info);
    color: var(--pm2-info-dark);
}

.ilparadisobrugola-container {
    max-width: var(--pm2-container-max);
    margin: 0 auto;
    padding: 0 var(--pm2-container-padding);
}

@media (max-width: 480px) {
    .ilparadisobrugola-container {
        padding: 0 1rem;
    }
}

.ilparadisobrugola-section {
    padding: var(--pm2-section-spacing-mobile) 0;
}

@media (min-width: 1024px) {
    .ilparadisobrugola-section {
        padding: var(--pm2-section-spacing) 0;
    }
}

.ilparadisobrugola-section__title {
    font-family: var(--pm2-font-display);
    font-size: 2rem;
    font-weight: 700;
    color: var(--pm2-gray-900);
    margin: 0 0 2rem;
    text-align: center;
}

@media (min-width: 768px) {
    .ilparadisobrugola-section__title {
        font-size: 2.5rem;
    }
}

/* ============================================
   PROMO BAR — see REDESIGN RESTORE section below
   ============================================ */

/* ============================================
   HERO SLIDER
   ============================================ */
.ilparadisobrugola-hero {
    position: relative;
    width: 100%;
    overflow: hidden;
    background: var(--pm2-gray-100);
}

.ilparadisobrugola-hero__slider {
    position: relative;
    display: flex;
    transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

.ilparadisobrugola-hero__slide {
    flex: 0 0 100%;
    min-height: 400px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    background-size: cover;
    background-position: center;
    background-image: var(--slide-bg-desktop);
}

@media (max-width: 767px) {
    .ilparadisobrugola-hero__slide {
        background-image: var(--slide-bg-mobile, var(--slide-bg-desktop));
    }
}

@media (min-width: 768px) {
    .ilparadisobrugola-hero__slide {
        min-height: 500px;
    }
}

@media (min-width: 1024px) {
    .ilparadisobrugola-hero__slide {
        min-height: 600px;
    }
}

/* Background image for free-format slides: <img class="ilparadisobrugola-hero__slide-bg"> */
.ilparadisobrugola-hero__slide-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    z-index: 0;
    display: block;
}

.ilparadisobrugola-hero__slide::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0.55) 100%);
    z-index: 1;
}

.ilparadisobrugola-hero__slide-link {
    position: absolute;
    inset: 0;
    z-index: 2;
}

.ilparadisobrugola-hero__content {
    position: relative;
    z-index: 3;
    color: white;
    text-align: center;
    max-width: 800px;
    padding: 2rem;
}

.ilparadisobrugola-hero__title {
    font-family: var(--pm2-font-display);
    font-size: 2.5rem;
    font-weight: 700;
    margin: 0 0 1rem;
    line-height: 1.2;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
}

@media (min-width: 768px) {
    .ilparadisobrugola-hero__title {
        font-size: 3.5rem;
    }
}

.ilparadisobrugola-hero__subtitle {
    font-size: 1.125rem;
    margin: 0 0 2rem;
    opacity: 0.95;
    text-shadow: 0 1px 8px rgba(0, 0, 0, 0.3);
}

@media (min-width: 768px) {
    .ilparadisobrugola-hero__subtitle {
        font-size: 1.25rem;
    }
}

.ilparadisobrugola-hero__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    background: var(--pm2-cta);
    color: #fff;
    padding: 1rem 2.5rem;
    border-radius: var(--pm2-radius-lg);
    font-weight: 700;
    font-size: 1.125rem;
    text-decoration: none;
    transition: background 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.25), 0 2px 8px rgba(var(--pm2-cta-rgb), 0.4);
    letter-spacing: 0.01em;
}

.ilparadisobrugola-hero__cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.3), 0 4px 14px rgba(var(--pm2-cta-rgb), 0.55);
    background: var(--pm2-cta-dark);
    color: #fff;
    text-decoration: none;
}

.ilparadisobrugola-hero__cta:focus-visible {
    outline: 3px solid #fff;
    outline-offset: 3px;
}

.ilparadisobrugola-hero__controls {
    position: absolute;
    bottom: 1.5rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10;
    display: flex;
    gap: 0.75rem;
}

.ilparadisobrugola-hero__dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.5);
    border: 2px solid white;
    cursor: pointer;
    transition: var(--pm2-transition);
    padding: 0;
}

.ilparadisobrugola-hero__dot:hover,
.ilparadisobrugola-hero__dot--active {
    background: white;
    transform: scale(1.2);
}

/* ── Hero: badge chip (ferramenta slides) ── */
.ilparadisobrugola-hero__badge {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    background: rgba(255, 255, 255, 0.15);
    border: 1px solid rgba(255, 255, 255, 0.35);
    color: #fff;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 0.35rem 1rem;
    border-radius: 2rem;
    margin: 0 0 1.25rem;
}

/* ── Hero: SVG icon above title ── */
.ilparadisobrugola-hero__icon {
    display: block;
    margin: 0 0 1rem;
    opacity: 0.9;
    filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.4));
}
.ilparadisobrugola-hero__icon svg {
    display: block;
    margin: 0 auto;
}

/* ── Hero slide — Ferramenta: dark steel navy + subtle grid ── */
.ilparadisobrugola-hero__slide--ferramenta {
    background:
        repeating-linear-gradient(0deg, transparent, transparent 79px, rgba(255, 255, 255, 0.03) 79px, rgba(255, 255, 255, 0.03) 80px),
        repeating-linear-gradient(90deg, transparent, transparent 79px, rgba(255, 255, 255, 0.03) 79px, rgba(255, 255, 255, 0.03) 80px),
        radial-gradient(ellipse at 15% 55%, rgba(28, 112, 184, 0.45) 0%, transparent 55%),
        linear-gradient(140deg, #0a1628 0%, #162236 50%, #0f3460 100%);
}

/* ── Hero slide — Edilizia: warm industrial amber/burnt orange ── */
.ilparadisobrugola-hero__slide--edilizia {
    background:
        repeating-linear-gradient(45deg, transparent, transparent 39px, rgba(255, 255, 255, 0.02) 39px, rgba(255, 255, 255, 0.02) 40px),
        radial-gradient(ellipse at 75% 30%, rgba(245, 158, 11, 0.4) 0%, transparent 55%),
        linear-gradient(135deg, #2d0f00 0%, #6b2005 35%, #b84c00 70%, #c9620a 100%);
}

/* ── Hero slide — Brand: professional deep navy ── */
.ilparadisobrugola-hero__slide--brand {
    background:
        repeating-linear-gradient(0deg, transparent, transparent 79px, rgba(255, 255, 255, 0.025) 79px, rgba(255, 255, 255, 0.025) 80px),
        repeating-linear-gradient(90deg, transparent, transparent 79px, rgba(255, 255, 255, 0.025) 79px, rgba(255, 255, 255, 0.025) 80px),
        radial-gradient(ellipse at 80% 60%, rgba(28, 112, 184, 0.5) 0%, transparent 55%),
        linear-gradient(150deg, #080e1c 0%, #111c35 45%, #1a2f5a 100%);
}

/* ============================================
   SPECIES TILES
   ============================================ */
.ilparadisobrugola-tiles__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
}

@media (min-width: 768px) {
    .ilparadisobrugola-tiles__grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 1.5rem;
    }
}

@media (min-width: 1024px) {
    .ilparadisobrugola-tiles__grid {
        grid-template-columns: repeat(7, 1fr);
        gap: 1.5rem;
    }
}

.ilparadisobrugola-tile {
    position: relative;
    aspect-ratio: 1;
    border-radius: var(--pm2-radius-lg);
    overflow: hidden;
    background: var(--pm2-gray-100);
    transition: var(--pm2-transition);
    cursor: pointer;
    display: block;
    text-decoration: none;
}

.ilparadisobrugola-tile:hover {
    transform: translateY(-8px);
    box-shadow: var(--pm2-shadow-xl);
}

.ilparadisobrugola-tile__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: var(--pm2-transition);
}

.ilparadisobrugola-tile:hover .ilparadisobrugola-tile__image {
    transform: scale(1.1);
}

.ilparadisobrugola-tile__placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--pm2-primary-light) 0%, var(--pm2-primary) 100%);
    color: white;
    transition: var(--pm2-transition);
}

.ilparadisobrugola-tile__placeholder svg {
    width: 48px;
    height: 48px;
}

@media (min-width: 1024px) {
    .ilparadisobrugola-tile__placeholder svg {
        width: 40px;
        height: 40px;
    }
}

.ilparadisobrugola-tile:hover .ilparadisobrugola-tile__placeholder {
    background: linear-gradient(135deg, var(--pm2-primary) 0%, var(--pm2-primary-dark) 100%);
}

.ilparadisobrugola-tile__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 30%, rgba(0, 0, 0, 0.55) 100%);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    padding: 1rem 0.75rem;
    gap: 0.25rem;
}

.ilparadisobrugola-tile__icon {
    display: none;
}

.ilparadisobrugola-tile__title {
    font-family: var(--pm2-font-display);
    font-size: 0.95rem;
    font-weight: 600;
    color: white;
    margin: 0;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
    text-align: center;
    line-height: 1.2;
}

@media (max-width: 767px) {
    .ilparadisobrugola-tile__title {
        font-size: 0.85rem;
    }
}

/* ============================================
   CATEGORY GRID
   ============================================ */
.ilparadisobrugola-categories__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
}

@media (min-width: 768px) {
    .ilparadisobrugola-categories__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 1rem;
    }
}

@media (min-width: 1024px) {
    .ilparadisobrugola-categories__grid {
        grid-template-columns: repeat(4, 1fr);
        gap: 1rem;
    }
}

.ilparadisobrugola-category-card {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.25rem;
    border-radius: var(--pm2-radius-lg);
    background: white;
    border: 1px solid var(--pm2-gray-200);
    text-decoration: none;
    transition: var(--pm2-transition);
}

.ilparadisobrugola-category-card:hover {
    border-color: var(--pm2-primary-light);
    box-shadow: var(--pm2-shadow-lg);
    transform: translateY(-2px);
}

.ilparadisobrugola-category-card__icon {
    width: 48px;
    height: 48px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--pm2-radius-md);
    background: var(--pm2-gray-50);
    color: var(--pm2-primary);
}

.ilparadisobrugola-category-card:hover .ilparadisobrugola-category-card__icon {
    background: var(--pm2-primary-light);
    color: white;
}

.ilparadisobrugola-category-card__icon svg {
    width: 28px;
    height: 28px;
}

.ilparadisobrugola-category-card__icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: var(--pm2-radius-sm);
}

.ilparadisobrugola-category-card__info {
    flex: 1;
    min-width: 0;
}

.ilparadisobrugola-category-card__title {
    font-family: var(--pm2-font-display);
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--pm2-gray-900);
    margin: 0 0 0.15rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ilparadisobrugola-category-card__parent {
    font-size: 0.75rem;
    color: var(--pm2-gray-500);
    display: block;
}

.ilparadisobrugola-category-card__count {
    font-size: 0.7rem;
    color: var(--pm2-primary);
    font-weight: 500;
}

.ilparadisobrugola-category-card__arrow {
    flex-shrink: 0;
    color: var(--pm2-gray-400);
    transition: var(--pm2-transition);
}

.ilparadisobrugola-category-card:hover .ilparadisobrugola-category-card__arrow {
    color: var(--pm2-primary);
    transform: translateX(3px);
}

/* ============================================
   VALUE PROPS (Slider on mobile, grid on desktop)
   ============================================ */
.ilparadisobrugola-value-props {
    background: var(--pm2-gray-50);
    border-top: 1px solid var(--pm2-gray-200);
    border-bottom: 1px solid var(--pm2-gray-200);
    overflow: hidden;
}

/* Slider container */
.ilparadisobrugola-value-props__slider {
    overflow: hidden;
}

.ilparadisobrugola-value-props__track {
    display: flex;
    animation: pm2-value-props-scroll 12s linear infinite;
}

.ilparadisobrugola-value-prop {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem 1.25rem;
    flex: 0 0 280px;
    min-width: 280px;
    transition: var(--pm2-transition);
}

/* Desktop: static grid, no animation */
@media (min-width: 1024px) {
    .ilparadisobrugola-value-props__track {
        animation: none;
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 0;
    }

    .ilparadisobrugola-value-prop {
        flex-direction: column;
        text-align: center;
        padding: 2rem 1.5rem;
        flex: unset;
        min-width: unset;
    }

    .ilparadisobrugola-value-prop + .ilparadisobrugola-value-prop {
        border-left: 1px solid var(--pm2-gray-200);
    }

    /* Hide duplicate items on desktop */
    .ilparadisobrugola-value-prop--clone {
        display: none;
    }
}

@keyframes pm2-value-props-scroll {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-50%);
    }
}

/* Pause animation on hover */
.ilparadisobrugola-value-props__track:hover {
    animation-play-state: paused;
}

.ilparadisobrugola-value-prop__icon {
    width: 48px;
    height: 48px;
    flex-shrink: 0;
    color: var(--pm2-primary);
    display: flex;
    align-items: center;
    justify-content: center;
}

.ilparadisobrugola-value-prop__icon svg {
    width: 36px;
    height: 36px;
}

@media (min-width: 1024px) {
    .ilparadisobrugola-value-prop__icon {
        width: 56px;
        height: 56px;
        margin: 0 auto;
    }
    .ilparadisobrugola-value-prop__icon svg {
        width: 44px;
        height: 44px;
    }
}

.ilparadisobrugola-value-prop__content {
    flex: 1;
    white-space: nowrap;
}

.ilparadisobrugola-value-prop__title {
    font-family: var(--pm2-font-display);
    font-size: 1rem;
    font-weight: 600;
    color: var(--pm2-gray-900);
    margin: 0 0 0.25rem;
}

.ilparadisobrugola-value-prop__text {
    font-size: 0.8rem;
    color: var(--pm2-gray-600);
    margin: 0;
    line-height: 1.4;
}

/* ============================================
   BRAND SLIDER (Amasty override)
   ============================================ */
.amslider-container {
    margin: 0;
    font-family: var(--pm2-font-body);
}

.amslider-container .ambrands-header-container {
    background: transparent !important;
    padding: 0;
    margin-bottom: 1.5rem;
}

.amslider-container .ambrands-header-container .ambrands-header {
    text-align: center;
}

.amslider-container .ambrands-header-container .ambrands-header span {
    font-family: var(--pm2-font-display) !important;
    font-size: 1.75rem !important;
    font-weight: 700 !important;
    color: var(--pm2-gray-900) !important;
}

.amslider {
    max-width: 100% !important;
    padding: 0 48px !important;
}

.amslider .swiper-container {
    border-radius: var(--pm2-radius-lg);
}

.amslider .swiper-slide {
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}

.amslider .swiper-slide .swiper-brand {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    padding: 1rem;
    transition: var(--pm2-transition);
    border: none !important;
}

.amslider .swiper-slide .swiper-brand img {
    max-width: 160px !important;
    max-height: 80px !important;
    object-fit: contain;
    
    transition: var(--pm2-transition);
}

.amslider .swiper-slide:hover .swiper-brand img {
    transform: scale(1.05);
}

.amslider .swiper-slide .brand-title {
    font-size: 0.75rem;
    color: var(--pm2-gray-600);
    font-weight: 500;
}

.amslider .swiper-button-prev,
.amslider .swiper-button-next {
    width: 40px;
    height: 40px;
    background-color: white;
    background-image: none !important;
    border: 2px solid var(--pm2-gray-200);
    border-radius: 50%;
    color: var(--pm2-gray-700);
    transition: var(--pm2-transition);
    display: flex;
    align-items: center;
    justify-content: center;
}

.amslider .swiper-button-prev:hover,
.amslider .swiper-button-next:hover {
    background-color: var(--pm2-primary);
    border-color: var(--pm2-primary);
    color: white;
}

.amslider .swiper-button-prev::after,
.amslider .swiper-button-next::after {
    content: '';
    display: block;
    width: 9px;
    height: 9px;
    border-right: 2px solid currentColor;
    border-top: 2px solid currentColor;
}

.amslider .swiper-button-prev::after {
    transform: rotate(-135deg) translate(-2px, 2px);
}

.amslider .swiper-button-next::after {
    transform: rotate(45deg) translate(-2px, 2px);
}

/* ============================================
   PRODUCT CAROUSEL
   ============================================ */
.ilparadisobrugola-carousel__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 2rem;
}

.ilparadisobrugola-carousel__header-right {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.ilparadisobrugola-carousel__see-all {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--pm2-primary);
    text-decoration: none;
    white-space: nowrap;
    transition: var(--pm2-transition-fast);
}

.ilparadisobrugola-carousel__see-all:hover {
    color: var(--pm2-primary-dark, var(--pm2-primary));
    text-decoration: none;
    gap: 0.5rem;
}

.ilparadisobrugola-carousel__panel {
    /* wrapper for each tab panel's track */
}

.ilparadisobrugola-carousel__nav {
    display: flex;
    gap: 0.5rem;
}

.ilparadisobrugola-carousel__arrow {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: white;
    border: 2px solid var(--pm2-gray-200);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: var(--pm2-transition);
    color: var(--pm2-gray-700);
}

.ilparadisobrugola-carousel__arrow:hover {
    background: var(--pm2-primary);
    border-color: var(--pm2-primary);
    color: white;
    transform: scale(1.1);
}

.ilparadisobrugola-carousel__arrow:disabled {
    opacity: 0.3;
    cursor: not-allowed;
    transform: none;
}

.ilparadisobrugola-carousel__track {
    display: flex;
    gap: 1.5rem;
    overflow-x: auto;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: 1rem;
}

.ilparadisobrugola-carousel__track::-webkit-scrollbar {
    display: none;
}

.ilparadisobrugola-carousel__empty {
    text-align: center;
    color: var(--pm2-gray-500);
    font-size: 1.125rem;
    padding: 3rem 0;
}

/* ============================================
   PRODUCT CARD
   ============================================ */
.ilparadisobrugola-product-card {
    flex: 0 0 calc(50vw - 1rem - 0.375rem);
    scroll-snap-align: start;
    background: white;
    border-radius: var(--pm2-radius-lg);
    overflow: hidden;
    box-shadow: var(--pm2-shadow);
    transition: var(--pm2-transition);
    position: relative;
}

@media (min-width: 768px) {
    .ilparadisobrugola-product-card {
        flex: 0 0 280px;
    }
}

@media (min-width: 1024px) {
    .ilparadisobrugola-product-card {
        flex: 0 0 300px;
    }
}

.ilparadisobrugola-product-card:hover {
    transform: translateY(-8px);
    box-shadow: var(--pm2-shadow-xl);
}

.ilparadisobrugola-product-card__badge {
    position: absolute;
    top: 1rem;
    right: 1rem;
    background: var(--pm2-accent);
    color: var(--pm2-gray-900);
    padding: 0.375rem 0.875rem;
    border-radius: var(--pm2-radius);
    font-size: 0.75rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    z-index: 2;
    box-shadow: var(--pm2-shadow);
}

.ilparadisobrugola-product-card__image-link {
    display: block;
    position: relative;
    aspect-ratio: 1;
    background: var(--pm2-gray-100);
}

.ilparadisobrugola-product-card__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: var(--pm2-transition);
}

.ilparadisobrugola-product-card:hover .ilparadisobrugola-product-card__image {
    transform: scale(1.05);
}

.ilparadisobrugola-product-card__content {
    padding: 1.25rem;
}

.ilparadisobrugola-product-card__title {
    margin: 0 0 0.75rem;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.ilparadisobrugola-product-card__title a {
    color: var(--pm2-gray-900);
    text-decoration: none;
    transition: var(--pm2-transition-fast);
}

.ilparadisobrugola-product-card__title a:hover {
    color: var(--pm2-primary);
}

.ilparadisobrugola-product-card__rating {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

.ilparadisobrugola-stars {
    display: flex;
    gap: 2px;
}

.ilparadisobrugola-star {
    width: 16px;
    height: 16px;
}

.ilparadisobrugola-star--full {
    color: #FBBF24;
}

.ilparadisobrugola-star--empty {
    color: var(--pm2-gray-300);
}

.ilparadisobrugola-product-card__reviews {
    font-size: 0.875rem;
    color: var(--pm2-gray-500);
}

/* Maho Review Stars - Override base theme styles */
.ilparadisobrugola-theme .rating-box,
.ilparadisobrugola-theme .ratings {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    vertical-align: middle;
}

.ilparadisobrugola-theme .rating-box {
    position: relative;
    display: inline-block;
    font-size: 16px;
    line-height: 1;
    letter-spacing: 2px;
}

.ilparadisobrugola-theme .rating-box::before {
    content: "★★★★★";
    color: var(--pm2-gray-300);
}

.ilparadisobrugola-theme .rating-box .rating {
    position: absolute;
    top: 0;
    left: 0;
    overflow: hidden;
    white-space: nowrap;
}

.ilparadisobrugola-theme .rating-box .rating::before {
    content: "★★★★★";
    color: #FBBF24;
}

.ilparadisobrugola-theme .rating-links {
    font-size: 0.875rem;
}

.ilparadisobrugola-theme .rating-links a {
    color: var(--pm2-gray-600);
    text-decoration: none;
}

.ilparadisobrugola-theme .rating-links a:hover {
    color: var(--pm2-primary);
}

/* Product view rating */
.ilparadisobrugola-product-view__rating {
    margin-bottom: 1rem;
}

.ilparadisobrugola-product-card__price {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.ilparadisobrugola-product-card__price-current,
.ilparadisobrugola-product-card__price-special {
    font-family: var(--pm2-font-display);
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--pm2-gray-900);
}

.ilparadisobrugola-product-card__price-special {
    color: var(--pm2-cta-dark);
}

.ilparadisobrugola-product-card__price-regular {
    font-size: 1.125rem;
    color: var(--pm2-gray-400);
    text-decoration: line-through;
}

.ilparadisobrugola-product-card__cta {
    width: 100%;
}

/* Mobile: 2 products visible in viewport */
@media (max-width: 767px) {
    .ilparadisobrugola-product-card__content {
        padding: 0.75rem;
    }
    .ilparadisobrugola-product-card__title {
        font-size: 0.8rem;
        margin-bottom: 0.375rem;
    }
    .ilparadisobrugola-product-card__rating {
        gap: 0.25rem;
        margin-bottom: 0.375rem;
    }
    .ilparadisobrugola-star {
        width: 12px;
        height: 12px;
    }
    .ilparadisobrugola-product-card__reviews {
        font-size: 0.7rem;
    }
    .ilparadisobrugola-product-card__price {
        gap: 0.375rem;
        margin-bottom: 0.5rem;
    }
    .ilparadisobrugola-product-card__price-current,
    .ilparadisobrugola-product-card__price-special {
        font-size: 1.1rem;
    }
    .ilparadisobrugola-product-card__price-regular {
        font-size: 0.8rem;
    }
    .ilparadisobrugola-product-card__cta {
        font-size: 0.75rem;
        padding: 0.5rem 0.75rem;
        white-space: normal;
        text-align: center;
        line-height: 1.3;
    }
    .ilparadisobrugola-btn.ilparadisobrugola-product-card__cta {
        white-space: normal;
    }
    .ilparadisobrugola-product-card__cta svg {
        display: none;
    }
    .ilparadisobrugola-product-card__badge {
        top: 0.5rem;
        right: 0.5rem;
        padding: 0.25rem 0.5rem;
        font-size: 0.625rem;
    }
    .ilparadisobrugola-carousel__track {
        gap: 0.75rem;
    }
}

/* ============================================
   BUTTON SYSTEM (.ilparadisobrugola-btn--*)
   --primary  = CTA arancione (action: buy / checkout / continue)
   --secondary = outline grigio (low-emphasis: back, update)
   --outline  = outline antracite (alt link buttons)
   --success  = verde (confirmations, post-action)
   --danger   = rosso (destructive)
   --large    = checkout size modifier
   ============================================ */
.ilparadisobrugola-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.875rem 1.75rem;
    border-radius: var(--pm2-radius);
    font-family: var(--pm2-font-body);
    font-size: 1rem;
    font-weight: 600;
    text-decoration: none;
    border: none;
    cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
    white-space: nowrap;
    text-align: center;
    line-height: 1.2;
}

.ilparadisobrugola-btn:focus-visible {
    outline: 3px solid var(--pm2-cta);
    outline-offset: 2px;
}

.ilparadisobrugola-btn:disabled,
.ilparadisobrugola-btn[aria-disabled="true"] {
    opacity: 0.55;
    cursor: not-allowed;
    transform: none !important;
    box-shadow: none !important;
}

/* PRIMARY — conversion CTA (orange) */
.ilparadisobrugola-btn--primary {
    background: var(--pm2-cta);
    color: #fff;
    box-shadow: 0 2px 6px rgba(var(--pm2-cta-rgb), 0.25);
}

.ilparadisobrugola-btn--primary:hover {
    background: var(--pm2-cta-dark);
    color: #fff;
    text-decoration: none;
    transform: translateY(-1px);
    box-shadow: 0 8px 22px rgba(var(--pm2-cta-rgb), 0.38);
}

.ilparadisobrugola-btn--primary:active {
    transform: translateY(0);
    box-shadow: 0 1px 3px rgba(var(--pm2-cta-rgb), 0.25);
}

/* SECONDARY — low-emphasis outline */
.ilparadisobrugola-btn--secondary {
    background: #fff;
    color: var(--pm2-gray-800);
    border: 2px solid var(--pm2-gray-300);
}

.ilparadisobrugola-btn--secondary:hover {
    background: var(--pm2-gray-50);
    color: var(--pm2-gray-900);
    border-color: var(--pm2-gray-400);
    text-decoration: none;
}

/* SUCCESS — confirmations */
.ilparadisobrugola-btn--success {
    background: var(--pm2-success);
    color: #fff;
}

.ilparadisobrugola-btn--success:hover {
    background: var(--pm2-success-dark);
    color: #fff;
    text-decoration: none;
    transform: translateY(-1px);
    box-shadow: 0 6px 18px rgba(22, 163, 74, 0.32);
}

/* OUTLINE — anthracite outline */
.ilparadisobrugola-btn--outline {
    background: transparent;
    color: var(--pm2-primary);
    border: 2px solid var(--pm2-primary);
}

.ilparadisobrugola-btn--outline:hover {
    background: var(--pm2-primary);
    color: #fff;
    text-decoration: none;
}

/* DANGER — destructive */
.ilparadisobrugola-btn--danger {
    background: var(--pm2-danger);
    color: #fff;
}

.ilparadisobrugola-btn--danger:hover {
    background: var(--pm2-danger-dark);
    color: #fff;
    text-decoration: none;
}

/* SIZE MODIFIERS */
.ilparadisobrugola-btn--large {
    padding: 1rem 2rem;
    font-size: 1.0625rem;
    border-radius: var(--pm2-radius-lg);
}

.ilparadisobrugola-btn--block {
    width: 100%;
    display: flex;
}

/* ============================================
   UTILITIES
   ============================================ */
.ilparadisobrugola-text-center {
    text-align: center;
}

.ilparadisobrugola-mt-1 { margin-top: 0.5rem; }
.ilparadisobrugola-mt-2 { margin-top: 1rem; }
.ilparadisobrugola-mt-3 { margin-top: 1.5rem; }
.ilparadisobrugola-mt-4 { margin-top: 2rem; }

.ilparadisobrugola-mb-1 { margin-bottom: 0.5rem; }
.ilparadisobrugola-mb-2 { margin-bottom: 1rem; }
.ilparadisobrugola-mb-3 { margin-bottom: 1.5rem; }
.ilparadisobrugola-mb-4 { margin-bottom: 2rem; }

/* ============================================
   ANIMATIONS
   ============================================ */
@keyframes ilparadisobrugolaFadeIn {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.ilparadisobrugola-fade-in {
    animation: ilparadisobrugolaFadeIn 0.6s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

@keyframes ilparadisobrugolaSlideIn {
    from {
        opacity: 0;
        transform: translateX(-30px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

.ilparadisobrugola-slide-in {
    animation: ilparadisobrugolaSlideIn 0.5s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

/* ============================================
   HEADER (Maho base theme + Il Paradiso della Brugola branding)
   ============================================ */

/* Sticky header */
.page-header {
    position: sticky;
    top: 0;
    z-index: 900;
    background: white;
    border-bottom: 1px solid var(--pm2-gray-200);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}

/* Il tema base (Tailwind) applica `backdrop-filter` a `.page-header`. Un filtro
   non-none crea un containing block per i discendenti `position: fixed`:
   l'overlay di ricerca fullscreen e il drawer di navigazione (che stanno dentro
   <header>) restavano confinati al box dell'header, lasciando visibile la
   pagina sottostante (banner/promo bar) sopra la ricerca. L'header qui è
   `background: white` opaco, quindi il blur non aveva alcun effetto visivo.
   NB: se in futuro serve l'effetto frosted, va messo su `.ah-header` (figlio),
   non su `header.page-header`. */
header.page-header {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
}

/* Container layout */
.page-header-container {
    display: flex;
    flex-wrap: wrap;
    padding: 0.625rem 2rem !important;
    gap: 1rem !important;
    max-width: none;
    width: 100%;
    margin: 0 auto;
    align-items: center;
}

/* Logo sizing */
.page-header .logo img {
    max-height: 36px;
    width: auto;
}

/* Override base theme hiding the logo link */
.page-header-container > div:first-of-type > a:first-of-type {
    display: block !important;
}

/* Skip-link icon colors */
.page-header .skip-link {
    color: var(--pm2-gray-700);
    transition: var(--pm2-transition-fast);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.page-header .skip-link:hover {
    color: var(--pm2-primary);
    opacity: 1;
}

.page-header .skip-link svg {
    width: 28px;
    height: 28px;
}

/* Cart badge */
.page-header .skip-cart .count {
    background: var(--pm2-accent);
    color: white;
    font-size: 0.625rem;
    font-weight: 700;
    padding: 0.125rem 0.375rem;
    border-radius: 10px;
    min-width: 18px;
    text-align: center;
    line-height: 1.2;
}

.page-header .skip-cart .count-0 {
    display: none;
}

/* Search bar styling */
.page-header .form-search,
.page-header #search_mini_form {
    display: flex;
    align-items: center;
    position: relative;
    width: 100%;
    flex: 1 1 auto;
    min-width: 0;
    max-width: 600px;
    margin: 0 auto;
}

.page-header .form-search .input-text,
.page-header #search_mini_form .input-text {
    width: 100%;
    padding: 0.625rem 1rem;
    padding-right: 2.75rem;
    border: 2px solid var(--pm2-gray-200);
    border-radius: var(--pm2-radius-full);
    font-family: var(--pm2-font-body);
    font-size: 0.9375rem;
    outline: none;
    transition: var(--pm2-transition-fast);
    background: var(--pm2-gray-50);
}

#search_mini_form .input-box {
    width: 100%;
}

.page-header .form-search .input-text:focus,
.page-header #search_mini_form .input-text:focus {
    border-color: var(--pm2-primary);
    background: white;
    box-shadow: 0 0 0 3px rgba(var(--pm2-cta-rgb), 0.18);
}

.page-header .form-search .input-text::placeholder,
.page-header #search_mini_form .input-text::placeholder {
    color: var(--pm2-gray-400);
}

.page-header .form-search .search-button,
.page-header .form-search button[type="submit"],
.page-header #search_mini_form .search-button,
.page-header #search_mini_form button[type="submit"] {
    position: absolute;
    right: 0.5rem;
    top: 50%;
    transform: translateY(-50%);
    background: var(--pm2-primary);
    border: none;
    color: white;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: var(--pm2-transition-fast);
    padding: 0;
}

.page-header .form-search .search-button:hover,
.page-header .form-search button[type="submit"]:hover,
.page-header #search_mini_form .search-button:hover,
.page-header #search_mini_form button[type="submit"]:hover {
    background: var(--pm2-primary-dark);
}

.page-header .form-search .search-button svg,
.page-header .form-search button[type="submit"] svg,
.page-header #search_mini_form .search-button svg,
.page-header #search_mini_form button[type="submit"] svg {
    width: 18px;
    height: 18px;
}

.page-header .form-search label,
.page-header #search_mini_form label {
    display: none;
}

/* Search autocomplete */
#search_mini_form .input-box {
    position: relative;
}

.page-header .search-autocomplete {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 100;
    margin-top: 0.25rem;
    background: white;
    border: 1px solid var(--pm2-gray-200);
    border-radius: var(--pm2-radius);
    box-shadow: var(--pm2-shadow-lg);
    overflow: hidden;
}

.page-header .search-autocomplete ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.page-header .search-autocomplete ul li {
    padding: 0.75rem 1rem;
    cursor: pointer;
    border-bottom: 1px solid var(--pm2-gray-100);
    font-size: 0.9375rem;
    transition: var(--pm2-transition-fast);
}

.page-header .search-autocomplete ul li:hover,
.page-header .search-autocomplete ul li.selected {
    background: var(--pm2-gray-50);
    color: var(--pm2-primary);
}

.page-header .search-autocomplete ul li:last-child {
    border-bottom: none;
}

.page-header .search-autocomplete ul li .amount {
    float: right;
    color: var(--pm2-gray-400);
    font-size: 0.8125rem;
}

/* Desktop layout */
@media (min-width: 771px) {
    .page-header {
        padding: 0;
    }

    .page-header-container {
        display: flex !important;
        align-items: center;
        justify-content: space-between;
    }

    .page-header-container > div {
        display: flex;
        align-items: center;
        gap: 1rem;
        flex-shrink: 0;
    }

    .page-header-container > div:last-child {
        gap: 0.75rem;
    }

    .page-header .logo img {
        max-height: 42px;
    }

    /* Minicart container alignment */
    .page-header .header-minicart {
        display: flex;
        align-items: center;
    }

    .page-header .skip-link {
        flex-direction: column;
        gap: 0.15rem;
    }
    .page-header .skip-link .label {
        display: block;
        font-size: 0.65rem;
        font-weight: 500;
        text-transform: none;
        letter-spacing: 0;
        color: var(--pm2-gray-600);
        white-space: nowrap;
    }
}

/* Mobile layout */
@media (max-width: 770px) {
    .page-header-container {
        padding: 0.5rem 0.75rem !important;
        flex-wrap: wrap;
    }

    .page-header-container > div {
        display: flex;
        align-items: center;
    }

    .page-header .logo img {
        max-height: 30px;
    }

    .page-header .skip-link .label {
        display: none;
    }

    .page-header .skip-link svg {
        width: 24px;
        height: 24px;
    }

    /* Search bar full width on mobile */
    .page-header .form-search,
    .page-header #search_mini_form {
        order: 10;
        flex: 1 1 100%;
        max-width: none;
    }

    .page-header #search_mini_form .input-text {
        height: 45px;
        font-size: 1rem;
    }

    /* Hide cart/eye icon on mobile product card CTA */
    .ilparadisobrugola-product-card__add-to-cart svg {
        display: none;
    }
}

/* ============================================
   NAVIGATION BAR (Novità, Offerte, Blog)
   ============================================ */

/* #header-nav is now the off-canvas drawer — styled in nav-drawer.css */

.ilparadisobrugola-navbar {
    width: 100%;
    padding: 0;
    border-top: 1px solid var(--pm2-gray-200);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.ilparadisobrugola-navbar__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    gap: 0;
    max-width: 1280px;
    margin: 0 auto;
}

/* Categorie drawer trigger in navbar */
.ilparadisobrugola-navbar__link--categories {
    cursor: pointer;
    margin-right: auto;
    background: var(--pm2-gray-50);
    border: none;
    border-right: 1px solid var(--pm2-gray-200);
    font-weight: 700;
    color: var(--pm2-gray-800);
    font-family: inherit;
    line-height: inherit;
}

.ilparadisobrugola-navbar__link--categories:hover {
    background: var(--pm2-primary);
    color: white;
}

.ilparadisobrugola-navbar__link--categories:hover svg {
    color: white;
}

/* Navbar mobile adjustments */
@media (max-width: 770px) {
    .ilparadisobrugola-navbar__link {
        padding: 8px 12px;
        font-size: 13px;
        gap: 4px;
    }

    .ilparadisobrugola-navbar__link svg {
        width: 16px;
        height: 16px;
    }
}

.ilparadisobrugola-navbar__link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 20px;
    font-size: 14px;
    font-weight: 600;
    color: #333;
    text-decoration: none;
    transition: background .15s ease, color .15s ease;
    white-space: nowrap;
}

.ilparadisobrugola-navbar__link:hover {
    background: var(--pm2-cta-soft);
    color: var(--pm2-primary);
    text-decoration: none;
}

.ilparadisobrugola-navbar__link svg {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}

/* ============================================
   FORM INPUT OVERRIDES
   ============================================ */

/* Override base theme height: 30px for all text inputs (Fix 12) */
input[type=email],
input[type=search],
input[type=number],
input[type=password],
input[type=tel],
input[type=text] {
    width: 100%;
    height: auto;
    min-height: 48px;
    padding: 0.625rem 1rem;
    box-sizing: border-box;
}

/* ============================================
   OFFCANVAS OVERRIDES (Il Paradiso della Brugola branding)
   ============================================ */

/* Desktop: wider cart drawer */
@media (min-width: 771px) {
    #offcanvas {
        width: 500px;
        max-width: 500px;
    }
}

#offcanvas .offcanvas-header {
    background: var(--pm2-gray-50);
    border-bottom: 1px solid var(--pm2-gray-200);
    padding: 1.1rem 1.25rem;
}

#offcanvas .offcanvas-title {
    font-family: var(--pm2-font-display);
    font-weight: 700;
    font-size: 1.15rem;
    color: var(--pm2-gray-900);
    letter-spacing: 0.02em;
}

#offcanvas .offcanvas-close {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    transition: background 0.15s;
}

#offcanvas .offcanvas-close:hover {
    color: var(--pm2-primary);
    background: var(--pm2-gray-100);
}

/* Subtotal row */
#offcanvas .minicart-wrapper .subtotal {
    padding: 0.9rem 1.25rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 1rem;
    background: var(--pm2-gray-50);
    border-top: 1px solid var(--pm2-gray-200);
    text-align: left;
}

#offcanvas .minicart-wrapper .subtotal .label {
    font-weight: 500;
    color: var(--pm2-gray-600);
}

#offcanvas .minicart-wrapper .subtotal .price {
    font-weight: 700;
    font-size: 1.1rem;
    color: var(--pm2-gray-900);
}

/* Minicart actions sticky footer */
#offcanvas .minicart-wrapper .minicart-actions {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    padding: 1rem 1.25rem 1.25rem;
    background: #fff;
    border-top: 1px solid var(--pm2-gray-200);
    position: sticky;
    bottom: 0;
}

#offcanvas .minicart-wrapper .minicart-actions .checkout-types.minicart {
    list-style: none;
    margin: 0;
    padding: 0;
}

#offcanvas .minicart-wrapper .minicart-actions .checkout-button {
    display: block;
    width: 100%;
    padding: 0.95rem 1rem;
    background: var(--pm2-cta);
    color: #fff;
    text-align: center;
    font-weight: 700;
    font-size: 1rem;
    border-radius: var(--pm2-radius-lg);
    letter-spacing: 0.02em;
    border: none;
    box-shadow: 0 4px 12px rgba(var(--pm2-cta-rgb), 0.32);
    transition: background 0.2s, box-shadow 0.2s, transform 0.15s;
    cursor: pointer;
    text-transform: none;
}

#offcanvas .minicart-wrapper .minicart-actions .checkout-button:hover {
    background: var(--pm2-cta-dark);
    color: #fff;
    box-shadow: 0 8px 22px rgba(var(--pm2-cta-rgb), 0.45);
    transform: translateY(-1px);
}

#offcanvas .minicart-wrapper .minicart-actions .checkout-button:active {
    transform: translateY(0);
    box-shadow: 0 2px 6px rgba(var(--pm2-cta-rgb), 0.3);
}

#offcanvas .minicart-wrapper .minicart-actions .cart-link {
    display: block;
    text-align: center;
    color: var(--pm2-gray-500);
    font-size: 0.82rem;
    text-decoration: underline;
    padding-top: 0.1rem;
}

#offcanvas .minicart-wrapper .minicart-actions .cart-link:hover {
    color: var(--pm2-gray-800);
    text-decoration: none;
}

/* Success message in minicart */
#offcanvas .minicart-message {
    padding: 0.6rem 1.25rem;
    font-size: 0.85rem;
    border-bottom: 1px solid var(--pm2-gray-200);
}

#minicart-success-message {
    background: var(--pm2-success-soft);
    color: var(--pm2-success-dark);
}

#minicart-error-message {
    background: var(--pm2-danger-soft);
    color: #991b1b;
}

/* ============================================
   HOME OFFERS SECTION
   ============================================ */
.ilparadisobrugola-home-offers {
    padding: var(--pm2-section-spacing) 0;
    background: var(--pm2-gray-50);
}

.ilparadisobrugola-home-offers__header {
    text-align: center;
    margin-bottom: 1.5rem;
}

.ilparadisobrugola-home-offers__header .ilparadisobrugola-section__title svg {
    width: 32px;
    height: 32px;
    color: var(--pm2-primary);
}

.ilparadisobrugola-home-offers__subtitle {
    color: var(--pm2-gray-600);
    font-size: 1.05rem;
    margin: 0.25rem 0 0;
}

.ilparadisobrugola-home-offers__tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: center;
    margin-bottom: 2rem;
    padding: 0 1rem;
}

.ilparadisobrugola-home-offers__tab {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.5rem 1.15rem;
    border-radius: var(--pm2-radius-full);
    background: white;
    border: 1.5px solid var(--pm2-gray-200);
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--pm2-gray-700);
    cursor: pointer;
    transition: var(--pm2-transition);
    white-space: nowrap;
    font-family: inherit;
}

.ilparadisobrugola-home-offers__tab:hover {
    border-color: var(--pm2-primary-light);
    color: var(--pm2-primary);
    background: #FFF5F9;
}

.ilparadisobrugola-home-offers__tab.is-active {
    background: var(--pm2-primary);
    border-color: var(--pm2-primary);
    color: white;
}

.ilparadisobrugola-home-offers__tab-icon {
    width: 16px;
    height: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ilparadisobrugola-home-offers__tab-icon svg {
    width: 16px;
    height: 16px;
}

.ilparadisobrugola-home-offers__panel {
    display: none;
}

.ilparadisobrugola-home-offers__panel.is-active {
    display: block;
}

.ilparadisobrugola-home-offers__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
}

@media (min-width: 640px) {
    .ilparadisobrugola-home-offers__grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (min-width: 1024px) {
    .ilparadisobrugola-home-offers__grid {
        grid-template-columns: repeat(4, 1fr);
        gap: 1.5rem;
    }
}

.ilparadisobrugola-home-offers__footer {
    text-align: center;
    margin-top: 2rem;
}

.ilparadisobrugola-home-offers__footer .ilparadisobrugola-btn--outline {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 2rem;
    border: 2px solid var(--pm2-primary);
    color: var(--pm2-primary);
    border-radius: var(--pm2-radius-full);
    font-weight: 600;
    font-size: 0.95rem;
    background: transparent;
    text-decoration: none;
    transition: var(--pm2-transition);
}

.ilparadisobrugola-home-offers__footer .ilparadisobrugola-btn--outline:hover {
    background: var(--pm2-primary);
    color: white;
}

/* ============================================
   BRAND PAGE
   ============================================ */
.brand-hero {
    display: flex;
    align-items: flex-start;
    gap: 2rem;
    margin-bottom: 2rem;
}

.brand-hero__image {
    flex-shrink: 0;
}

.brand-hero__image .category-image {
    margin: 0;
}

.brand-hero__image img {
    max-width: 200px;
    height: auto;
    border-radius: 8px;
}

.brand-hero__description {
    flex: 1;
    min-width: 0;
    position: relative;
}

.brand-hero__description.is-truncated .brand-hero__text {
    max-height: 10em;
    overflow: hidden;
}

.brand-hero__fade {
    display: none;
}

.brand-hero__description.is-truncated .brand-hero__fade {
    display: block;
    position: absolute;
    bottom: 2.5rem;
    left: 0;
    right: 0;
    height: 3em;
    background: linear-gradient(to bottom, transparent, var(--pm2-white, #fff));
    pointer-events: none;
}

.brand-hero__text {
    font-size: 0.95rem;
    line-height: 1.6;
    color: var(--pm2-gray-700, #374151);
}

.brand-hero__text p:first-child {
    margin-top: 0;
}

.brand-hero__toggle {
    display: inline-block;
    margin-top: 0.5rem;
    padding: 0.4rem 1rem;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--pm2-primary, #2563eb);
    background: transparent;
    border: 1px solid var(--pm2-primary, #2563eb);
    border-radius: 6px;
    cursor: pointer;
    transition: background 0.2s, color 0.2s;
}

.brand-hero__toggle:hover {
    background: var(--pm2-primary, #2563eb);
    color: #fff;
}

@media (max-width: 768px) {
    .brand-hero {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .brand-hero__image img {
        max-width: 150px;
    }
}

/* ============================================
   NOVITÀ PAGE
   ============================================ */
.ilparadisobrugola-novita {
    padding: 0;
}

.ilparadisobrugola-novita__header {
    text-align: center;
    margin-bottom: 2rem;
}

.ilparadisobrugola-novita__title {
    font-family: var(--pm2-font-display);
    font-size: 2rem;
    font-weight: 700;
    color: var(--pm2-gray-900);
    margin: 0 0 0.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

.ilparadisobrugola-novita__title svg {
    width: 32px;
    height: 32px;
    color: var(--pm2-primary);
}

.ilparadisobrugola-novita__subtitle {
    color: var(--pm2-gray-600);
    font-size: 1.05rem;
    margin: 0;
}

.ilparadisobrugola-novita__filters {
    display: flex;
    flex-wrap: nowrap;
    gap: 0.5rem;
    overflow-x: auto;
    overflow-y: visible;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    margin-bottom: 1.5rem;
    padding: 0.25rem 1rem 0.75rem;
}
.ilparadisobrugola-novita__filters::-webkit-scrollbar {
    display: none;
}

.ilparadisobrugola-novita__filter-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.5rem 1rem;
    border-radius: var(--pm2-radius-full);
    background: white;
    border: 1.5px solid var(--pm2-gray-200);
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--pm2-gray-700);
    text-decoration: none;
    transition: var(--pm2-transition);
    white-space: nowrap;
    flex-shrink: 0;
    scroll-snap-align: start;
}

.ilparadisobrugola-novita__filter-pill:hover {
    border-color: var(--pm2-primary-light);
    color: var(--pm2-primary);
    background: #FFF5F9;
    text-decoration: none;
}

.ilparadisobrugola-novita__filter-pill.is-active {
    background: var(--pm2-primary);
    border-color: var(--pm2-primary);
    color: white;
    text-decoration: none;
}

.ilparadisobrugola-novita__filter-icon {
    width: 16px;
    height: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ilparadisobrugola-novita__filter-icon svg {
    width: 16px;
    height: 16px;
}

.ilparadisobrugola-novita__results-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.5rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--pm2-gray-200);
}

.ilparadisobrugola-novita__count {
    font-size: 0.9rem;
    color: var(--pm2-gray-600);
}

.ilparadisobrugola-novita__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
}

@media (min-width: 768px) {
    .ilparadisobrugola-novita__grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 1.5rem;
    }
}

@media (min-width: 1024px) {
    .ilparadisobrugola-novita__grid {
        grid-template-columns: repeat(4, 1fr);
        gap: 1.5rem;
    }
}

.ilparadisobrugola-novita__grid .ilparadisobrugola-product-card {
    flex: none;
    width: 100%;
}

.ilparadisobrugola-novita__pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.5rem;
    margin-top: 3rem;
    flex-wrap: wrap;
}

.ilparadisobrugola-novita__page-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 0.75rem;
    border-radius: var(--pm2-radius-md);
    background: white;
    border: 1px solid var(--pm2-gray-200);
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--pm2-gray-700);
    text-decoration: none;
    transition: var(--pm2-transition);
}

.ilparadisobrugola-novita__page-link:hover {
    background: var(--pm2-gray-50);
    border-color: var(--pm2-primary-light);
    color: var(--pm2-primary);
}

.ilparadisobrugola-novita__page-link.is-active {
    background: var(--pm2-primary);
    border-color: var(--pm2-primary);
    color: white;
}

.ilparadisobrugola-novita__empty {
    text-align: center;
    padding: 4rem 2rem;
    color: var(--pm2-gray-500);
}

.ilparadisobrugola-novita__empty p {
    font-size: 1.1rem;
    margin-bottom: 1.5rem;
}

/* ==================================
   NEWSLETTER SECTION (above footer)
   ================================== */

/* ==================================
   BRAND LIST PAGE (Amasty Brands)
   ================================== */

.ilparadisobrugola-theme .brand-list {
    padding: 0 2rem 2rem;
    max-width: none;
    width: 100%;
    margin: 0 auto;
}

.ilparadisobrugola-theme .brand-list h2 {
    font-family: var(--pm2-font-heading);
    font-size: 2rem;
    font-weight: 700;
    color: var(--pm2-text-dark);
    text-align: center;
    margin-bottom: 2rem;
}

.ilparadisobrugola-theme .brand-list .brand-letter {
    font-family: var(--pm2-font-heading);
    font-size: 1.375rem;
    font-weight: 700;
    color: var(--pm2-primary);
    padding: 0.5rem 0;
    border-bottom: 2px solid var(--pm2-primary-light);
    margin: 1.5rem 0 0.75rem;
}

.ilparadisobrugola-theme .brand-list ul.bare-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 0.75rem;
}

.ilparadisobrugola-theme .brand-list ul.bare-list li {
    margin: 0;
    padding: 0;
}

.ilparadisobrugola-theme .brand-list ul.bare-list a {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem;
    border-radius: var(--pm2-radius);
    border: 1px solid var(--pm2-gray-100);
    text-decoration: none;
    color: var(--pm2-text-dark);
    transition: var(--pm2-transition-fast);
    font-weight: 500;
}

.ilparadisobrugola-theme .brand-list ul.bare-list a:hover {
    border-color: var(--pm2-primary-light);
    background: rgba(var(--pm2-cta-rgb), 0.05);
    text-decoration: none;
    box-shadow: var(--pm2-shadow-sm);
}

.ilparadisobrugola-theme .brand-list ul.bare-list .big img,
.ilparadisobrugola-theme .brand-list ul.bare-list .icon img {
    max-width: 140px;
    max-height: 80px;
    width: auto;
    height: auto;
    object-fit: contain;
    flex-shrink: 0;
}

.ilparadisobrugola-theme .brand-list ul.bare-list .count {
    display: none;
}

/* Brand letter navigation (top) */
.ilparadisobrugola-theme .brand-list .brand-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    justify-content: center;
    margin-bottom: 2rem;
}

.ilparadisobrugola-theme .brand-list .brand-nav a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: var(--pm2-radius-sm);
    font-weight: 600;
    font-size: 0.8125rem;
    color: var(--pm2-gray-600);
    background: var(--pm2-gray-50);
    text-decoration: none;
    transition: var(--pm2-transition-fast);
}

.ilparadisobrugola-theme .brand-list .brand-nav a:hover {
    background: var(--pm2-primary);
    color: white;
    text-decoration: none;
}

@media (max-width: 768px) {
    .ilparadisobrugola-theme .brand-list {
        padding: 0 1rem 1.5rem;
    }

    .ilparadisobrugola-theme .brand-list ul.bare-list {
        grid-template-columns: 1fr;
    }
}

/* Brands filters bar - harmonize with site */
.ilparadisobrugola-theme .brands-filters {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 1rem 2rem;
    margin-bottom: 1.5rem;
    background: var(--pm2-gray-50);
    border-radius: var(--pm2-radius-lg);
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
}

.ilparadisobrugola-theme .brands-filters .ambrands-search-wrapper,
.ilparadisobrugola-theme .brands-filters .search-wrapper,
.ilparadisobrugola-theme .brands-filters input[type="text"] {
    display: none !important;
}

.ilparadisobrugola-theme .brands-filters .letters,
.ilparadisobrugola-theme .brands-filters .letters-box {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.3rem;
    width: 100%;
}

.ilparadisobrugola-theme .brands-filters .letters a,
.ilparadisobrugola-theme .brands-filters .letters-box a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    height: 2rem;
    padding: 0 0.25rem;
    border-radius: var(--pm2-radius-sm);
    font-weight: 600;
    font-size: 0.8125rem;
    color: var(--pm2-gray-600);
    background: white;
    text-decoration: none;
    transition: var(--pm2-transition-fast);
    border: 1px solid var(--pm2-gray-200);
}

.ilparadisobrugola-theme .brands-filters .letters a:hover,
.ilparadisobrugola-theme .brands-filters .letters-box a:hover {
    background: var(--pm2-primary);
    color: white;
    border-color: var(--pm2-primary);
    text-decoration: none;
}

.ilparadisobrugola-theme .brands-filters .letters a.selected,
.ilparadisobrugola-theme .brands-filters .letters-box a.selected,
.ilparadisobrugola-theme .brands-filters .letters a.active,
.ilparadisobrugola-theme .brands-filters .letters-box a.active {
    background: var(--pm2-primary);
    color: white;
    border-color: var(--pm2-primary);
}

/* Il Paradiso della Brugola Brand Cards */
.pm2-brand-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 1.25rem 0.75rem;
    border-radius: 12px;
    background: white;
    border: 1px solid var(--pm2-gray-100, #f3f4f6);
    transition: all 0.2s ease;
    text-decoration: none;
    color: var(--pm2-gray-700, #374151);
}
.pm2-brand-card:hover {
    border-color: var(--pm2-primary);
    box-shadow: 0 4px 12px rgba(var(--pm2-cta-rgb), 0.18);
    transform: translateY(-2px);
}
.pm2-brand-card__image {
    width: 120px;
    height: 120px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0.75rem;
}
.pm2-brand-card__image img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}
.pm2-brand-card__placeholder {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: var(--pm2-gray-100, #f3f4f6);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    font-weight: 700;
    color: var(--pm2-gray-400, #9ca3af);
    font-family: var(--pm2-font-display, 'Roboto Condensed', 'Inter', sans-serif);
}
.pm2-brand-card__name {
    font-weight: 600;
    font-size: 0.9rem;
    line-height: 1.3;
}
.pm2-brand-card__count {
    font-weight: 400;
    color: var(--pm2-gray-400, #9ca3af);
    font-size: 0.8rem;
}

/* Override brand list grid for card layout */
.ilparadisobrugola-theme .brand-list ul.bare-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 1rem;
    list-style: none;
    padding: 0;
}
.ilparadisobrugola-theme .brand-list .brand-list_item {
    min-width: 0;
}

@media (max-width: 768px) {
    .ilparadisobrugola-theme .brand-list ul.bare-list {
        grid-template-columns: repeat(2, 1fr);
        gap: 0.75rem;
    }
    .pm2-brand-card {
        padding: 1rem 0.5rem;
    }
    .pm2-brand-card__image {
        width: 80px;
        height: 80px;
    }
}

/* ============================================
   Fix 29/30/32: Brand DETAIL page (.brand-page)
   ============================================ */
.ilparadisobrugola-theme .brand-page {
    padding: 0 2rem 3rem;
    max-width: none;
    margin: 0 auto;
}

/* Brand hero: image + description side-by-side */
.ilparadisobrugola-theme .brand-page .category-image {
    float: none;
    width: auto;
    padding: 0;
    margin: 0 0 2rem;
    border: none;
    display: flex;
    justify-content: center;
}
.ilparadisobrugola-theme .brand-page .category-image img {
    max-width: 280px;
    height: auto;
    border-radius: 16px;
    object-fit: contain;
    background: #fff;
    padding: 1rem;
    border: 1px solid var(--pm2-gray-200, #e5e7eb);
}

/* Brand page title */
.ilparadisobrugola-theme .brand-page .page-title h1 {
    font-family: var(--pm2-font-display, 'Roboto Condensed', 'Inter', sans-serif);
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--pm2-gray-900);
    text-align: center;
    margin: 0 0 1.5rem;
}

/* Brand description (.std) — extend theme styles beyond PDP */
.ilparadisobrugola-theme .brand-page .category-description.std {
    font-size: 0.9375rem;
    line-height: 1.7;
    color: var(--pm2-gray-700);
    margin-bottom: 2rem;
    max-width: 900px;
    margin-left: auto;
    margin-right: auto;
}
.ilparadisobrugola-theme .brand-page .category-description.std img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
}
.ilparadisobrugola-theme .brand-page .category-description.std ul,
.ilparadisobrugola-theme .brand-page .category-description.std ol {
    padding-left: 1.5rem;
}
.ilparadisobrugola-theme .brand-page .category-description.std h2,
.ilparadisobrugola-theme .brand-page .category-description.std h3,
.ilparadisobrugola-theme .brand-page .category-description.std h4 {
    font-family: var(--pm2-font-display, 'Roboto Condensed', 'Inter', sans-serif);
    font-weight: 600;
    color: var(--pm2-gray-900);
    margin: 1.5rem 0 0.75rem;
}

/* Ensure product list inside brand page uses the grid */
.ilparadisobrugola-theme .brand-page .category-products {
    clear: none;
}

/* Fix 32: Brand page mobile responsive */
@media (max-width: 768px) {
    .ilparadisobrugola-theme .brand-page {
        padding: 0 1rem 2rem;
    }
    .ilparadisobrugola-theme .brand-page .page-title h1 {
        font-size: 1.75rem;
    }
    .ilparadisobrugola-theme .brand-page .category-image img {
        max-width: 180px;
    }
}

.pm2-newsletter-section {
    background: linear-gradient(135deg, #FDF2F7 0%, #FFF5F0 50%, var(--pm2-success-soft) 100%);
    padding: 3rem 2rem;
    margin-top: var(--pm2-section-spacing);
}

.pm2-newsletter {
    max-width: 800px;
    margin: 0 auto;
    text-align: center;
}

.pm2-newsletter__title {
    font-family: var(--pm2-font-heading);
    font-size: 2rem;
    font-weight: 700;
    color: var(--pm2-text-dark);
    margin: 0 0 0.5rem;
}

.pm2-newsletter__subtitle {
    color: var(--pm2-gray-600);
    font-size: 1rem;
    margin: 0 0 1.5rem;
    line-height: 1.5;
}

.pm2-newsletter__form {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.pm2-newsletter__animals {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    align-items: center;
}

.pm2-newsletter__animals-label {
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--pm2-text-dark);
}

.pm2-newsletter__checkboxes {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: center;
}

.pm2-newsletter__checkbox {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.4rem 0.75rem;
    background: white;
    border: 1.5px solid var(--pm2-gray-200);
    border-radius: var(--pm2-radius-full);
    cursor: pointer;
    transition: var(--pm2-transition-fast);
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--pm2-gray-600);
    user-select: none;
}

.pm2-newsletter__checkbox:hover {
    border-color: var(--pm2-primary-light);
    color: var(--pm2-primary);
}

.pm2-newsletter__checkbox input[type="checkbox"] {
    display: none;
}

.pm2-newsletter__checkbox input[type="checkbox"]:checked + .pm2-newsletter__checkbox-icon + span,
.pm2-newsletter__checkbox input[type="checkbox"]:checked ~ span {
    color: var(--pm2-primary-dark);
}

.pm2-newsletter__checkbox:has(input:checked) {
    background: var(--pm2-primary-light);
    border-color: var(--pm2-primary);
    color: var(--pm2-primary-dark);
}

.pm2-newsletter__checkbox-icon {
    width: 16px;
    height: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.pm2-newsletter__checkbox-icon svg {
    width: 16px;
    height: 16px;
    display: block;
}

.pm2-newsletter__input-row {
    display: flex;
    align-items: center;
    gap: 0;
    max-width: 520px;
    margin: 0 auto;
    width: 100%;
}

.pm2-newsletter__input {
    flex: 1;
    padding: 0.875rem 1.25rem;
    border: 2px solid var(--pm2-gray-200);
    border-right: none;
    border-radius: var(--pm2-radius-full) 0 0 var(--pm2-radius-full);
    font-size: 0.9375rem;
    background: white;
    transition: var(--pm2-transition-fast);
    outline: none;
    box-sizing: border-box;
    height: 52px;
}

.pm2-newsletter__input:focus {
    border-color: var(--pm2-primary);
    box-shadow: 0 0 0 3px rgba(var(--pm2-cta-rgb), 0.18);
}

.pm2-newsletter__btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.875rem 1.75rem;
    background: var(--pm2-secondary);
    color: white;
    border: 2px solid var(--pm2-secondary);
    border-radius: 0 var(--pm2-radius-full) var(--pm2-radius-full) 0;
    font-weight: 600;
    font-size: 0.9375rem;
    cursor: pointer;
    transition: var(--pm2-transition-fast);
    white-space: nowrap;
    box-sizing: border-box;
    height: 52px;
}

.pm2-newsletter__btn:hover {
    background: var(--pm2-secondary-dark);
    border-color: var(--pm2-secondary-dark);
}

.pm2-newsletter__btn svg {
    flex-shrink: 0;
}

@media (max-width: 768px) {
    .pm2-newsletter-section {
        padding: 2rem 1rem;
    }

    .pm2-newsletter__title {
        font-size: 1.5rem;
    }

    .pm2-newsletter__subtitle {
        font-size: 0.875rem;
    }

    .pm2-newsletter__input-row {
        flex-direction: column;
        gap: 0.75rem;
    }

    .pm2-newsletter__input {
        border-right: 2px solid var(--pm2-gray-200);
        border-radius: var(--pm2-radius-full);
    }

    .pm2-newsletter__input:focus {
        border-color: var(--pm2-primary);
    }

    .pm2-newsletter__btn {
        border-radius: var(--pm2-radius-full);
        justify-content: center;
    }
}

/* ============================================
   FOOTER
   ============================================ */
.ilparadisobrugola-footer {
    background: var(--pm2-gray-900);
    color: var(--pm2-gray-300);
    margin-top: 0;
    padding: 3rem 0 1.5rem;
}

.ilparadisobrugola-footer__main {
    padding-bottom: 2rem;
    border-bottom: 1px solid var(--pm2-gray-700);
}

.ilparadisobrugola-footer__columns {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
}

@media (min-width: 768px) {
    .ilparadisobrugola-footer__columns {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {
    .ilparadisobrugola-footer__columns {
        grid-template-columns: repeat(5, 1fr);
    }
}

.ilparadisobrugola-footer__column {
    min-width: 0;
}

.ilparadisobrugola-footer__title {
    font-family: var(--pm2-font-display);
    font-size: 1.125rem;
    font-weight: 600;
    color: white;
    margin: 0 0 1rem;
}

.ilparadisobrugola-footer__content p {
    font-size: 0.875rem;
    line-height: 1.6;
    margin: 0 0 1rem;
}

.ilparadisobrugola-footer__social {
    display: flex;
    gap: 1rem;
}

.ilparadisobrugola-footer__social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background: var(--pm2-gray-800);
    border-radius: 50%;
    color: var(--pm2-gray-300);
    transition: var(--pm2-transition);
}

.ilparadisobrugola-footer__social-link:hover {
    background: var(--pm2-primary);
    color: white;
    transform: translateY(-2px);
}

.ilparadisobrugola-footer__links {
    list-style: none;
    margin: 0;
    padding: 0;
}

.ilparadisobrugola-footer__links li {
    margin-bottom: 0.5rem;
}

.ilparadisobrugola-footer__links a {
    color: var(--pm2-gray-300);
    text-decoration: none;
    font-size: 0.875rem;
    transition: var(--pm2-transition-fast);
}

.ilparadisobrugola-footer__links a:hover {
    color: var(--pm2-primary);
}

.ilparadisobrugola-footer__links--2col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 1rem;
}

.ilparadisobrugola-footer__bottom {
    padding-top: 1.5rem;
}

.ilparadisobrugola-footer__bottom-wrapper {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1rem;
}

.ilparadisobrugola-footer__copyright p {
    font-size: 0.875rem;
    margin: 0;
}

.ilparadisobrugola-footer__payments {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.ilparadisobrugola-footer__payments img {
    opacity: 0.7;
    transition: var(--pm2-transition-fast);
}

.ilparadisobrugola-footer__payments img:hover {
    opacity: 1;
}

/* ==================================
   INFO PAGES (CMS)
   ================================== */

.ilparadisobrugola-info-page {
    max-width: 800px;
    margin: 0 auto;
    padding: 2rem;
    line-height: 1.7;
    color: var(--pm2-gray-700);
}

.ilparadisobrugola-info-page h2 {
    font-family: var(--pm2-font-heading);
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--pm2-text-dark);
    margin: 2rem 0 1rem;
}

.ilparadisobrugola-info-page h2:first-child {
    margin-top: 0;
}

.ilparadisobrugola-info-page h3 {
    font-family: var(--pm2-font-heading);
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--pm2-text-dark);
    margin: 1.5rem 0 0.75rem;
}

.ilparadisobrugola-info-page h4 {
    font-weight: 600;
    color: var(--pm2-text-dark);
    margin: 1rem 0 0.5rem;
}

.ilparadisobrugola-info-page p {
    margin-bottom: 1rem;
}

.ilparadisobrugola-info-page ul,
.ilparadisobrugola-info-page ol {
    margin: 0 0 1rem 1.5rem;
    padding: 0;
}

.ilparadisobrugola-info-page li {
    margin-bottom: 0.5rem;
}

.ilparadisobrugola-info-page address {
    font-style: normal;
    background: var(--pm2-gray-50);
    padding: 1rem;
    border-radius: var(--pm2-radius);
    border: 1px solid var(--pm2-gray-200);
    margin: 0.5rem 0 1rem;
}

.ilparadisobrugola-info-table {
    width: 100%;
    border-collapse: collapse;
    margin: 1rem 0 1.5rem;
    border-radius: var(--pm2-radius);
    overflow: hidden;
    border: 1px solid var(--pm2-gray-200);
}

.ilparadisobrugola-info-table th {
    background: var(--pm2-primary);
    color: white;
    font-weight: 600;
    padding: 0.75rem 1rem;
    text-align: left;
    font-size: 0.875rem;
}

.ilparadisobrugola-info-table td {
    padding: 0.625rem 1rem;
    border-bottom: 1px solid var(--pm2-gray-100);
    font-size: 0.875rem;
}

.ilparadisobrugola-info-table tbody tr:nth-child(even) {
    background: var(--pm2-gray-50);
}

.ilparadisobrugola-info-table tbody tr:hover {
    background: rgba(var(--pm2-cta-rgb), 0.06);
}

@media (max-width: 768px) {
    .ilparadisobrugola-info-page {
        padding: 1rem;
    }

    .ilparadisobrugola-info-page h2 {
        font-size: 1.375rem;
    }

    .ilparadisobrugola-info-table {
        font-size: 0.8125rem;
    }
}

/* ============================================
   MENU - Stili per output Maho standard
   ============================================ */
.ilparadisobrugola-menu .nav-primary,
.ilparadisobrugola-menu ol,
.ilparadisobrugola-menu ul {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 0;
}

.ilparadisobrugola-menu li {
    position: relative;
}

.ilparadisobrugola-menu > .nav-primary > li > a,
.ilparadisobrugola-menu a.level-top {
    display: block;
    padding: 1rem 1.5rem;
    color: var(--pm2-gray-700);
    text-decoration: none;
    font-weight: 500;
    font-size: 0.9375rem;
    transition: var(--pm2-transition-fast);
    white-space: nowrap;
}

.ilparadisobrugola-menu > .nav-primary > li > a:hover,
.ilparadisobrugola-menu a.level-top:hover {
    color: var(--pm2-primary);
    background: var(--pm2-gray-50);
}

/* Submenu */
.ilparadisobrugola-menu li ul {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 200px;
    background: white;
    border: 1px solid var(--pm2-gray-200);
    border-top: 2px solid var(--pm2-primary);
    border-radius: 0 0 var(--pm2-radius) var(--pm2-radius);
    box-shadow: var(--pm2-shadow-lg);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px);
    transition: var(--pm2-transition);
    z-index: 100;
    flex-direction: column;
}

.ilparadisobrugola-menu li:hover > ul {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.ilparadisobrugola-menu li ul li {
    width: 100%;
}

.ilparadisobrugola-menu li ul a {
    display: block;
    padding: 0.75rem 1.5rem;
    color: var(--pm2-gray-700);
    text-decoration: none;
    font-size: 0.875rem;
    transition: var(--pm2-transition-fast);
    white-space: nowrap;
}

.ilparadisobrugola-menu li ul a:hover {
    background: var(--pm2-gray-50);
    color: var(--pm2-primary);
}

/* Submenu Level 3 (nested submenu) */
.ilparadisobrugola-menu__submenu-item--has-children {
    position: relative;
}

.ilparadisobrugola-menu__submenu-item--has-children > a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.ilparadisobrugola-menu__submenu-item--has-children .ilparadisobrugola-menu__arrow {
    width: 12px;
    height: 12px;
    flex-shrink: 0;
}

.ilparadisobrugola-menu__submenu--level3 {
    position: absolute;
    top: 0;
    left: 100%;
    margin-left: -1px;
}

.ilparadisobrugola-menu__submenu-item:hover > .ilparadisobrugola-menu__submenu--level3 {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* Mobile Menu - Accordion style with smooth animation */
@media (max-width: 1024px) {
    /* Submenu accordion style */
    .ilparadisobrugola-menu li ul {
        position: static;
        display: block;
        max-height: 0;
        overflow: hidden;
        opacity: 1;
        visibility: visible;
        transform: none;
        box-shadow: none;
        border: none;
        border-left: 2px solid var(--pm2-primary);
        margin-left: 1rem;
        margin-top: 0;
        transition: max-height 0.3s ease-in-out, margin-top 0.3s ease-in-out;
    }

    /* Smooth open animation when is-open class is added */
    .ilparadisobrugola-menu .is-open > ul {
        margin-top: 0.5rem;
    }

    /* Disable hover effects on mobile */
    .ilparadisobrugola-menu li:hover > ul {
        opacity: 1;
        visibility: visible;
        transform: none;
    }

    /* Level 3 submenu on mobile */
    .ilparadisobrugola-menu__submenu--level3 {
        position: static;
        margin-left: 1rem;
    }

    /* Smooth arrow rotation when open */
    .ilparadisobrugola-menu .is-open > a .ilparadisobrugola-menu__arrow {
        transform: rotate(180deg);
    }

    .ilparadisobrugola-menu__arrow {
        transition: transform 0.3s ease-in-out;
    }
}

/* ============================================
   MEGA-MENU IMPROVEMENTS
   ============================================ */
.ilparadisobrugola-menu__arrow {
    width: 14px;
    height: 14px;
    transition: var(--pm2-transition-fast);
    margin-left: 4px;
}

.ilparadisobrugola-menu__item--has-children:hover .ilparadisobrugola-menu__arrow {
    transform: rotate(180deg);
}

.ilparadisobrugola-megamenu {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 600px;
    background: white;
    border: 1px solid var(--pm2-gray-200);
    border-top: 3px solid var(--pm2-primary);
    border-radius: 0 0 var(--pm2-radius-lg) var(--pm2-radius-lg);
    box-shadow: var(--pm2-shadow-xl);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px);
    transition: all 0.3s ease;
    z-index: 1000;
    padding: 0;
}

.ilparadisobrugola-menu__item--has-children:hover .ilparadisobrugola-megamenu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.ilparadisobrugola-megamenu__inner {
    padding: 2rem;
}

.ilparadisobrugola-megamenu__columns {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 2rem;
    max-width: 1000px;
}

.ilparadisobrugola-megamenu__column {
    min-width: 0;
}

.ilparadisobrugola-megamenu__list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.ilparadisobrugola-megamenu__item {
    margin-bottom: 0.75rem;
}

.ilparadisobrugola-megamenu__link {
    display: block;
    color: var(--pm2-gray-900);
    text-decoration: none;
    font-weight: 600;
    font-size: 0.9375rem;
    transition: var(--pm2-transition-fast);
    padding: 0.25rem 0;
}

.ilparadisobrugola-megamenu__link:hover {
    color: var(--pm2-primary);
}

.ilparadisobrugola-megamenu__count {
    font-size: 0.75rem;
    color: var(--pm2-gray-500);
    font-weight: 400;
    margin-left: 0.25rem;
}

.ilparadisobrugola-megamenu__sublist {
    list-style: none;
    margin: 0.5rem 0 0 1rem;
    padding: 0;
}

.ilparadisobrugola-megamenu__subitem {
    margin-bottom: 0.5rem;
}

.ilparadisobrugola-megamenu__sublink {
    display: block;
    color: var(--pm2-gray-600);
    text-decoration: none;
    font-size: 0.875rem;
    transition: var(--pm2-transition-fast);
    padding: 0.25rem 0;
}

.ilparadisobrugola-megamenu__sublink:hover {
    color: var(--pm2-primary);
    padding-left: 4px;
}

/* ============================================
   CATEGORY PAGE
 vv

.ilparadisobrugola-category__banner {
    position: relative;
    height: 300px;
    margin-bottom: 3rem;
    border-radius: var(--pm2-radius-lg);
    overflow: hidden;
}

.ilparadisobrugola-category__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ilparadisobrugola-category__banner-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.6));
    display: flex;
    align-items: center;
    justify-content: center;
}

.ilparadisobrugola-category__banner-overlay .ilparadisobrugola-category__title {
    color: white;
    font-size: 3rem;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.5);
}

.ilparadisobrugola-category__header,
.ilparadisobrugola-category .page-title {
    margin-bottom: 2rem;
    text-align: center;
}

.ilparadisobrugola-category__title,
.ilparadisobrugola-category .page-title h1 {
    font-family: var(--pm2-font-display);
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--pm2-gray-900);
    margin: 0;
}

.ilparadisobrugola-category__description {
    margin-bottom: 2rem;
    padding: 1.5rem;
    background: var(--pm2-gray-50);
    border-radius: var(--pm2-radius);
    color: var(--pm2-gray-700);
    line-height: 1.6;
}

.ilparadisobrugola-category__toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 1.5rem;
    padding: 0.75rem 1rem;
    background: var(--pm2-gray-50);
    border-radius: var(--pm2-radius);
}

.ilparadisobrugola-category__toolbar--bottom {
    margin-top: 2rem;
    margin-bottom: 0;
}

/* Inner toolbar elements */
.ilparadisobrugola-category__toolbar .toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.ilparadisobrugola-category__toolbar .toolbar .sorter {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.ilparadisobrugola-category__toolbar .toolbar .sorter label {
    font-size: 0.8125rem;
    color: var(--pm2-gray-600);
    white-space: nowrap;
}

.ilparadisobrugola-category__toolbar .toolbar select {
    padding: 0.4rem 0.75rem;
    border: 1px solid var(--pm2-gray-200);
    border-radius: var(--pm2-radius-sm);
    font-size: 0.8125rem;
    background: white;
    color: var(--pm2-gray-700);
    cursor: pointer;
}

.ilparadisobrugola-category__toolbar .toolbar .sort-by-switcher {
    display: inline-flex;
    align-items: center;
    padding: 0.4rem;
    color: var(--pm2-gray-500);
    cursor: pointer;
    transition: var(--pm2-transition-fast);
}

.ilparadisobrugola-category__toolbar .toolbar .sort-by-switcher:hover {
    color: var(--pm2-primary);
}

.ilparadisobrugola-category__toolbar .pager {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.ilparadisobrugola-category__toolbar .pager .count-container {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.ilparadisobrugola-category__toolbar .toolbar .limiter {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.ilparadisobrugola-category__toolbar .toolbar .limiter label {
    font-size: 0.8125rem;
    color: var(--pm2-gray-600);
    white-space: nowrap;
}

.ilparadisobrugola-category__toolbar .amount {
    font-size: 0.8125rem;
    color: var(--pm2-gray-500);
}

.ilparadisobrugola-category__toolbar .toolbar .view-mode {
    display: flex;
    gap: 0.25rem;
}

@media (max-width: 768px) {
    .ilparadisobrugola-category__toolbar {
        padding: 0.5rem 0.75rem;
        gap: 0.5rem;
        flex-direction: column;
        align-items: stretch;
        margin-bottom: 1rem;
    }

    /* Sort + limiter row: single compact flex row */
    .ilparadisobrugola-category__toolbar .toolbar {
        flex-direction: row;
        align-items: center;
        flex-wrap: nowrap;
        gap: 0.375rem;
        width: 100%;
    }

    .ilparadisobrugola-category__toolbar .toolbar .sorter {
        display: flex;
        align-items: center;
        gap: 0.375rem;
        flex: 1;
        min-width: 0;
        flex-wrap: nowrap;
    }

    .ilparadisobrugola-category__toolbar .toolbar .sort-by {
        display: flex;
        align-items: center;
        gap: 0.25rem;
        flex: 1;
        min-width: 0;
    }

    .ilparadisobrugola-category__toolbar .toolbar .sort-by label {
        display: none;
    }

    .ilparadisobrugola-category__toolbar .toolbar .sort-by select {
        flex: 1;
        min-width: 0;
        width: 0; /* force flex to control width, not intrinsic select content */
        font-size: 0.75rem;
        padding: 0.35rem 0.5rem;
    }

    .ilparadisobrugola-category__toolbar .toolbar .limiter {
        display: flex;
        align-items: center;
        gap: 0.25rem;
        flex-shrink: 0;
    }

    .ilparadisobrugola-category__toolbar .toolbar .limiter label {
        display: none;
    }

    .ilparadisobrugola-category__toolbar .toolbar .limiter select {
        font-size: 0.75rem;
        padding: 0.35rem 0.5rem;
        max-width: 4.5rem;
    }

    .ilparadisobrugola-category__toolbar .toolbar .view-mode {
        display: none;
    }

    /* Pager: inline item in the toolbar flex row */
    .ilparadisobrugola-category__toolbar .pager {
        display: flex;
        align-items: center;
        gap: 0.375rem;
        flex-shrink: 0;
    }

    .ilparadisobrugola-category__toolbar--top .pager .pages {
        display: none;
    }

    .ilparadisobrugola-category__toolbar .pager .count-container {
        flex-shrink: 0;
    }

    .ilparadisobrugola-category__toolbar .pager .amount {
        font-size: 0.75rem;
    }

    .ilparadisobrugola-category__toolbar .pager .pages ol {
        gap: 0.25rem;
        flex-wrap: wrap;
    }

    /* Very small screens: allow toolbar row to wrap */
    @media (max-width: 400px) {
        .ilparadisobrugola-category__toolbar .toolbar {
            flex-wrap: wrap;
        }
        .ilparadisobrugola-category__toolbar .toolbar .sorter {
            flex: 1 1 100%;
        }
        .ilparadisobrugola-category__toolbar .toolbar .sort-by select {
            width: 100%;
        }
        .ilparadisobrugola-category__toolbar .toolbar .limiter {
            flex: 0 0 auto;
        }
        .ilparadisobrugola-category__toolbar .pager {
            width: 100%;
            justify-content: flex-end;
        }
    }
}

.ilparadisobrugola-products-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.5rem;
    margin-bottom: 2rem;
}

/* ── List view ── */
.ilparadisobrugola-products-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-bottom: 2rem;
}

.ilparadisobrugola-product-list-item {
    display: flex;
    gap: 1.25rem;
    background: #fff;
    border: 1px solid var(--pm2-gray-100);
    border-radius: var(--pm2-radius);
    overflow: hidden;
    transition: var(--pm2-transition-fast);
}

.ilparadisobrugola-product-list-item:hover {
    border-color: var(--pm2-gray-200);
    box-shadow: var(--pm2-shadow);
}

.ilparadisobrugola-product-list-item__image-wrap {
    flex-shrink: 0;
    width: 160px;
    aspect-ratio: 1;
    background: var(--pm2-gray-50);
    display: block;
    position: relative;
    overflow: hidden;
}

.ilparadisobrugola-product-list-item__image-link {
    display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}

.ilparadisobrugola-product-list-item__image {
    width: 100%;
    height: 100%;
    object-fit: contain;
    mix-blend-mode: multiply;
    padding: 0.5rem;
}

.ilparadisobrugola-product-list-item__body {
    flex: 1;
    min-width: 0;
    padding: 1rem 1rem 1rem 0;
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}

.ilparadisobrugola-product-list-item__title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--pm2-gray-900);
    text-decoration: none;
    line-height: 1.4;
}

.ilparadisobrugola-product-list-item__title:hover {
    color: var(--pm2-primary);
}

.ilparadisobrugola-product-list-item__rating {
    min-height: 0;
}

.ilparadisobrugola-product-list-item__desc {
    font-size: 0.875rem;
    color: var(--pm2-gray-500);
    line-height: 1.5;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.ilparadisobrugola-product-list-item__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
}

.ilparadisobrugola-product-list-item__footer {
    margin-top: auto;
    padding-top: 0.5rem;
    display: flex;
    align-items: center;
    gap: 1.5rem;
    flex-wrap: wrap;
}

.ilparadisobrugola-product-list-item__price {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.ilparadisobrugola-product-list-item__cta {
    margin-left: auto;
}

.ilparadisobrugola-product-list-item__cta .ilparadisobrugola-product-card__add-to-cart {
    width: auto;
    padding: 0.5rem 1.25rem;
    white-space: nowrap;
}

.ilparadisobrugola-product-list-item__cta .pm2-stockalert {
    margin: 0;
}

.ilparadisobrugola-product-list-item__cta .pm2-stockalert__cta-btn {
    width: auto;
    padding: 0.5rem 1.25rem;
    white-space: nowrap;
    font-size: 0.875rem;
}

@media (max-width: 600px) {
    .ilparadisobrugola-product-list-item {
        gap: 0.75rem;
    }
    .ilparadisobrugola-product-list-item__image-wrap {
        width: 100px;
    }
    .ilparadisobrugola-product-list-item__body {
        padding: 0.75rem 0.75rem 0.75rem 0;
    }
    .ilparadisobrugola-product-list-item__footer {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5rem;
    }
    .ilparadisobrugola-product-list-item__cta {
        margin-left: 0;
        width: 100%;
    }
    .ilparadisobrugola-product-list-item__cta .ilparadisobrugola-product-card__add-to-cart,
    .ilparadisobrugola-product-list-item__cta .pm2-stockalert__cta-btn {
        width: 100%;
    }
}

/* When sidebar is present, use 3 columns (will bump to 4 above 1200px) */
.ilparadisobrugola-theme .col2-left-layout .ilparadisobrugola-products-grid {
    grid-template-columns: repeat(3, 1fr);
}

@media (min-width: 1201px) {
    .ilparadisobrugola-theme .col2-left-layout .ilparadisobrugola-products-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

@media (max-width: 1200px) {
    .ilparadisobrugola-products-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 1.25rem;
    }
}

@media (max-width: 768px) {
    .ilparadisobrugola-products-grid,
    .ilparadisobrugola-theme .col2-left-layout .ilparadisobrugola-products-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 0.75rem;
    }
}

/* Fix 7: Pagination styling (toolbar .pages) */
.ilparadisobrugola-theme .pages {
    text-align: center;
    padding: 1.5rem 0;
}
.ilparadisobrugola-theme .pages ol {
    display: inline-flex;
    gap: 4px;
    list-style: none;
    padding: 0;
    margin: 0;
}
.ilparadisobrugola-theme .pages li {
    display: inline-flex;
}
.ilparadisobrugola-theme .pages a,
.ilparadisobrugola-theme .pages .current {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 12px;
    border-radius: var(--pm2-radius);
    font-size: 0.875rem;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.15s ease, color 0.15s ease;
}
.ilparadisobrugola-theme .pages a {
    color: var(--pm2-gray-700);
    background: var(--pm2-gray-100);
}
.ilparadisobrugola-theme .pages a:hover {
    background: var(--pm2-primary);
    color: #fff;
}
.ilparadisobrugola-theme .pages .current {
    background: var(--pm2-primary);
    color: #fff;
    cursor: default;
}
.ilparadisobrugola-theme .pages .next,
.ilparadisobrugola-theme .pages .previous {
    font-size: 0.8125rem;
}

/* Fix 8: Hide duplicate base-theme filter trigger (we use .pm2-filter-toggle) */
.ilparadisobrugola-theme .toolbar .offcanvas-trigger.filters-trigger {
    display: none !important;
}

/* Fix 9: Override base theme that hides sidebar when there is no .offcanvas-trigger.
   Il Paradiso della Brugola uses its own pm2-filter-toggle inside the sidebar, so the aside must
   always be visible — on mobile it only shows the sticky toggle button (the drawer
   itself is position:fixed off-screen). */
.ilparadisobrugola-theme .col-left-first,
.ilparadisobrugola-theme .col2-left-layout .col-left.sidebar {
    display: block !important;
}

/* Fix 12: Active filter count badge on mobile toggle */
.pm2-filter-toggle__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    border-radius: 99px;
    background: rgba(255, 255, 255, 0.3);
    color: #fff;
    font-size: 0.75rem;
    font-weight: 700;
    line-height: 1;
}

.ilparadisobrugola-note-msg {
    text-align: center;
    padding: 3rem 1.5rem;
    color: var(--pm2-gray-500);
    font-size: 1.125rem;
}

/* ============================================
   PRODUCT DETAIL PAGE (PDP) — Arcaplanet-inspired
   ============================================ */
.pm2-pdp {
    max-width: none;
    width: 100%;
    margin: 0 auto;
    padding: 1.5rem 2rem 3rem;
}

/* ── Top: Gallery + Info + Brand sidebar 3-column ── */
.pm2-pdp__top {
    display: grid;
    grid-template-columns: 40% 1fr;
    gap: 2rem;
    align-items: start;
    margin-bottom: 3rem;
}
/* When brand sidebar exists, use 3 columns */
.pm2-pdp__top:has(.pm2-pdp__brand-sidebar) {
    grid-template-columns: 40% 1fr auto;
}
@media (max-width: 1024px) {
    .pm2-pdp__top,
    .pm2-pdp__top:has(.pm2-pdp__brand-sidebar) {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
}

/* ── Brand sidebar (desktop only) ── */
.pm2-pdp__brand-sidebar {
    position: sticky;
    top: 6rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-top: 1rem;
}
.pm2-pdp__brand-sidebar-link {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 1rem;
    background: var(--pm2-gray-50);
    border: 1px solid var(--pm2-gray-200);
    border-radius: var(--pm2-radius-lg, 12px);
    transition: var(--pm2-transition-fast);
    text-decoration: none;
    min-width: 80px;
}
.pm2-pdp__brand-sidebar-link:hover {
    border-color: var(--pm2-primary);
    box-shadow: 0 2px 8px rgba(var(--pm2-cta-rgb), 0.14);
}
.pm2-pdp__brand-sidebar-img {
    max-width: 80px;
    max-height: 80px;
    object-fit: contain;
}
.pm2-pdp__brand-sidebar-text {
    font-weight: 700;
    font-size: 0.75rem;
    color: var(--pm2-gray-700);
    text-transform: uppercase;
    letter-spacing: 0.3px;
    text-align: center;
}
.pm2-pdp__brand-sidebar-name {
    font-weight: 600;
    font-size: 0.75rem;
    color: var(--pm2-gray-600);
    text-align: center;
    line-height: 1.3;
}
@media (max-width: 1024px) {
    .pm2-pdp__brand-sidebar {
        display: none;
    }
}

/* ── Brand inline badge (visible on mobile, hidden on desktop when sidebar exists) ── */
.pm2-pdp__brand--inline {
    margin-bottom: 0.75rem;
}
@media (min-width: 1025px) {
    .pm2-pdp__top:has(.pm2-pdp__brand-sidebar) .pm2-pdp__brand--inline {
        display: none;
    }
}

/* ── Gallery ── */
.pm2-pdp__gallery {
    position: sticky;
    top: 1rem;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
}

.pm2-pdp__image-wrap {
    position: relative;
}

.pm2-pdp__wishlist {
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: white;
    border-radius: 50%;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    color: var(--pm2-gray-500);
    transition: var(--pm2-transition-fast);
    cursor: pointer;
    text-decoration: none;
}

.pm2-pdp__wishlist:visited,
.pm2-pdp__wishlist:link {
    color: var(--pm2-primary);
}

.pm2-pdp__wishlist:hover {
    color: var(--pm2-accent, #e74c3c);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
}

.pm2-pdp__wishlist svg {
    flex-shrink: 0;
}
.pm2-pdp__gallery .product-image {
    position: relative;
    border-radius: var(--pm2-radius-lg, 12px);
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--pm2-gray-200, #e5e7eb);
    max-width: 100%;
}
.pm2-pdp__gallery .product-image-gallery {
    position: relative;
    overflow: hidden;
    cursor: zoom-in;
    aspect-ratio: 1 / 1;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
}
.pm2-pdp__gallery .product-image-gallery .gallery-image {
    display: none;
    width: 100%;
    max-width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: var(--pm2-radius-lg, 12px);
    padding: 1rem;
}
.pm2-pdp__gallery .product-image-gallery .gallery-image.visible {
    display: block;
}
.pm2-pdp__gallery .more-views {
    margin-top: 0.75rem;
}
.pm2-pdp__gallery .product-image-thumbs {
    display: flex;
    gap: 0.5rem;
    list-style: none;
    padding: 0;
    margin: 0;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    max-width: 100%;
    box-sizing: border-box;
}
.pm2-pdp__gallery .product-image-thumbs::-webkit-scrollbar {
    display: none;
}
.pm2-pdp__gallery .product-image-thumbs li {
    flex: 0 0 auto;
    scroll-snap-align: start;
}
.pm2-pdp__gallery .product-image-thumbs a {
    display: block;
    width: 72px;
    height: 72px;
    border-radius: 8px;
    overflow: hidden;
    border: 2px solid var(--pm2-gray-200, #e5e7eb);
    transition: border-color 0.2s;
    background: #fff;
}
.pm2-pdp__gallery .product-image-thumbs a:hover,
.pm2-pdp__gallery .product-image-thumbs a.active {
    border-color: var(--pm2-primary);
}
.pm2-pdp__gallery .product-image-thumbs img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
    padding: 2px;
}
@media (max-width: 1024px) {
    .pm2-pdp__gallery {
        position: static;
    }
    .pm2-pdp__gallery .product-image,
    .pm2-pdp__gallery .product-image-gallery,
    .pm2-pdp__gallery .product-image-gallery .gallery-image {
        max-width: 100%;
    }
    .pm2-pdp {
        overflow-x: hidden;
        padding: 1rem 0;
    }
}

@media (max-width: 768px) {
    .ilparadisobrugola-theme .col1-layout .col-main {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .ilparadisobrugola-category {
    padding: 0;
}
}

/* ── Info column ── */
.pm2-pdp__info {
    display: flex;
    flex-direction: column;
    gap: 0;
    overflow: hidden;
    min-width: 0;
}

/* Brand badge (inline pill) */\n.pm2-pdp__brand {\n    margin-bottom: 0.75rem;\n}
.pm2-pdp__brand-link {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.35rem 0.75rem;
    background: var(--pm2-gray-100, #f3f4f6);
    border-radius: 999px;
    text-decoration: none;
    transition: background 0.2s;
}
.pm2-pdp__brand-link:hover {
    background: var(--pm2-gray-200, #e5e7eb);
}
.pm2-pdp__brand-img {
    height: 24px;
    width: auto;
    max-width: 100px;
    object-fit: contain;
}
.pm2-pdp__brand-text {
    font-weight: 600;
    font-size: 0.8125rem;
    color: var(--pm2-gray-700, #374151);
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

/* Title */
.pm2-pdp__title {
    font-family: var(--pm2-font-display, 'Roboto Condensed', 'Inter', sans-serif);
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--pm2-gray-900, #111827);
    line-height: 1.25;
    margin: 0 0 0.75rem;
}
@media (min-width: 768px) {
    .pm2-pdp__title {
        font-size: 2rem;
    }
}

/* Meta row: reviews + SKU */
.pm2-pdp__meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: 1rem;
}
.pm2-pdp__reviews-summary .rating-box {
    display: inline-flex;
}
.pm2-pdp__sku {
    font-size: 0.8125rem;
    color: var(--pm2-gray-400, #9ca3af);
}

/* Price block */
.pm2-pdp__price {
    margin-bottom: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--pm2-gray-200, #e5e7eb);
}
.pm2-pdp__price-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}
.pm2-pdp__price-amount {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.75rem;
}
.pm2-pdp__price .price-box {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.75rem;
}
.pm2-pdp__price .regular-price .price,
.pm2-pdp__price .price-box .price {
    font-size: 1.75rem;
    font-weight: 800;
    color: var(--pm2-primary);
}
.pm2-pdp__price .old-price .price {
    font-size: 1.125rem;
    font-weight: 500;
    color: var(--pm2-gray-400, #9ca3af);
    text-decoration: line-through;
}
.pm2-pdp__price .special-price .price {
    font-size: 1.75rem;
    font-weight: 800;
    color: var(--pm2-primary);
}
.pm2-pdp__price .special-price .price-label,
.pm2-pdp__price .old-price .price-label {
    display: none;
}
.pm2-pdp__price .price-from .price,
.pm2-pdp__price .price-to .price {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--pm2-primary);
}
/* Tier prices inside PDP */
.pm2-pdp__price .tier-prices {
    margin-top: 0.5rem;
}
.pm2-pdp__price .tier-prices li {
    font-size: 0.875rem;
    color: var(--pm2-gray-600, #4b5563);
}
.pm2-pdp__price .tier-prices .benefit {
    color: var(--pm2-secondary);
    font-weight: 600;
}

/* Short description */
.pm2-pdp__short-desc {
    color: var(--pm2-gray-600, #4b5563);
    font-size: 0.9375rem;
    line-height: 1.65;
    margin-bottom: 1rem;
}

/* Read more / show less button */
.pm2-pdp__read-more {
    display: inline-block;
    background: none;
    border: none;
    color: var(--pm2-primary);
    font-weight: 600;
    font-size: 0.875rem;
    cursor: pointer;
    padding: 0.25rem 0;
    margin-top: 0.25rem;
    transition: var(--pm2-transition-fast);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.pm2-pdp__read-more:hover {
    color: var(--pm2-primary-dark);
}

/* Type-specific options (configurable selects, grouped table, bundle) */
.pm2-pdp__type-options {
    margin-bottom: 0.5rem;
}
/* Configurable: style the dropdowns */
.pm2-pdp__type-options .super-attribute-select {
    width: 100%;
    height: auto;
    min-height: 44px;
    line-height: 1.5;
    padding: 0.625rem 2.5rem 0.625rem 1rem;
    font-size: 0.9375rem;
    border: 2px solid var(--pm2-gray-300, #d1d5db);
    border-radius: 8px;
    background-color: #fff;
    color: var(--pm2-text, #1a1a1a);
    box-sizing: border-box;
    cursor: pointer;
    transition: border-color 0.2s;
    appearance: none;
}
.pm2-pdp__type-options .super-attribute-select:focus {
    border-color: var(--pm2-primary);
    outline: none;
}
.pm2-pdp__type-options dl {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.pm2-pdp__type-options dt {
    font-weight: 600;
    font-size: 0.9375rem;
    color: var(--pm2-gray-700, #374151);
    margin-bottom: 0.25rem;
}
.pm2-pdp__type-options dd {
    margin: 0;
}
/* Grouped product table */
.pm2-pdp__type-options .grouped-items-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0 0.5rem;
}
.pm2-pdp__type-options .grouped-items-table td {
    padding: 0.5rem 0.75rem;
    background: var(--pm2-gray-50, #f9fafb);
    border-radius: 8px;
}
.pm2-pdp__type-options .grouped-items-table .qty input {
    width: 60px;
    padding: 0.5rem;
    text-align: center;
    border: 2px solid var(--pm2-gray-300, #d1d5db);
    border-radius: 8px;
    font-size: 0.9375rem;
}
/* Bundle options */
.pm2-pdp__type-options .bundle-options-container {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.pm2-pdp__type-options .bundle-option-select {
    width: 100%;
    padding: 0.625rem 1rem;
    border: 2px solid var(--pm2-gray-300, #d1d5db);
    border-radius: 8px;
    font-size: 0.9375rem;
}

/* Custom options wrapper */
.pm2-pdp__custom-options {
    margin-bottom: 0.5rem;
}
.pm2-pdp__custom-options .product-options {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.pm2-pdp__custom-options .product-options dt {
    font-weight: 600;
    font-size: 0.9375rem;
}
.pm2-pdp__custom-options .product-options dd {
    margin: 0;
}
.pm2-pdp__custom-options .product-options input[type="text"],
.pm2-pdp__custom-options .product-options select,
.pm2-pdp__custom-options .product-options textarea {
    width: 100%;
    padding: 0.625rem 1rem;
    border: 2px solid var(--pm2-gray-300, #d1d5db);
    border-radius: 8px;
    font-size: 0.9375rem;
}

/* Add-to-Cart area */
.pm2-pdp__cart-actions {
    margin-bottom: 0.75rem;
}
.pm2-pdp__cart-actions .price-box {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}
.pm2-pdp__cart-actions .price-box .price {
    font-size: 1.5rem;
    font-weight: 800;
    color: var(--pm2-primary);
}
.pm2-pdp__cart-actions .price-box .old-price .price {
    font-size: 1rem;
    font-weight: 500;
    color: var(--pm2-gray-400, #9ca3af);
    text-decoration: line-through;
}
.pm2-pdp__cart-actions .add-to-cart {
    display: flex;
    align-items: stretch;
    gap: 0.75rem;
}
.pm2-pdp__cart-actions .qty-wrapper {
    display: flex;
    align-items: center;
    gap: 0;
    border: 2px solid var(--pm2-gray-300, #d1d5db);
    border-radius: 10px;
    overflow: hidden;
    background: #fff;
    flex-shrink: 0;
}
.pm2-pdp__cart-actions .qty-wrapper label {
    display: none;
}
.pm2-pdp__cart-actions .qty-wrapper input.qty {
    width: 52px;
    text-align: center;
    font-size: 1rem;
    font-weight: 600;
    border: none;
    outline: none;
    padding: 0.75rem 0;
    -moz-appearance: textfield;
    background: transparent;
}
.pm2-pdp__cart-actions .qty-wrapper input.qty::-webkit-inner-spin-button,
.pm2-pdp__cart-actions .qty-wrapper input.qty::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Fix 15: Qty stepper +/- buttons */
.pm2-pdp__cart-actions .qty-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 100%;
    min-height: 44px;
    border: none;
    background: transparent;
    cursor: pointer;
    color: var(--pm2-gray-600);
    transition: background 0.15s, color 0.15s;
    flex-shrink: 0;
    padding: 0;
}
.pm2-pdp__cart-actions .qty-btn:hover {
    background: var(--pm2-gray-100);
    color: var(--pm2-primary);
}
.pm2-pdp__cart-actions .qty-btn svg {
    pointer-events: none;
}

.pm2-pdp__cart-actions .add-to-cart-buttons {
    flex: 1;
    display: flex;
}
.pm2-pdp__cart-actions .btn-cart {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.95rem 1.75rem;
    background: var(--pm2-cta);
    color: #fff;
    font-family: var(--pm2-font-display, 'Roboto Condensed', 'Inter', sans-serif);
    font-size: 1.0625rem;
    font-weight: 700;
    border: none;
    border-radius: var(--pm2-radius-lg);
    cursor: pointer;
    transition: background 0.2s, transform 0.15s, box-shadow 0.2s;
    text-transform: none;
    letter-spacing: 0.01em;
    box-shadow: 0 4px 12px rgba(var(--pm2-cta-rgb), 0.32);
}
.pm2-pdp__cart-actions .btn-cart:hover {
    background: var(--pm2-cta-dark);
    transform: translateY(-1px);
    box-shadow: 0 8px 22px rgba(var(--pm2-cta-rgb), 0.45);
}
.pm2-pdp__cart-actions .btn-cart:active {
    transform: translateY(0);
    box-shadow: 0 2px 6px rgba(var(--pm2-cta-rgb), 0.25);
}

/* Wishlist / Compare links */
.pm2-pdp__addto {
    margin-bottom: 0.75rem;
}
.pm2-pdp__addto .add-to-links {
    display: flex;
    gap: 1rem;
    list-style: none;
    padding: 0;
    margin: 0;
}
.pm2-pdp__addto .add-to-links a {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.875rem;
    color: var(--pm2-gray-500, #6b7280);
    text-decoration: none;
    transition: color 0.2s;
}
.pm2-pdp__addto .add-to-links a:hover {
    color: var(--pm2-primary);
}
.pm2-pdp__addto .add-to-links svg {
    width: 18px;
    height: 18px;
}

/* Review stars widget (below add-to-cart) */
.pm2-pdp__review-widget {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    padding: 0.75rem 0;
    margin-top: 0.25rem;
    border-top: 1px solid var(--pm2-gray-100);
}

.pm2-pdp__review-stars {
    display: flex;
    align-items: center;
    gap: 2px;
}

.pm2-pdp__review-link {
    font-size: 0.875rem;
    color: var(--pm2-primary);
    text-decoration: none;
    font-weight: 500;
}

.pm2-pdp__review-link:hover {
    text-decoration: underline;
    color: var(--pm2-primary-dark);
}

/* Availability badge */
.pm2-pdp__availability {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.4rem 0.75rem;
    border-radius: 999px;
    font-size: 0.8125rem;
    font-weight: 600;
    width: fit-content;
    white-space: nowrap;
    flex-shrink: 0;
    margin-left: auto;
}
.pm2-pdp__availability svg { width: 16px; height: 16px; }
.pm2-pdp__availability--in {
    background: var(--pm2-success-soft);
    color: #059669;
}
.pm2-pdp__availability--in svg { color: #059669; }
.pm2-pdp__availability--in svg:nth-of-type(2),
.pm2-pdp__availability--in svg:nth-of-type(3) { display: none; }
.pm2-pdp__availability--out {
    background: var(--pm2-gray-100, #f3f4f6);
    color: var(--pm2-gray-500, #6b7280);
}
.pm2-pdp__availability--out svg { color: var(--pm2-gray-400); }
.pm2-pdp__availability--out svg:nth-of-type(1),
.pm2-pdp__availability--out svg:nth-of-type(3) { display: none; }
.pm2-pdp__availability--backorder {
    background: var(--pm2-warning-soft);
    color: var(--pm2-warning-dark);
}
.pm2-pdp__availability--backorder svg { color: var(--pm2-warning-dark); }
.pm2-pdp__availability--backorder svg:nth-of-type(1),
.pm2-pdp__availability--backorder svg:nth-of-type(2) { display: none; }

/* Shipping info under price */
.pm2-pdp__shipping-info {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin-top: 0.5rem;
    font-size: 0.8125rem;
    font-weight: 500;
}
.pm2-pdp__shipping-info--free {
    color: #059669;
}
.pm2-pdp__shipping-info svg {
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    color: var(--pm2-gray-400);
}

/* Fix 16: Price alert link styling */
.pm2-pdp__info .alert-price,
.pm2-pdp__info .link-price-alert {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.5rem 1rem;
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--pm2-primary);
    background: var(--pm2-gray-50, #f9fafb);
    border: 1px solid var(--pm2-gray-200);
    border-radius: var(--pm2-radius-sm);
    text-decoration: none;
    transition: var(--pm2-transition-fast);
    margin-bottom: 0.75rem;
}
.pm2-pdp__info .alert-price:hover,
.pm2-pdp__info .link-price-alert:hover {
    background: var(--pm2-primary);
    color: #fff;
    border-color: var(--pm2-primary);
    text-decoration: none;
}

/* Fix 19: Normalize PDP info column spacing */
.pm2-pdp__info {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.pm2-pdp__info > * {
    margin-bottom: 0;
}

/* Fix 21: Hide thumbnails row when only one image */
.product-image-thumbs:has(li:only-child) {
    display: none;
}

/* Il Paradiso della Brugola swatch styling overrides */
.pm2-pdp__options-wrap .swatch-link {
    border: 2px solid var(--pm2-gray-300, #d1d5db);
    border-radius: 8px;
    transition: border-color 0.15s, background 0.15s;
    position: relative;
    box-sizing: border-box;
}
.pm2-pdp__options-wrap .swatch-link:hover {
    border-color: var(--pm2-primary);
    text-decoration: none;
}
.pm2-pdp__options-wrap .configurable-swatch-list li.selected .swatch-link,
.pm2-pdp__options-wrap .swatch-link.selected {
    border-color: var(--pm2-primary);
    background: color-mix(in srgb, var(--pm2-primary) 8%, transparent);
}
.pm2-pdp__options-wrap .swatch-label {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--pm2-gray-800, #1f2937);
    border: none;
    white-space: nowrap;
}
.pm2-pdp__options-wrap .configurable-swatch-list li.selected .swatch-label {
    color: var(--pm2-primary);
    font-weight: 600;
}
.pm2-pdp__options-wrap .configurable-swatch-list li.not-available .swatch-link {
    border-color: var(--pm2-gray-200, #e5e7eb);
    opacity: 0.5;
}
.pm2-pdp__options-wrap .configurable-swatch-list {
    padding: 0;
    gap: 0.5rem;
}

/* Promises strip */
.pm2-pdp__promises {
    display: flex;
    flex-direction: column;
    gap: 0;
    border: 1px solid var(--pm2-gray-200, #e5e7eb);
    border-radius: 12px;
    overflow: hidden;
}
.pm2-pdp__promise {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--pm2-gray-200, #e5e7eb);
}
.pm2-pdp__promise:last-child {
    border-bottom: none;
}
.pm2-pdp__promise svg {
    flex-shrink: 0;
    color: var(--pm2-secondary);
}
.pm2-pdp__promise div {
    display: flex;
    flex-direction: column;
}
.pm2-pdp__promise strong {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--pm2-gray-800, #1f2937);
}
.pm2-pdp__promise span {
    font-size: 0.75rem;
    color: var(--pm2-gray-500, #6b7280);
}

/* Barcode / EAN */
.pm2-pdp__barcode {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 1rem;
    font-size: 0.8125rem;
    color: var(--pm2-gray-500, #6b7280);
}
.pm2-pdp__barcode svg {
    flex-shrink: 0;
    color: var(--pm2-gray-400, #9ca3af);
}
.pm2-pdp__barcode-label {
    font-weight: 600;
    color: var(--pm2-gray-600, #4b5563);
}
.pm2-pdp__barcode-value {
    font-family: 'SF Mono', 'Fira Code', 'Cascadia Code', monospace;
    letter-spacing: 0.05em;
}

/* ── Details Accordion ── */
.pm2-pdp__details {
    max-width: none;
    width: 100%;
    margin: 0 auto 3rem;
    border: 1px solid var(--pm2-gray-200, #e5e7eb);
    border-radius: 12px;
    overflow: hidden;
}
.pm2-pdp__accordion-item {
    border-bottom: 1px solid var(--pm2-gray-200, #e5e7eb);
}
.pm2-pdp__accordion-item:last-child {
    border-bottom: none;
}
.pm2-pdp__accordion-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 1rem 1.25rem;
    background: none;
    border: none;
    cursor: pointer;
    font-family: var(--pm2-font-display, 'Roboto Condensed', 'Inter', sans-serif);
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--pm2-gray-900, #111827);
    transition: background 0.2s;
}
.pm2-pdp__accordion-header:hover {
    background: var(--pm2-gray-50, #f9fafb);
}
.pm2-pdp__accordion-header svg {
    color: var(--pm2-gray-400, #9ca3af);
    transition: transform 0.25s;
    flex-shrink: 0;
}
.pm2-pdp__accordion-item--open .pm2-pdp__accordion-header svg {
    transform: rotate(180deg);
}
.pm2-pdp__accordion-body {
    padding: 0 1.25rem 1.25rem;
}
.pm2-pdp__accordion-body .std {
    font-size: 0.9375rem;
    line-height: 1.7;
    color: var(--pm2-gray-700, #374151);
}
.pm2-pdp__accordion-body .std img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
}
.pm2-pdp__accordion-body .std ul,
.pm2-pdp__accordion-body .std ol {
    padding-left: 1.5rem;
}
/* Additional attributes table */
.pm2-pdp__accordion-body .data-table {
    width: 100%;
    border-collapse: collapse;
}
.pm2-pdp__accordion-body .data-table th,
.pm2-pdp__accordion-body .data-table td {
    padding: 0.625rem 0.75rem;
    font-size: 0.9375rem;
    text-align: left;
    border-bottom: 1px solid var(--pm2-gray-100, #f3f4f6);
}
.pm2-pdp__accordion-body .data-table th {
    font-weight: 600;
    color: var(--pm2-gray-700, #374151);
    width: 40%;
}
.pm2-pdp__accordion-body .data-table td {
    color: var(--pm2-gray-600, #4b5563);
}

/* ── Reviews section ── */
.pm2-pdp__reviews-section {
    max-width: none;
    width: 100%;
    margin: 0 auto 3rem;
}
.pm2-pdp__reviews-section .box-reviews {
    padding: 0;
}
.pm2-pdp__reviews-section .box-reviews h2 {
    font-family: var(--pm2-font-display, 'Roboto Condensed', 'Inter', sans-serif);
    font-size: 1.5rem;
    font-weight: 700;
    margin-bottom: 1.5rem;
    color: var(--pm2-gray-900, #111827);
}
.pm2-pdp__reviews-section .rv-card {
    border: 1px solid var(--pm2-gray-200, #e5e7eb);
    border-radius: 12px;
    padding: 1.25rem;
    margin-bottom: 1rem;
}
.pm2-pdp__reviews-section .rv-card:last-child {
    margin-bottom: 0;
}
.pm2-pdp__reviews-section .btn-write-review,
.pm2-pdp__reviews-section .action.add a {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.625rem 1.25rem;
    background: var(--pm2-primary);
    color: #fff;
    border: none;
    border-radius: 8px;
    font-weight: 600;
    font-size: 0.875rem;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.2s;
}
.pm2-pdp__reviews-section .btn-write-review:hover,
.pm2-pdp__reviews-section .action.add a:hover {
    background: var(--pm2-primary-dark, #d45f93);
}
/* Review form styling */
.pm2-pdp__reviews-section .review-form {
    margin-top: 2rem;
    padding: 1.5rem;
    border: 1px solid var(--pm2-gray-200, #e5e7eb);
    border-radius: 12px;
    background: var(--pm2-gray-50, #f9fafb);
}
.pm2-pdp__reviews-section .review-form input[type="text"],
.pm2-pdp__reviews-section .review-form textarea {
    width: 100%;
    padding: 0.625rem 1rem;
    border: 2px solid var(--pm2-gray-300, #d1d5db);
    border-radius: 8px;
    font-size: 0.9375rem;
}
.pm2-pdp__reviews-section .review-form textarea {
    min-height: 120px;
    resize: vertical;
}

/* Fix 17: Review dialog (#review-dialog) Il Paradiso della Brugola theme overrides */
#review-dialog {
    border: none;
    border-radius: 16px;
    box-shadow: 0 25px 60px rgba(0, 0, 0, 0.15);
    max-width: 540px;
    width: 90vw;
    padding: 0;
}
#review-dialog::backdrop {
    background: rgba(0, 0, 0, 0.4);
}
#review-dialog .d-header {
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid var(--pm2-gray-200, #e5e7eb);
    font-family: var(--pm2-font-display, 'Roboto Condensed', 'Inter', sans-serif);
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--pm2-gray-900);
}
#review-dialog .d-close {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    border: none;
    background: var(--pm2-gray-100);
    cursor: pointer;
    transition: background 0.15s;
}
#review-dialog .d-close:hover {
    background: var(--pm2-gray-200);
}
#review-dialog .d-content {
    padding: 1.5rem;
}
#review-dialog .rd-ratings {
    margin-bottom: 1.5rem;
}
#review-dialog .rd-row {
    margin-bottom: 0.75rem;
}
#review-dialog .rd-label {
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--pm2-gray-700);
}
#review-dialog .rd-field {
    margin-bottom: 1rem;
}
#review-dialog .rd-field label {
    display: block;
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--pm2-gray-700);
    margin-bottom: 0.375rem;
}
#review-dialog .rd-field input[type="text"],
#review-dialog .rd-field textarea {
    width: 100%;
    padding: 0.625rem 1rem;
    border: 2px solid var(--pm2-gray-300, #d1d5db);
    border-radius: 8px;
    font-size: 0.9375rem;
    font-family: var(--pm2-font-body, 'Inter', sans-serif);
    transition: border-color 0.2s;
}
#review-dialog .rd-field input[type="text"]:focus,
#review-dialog .rd-field textarea:focus {
    border-color: var(--pm2-primary);
    outline: none;
    box-shadow: 0 0 0 3px rgba(var(--pm2-cta-rgb), 0.18);
}
#review-dialog .rd-field textarea {
    min-height: 100px;
    resize: vertical;
}
#review-dialog .d-actions {
    padding: 1rem 1.5rem;
    border-top: 1px solid var(--pm2-gray-200, #e5e7eb);
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
}
#review-dialog .d-actions button {
    padding: 0.625rem 1.25rem;
    border-radius: 8px;
    font-weight: 600;
    font-size: 0.875rem;
    cursor: pointer;
    transition: background 0.2s;
}
#review-dialog .d-actions button[type="submit"],
#review-dialog .d-actions .button {
    background: var(--pm2-primary);
    color: #fff;
    border: none;
}
#review-dialog .d-actions button[type="submit"]:hover,
#review-dialog .d-actions .button:hover {
    background: var(--pm2-primary-dark, #d45f93);
}

/* Fix 18: rv-header styling for "write a review" state */
.pm2-pdp__reviews-section .rv-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.5rem;
}
.pm2-pdp__reviews-section .rv-header.empty {
    justify-content: center;
    text-align: center;
}
.pm2-pdp__reviews-section .rv-header .button {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.625rem 1.25rem;
    background: var(--pm2-primary);
    color: #fff;
    border: none;
    border-radius: 8px;
    font-weight: 600;
    font-size: 0.875rem;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.2s;
}
.pm2-pdp__reviews-section .rv-header .button:hover {
    background: var(--pm2-primary-dark, #d45f93);
}

/* ── Related / Upsell section ── */
.pm2-pdp__related-section {
    margin-bottom: 3rem;
}

/* ── "Ti potrebbe piacere anche" section on PDP ── */
.pm2-also-like {
    margin-top: 3rem;
    padding-top: 2rem;
    border-top: 1px solid var(--pm2-gray-200, #e5e7eb);
}
.pm2-also-like .ilparadisobrugola-section__title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.pm2-also-like .ilparadisobrugola-section__title svg {
    width: 1.5rem;
    height: 1.5rem;
    stroke: var(--pm2-primary);
}

.pm2-pdp__related-section .box-up-sell h2,
.pm2-pdp__related-section .box-up-sell h3,
.pm2-pdp__related-section .block-related h2,
.pm2-pdp__related-section .block-related h3 {
    font-family: var(--pm2-font-display, 'Roboto Condensed', 'Inter', sans-serif);
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--pm2-gray-900, #111827);
    margin-bottom: 1.5rem;
}
/* Override Mage default table-based upsell layout */
.pm2-pdp__related-section .products-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 1.5rem;
}
.pm2-pdp__related-section .products-grid li {
    list-style: none;
}

/* ── Brand CSS from old view (keep backward compat) ── */
.ilparadisobrugola-product-view__brand { margin-bottom: 0.75rem; }
.ilparadisobrugola-product-view__brand-link { display: inline-flex; align-items: center; gap: 0.5rem; text-decoration: none; }
.ilparadisobrugola-product-view__brand-link:hover { opacity: 0.8; }
.ilparadisobrugola-product-view__brand-img { height: 28px; width: auto; }
.ilparadisobrugola-product-view__brand-name { font-weight: 600; font-size: 0.875rem; color: var(--pm2-gray-600); }

/* Options wrapper */
.pm2-pdp__options-wrap {
    background: #fbfbfb;
    border: 1px solid #f7f7f7;
    border-radius: 8px;
    box-shadow: 0 1px 1px 0 rgba(0, 0, 0, .02);
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 16px;
    position: relative;
    margin-bottom: 0.5rem;
}
.pm2-pdp__options-wrap #product-options-wrapper {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

/* Remove base theme box styling from .product-options inside PDP */
.pm2-pdp__options-wrap .product-options,
.pm2-pdp__options-wrap #product-options-wrapper .product-options {
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
}
.pm2-pdp__options-wrap #product-options-wrapper dl {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin: 0;
}
.pm2-pdp__options-wrap #product-options-wrapper dt {
    font-weight: 600;
    font-size: 0.9375rem;
    color: var(--pm2-gray-700, #374151);
    margin: 0;
    display: flex;
    align-items: baseline;
    gap: 0.375rem;
}
.pm2-pdp__options-wrap #product-options-wrapper dt .select-label {
    font-weight: 700;
    color: var(--pm2-primary);
}
.pm2-pdp__options-wrap #product-options-wrapper dd {
    margin: 0;
}
.pm2-pdp__options-wrap .super-attribute-select {
    width: 100%;
    height: auto;
    min-height: 44px;
    line-height: 1.5;
    padding: 0.625rem 2.5rem 0.625rem 1rem;
    font-size: 0.9375rem;
    border: 2px solid var(--pm2-gray-300, #d1d5db);
    border-radius: 8px;
    background-color: #fff;
    color: var(--pm2-text, #1a1a1a);
    box-sizing: border-box;
    cursor: pointer;
    transition: border-color 0.2s;
    appearance: none;
}
.pm2-pdp__options-wrap .super-attribute-select:focus {
    border-color: var(--pm2-primary);
    outline: none;
}

/* Fix 5: Configurable swatch list overflow (e.g. 16 flavor options) */
.configurable-swatch-list {
    flex-wrap: wrap;
}
.pm2-pdp__options-wrap .configurable-swatch-list {
    max-width: 100%;
}
.pm2-pdp__options-wrap .configurable-swatch-list li {
    flex-shrink: 0;
}
.configurable-swatch-list .swatch-label {
    font-size: 0.8rem;
    padding: 0.3rem 0.6rem;
}

@media (max-width: 768px) {
    .configurable-swatch-list {
        max-width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    .configurable-swatch-list .swatch-label {
        font-size: 0.7rem;
        padding: 0.25rem 0.5rem;
    }
}

/* ── Rating stars (shared with product card) ── */
.ilparadisobrugola-product-view__rating { display: inline-flex; gap: 2px; }

/* ============================================
   PRODUCT CARD (for lists and grids)
   ============================================ */
.ilparadisobrugola-product-card {
    background: white;
    border-radius: var(--pm2-radius-lg);
    overflow: hidden;
    box-shadow: var(--pm2-shadow-sm);
    transition: var(--pm2-transition);
}

.ilparadisobrugola-product-card:hover {
    box-shadow: var(--pm2-shadow);
    transform: translateY(-4px);
}

.ilparadisobrugola-product-card__link {
    display: block;
    text-decoration: none;
    color: inherit;
}

.ilparadisobrugola-product-card__image-wrapper {
    position: relative;
    padding-top: 100%;
    overflow: hidden;
    background: var(--pm2-gray-100);
}

.ilparadisobrugola-product-card__image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: var(--pm2-transition);
}

.ilparadisobrugola-product-card:hover .ilparadisobrugola-product-card__image {
    transform: scale(1.05);
}

.ilparadisobrugola-product-card__badge {
    position: absolute;
    top: 12px;
    left: 12px;
    right: auto;
    width: fit-content;
    padding: 0.375rem 0.75rem;
    border-radius: var(--pm2-radius-sm);
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.ilparadisobrugola-product-card__badge--sale {
    background: var(--pm2-accent);
    color: var(--pm2-gray-900);
}

.ilparadisobrugola-product-card__badge--new {
    background: var(--pm2-cta);
    color: #fff;
}

/* Wishlist heart on product card */
.ilparadisobrugola-product-card__wishlist {
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 2;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,0.9);
    border: none;
    border-radius: 50%;
    cursor: pointer;
    color: var(--pm2-gray-400);
    transition: all 0.2s ease;
    opacity: 0;
    transform: scale(0.8);
    padding: 0;
}
.ilparadisobrugola-product-card:hover .ilparadisobrugola-product-card__wishlist,
.ilparadisobrugola-product-card__wishlist:focus {
    opacity: 1;
    transform: scale(1);
}
.ilparadisobrugola-product-card__wishlist:hover {
    color: var(--pm2-primary);
    background: white;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}

.ilparadisobrugola-product-card__content {
    padding: 1.25rem;
}

.ilparadisobrugola-product-card__title {
    font-weight: 600;
    font-size: 1rem;
    color: var(--pm2-gray-900);
    margin: 0 0 0.75rem;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.ilparadisobrugola-product-card__rating {
    margin-bottom: 0.75rem;
}

.ilparadisobrugola-product-card__price {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.ilparadisobrugola-product-card__price-old {
    color: var(--pm2-gray-400);
    text-decoration: line-through;
    font-size: 0.875rem;
}

.ilparadisobrugola-product-card__price-final {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--pm2-primary);
}

.ilparadisobrugola-product-card__free-shipping {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: #059669;
    margin-top: 0.125rem;
}

.ilparadisobrugola-product-card__free-shipping svg {
    flex-shrink: 0;
    color: #059669;
}

.ilparadisobrugola-product-card__add-to-cart {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    background: var(--pm2-secondary);
    color: white;
    border: none;
    border-radius: var(--pm2-radius-sm);
    font-weight: 600;
    font-size: 0.875rem;
    cursor: pointer;
    transition: var(--pm2-transition);
    text-decoration: none;
}

.ilparadisobrugola-product-card__add-to-cart:hover {
    background: var(--pm2-secondary-dark);
    transform: translateY(-1px);
    color: white;
    text-decoration: none;
}

a.ilparadisobrugola-product-card__add-to-cart,
a.ilparadisobrugola-product-card__add-to-cart:visited,
a.ilparadisobrugola-product-card__add-to-cart:hover,
a.ilparadisobrugola-product-card__add-to-cart:active {
    color: white;
}

.ilparadisobrugola-product-card__actions {
    padding: 0 1rem 1rem;
}

.ilparadisobrugola-product-card__out-of-stock {
    display: block;
    text-align: center;
    padding: 0.75rem;
    background: var(--pm2-gray-100);
    color: var(--pm2-gray-600);
    font-weight: 600;
    font-size: 0.875rem;
    border-radius: var(--pm2-radius-sm);
}

/* AJAX add-to-cart button states */
.ilparadisobrugola-product-card__cta--loading,
.ilparadisobrugola-product-card__add-to-cart[disabled] {
    pointer-events: none;
    opacity: 0.7;
}
.ilparadisobrugola-product-card__cta--success {
    background: var(--pm2-success) !important;
    border-color: var(--pm2-success) !important;
}
.ilparadisobrugola-product-card__cta svg,
.ilparadisobrugola-product-card__add-to-cart svg {
    flex-shrink: 0;
}

/* Free shipping badge on product card */
.ilparadisobrugola-product-card__free-shipping {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-bottom: 0.5rem;
    padding: 0.25rem 0.625rem;
    background: var(--pm2-success-soft);
    color: #047857;
    font-size: 0.75rem;
    font-weight: 600;
    border-radius: var(--pm2-radius-sm);
    line-height: 1;
}

.ilparadisobrugola-product-card__free-shipping svg {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
}

/* Fast shipping badge on product card */
.ilparadisobrugola-product-card__fast-shipping {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-bottom: 0.5rem;
    padding: 0.25rem 0.625rem;
    background: #eff6ff;
    color: #1d4ed8;
    font-size: 0.75rem;
    font-weight: 600;
    border-radius: var(--pm2-radius-sm);
    line-height: 1;
}

.ilparadisobrugola-product-card__fast-shipping svg {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
}

/* ============================================
   SHOPPING CART PAGE
   ============================================ */
.ilparadisobrugola-cart {
    padding: 2rem 1rem;
    overflow-x: hidden;
    max-width: 100%;
}

@media (min-width: 1025px) {
    .ilparadisobrugola-cart {
        padding: 2rem;
    }
}

.ilparadisobrugola-cart__header {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    margin-bottom: 2rem;
    padding-bottom: 1.5rem;
    border-bottom: 2px solid var(--pm2-gray-200);
}

.ilparadisobrugola-cart__title {
    font-family: var(--pm2-font-display);
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--pm2-gray-900);
    margin: 0;
}

.ilparadisobrugola-cart__count {
    font-size: 1rem;
    color: var(--pm2-gray-500);
    font-weight: 500;
}

.ilparadisobrugola-cart__layout {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
    gap: 2rem;
    align-items: start;
    min-width: 0;
}

@media (max-width: 1024px) {
    .ilparadisobrugola-cart__layout {
        grid-template-columns: 1fr;
    }
}

.ilparadisobrugola-cart__items {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    min-width: 0;
    overflow: hidden;
}

.ilparadisobrugola-cart__items form {
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
}

.ilparadisobrugola-cart__actions {
    display: flex;
    gap: 1rem;
    padding: 1.5rem;
    background: var(--pm2-gray-50);
    border-radius: var(--pm2-radius);
}

@media (max-width: 768px) {
    .ilparadisobrugola-cart__actions {
        flex-direction: column;
    }
    .ilparadisobrugola-cart__actions .ilparadisobrugola-btn {
        white-space: normal;
        word-break: break-word;
    }
}

.ilparadisobrugola-cart__summary {
    position: sticky;
    top: 80px;
    align-self: start;
    max-height: calc(100vh - 100px);
    overflow-y: auto;
    padding: 2rem;
    background: var(--pm2-gray-50);
    border-radius: var(--pm2-radius-lg);
    border: 2px solid var(--pm2-gray-200);
}

@media (max-width: 1024px) {
    .ilparadisobrugola-cart__summary {
        position: static;
        max-height: none;
        overflow-y: visible;
    }
}

.ilparadisobrugola-cart__checkout {
    margin-top: 1.5rem;
}

@media (max-width: 768px) {
    .ilparadisobrugola-cart__checkout {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 100;
        margin: 0;
        padding: 0.75rem 1rem;
        background: white;
        border-top: 1px solid var(--pm2-gray-200);
        box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.1);
    }

    .ilparadisobrugola-cart__checkout .ilparadisobrugola-btn {
        margin: 0;
    }

    /* Prevent content from being hidden behind sticky button */
    .ilparadisobrugola-cart {
        padding-bottom: 5rem;
    }
}

/* Cart Summary: Totals table */
.ilparadisobrugola-cart__summary #shopping-cart-totals-table {
    width: 100%;
    border-collapse: collapse;
}

.ilparadisobrugola-cart__summary #shopping-cart-totals-table td {
    padding: 0.625rem 0;
    font-size: 0.9375rem;
    color: var(--pm2-gray-700);
    border: none;
    text-align: right;
}

.ilparadisobrugola-cart__summary #shopping-cart-totals-table td:first-child {
    text-align: left;
}

.ilparadisobrugola-cart__summary #shopping-cart-totals-table tfoot td {
    padding-top: 1rem;
    border-top: 2px solid var(--pm2-gray-300);
    font-size: 1.125rem;
    color: var(--pm2-gray-900);
}

/* Cart Summary: Delivery estimate */
.ilparadisobrugola-cart__summary .pm2-delivery-estimate--cart {
    margin-bottom: 1.25rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid var(--pm2-gray-200);
}

.ilparadisobrugola-cart__empty {
    text-align: center;
    padding: 5rem 2rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
}

.ilparadisobrugola-cart__empty-icon {
    color: var(--pm2-gray-300);
}

.ilparadisobrugola-cart__empty-title {
    font-family: var(--pm2-font-display);
    font-size: 2rem;
    font-weight: 700;
    color: var(--pm2-gray-900);
    margin: 0;
}

.ilparadisobrugola-cart__empty-text {
    color: var(--pm2-gray-600);
    font-size: 1.125rem;
    margin: 0;
}

/* Cart Summary — Totals Table */
.ilparadisobrugola-cart__summary #shopping-cart-totals-table {
    width: 100%;
    border-collapse: collapse;
}
.ilparadisobrugola-cart__summary #shopping-cart-totals-table td {
    padding: 0.5rem 0;
    font-size: 0.9rem;
    color: var(--pm2-gray-700);
    border: none;
}
.ilparadisobrugola-cart__summary #shopping-cart-totals-table td:last-child {
    text-align: right;
    white-space: nowrap;
}
.ilparadisobrugola-cart__summary #shopping-cart-totals-table tbody tr:first-child td {
    padding-top: 0;
}
.ilparadisobrugola-cart__summary #shopping-cart-totals-table tfoot td {
    padding-top: 0.75rem;
    border-top: 2px solid var(--pm2-gray-200);
    font-size: 1.05rem;
    color: var(--pm2-gray-900);
}
.ilparadisobrugola-cart__summary #shopping-cart-totals-table .price {
    font-weight: 600;
}

/* Cart Sidebar — Free Shipping Bar */
.pm2-free-shipping-bar--sidebar {
    margin-top: 1.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--pm2-gray-200);
}
.pm2-free-shipping-bar--sidebar .pm2-free-shipping-bar__amounts {
    display: flex;
    justify-content: space-between;
    margin-top: 0.5rem;
    font-size: 0.75rem;
    color: var(--pm2-gray-500);
}
.pm2-free-shipping-bar--sidebar .pm2-free-shipping-bar__current,
.pm2-free-shipping-bar--sidebar .pm2-free-shipping-bar__target {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
}
.pm2-free-shipping-bar--sidebar .pm2-free-shipping-bar__current .price,
.pm2-free-shipping-bar--sidebar .pm2-free-shipping-bar__target .price {
    font-weight: 600;
    color: var(--pm2-gray-700);
    font-size: 0.8rem;
}
.pm2-free-shipping-bar--sidebar .pm2-free-shipping-bar__target {
    text-align: right;
}

/* Cart Sidebar — Trust Info */
.pm2-cart-trust {
    margin-top: 1.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--pm2-gray-200);
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.pm2-cart-trust__item {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
}
.pm2-cart-trust__icon {
    flex-shrink: 0;
    color: var(--pm2-secondary);
    margin-top: 0.1rem;
}
.pm2-cart-trust__content {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}
.pm2-cart-trust__content strong {
    font-size: 0.85rem;
    color: var(--pm2-gray-900);
}
.pm2-cart-trust__content span {
    font-size: 0.75rem;
    color: var(--pm2-gray-500);
    line-height: 1.4;
}
.pm2-cart-trust__logos {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.375rem;
    margin-top: 0.25rem;
}
.pm2-cart-trust__logos svg {
    border-radius: 3px;
}
.pm2-cart-trust__logos img {
    height: 26px;
    width: auto;
    border-radius: 3px;
    object-fit: contain;
}

/* Cart Item */
.ilparadisobrugola-cart-item {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr);
    gap: 1.5rem;
    padding: 1.5rem;
    background: white;
    border-radius: var(--pm2-radius-lg);
    border: 1px solid var(--pm2-gray-200);
    transition: var(--pm2-transition-fast);
    max-width: 100%;
    overflow: hidden;
}

.ilparadisobrugola-cart-item:hover {
    border-color: var(--pm2-gray-300);
    box-shadow: var(--pm2-shadow-sm);
}

@media (max-width: 768px) {
    .ilparadisobrugola-cart-item {
        grid-template-columns: 100px minmax(0, 1fr);
        gap: 1rem;
        padding: 1rem;
    }
}

.ilparadisobrugola-cart-item__image {
    border-radius: var(--pm2-radius);
    overflow: hidden;
    background: var(--pm2-gray-100);
}

.ilparadisobrugola-cart-item__image img {
    width: 100%;
    height: auto;
    display: block;
}

.ilparadisobrugola-cart-item__details {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) 100px 120px auto;
    gap: 1.5rem;
    align-items: center;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
}

@media (max-width: 1024px) {
    .ilparadisobrugola-cart-item__details {
        display: flex;
        flex-wrap: wrap;
        gap: 0.75rem;
        align-items: center;
    }

    .ilparadisobrugola-cart-item__info {
        flex: 0 0 100%;
        min-width: 0;
    }

    .ilparadisobrugola-cart-item__price {
        flex: 1 1 auto;
    }

    .ilparadisobrugola-cart-item__qty {
        flex: 0 0 auto;
    }

    .ilparadisobrugola-cart-item__subtotal {
        flex: 1 1 auto;
        text-align: right;
    }

    .ilparadisobrugola-cart-item__remove {
        flex: 0 0 auto;
    }
}

.ilparadisobrugola-cart-item__info {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
}

.ilparadisobrugola-cart-item__name {
    font-size: 1.125rem;
    font-weight: 600;
    margin: 0;
    overflow-wrap: break-word;
    word-break: break-word;
    min-width: 0;
}

.ilparadisobrugola-cart-item__name a {
    color: var(--pm2-gray-900);
    text-decoration: none;
    transition: var(--pm2-transition-fast);
}

.ilparadisobrugola-cart-item__name a:hover {
    color: var(--pm2-primary);
}

.ilparadisobrugola-cart-item__options {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    font-size: 0.875rem;
    color: var(--pm2-gray-600);
    min-width: 0;
    overflow: hidden;
    word-break: break-word;
}

.ilparadisobrugola-cart-item__price,
.ilparadisobrugola-cart-item__subtotal {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.ilparadisobrugola-cart-item__price-label,
.ilparadisobrugola-cart-item__subtotal-label {
    font-size: 0.75rem;
    color: var(--pm2-gray-500);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 600;
}

.ilparadisobrugola-cart-item__price-value,
.ilparadisobrugola-cart-item__subtotal-value {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--pm2-gray-900);
}

.ilparadisobrugola-cart-item__qty {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.ilparadisobrugola-cart-item__qty label {
    font-size: 0.75rem;
    color: var(--pm2-gray-500);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 600;
}

.ilparadisobrugola-cart-item__remove {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 1px solid var(--pm2-gray-300);
    background: white;
    color: var(--pm2-gray-500);
    border-radius: var(--pm2-radius-sm);
    cursor: pointer;
    transition: var(--pm2-transition-fast);
}

.ilparadisobrugola-cart-item__remove:hover {
    background: var(--pm2-accent);
    border-color: var(--pm2-accent);
    color: white;
}

/* ============================================
   AUTH PAGES (Login, Register, Forgot Password)
   ============================================ */

/* ── Page-level constraint ── */
body.customer-account-login .col-main {
    max-width: 520px;
    margin: 0 auto;
}
#skip-to-main-content {
    position: absolute;
    left: -10000px;
    top: auto;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

#skip-to-main-content:focus {
    position: fixed;
    top: 0.75rem;
    left: 50%;
    transform: translateX(-50%);
    width: auto;
    height: auto;
    overflow: visible;
    background: var(--pm2-gray-900);
    color: #fff;
    padding: 0.5rem 1.25rem;
    border-radius: var(--pm2-radius);
    font-size: 0.875rem;
    font-weight: 600;
    text-decoration: none;
    z-index: 99999;
    box-shadow: var(--pm2-shadow-lg);
}

body.customer-account-login #main-content {
    max-width: none;
}
@media (max-width: 768px) {
    body.customer-account-login .col-main {
        max-width: none;
    }
}

.pm2-auth {
    padding: 2rem 1.5rem;
}

.pm2-auth__container {
    max-width: 520px;
    margin: 0 auto;
    width: 100%;
}

.pm2-auth__container--narrow {
    max-width: 520px;
}

.pm2-auth__container--wide {
    max-width: 960px;
}

.pm2-auth__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
    align-items: start;
}

@media (min-width: 768px) {
    .pm2-auth__grid {
        grid-template-columns: 1fr 320px;
    }
}

/* Benefits sidebar */
.pm2-auth__benefits {
    background: var(--pm2-gray-50, #f9fafb);
    border-radius: var(--pm2-radius-lg);
    padding: 2rem;
    border: 1px solid var(--pm2-gray-200);
}

.pm2-auth__benefits-title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--pm2-gray-900);
    margin: 0 0 1.5rem;
}

.pm2-auth__benefits-title svg {
    color: var(--pm2-primary);
    flex-shrink: 0;
}

.pm2-auth__benefits-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.pm2-auth__benefits-list li {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
}

.pm2-auth__benefits-list li svg {
    flex-shrink: 0;
    margin-top: 2px;
}

.pm2-auth__benefits-list li div {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.pm2-auth__benefits-list li strong {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--pm2-gray-900);
}

.pm2-auth__benefits-list li span {
    font-size: 0.8rem;
    color: var(--pm2-gray-500);
    line-height: 1.4;
}

/* Cards */
.pm2-auth__card {
    background: white;
    border-radius: var(--pm2-radius-lg);
    padding: 2.5rem;
    box-shadow: var(--pm2-shadow);
    border: 1px solid var(--pm2-gray-200);
}

/* ── CSS-only Tab system (login / register) ── */
.account-login .tab-selector {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.account-login .login-tabs {
    display: flex;
    gap: 0;
    margin-bottom: 2rem;
    border-bottom: 2px solid var(--pm2-gray-200);
    list-style: none;
    padding: 0;
}

.account-login .login-tabs li {
    flex: 1;
    margin-bottom: -2px;
}

.account-login .login-tabs label {
    display: block;
    padding: 0.75rem 0;
    border-bottom: 2px solid transparent;
    color: var(--pm2-gray-500);
    font-family: var(--pm2-font-display);
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 0.025em;
}

.account-login .login-tabs label:hover {
    color: var(--pm2-primary);
}

.account-login #tab-login:checked ~ .login-tabs li:first-child label,
.account-login #tab-register:checked ~ .login-tabs li:last-child label {
    color: var(--pm2-primary);
    border-bottom-color: var(--pm2-primary);
}

.account-login .tab-content {
    display: none;
}
.account-login #tab-login:checked ~ form #login-tab,
.account-login #tab-login:checked ~ #login-tab {
    display: block;
}
.account-login #tab-register:checked ~ form #register-tab,
.account-login #tab-register:checked ~ #register-tab {
    display: block;
}

/* ── Typography ── */
.pm2-auth__title {
    font-family: var(--pm2-font-display);
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--pm2-gray-900);
    margin: 0 0 0.5rem;
}

.pm2-auth__subtitle {
    color: var(--pm2-gray-500);
    margin: 0;
    line-height: 1.6;
    font-size: 0.9375rem;
}

/* ── Form ── */
.pm2-auth__form {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.pm2-auth__actions {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-top: 0.5rem;
}

/* Fieldset & legend */
.pm2-auth__fieldset {
    border: none;
    padding: 0;
    margin: 0;
}

.pm2-auth__legend {
    font-family: var(--pm2-font-display);
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--pm2-gray-800);
    margin-bottom: 1.25rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid var(--pm2-gray-200);
    width: 100%;
}

/* Field group */
.pm2-field {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    margin-bottom: 0.25rem;
}

.pm2-field__label {
    font-weight: 600;
    color: var(--pm2-gray-700);
    font-size: 0.875rem;
}

.pm2-field__label-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.pm2-field__link {
    font-size: 0.8125rem;
    color: var(--pm2-primary);
    text-decoration: none;
    font-weight: 500;
}

.pm2-field__link:hover {
    text-decoration: underline;
}

.pm2-field__input,
.pm2-auth__fieldset input[type="text"],
.pm2-auth__fieldset input[type="email"],
.pm2-auth__fieldset input[type="password"],
.pm2-auth__fieldset input[type="tel"],
.pm2-auth__fieldset select,
.pm2-auth__fieldset textarea {
    width: 100%;
    padding: 0.75rem 1rem;
    border: 2px solid var(--pm2-gray-200);
    border-radius: var(--pm2-radius);
    font-family: var(--pm2-font-body);
    font-size: 1rem;
    color: var(--pm2-gray-800);
    background: white;
    outline: none;
    transition: border-color 0.15s, box-shadow 0.15s;
    box-sizing: border-box;
}

.pm2-field__input:focus,
.pm2-auth__fieldset input[type="text"]:focus,
.pm2-auth__fieldset input[type="email"]:focus,
.pm2-auth__fieldset input[type="password"]:focus,
.pm2-auth__fieldset input[type="tel"]:focus,
.pm2-auth__fieldset select:focus,
.pm2-auth__fieldset textarea:focus {
    border-color: var(--pm2-primary);
    box-shadow: 0 0 0 3px rgba(var(--pm2-cta-rgb), 0.18);
}

.pm2-field__input::placeholder,
.pm2-auth__fieldset input::placeholder,
.pm2-auth__fieldset textarea::placeholder {
    color: var(--pm2-gray-400);
}

/* Password toggle */
.pm2-field__password-wrap {
    position: relative;
}

.pm2-field__password-wrap .pm2-field__input {
    padding-right: 3rem;
}

.pm2-field__toggle-pw {
    position: absolute;
    right: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    cursor: pointer;
    color: var(--pm2-gray-400);
    padding: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: color 0.15s;
}

.pm2-field__toggle-pw:hover {
    color: var(--pm2-gray-600);
}

/* Hint text */
.pm2-field__hint {
    font-size: 0.8125rem;
    color: var(--pm2-gray-400);
}

/* Checkbox */
.pm2-field__checkbox {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-weight: 500;
    cursor: pointer;
    margin-top: 0.25rem;
}

.pm2-field__checkbox input[type="checkbox"] {
    width: 18px;
    height: 18px;
    accent-color: var(--pm2-primary);
    cursor: pointer;
}

/* Remember me checkbox */
.remember-me-box {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    list-style: none;
}

.remember-me-box .input-box {
    display: flex;
    align-items: center;
    margin: 0;
    padding: 0;
}

.remember-me-box .input-box .checkbox {
    width: 18px;
    height: 18px;
    accent-color: var(--pm2-primary);
    cursor: pointer;
    margin: 0;
}

.remember-me-box label {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--pm2-gray-700);
    cursor: pointer;
    margin: 0;
}

/* Two-col row (first/last name) */
.pm2-field__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

@media (max-width: 480px) {
    .pm2-field__row {
        grid-template-columns: 1fr;
    }
}

/* Customer name widget inside auth fieldset */
.pm2-auth__fieldset .customer-name {
    display: block;
    width: 100%;
}

.pm2-auth__fieldset .customer-name .name-middlename {
    display: none;
}

.pm2-auth__fieldset .customer-name .field {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}

.pm2-auth__fieldset .customer-name .field label {
    font-weight: 600;
    color: var(--pm2-gray-700);
    font-size: 0.875rem;
}

.pm2-auth__fieldset .customer-name .field .input-box {
    width: 100%;
}

/* Submit button */
.pm2-auth__submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 0.875rem 2rem;
    font-family: var(--pm2-font-heading);
    font-size: 1rem;
    font-weight: 600;
    color: white;
    background: var(--pm2-primary);
    border: 2px solid var(--pm2-primary);
    border-radius: var(--pm2-radius);
    cursor: pointer;
    transition: var(--pm2-transition-fast);
    text-decoration: none;
    text-align: center;
    margin-top: 0.5rem;
}

.pm2-auth__submit:hover {
    background: var(--pm2-primary-dark);
    border-color: var(--pm2-primary-dark);
    transform: translateY(-1px);
    box-shadow: var(--pm2-shadow-md);
}

.pm2-auth__submit--outline {
    background: white;
    color: var(--pm2-primary);
}

.pm2-auth__submit--outline:hover {
    background: var(--pm2-primary);
    color: white;
}

/* ── Forgot Password Dialog ── */
.pm2-auth__dialog {
    max-width: 440px;
    width: 90vw;
    border: none;
    border-radius: var(--pm2-radius-lg);
    box-shadow: var(--pm2-shadow-lg, 0 10px 40px rgba(0,0,0,0.15));
    padding: 0;
}

.pm2-auth__dialog::backdrop {
    background: rgba(0, 0, 0, 0.4);
}

.pm2-auth__dialog-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid var(--pm2-gray-200);
}

.pm2-auth__dialog-close {
    background: none;
    border: none;
    font-size: 1.5rem;
    color: var(--pm2-gray-400);
    cursor: pointer;
    padding: 0.25rem;
    line-height: 1;
    transition: color 0.15s;
}

.pm2-auth__dialog-close:hover {
    color: var(--pm2-gray-700);
}

.pm2-auth__dialog-content {
    padding: 1.5rem;
}

.pm2-auth__dialog-actions {
    display: flex;
    gap: 0.75rem;
    margin-top: 0.5rem;
}

.pm2-auth__dialog-actions .pm2-auth__submit {
    flex: 1;
    margin-top: 0;
}

/* Alternative action link */
.pm2-auth__alt {
    text-align: center;
    color: var(--pm2-gray-500);
    margin: 0.5rem 0 0;
    font-size: 0.9375rem;
}

.pm2-auth__alt-link {
    color: var(--pm2-primary);
    text-decoration: none;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
}

.pm2-auth__alt-link:hover {
    color: var(--pm2-primary-dark);
    text-decoration: underline;
}

/* Responsive */
@media (max-width: 768px) {
    .pm2-auth {
        padding: 1.5rem 0;
    }

    .pm2-auth__card {
        padding: 1.75rem 1.25rem;
    }

    .pm2-auth__title {
        font-size: 1.5rem;
    }
}

/* Migration notice for Millstore/old PetMuffin users */
.pm2-auth__migration-notice {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 1rem 1.25rem;
    margin-bottom: 1.5rem;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: var(--pm2-radius);
    color: #1e40af;
    font-size: 0.875rem;
    line-height: 1.5;
}
.pm2-auth__migration-notice svg {
    flex-shrink: 0;
    margin-top: 0.125rem;
    color: #3b82f6;
}
.pm2-auth__migration-notice p {
    margin: 0;
}
.pm2-auth__migration-notice strong {
    font-weight: 600;
}

/* Qty input (cart) */
.ilparadisobrugola-input--qty {
    width: 70px;
    max-width: 100%;
    padding: 0.5rem 0.5rem;
    text-align: center;
    -moz-appearance: textfield;
    box-sizing: border-box;
}

@media (max-width: 768px) {
    .ilparadisobrugola-input--qty {
        width: 60px;
        padding: 0.4rem;
        font-size: 0.9rem;
    }
}

.ilparadisobrugola-input--qty::-webkit-outer-spin-button,
.ilparadisobrugola-input--qty::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* ============================================
   FORMS
   ============================================ */
.ilparadisobrugola-form {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.ilparadisobrugola-fieldset {
    border: none;
    padding: 0;
    margin: 0 0 1.5rem;
}

.ilparadisobrugola-fieldset__legend {
    font-family: var(--pm2-font-display);
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--pm2-gray-900);
    margin-bottom: 1.5rem;
    padding-bottom: 0.75rem;
    border-bottom: 2px solid var(--pm2-gray-200);
    width: 100%;
}

.ilparadisobrugola-form__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

@media (max-width: 768px) {
    .ilparadisobrugola-form__row {
        grid-template-columns: 1fr;
    }
}

.ilparadisobrugola-form__group {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.ilparadisobrugola-form__label {
    font-weight: 600;
    color: var(--pm2-gray-700);
    font-size: 0.875rem;
}

.ilparadisobrugola-form__required {
    color: var(--pm2-accent);
}

.ilparadisobrugola-form__hint {
    font-size: 0.8125rem;
    color: var(--pm2-gray-500);
}

.ilparadisobrugola-form__checkbox {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    cursor: pointer;
    font-weight: 500;
}

.ilparadisobrugola-form__checkbox input[type="checkbox"] {
    width: 18px;
    height: 18px;
    cursor: pointer;
}

.ilparadisobrugola-form__actions {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-top: 0.5rem;
}

.ilparadisobrugola-form__actions--centered {
    align-items: center;
}

.ilparadisobrugola-form__alt-action {
    text-align: center;
    color: var(--pm2-gray-600);
    margin: 0;
}

.ilparadisobrugola-link {
    color: var(--pm2-primary);
    text-decoration: none;
    font-weight: 600;
    transition: var(--pm2-transition-fast);
}

.ilparadisobrugola-link:hover {
    color: var(--pm2-primary-dark);
    text-decoration: underline;
}

/* Form inputs */
.ilparadisobrugola-input {
    width: 100%;
    padding: 0.75rem 1rem;
    border: 2px solid var(--pm2-gray-200);
    border-radius: var(--pm2-radius);
    font-family: var(--pm2-font-body);
    font-size: 1rem;
    outline: none;
    transition: var(--pm2-transition-fast);
    background: white;
    color: var(--pm2-gray-800);
    box-sizing: border-box;
}

.ilparadisobrugola-input:focus {
    border-color: var(--pm2-primary);
    box-shadow: 0 0 0 3px rgba(var(--pm2-cta-rgb), 0.18);
}

.ilparadisobrugola-input::placeholder {
    color: var(--pm2-gray-400);
}

/* Large button modifier */
.ilparadisobrugola-btn--large {
    width: 100%;
    padding: 1rem 2rem;
    font-size: 1.0625rem;
    justify-content: center;
}

/* ==================================
   LAYERED NAVIGATION (SIDEBAR FILTERS)
   Mobile-first: drawer is the base, desktop overrides to sticky sidebar
   ================================== */

/* --- Override base theme display:none on mobile --- */
.ilparadisobrugola-layered-nav .block-content,
.col-left-first .ilparadisobrugola-layered-nav .block-content,
.sidebar .ilparadisobrugola-layered-nav .block-content {
    display: block !important;
}

/* --- Mobile filter toggle button --- */
.pm2-filter-toggle {
    display: flex;
    width: 100%;
    padding: 0.75rem 1rem;
    background: var(--pm2-primary);
    color: white;
    border: none;
    border-radius: var(--pm2-radius);
    font-family: var(--pm2-font-heading);
    font-size: 0.9375rem;
    font-weight: 600;
    cursor: pointer;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    transition: var(--pm2-transition-fast);
    margin-bottom: 1rem;
    position: sticky;
    top: 60px;
    z-index: 100;
}

/* Brand page: hide original sidebar toggle, show inline one */
.brand-view-page .col-left-first .pm2-filter-toggle {
    display: none;
}

.pm2-filter-toggle--brand {
    display: flex;
    margin-top: 1rem;
}

.pm2-filter-toggle:hover {
    background: var(--pm2-primary-dark);
}

.pm2-filter-toggle svg {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}

/* --- Overlay backdrop (mobile) --- */
.pm2-filter-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    z-index: 9998;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.pm2-filter-overlay.is-visible {
    opacity: 1;
    visibility: visible;
}

/* --- Layered nav container (mobile = drawer) --- */
.ilparadisobrugola-layered-nav {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    width: 320px;
    max-width: 85vw;
    z-index: 9999;
    background: white;
    border: none;
    border-radius: 0;
    padding: 0;
    margin-bottom: 0;
    box-shadow: 4px 0 24px rgba(0, 0, 0, 0.12);
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    transform: translateX(-100%);
    transition: transform 0.3s ease;
}

.ilparadisobrugola-layered-nav.pm2-filters-open {
    transform: translateX(0);
}

/* Hide the static block title inside the drawer (drawer has its own header) */
.ilparadisobrugola-layered-nav .block-title {
    display: none;
}

/* --- Mobile drawer header --- */
.pm2-filter-drawer-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--pm2-gray-200);
    flex-shrink: 0;
    background: white;
}

.pm2-filter-drawer-title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-family: var(--pm2-font-heading);
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--pm2-text-dark);
    margin: 0;
}

.pm2-filter-drawer-title svg {
    color: var(--pm2-primary);
}

.pm2-filter-drawer-close {
    background: none;
    border: none;
    cursor: pointer;
    color: var(--pm2-gray-500);
    padding: 0.25rem;
    border-radius: 6px;
    transition: var(--pm2-transition-fast);
}

.pm2-filter-drawer-close:hover {
    background: var(--pm2-gray-100);
    color: var(--pm2-gray-900);
}

/* --- Block content (mobile: scrollable inside drawer) --- */
.ilparadisobrugola-layered-nav .block-content {
    flex: 1;
    overflow-y: auto;
    padding: 0 1.25rem 1.25rem;
}

/* --- Active Filters --- */
.active-filters-wrapper {
    margin: 0 0 1rem 0;
    padding: 0.625rem;
    border: 1px solid var(--pm2-primary-light);
    border-radius: var(--pm2-radius);
    background: linear-gradient(135deg, rgba(var(--pm2-cta-rgb), 0.05), rgba(var(--pm2-cta-rgb), 0.10));
}

.active-filters-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.75rem;
}

.active-filters-title {
    font-weight: 600;
    font-size: 0.8125rem;
    color: var(--pm2-text-dark);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.clear-all-filters {
    color: var(--pm2-primary);
    text-decoration: none;
    font-size: 0.8125rem;
    font-weight: 600;
    transition: var(--pm2-transition-fast);
    padding: 0.2rem 0.5rem;
    border-radius: var(--pm2-radius-full);
}

.clear-all-filters:hover {
    color: white;
    text-decoration: none;
    background: var(--pm2-primary);
}

/* Active filters tags */
.filter-tags,
.currently {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.filter-tag,
.currently li {
    display: inline-flex;
    align-items: center;
    margin: 0;
}

.filter-tag-link,
.currently a {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    background: white;
    color: var(--pm2-primary-dark);
    text-decoration: none;
    padding: 0.25rem 0.5rem;
    border-radius: var(--pm2-radius-full);
    font-size: 0.75rem;
    font-weight: 600;
    border: 1px solid var(--pm2-primary-light);
    transition: var(--pm2-transition-fast);
    line-height: 1.4;
}

.filter-tag-link:hover,
.currently a:hover {
    text-decoration: none;
    background: var(--pm2-primary);
    color: white;
    border-color: var(--pm2-primary);
}

.filter-tag-label {
    opacity: 0.8;
}

.filter-tag-value {
    font-weight: 700;
}

.filter-tag-link svg {
    width: 11px;
    height: 11px;
    stroke-width: 2.5;
    flex-shrink: 0;
}

/* --- Filter Groups (Accordion) --- */
.ilparadisobrugola-filters {
    margin: 0;
    padding: 0;
}

.ilparadisobrugola-filter-group {
    border-bottom: 1px solid var(--pm2-gray-100);
}

.ilparadisobrugola-filter-group:last-child {
    border-bottom: none;
}

.ilparadisobrugola-filter-title {
    font-family: var(--pm2-font-heading);
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--pm2-text-dark);
    margin: 0;
    padding: 0.625rem 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    user-select: none;
    transition: var(--pm2-transition-fast);
    border: none;
    background: none;
    text-transform: none;
    letter-spacing: normal;
    width: 100%;
}

.ilparadisobrugola-filter-title:hover {
    color: var(--pm2-primary);
}

.ilparadisobrugola-filter-title .pm2-filter-arrow {
    width: 16px;
    height: 16px;
    color: var(--pm2-gray-400);
    transition: transform 0.2s ease;
    flex-shrink: 0;
}

.ilparadisobrugola-filter-group.is-open .ilparadisobrugola-filter-title .pm2-filter-arrow {
    transform: rotate(180deg);
    color: var(--pm2-primary);
}

.ilparadisobrugola-filter-content {
    margin: 0;
    padding: 0 0 0.75rem 0;
    overflow: hidden;
    transition: max-height 0.25s ease, opacity 0.2s ease;
}

.ilparadisobrugola-filter-group:not(.is-open) .ilparadisobrugola-filter-content {
    max-height: 0 !important;
    opacity: 0;
    padding: 0;
}

.ilparadisobrugola-filter-group.is-open .ilparadisobrugola-filter-content {
    opacity: 1;
}

/* Filter options list */
.ilparadisobrugola-filter-content ol,
.ilparadisobrugola-filter-content ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.ilparadisobrugola-filter-content a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.375rem 0.5rem;
    border-radius: var(--pm2-radius-sm);
    color: var(--pm2-text);
    text-decoration: none;
    transition: var(--pm2-transition-fast);
    font-size: 0.8125rem;
    line-height: 1.4;
}

.ilparadisobrugola-filter-content a:hover {
    background: var(--pm2-gray-50);
    color: var(--pm2-primary);
    text-decoration: none;
}

.ilparadisobrugola-filter-content li span:not(.count) {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.375rem 0.5rem;
    border-radius: var(--pm2-radius-sm);
    color: var(--pm2-gray-400);
    font-size: 0.8125rem;
}

.ilparadisobrugola-filter-content .count {
    font-size: 0.75rem;
    color: var(--pm2-gray-400);
    font-weight: 500;
    margin-left: 0.375rem;
    flex-shrink: 0;
}

.ilparadisobrugola-filter-content a:hover .count {
    color: var(--pm2-primary-light);
}

/* Scrollable filter options when >8 items */
.ilparadisobrugola-filter-content ol.pm2-scrollable,
.ilparadisobrugola-filter-content ul.pm2-scrollable {
    max-height: 240px;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--pm2-gray-300) transparent;
}

/* Price filter inputs */
.ilparadisobrugola-filter-content input[type="text"],
.ilparadisobrugola-filter-content input[type="number"] {
    width: 100%;
    padding: 0.4rem 0.625rem;
    border: 1px solid var(--pm2-gray-200);
    border-radius: var(--pm2-radius-sm);
    font-size: 0.8125rem;
    transition: var(--pm2-transition-fast);
}

.ilparadisobrugola-filter-content input[type="text"]:focus,
.ilparadisobrugola-filter-content input[type="number"]:focus {
    border-color: var(--pm2-primary);
    outline: none;
    box-shadow: 0 0 0 3px rgba(var(--pm2-cta-rgb), 0.18);
}

/* --- Desktop: override drawer to static sticky sidebar --- */
@media (min-width: 1025px) {
    .pm2-filter-toggle {
        display: none;
    }

    .pm2-filter-toggle--brand {
        display: none;
    }

    .pm2-filter-drawer-header {
        display: none;
    }

    .pm2-filter-overlay {
        display: none;
    }

    .ilparadisobrugola-layered-nav {
        position: sticky;
        top: 96px;
        left: auto;
        bottom: auto;
        width: auto;
        max-width: none;
        max-height: none;
        z-index: auto;
        background: white;
        border: 1px solid var(--pm2-gray-200);
        border-radius: var(--pm2-radius-lg);
        padding: 1.25rem;
        margin-bottom: 1.5rem;
        box-shadow: var(--pm2-shadow-sm);
        overflow-y: visible;
        display: block;
        transform: none;
        transition: none;
    }

    .ilparadisobrugola-layered-nav .block-title {
        margin: 0 0 1rem 0;
        padding-bottom: 0.75rem;
        border-bottom: 2px solid var(--pm2-primary-light);
        display: flex;
        align-items: center;
        gap: 0.5rem;
    }

    .ilparadisobrugola-layered-nav .block-title svg {
        width: 20px;
        height: 20px;
        color: var(--pm2-primary);
        flex-shrink: 0;
    }

    .ilparadisobrugola-layered-nav .block-title .pm2-filter-title {
        font-family: var(--pm2-font-heading);
        font-size: 1.25rem;
        font-weight: 700;
        color: var(--pm2-text-dark);
        margin: 0;
    }

    .ilparadisobrugola-layered-nav .block-content {
        flex: none;
        overflow-y: visible;
        padding: 0;
    }

    .active-filters-wrapper {
        padding: 0.875rem;
    }

    .ilparadisobrugola-filter-title {
        font-size: 0.875rem;
        padding: 0.75rem 0;
    }

    .ilparadisobrugola-filter-content a {
        padding: 0.4rem 0.625rem;
        font-size: 0.875rem;
    }

    .ilparadisobrugola-filter-content li span:not(.count) {
        padding: 0.4rem 0.625rem;
        font-size: 0.875rem;
    }
}

/* ==================================
   BREADCRUMBS
   ================================== */

.breadcrumbs {
    background: transparent;
    padding: 1rem;
}

.breadcrumbs ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0;
    overflow: hidden;
    white-space: nowrap;
    text-transform: none;
}

.breadcrumbs li {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
    font-size: 0.8125rem;
    line-height: 1.5;
    color: var(--pm2-gray-500);
    min-width: 0;
}

/* Solo l'ultima voce si accorcia: gli antenati restano leggibili invece di
   comprimersi e far uscire il testo sopra la voce successiva. */
.breadcrumbs li:last-child {
    flex: 0 1 auto;
}

.breadcrumbs li::after {
    content: "\203A";
    margin: 0 0.4rem;
    color: var(--pm2-gray-300);
    font-size: inherit;
    line-height: inherit;
    flex-shrink: 0;
}

.breadcrumbs li:last-child::after {
    content: none;
}

.breadcrumbs li > a,
.breadcrumbs li > strong {
    display: block;
    min-width: 0;
    /* pari al min-height:24px globale sui link: senza, l'ultima voce (non link)
       veniva centrata piu' in basso e restava disallineata */
    min-height: 24px;
    line-height: inherit;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.breadcrumbs a {
    color: var(--pm2-gray-500);
    text-decoration: none;
    font-weight: 400;
    transition: var(--pm2-transition-fast);
    white-space: nowrap;
}

.breadcrumbs a:hover {
    color: var(--pm2-primary);
    text-decoration: none;
}

.breadcrumbs strong {
    color: var(--pm2-text-dark);
    font-weight: 600;
}

/* Link "indietro" mobile: nascosto da desktop */
.ipb-bc-back {
    display: none;
}

@media (max-width: 768px) {
    .breadcrumbs {
        display: block;
        padding: 1rem 0 0;
    }

    .breadcrumbs li {
        font-size: 0.75rem;
    }

    /* Su schermo stretto il percorso completo si comprime e le etichette si
       accavallano: lo sostituiamo con un solo link al livello superiore. */
    .breadcrumbs ul {
        display: none;
    }

    .ipb-bc-back {
        display: inline-flex;
        align-items: center;
        gap: 4px;
        max-width: 100%;
        min-height: 32px;
        font-size: 0.8125rem;
        color: var(--pm2-text-dark);
        text-decoration: none;
    }

    .ipb-bc-back__icon {
        flex: 0 0 auto;
    }

    .ipb-bc-back__label {
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
}

/* ==================================
   CATEGORY PAGE
   ================================== */

.ilparadisobrugola-category {
    margin-bottom: 2rem;
}

/* Style the default .page-title within category as category header */
.ilparadisobrugola-category .page-title,
.ilparadisobrugola-category__header {
    text-align: center;
    margin-bottom: 2rem;
    padding: 2rem 0;
}

.ilparadisobrugola-category .page-title h1,
.ilparadisobrugola-category__title {
    font-family: var(--pm2-font-heading);
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--pm2-text-dark);
    margin: 0;
    padding: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

/* Category icon in page title */
.page-title__icon {
    display: inline-flex;
    align-items: center;
    color: var(--pm2-primary);
    flex-shrink: 0;
}

.page-title__icon svg {
    width: 1em;
    height: 1em;
}

.ilparadisobrugola-category__description {
    color: var(--pm2-gray-700);
    line-height: 1.6;
    margin-bottom: 2rem;
}

.ilparadisobrugola-category__description p {
    margin-bottom: 1rem;
}

@media (max-width: 768px) {
    .ilparadisobrugola-category .page-title,
    .ilparadisobrugola-category__header {
        padding: 1rem 0;
        margin-bottom: 1rem;
    }

    .ilparadisobrugola-category .page-title h1,
    .ilparadisobrugola-category__title {
        font-size: 1.75rem;
    }

    .ilparadisobrugola-category__description {
        font-size: 0.9375rem;
        margin-bottom: 1rem;
    }
}

/* ============================================
   404 PAGE
   ============================================ */
.pm2-404 {
    text-align: center;
    padding: 4rem 2rem;
    max-width: 600px;
    margin: 0 auto;
}

.pm2-404__icon {
    margin-bottom: 2rem;
}

.pm2-404__icon svg {
    display: inline-block;
}

.pm2-404__title {
    font-family: var(--pm2-font-display);
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--pm2-gray-900);
    margin: 0 0 1rem;
}

.pm2-404__subtitle {
    font-size: 1.25rem;
    color: var(--pm2-primary);
    font-weight: 500;
    margin: 0 0 1rem;
}

.pm2-404__text {
    font-size: 1rem;
    color: var(--pm2-gray-600);
    margin: 0 0 2rem;
    line-height: 1.6;
}

.pm2-404__actions {
    display: flex;
    justify-content: center;
    gap: 1rem;
    margin-bottom: 2rem;
    flex-wrap: wrap;
}

.pm2-404__paws {
    font-size: 2rem;
    letter-spacing: 1rem;
    opacity: 0.5;
}

@media (max-width: 768px) {
    .pm2-404 {
        padding: 2rem 1rem;
    }

    .pm2-404__title {
        font-size: 1.75rem;
    }

    .pm2-404__subtitle {
        font-size: 1rem;
    }
}

/* ============================================================
   INFO PAGES (ABOUT, CONTACT, ETC.)
   ============================================================ */
.ilparadisobrugola-info-page {
    max-width: 900px;
    margin: 0 auto;
    padding: 2rem 0;
    line-height: 1.8;
    color: #333;
}

.ilparadisobrugola-info-page h2 {
    font-size: 1.75rem;
    font-weight: 700;
    color: #1a1a1a;
    margin: 2rem 0 1rem;
}

.ilparadisobrugola-info-page h3 {
    font-size: 1.3rem;
    font-weight: 600;
    color: #1a1a1a;
    margin: 1.5rem 0 0.75rem;
}

.ilparadisobrugola-info-page p {
    margin-bottom: 1rem;
}

.ilparadisobrugola-info-page ul {
    margin: 0 0 1.5rem 1.5rem;
}

.ilparadisobrugola-info-page ul li {
    margin-bottom: 0.5rem;
}

.ilparadisobrugola-info-page a {
    color: var(--pm2-primary);
    text-decoration: underline;
}

.ilparadisobrugola-info-page a:hover {
    color: var(--pm2-cta-dark);
}

/* Info page hero */
.pm2-info-hero {
    background: linear-gradient(135deg, #c0457f, #9b3066);
    color: white;
    padding: 3rem 2rem;
    border-radius: 12px;
    text-align: center;
    margin-bottom: 2rem;
}

.pm2-info-hero__icon {
    margin-bottom: 1rem;
}

.pm2-info-hero__icon svg {
    opacity: 0.9;
}

.pm2-info-hero h1 {
    color: white;
    font-size: 2rem;
    font-weight: 700;
    margin: 0 0 0.5rem;
}

.pm2-info-hero p {
    font-size: 1.15rem;
    opacity: 0.95;
    margin: 0;
}

/* Info highlights */
.pm2-info-highlights {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    margin: 1.5rem 0 2rem;
}

.pm2-info-highlight {
    background: #f8f8f8;
    border-radius: 12px;
    padding: 1.25rem 1rem;
    text-align: center;
    border: 1px solid var(--pm2-gray-200);
}

.pm2-info-highlight__value {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--pm2-primary);
    margin-bottom: 0.25rem;
}

.pm2-info-highlight--green .pm2-info-highlight__value {
    color: var(--pm2-secondary);
}

.pm2-info-highlight__label {
    font-size: 0.85rem;
    color: #666;
    line-height: 1.4;
}

/* Info note box */
.pm2-info-note {
    background: #fff8e1;
    border-left: 4px solid var(--pm2-accent);
    padding: 1rem 1.25rem;
    border-radius: 0 8px 8px 0;
    margin: 1.5rem 0;
    font-size: 0.9rem;
    line-height: 1.6;
}

/* Contact page grid */
.pm2-contact-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
    margin: 1.5rem 0 2rem;
}

.pm2-contact-card {
    background: #f8f8f8;
    border-radius: 12px;
    padding: 1.5rem;
    text-align: center;
    border: 1px solid var(--pm2-gray-200);
    transition: box-shadow 0.2s ease;
}

.pm2-contact-card:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.pm2-contact-card__icon {
    width: 56px;
    height: 56px;
    background: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1rem;
    color: var(--pm2-primary);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.pm2-contact-card h3 {
    font-size: 1.1rem;
    margin: 0 0 0.75rem;
}

.pm2-contact-card p {
    margin-bottom: 0.5rem;
    font-size: 0.95rem;
}

.pm2-contact-card__note {
    font-size: 0.8rem !important;
    color: #999;
}

@media (max-width: 768px) {
    .pm2-info-highlights {
        grid-template-columns: 1fr;
    }

    .pm2-info-hero {
        padding: 2rem 1.5rem;
    }

    .pm2-info-hero h1 {
        font-size: 1.5rem;
    }

    .pm2-contact-grid {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   DELIVERY ESTIMATE
   ============================================================ */
.pm2-delivery-estimate {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    background: linear-gradient(135deg, var(--pm2-success-soft) 0%, var(--pm2-success-soft) 100%);
    border: 1px solid rgba(22, 163, 74, 0.25);
    border-radius: 12px;
    padding: 1rem 1.25rem;
    margin: 1rem 0;
    font-family: var(--pm2-font-body, 'Inter', sans-serif);
}

.pm2-delivery-estimate__icon {
    flex-shrink: 0;
    color: var(--pm2-success);
    margin-top: 2px;
}

.pm2-delivery-estimate__content {
    flex: 1;
    min-width: 0;
}

.pm2-delivery-estimate__label {
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--pm2-success-dark);
    margin-bottom: 0.25rem;
}

.pm2-delivery-estimate__dates {
    font-size: 1rem;
    color: #111827;
    line-height: 1.4;
}

.pm2-delivery-estimate__dates strong {
    color: var(--pm2-success-dark);
    font-weight: 700;
}

.pm2-delivery-estimate__countdown {
    font-size: 0.8rem;
    color: #6b7280;
    margin-top: 0.35rem;
}

.pm2-delivery-estimate__countdown strong {
    color: #ea580c;
    font-weight: 700;
}

.pm2-delivery-estimate__countdown--next {
    color: #6b7280;
    font-style: italic;
}

.pm2-delivery-estimate__exclusion {
    font-size: 0.7rem;
    color: #9ca3af;
    margin-top: 0.35rem;
    font-style: italic;
}

/* Cart variant - more compact, inline */
.pm2-delivery-estimate--cart {
    align-items: center;
    padding: 0.75rem 1rem;
    margin: 0.75rem 0;
}

/* Backorder variant - orange/amber styling */
.pm2-delivery-estimate--backorder {
    background: linear-gradient(135deg, var(--pm2-warning-soft) 0%, var(--pm2-warning-soft) 100%);
    border-color: rgba(245, 158, 11, 0.45);
}

.pm2-delivery-estimate--backorder .pm2-delivery-estimate__icon {
    color: var(--pm2-warning-dark);
}

.pm2-delivery-estimate--backorder .pm2-delivery-estimate__label {
    color: var(--pm2-warning-dark);
}

.pm2-delivery-estimate--backorder .pm2-delivery-estimate__dates strong {
    color: var(--pm2-warning-dark);
}

.pm2-delivery-estimate__backorder-note {
    font-size: 0.8rem;
    color: var(--pm2-warning-dark);
    margin-top: 0.35rem;
    line-height: 1.4;
}

.pm2-delivery-estimate__backorder-note strong {
    font-weight: 700;
}

.pm2-delivery-estimate--cart .pm2-delivery-estimate__content {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.25rem 0.5rem;
}

.pm2-delivery-estimate--cart .pm2-delivery-estimate__label {
    margin-bottom: 0;
    font-size: 0.85rem;
    text-transform: none;
}

.pm2-delivery-estimate--cart .pm2-delivery-estimate__exclusion {
    flex-basis: 100%;
    margin-top: 0.2rem;
}

@media (max-width: 480px) {
    .pm2-delivery-estimate {
        padding: 0.75rem 1rem;
        gap: 0.5rem;
    }

    .pm2-delivery-estimate__dates {
        font-size: 0.9rem;
    }

    .pm2-delivery-estimate--cart .pm2-delivery-estimate__content {
        flex-direction: column;
        gap: 0.15rem;
    }
}

/* ---- Delivery badges (per cart item & cart summary list) ---- */
.pm2-delivery-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.7rem;
    font-weight: 600;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    line-height: 1;
    white-space: nowrap;
    vertical-align: middle;
}

.pm2-delivery-badge svg {
    flex-shrink: 0;
}

.pm2-delivery-badge--available {
    background: var(--pm2-success-soft);
    color: var(--pm2-success-dark);
    border: 1px solid rgba(22, 163, 74, 0.25);
}

.pm2-delivery-badge--backorder {
    background: var(--pm2-warning-soft);
    color: var(--pm2-warning-dark);
    border: 1px solid rgba(245, 158, 11, 0.45);
}

/* Inline variant inside cart item rows */
.pm2-delivery-badge--inline {
    margin-top: 0.35rem;
}

/* Cart summary item list */
.pm2-delivery-estimate__cart-items {
    margin-top: 0.6rem;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.pm2-delivery-estimate__cart-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.8rem;
    color: #374151;
    flex-wrap: wrap;
}

.pm2-delivery-estimate__cart-item-name {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pm2-delivery-estimate__cart-item-days {
    font-size: 0.75rem;
    color: var(--pm2-warning-dark);
    font-style: italic;
}

/* Backorder cart variant: allow block layout for content */
.pm2-delivery-estimate--cart.pm2-delivery-estimate--backorder .pm2-delivery-estimate__content {
    display: block;
}

.pm2-delivery-estimate--cart.pm2-delivery-estimate--backorder .pm2-delivery-estimate__dates {
    margin-top: 0.25rem;
}

/* ============================================================
   MINICART DRAWER
   ============================================================ */
.ilparadisobrugola-header-cart {
    display: inline-flex;
    align-items: center;
}

.ilparadisobrugola-header-cart__link {
    position: relative;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 0.15rem;
    background: none;
    border: none;
    cursor: pointer;
    color: var(--pm2-gray-700);
    transition: var(--pm2-transition-fast);
    padding: 0;
}

.ilparadisobrugola-header-cart__link:hover {
    color: var(--pm2-primary);
}

.ilparadisobrugola-header-cart__link svg {
    width: 28px;
    height: 28px;
}

.ilparadisobrugola-header-cart__badge {
    position: absolute;
    top: -6px;
    right: -8px;
    background: var(--pm2-cta);
    color: white;
    font-size: 0.6rem;
    font-weight: 700;
    min-width: 18px;
    height: 18px;
    line-height: 18px;
    text-align: center;
    border-radius: 999px;
    padding: 0 4px;
}

.ilparadisobrugola-header-cart__text {
    font-size: 0.65rem;
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
    color: var(--pm2-gray-600);
}

@media (max-width: 770px) {
    .ilparadisobrugola-header-cart__text {
        display: none;
    }
    .ilparadisobrugola-header-cart__link svg {
        width: 24px;
        height: 24px;
    }
}

.ilparadisobrugola-minicart-drawer {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 9999;
    pointer-events: none;
    visibility: hidden;
}

.ilparadisobrugola-minicart-drawer.is-open {
    pointer-events: auto;
    visibility: visible;
}

.ilparadisobrugola-minicart-drawer__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.ilparadisobrugola-minicart-drawer.is-open .ilparadisobrugola-minicart-drawer__overlay {
    opacity: 1;
}

.ilparadisobrugola-minicart-drawer__content {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 520px;
    max-width: 90vw;
    background: #fff;
    display: flex;
    flex-direction: column;
    transform: translateX(100%);
    transition: transform 0.3s ease;
    box-shadow: -4px 0 24px rgba(0, 0, 0, 0.12);
}

.ilparadisobrugola-minicart-drawer.is-open .ilparadisobrugola-minicart-drawer__content {
    transform: translateX(0);
}

.ilparadisobrugola-minicart-drawer__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--pm2-gray-200);
    flex-shrink: 0;
}

.ilparadisobrugola-minicart-drawer__title {
    font-family: var(--pm2-font-display);
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--pm2-gray-900);
    margin: 0;
}

.ilparadisobrugola-minicart-drawer__count {
    font-weight: 500;
    color: var(--pm2-gray-500);
    font-size: 0.9rem;
}

.ilparadisobrugola-minicart-drawer__close {
    background: none;
    border: none;
    cursor: pointer;
    color: var(--pm2-gray-500);
    padding: 0.25rem;
    border-radius: 6px;
    transition: var(--pm2-transition-fast);
}

.ilparadisobrugola-minicart-drawer__close:hover {
    background: var(--pm2-gray-100);
    color: var(--pm2-gray-900);
}

.ilparadisobrugola-minicart-drawer__body {
    flex: 1;
    overflow-y: auto;
    padding: 1rem 1.25rem;
}

.ilparadisobrugola-minicart-drawer__empty {
    text-align: center;
    color: var(--pm2-gray-500);
    padding: 3rem 1rem;
    font-size: 0.95rem;
}

.ilparadisobrugola-minicart-drawer__footer {
    border-top: 1px solid var(--pm2-gray-200);
    padding: 1rem 1.25rem;
    flex-shrink: 0;
    background: var(--pm2-gray-50);
}

.ilparadisobrugola-minicart-drawer__subtotal {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.75rem;
    font-size: 1rem;
}

.ilparadisobrugola-minicart-drawer__subtotal strong {
    font-size: 1.15rem;
    color: var(--pm2-gray-900);
}

.ilparadisobrugola-minicart-drawer__actions {
    display: flex;
    gap: 0.5rem;
}

.ilparadisobrugola-minicart-drawer__actions .ilparadisobrugola-btn {
    flex: 1;
    text-align: center;
    padding: 0.75rem 1rem;
    border-radius: 8px;
    font-weight: 600;
    font-size: 0.875rem;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: var(--pm2-transition-fast);
}

.ilparadisobrugola-minicart-drawer__actions .ilparadisobrugola-btn--primary {
    background: var(--pm2-cta);
    color: white;
    border: 2px solid var(--pm2-cta);
    box-shadow: 0 4px 12px rgba(var(--pm2-cta-rgb), 0.30);
}

.ilparadisobrugola-minicart-drawer__actions .ilparadisobrugola-btn--primary:hover {
    background: var(--pm2-cta-dark);
    border-color: var(--pm2-cta-dark);
    transform: translateY(-1px);
    box-shadow: 0 8px 22px rgba(var(--pm2-cta-rgb), 0.40);
}

.ilparadisobrugola-minicart-drawer__actions .ilparadisobrugola-btn--secondary {
    background: white;
    color: var(--pm2-gray-700);
    border: 2px solid var(--pm2-gray-300);
}

.ilparadisobrugola-minicart-drawer__actions .ilparadisobrugola-btn--secondary:hover {
    border-color: var(--pm2-gray-500);
    background: var(--pm2-gray-50);
}

/* Mini Cart Delivery Estimate */
.pm2-minicart-delivery {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.6rem 0;
    margin-bottom: 0.75rem;
    font-size: 0.85rem;
    color: var(--pm2-gray-600);
    border-bottom: 1px solid var(--pm2-gray-200);
}
.pm2-minicart-delivery svg {
    flex-shrink: 0;
    color: var(--pm2-primary);
}
.pm2-minicart-delivery strong {
    color: var(--pm2-gray-900);
}

/* Backorder variant */
.pm2-minicart-delivery--backorder {
    color: var(--pm2-warning-dark);
    background: var(--pm2-warning-soft);
    border-radius: 0.5rem;
    padding: 0.5rem 0.75rem;
    border: 1px solid rgba(245, 158, 11, 0.45);
    border-bottom: 1px solid rgba(245, 158, 11, 0.45);
}
.pm2-minicart-delivery--backorder svg {
    color: var(--pm2-warning-dark);
}
.pm2-minicart-delivery--backorder strong {
    color: var(--pm2-warning-dark);
}

/* Free Shipping Progress Bar */
.pm2-free-shipping-bar {
    padding: 0.75rem 1rem;
    background: var(--pm2-gray-50, #f9fafb);
    border-bottom: 1px solid var(--pm2-gray-100, #f3f4f6);
}
.pm2-free-shipping-bar--cart {
    background: linear-gradient(135deg, var(--pm2-warning-soft) 0%, rgba(245, 158, 11, 0.30) 100%);
    border-radius: 12px;
    padding: 1rem 1.25rem;
    margin-bottom: 1.5rem;
    border: none;
}
.pm2-free-shipping-bar__text {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.85rem;
    color: var(--pm2-gray-700, #374151);
    margin: 0 0 0.5rem 0;
    line-height: 1.4;
}
.pm2-free-shipping-bar__text--achieved {
    color: #059669;
    font-weight: 600;
}
.pm2-free-shipping-bar__text svg {
    flex-shrink: 0;
}
.pm2-free-shipping-bar__text--achieved svg {
    color: #059669;
}
.pm2-free-shipping-bar__progress {
    width: 100%;
    height: 6px;
    background: var(--pm2-gray-200, #e5e7eb);
    border-radius: 3px;
    overflow: hidden;
}
.pm2-free-shipping-bar__fill {
    height: 100%;
    background: linear-gradient(90deg, var(--pm2-success), var(--pm2-success-dark));
    border-radius: 3px;
    transition: width 0.4s ease;
}
.pm2-free-shipping-bar--cart .pm2-free-shipping-bar__progress {
    height: 8px;
    border-radius: 4px;
}
.pm2-free-shipping-bar--cart .pm2-free-shipping-bar__text {
    font-size: 0.95rem;
}

/* ============================================
   CHECKOUT PAGE STYLES
   Il Paradiso della Brugola — Modern One-Page Checkout
   ============================================ */

/* --- Page title --- */
.checkout-onepage-index .page-title h1 {
    font-family: var(--pm2-font-display, 'Roboto Condensed', 'Inter', sans-serif);
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--pm2-gray-900, #111827);
    margin-bottom: 0.5rem;
    text-align: center;
}

/* --- Layout: 2-column (steps + summary sidebar) --- */
body.checkout-onepage-index:has(.page-header-minimal):not(:has(.onestep-checkout)) .main-container {
    max-width: 100%;
    margin: 0 auto;
}
.checkout-onepage-index .col-main {
    width: 100%;
    float: none;
    padding: 1.5rem 2.5rem 3rem;
}
.opc-layout {
    display: grid;
    grid-template-columns: 60% 40%;
    gap: 1.5rem;
    align-items: start;
}
.opc-layout__main {
    min-width: 0;
}
.opc-layout__sidebar {
    align-self: start;
}

/* Remove background from radio/checkbox labels in checkout */
.form-list .control label,
.sp-methods dt label,
#checkout-shipping-method-load .sp-methods dd label,
#co-shipping-method-form .sp-methods dd label,
.product-options ul.options-list label {
    background-color: transparent;
}
.form-list .control label:hover,
.sp-methods dt label:hover,
#checkout-shipping-method-load .sp-methods dd label:hover,
#co-shipping-method-form .sp-methods dd label:hover,
.product-options ul.options-list label:hover {
    background-color: transparent;
}

/* Reset agreement-content box */
.checkout-agreements .agreement-content {
    overflow-y: visible;
    max-width: none;
    max-height: none;
    margin-bottom: 0;
    padding: 0;
    border: none;
    background: transparent;
}

/* Payment method details: border only when visible */
.sp-methods dd > ul.form-list {
    border: none;
    padding: 0;
    margin: 0;
}
.sp-methods dd > ul.form-list[style*="display: block"],
.sp-methods dd > ul.form-list[style*="display:block"],
.sp-methods dd > ul.form-list:not([style*="display: none"]):not([style*="display:none"]) {
    border: 1px solid var(--pm2-gray-200, #e5e7eb);
    border-radius: 10px;
    padding: 0.75rem 1rem;
    margin-top: 0.5rem;
    background: var(--pm2-gray-50, #f9fafb);
}

/* Hide review step in accordion — review content loads in sidebar */
#opc-review {
    display: none !important;
}

/* ---- Progress Stepper Bar ---- */
.opc-progress {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    margin-bottom: 1.5rem;
    padding: 1.25rem 0.5rem;
    background: #fff;
    border-radius: 14px;
    border: 1px solid var(--pm2-gray-200, #e5e7eb);
    box-shadow: 0 1px 4px rgba(0,0,0,0.04);
    overflow-x: auto;
}
.opc-progress__step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    flex-shrink: 0;
    min-width: 0;
}
.opc-progress__dot {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    font-family: var(--pm2-font-display, 'Roboto Condensed', 'Inter', sans-serif);
    font-size: 0.85rem;
    font-weight: 700;
    background: var(--pm2-gray-200, #e5e7eb);
    color: var(--pm2-gray-500, #6b7280);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
}
.opc-progress__label {
    font-family: var(--pm2-font-body, 'Inter', sans-serif);
    font-size: 0.7rem;
    font-weight: 500;
    color: var(--pm2-gray-500, #6b7280);
    text-align: center;
    line-height: 1.2;
    max-width: 80px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    transition: color 0.3s ease;
}
.opc-progress__connector {
    width: 32px;
    height: 3px;
    background: var(--pm2-gray-200, #e5e7eb);
    border-radius: 2px;
    flex-shrink: 0;
    margin: 0 4px;
    margin-bottom: 1.1rem;
    transition: background 0.3s ease;
}
.opc-progress__connector.is-done {
    background: var(--pm2-success);
}

/* Progress states */
.opc-progress__step.is-active .opc-progress__dot {
    background: var(--pm2-cta);
    color: #fff;
    box-shadow: 0 0 0 4px rgba(var(--pm2-cta-rgb), 0.22);
    transform: scale(1.1);
}
.opc-progress__step.is-active .opc-progress__label {
    color: var(--pm2-cta-dark);
    font-weight: 600;
}
.opc-progress__step.is-complete .opc-progress__dot {
    background: var(--pm2-success);
    color: #fff;
}
.opc-progress__step.is-complete .opc-progress__label {
    color: var(--pm2-gray-700, #374151);
}



/* ---- OPC Steps List ---- */
.opc {
    list-style: none;
    padding: 0;
    margin: 0;
}
.opc > li {
    background: #fff;
    border: 1px solid var(--pm2-gray-200, #e5e7eb);
    border-radius: 14px;
    margin-bottom: 0.75rem;
    overflow: hidden;
    transition: box-shadow 0.3s ease, border-color 0.3s ease;
}
.opc > li.active {
    box-shadow: 0 6px 24px rgba(var(--pm2-cta-rgb), 0.14), 0 2px 8px rgba(0,0,0,0.04);
    border-color: var(--pm2-cta);
}
.opc > li:not(.active):not(.allow) {
    opacity: 0.55;
}

/* ---- Step Titles (Accordion Headers) ---- */
.opc .step-title {
    padding: 0.875rem 1.25rem;
    background: #fff;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    transition: background 0.2s ease;
    user-select: none;
}
.opc .active .step-title {
    background: linear-gradient(135deg, rgba(var(--pm2-cta-rgb), 0.06) 0%, rgba(var(--pm2-cta-rgb), 0.15) 100%);
    border-bottom: 1px solid rgba(var(--pm2-cta-rgb), 0.18);
}
.opc .step-title .number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    font-family: var(--pm2-font-display, 'Roboto Condensed', 'Inter', sans-serif);
    font-size: 0.85rem;
    font-weight: 700;
    flex-shrink: 0;
    background: var(--pm2-gray-200, #e5e7eb);
    color: var(--pm2-gray-500, #6b7280);
    transition: all 0.25s ease;
}
.opc .active .step-title .number {
    background: var(--pm2-cta);
    color: #fff;
}
.opc .allow .step-title .number {
    background: var(--pm2-success);
    color: #fff;
    font-size: 0;
}
.opc .allow .step-title .number::after {
    content: '✓';
    font-size: 0.85rem;
}
.opc .step-title h2 {
    font-family: var(--pm2-font-display, 'Roboto Condensed', 'Inter', sans-serif);
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--pm2-gray-900, #111827);
    margin: 0;
    line-height: 1.3;
}
.opc .allow .step-title h2 {
    color: var(--pm2-gray-600, #4b5563);
}
.opc > li:not(.active):not(.allow) .step-title h2 {
    color: var(--pm2-gray-400, #9ca3af);
}
.opc .step-title a {
    color: var(--pm2-cta-dark);
    font-family: var(--pm2-font-body, 'Inter', sans-serif);
    font-size: 0.8rem;
    margin-left: auto;
    text-decoration: none;
    font-weight: 600;
    padding: 0.25rem 0.6rem;
    border-radius: 6px;
    background: rgba(var(--pm2-cta-rgb), 0.10);
    transition: all 0.15s ease;
}
.opc .step-title a:hover {
    background: rgba(var(--pm2-cta-rgb), 0.18);
    color: var(--pm2-cta-dark);
}

/* ---- Step Content ---- */
.opc .step {
    padding: 1.25rem 1.25rem 1.5rem;
    animation: opc-fade-in 0.3s ease;
}
@keyframes opc-fade-in {
    from { opacity: 0; transform: translateY(4px); }
    to { opacity: 1; transform: translateY(0); }
}

/* ---- Form Fields ---- */
.opc .form-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.opc .form-list li {
    margin-bottom: 0.875rem;
}
.opc .form-list label {
    font-family: var(--pm2-font-body, 'Inter', sans-serif);
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--pm2-gray-700, #374151);
    margin-bottom: 0.3rem;
    display: block;
    letter-spacing: 0.01em;
}
.opc .form-list label em {
    color: var(--pm2-primary);
    font-style: normal;
}
.opc input[type="text"],
.opc input[type="email"],
.opc input[type="tel"],
.opc input[type="password"],
.opc input[type="number"],
.opc input[type="date"],
.opc input[type="time"],
.opc input[type="datetime-local"],
.opc select,
.opc textarea,
.checkout-onepage-index .input-text,
.checkout-onepage-index select {
    width: 100%;
    padding: 0.65rem 0.875rem;
    border: 1.5px solid var(--pm2-gray-300, #d1d5db);
    border-radius: 10px;
    font-family: var(--pm2-font-body, 'Inter', sans-serif);
    font-size: 0.9rem;
    line-height: 1.4;
    color: var(--pm2-gray-900, #111827);
    background-color: #fff;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    box-sizing: border-box;
    outline: none;
}
.opc select,
.opc input[type="date"],
.opc input[type="time"],
.opc input[type="datetime-local"],
.checkout-onepage-index select {
    height: calc(0.65rem * 2 + 1.4 * 0.9rem + 3px);
}
.opc input[type="text"]:focus,
.opc input[type="email"]:focus,
.opc input[type="tel"]:focus,
.opc input[type="password"]:focus,
.opc input[type="number"]:focus,
.opc input[type="date"]:focus,
.opc input[type="time"]:focus,
.opc input[type="datetime-local"]:focus,
.opc select:focus,
.opc textarea:focus,
.checkout-onepage-index .input-text:focus,
.checkout-onepage-index select:focus {
    border-color: var(--pm2-primary);
    box-shadow: 0 0 0 3px rgba(var(--pm2-cta-rgb), 0.14);
}
.opc input[type="text"]::placeholder,
.opc input[type="email"]::placeholder,
.opc input[type="tel"]::placeholder {
    color: var(--pm2-gray-400, #9ca3af);
}
.opc input[type="checkbox"],
.opc input[type="radio"] {
    accent-color: var(--pm2-primary);
    width: 1.1rem;
    height: 1.1rem;
    cursor: pointer;
}

/* Fix inner fieldsets/inputs taking full width (fieldset min-width quirk) */
.opc .form-list fieldset,
.opc .form-list fieldset > ul,
.opc .form-list .input-box {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    float: none;
    box-sizing: border-box;
}

/* Two-column form fields on desktop */
.opc .form-list .fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 0.75rem;
}
.opc .form-list .fields .field {
    margin-bottom: 0.875rem;
}
.opc .form-list .wide,
.opc .form-list .fields .wide {
    grid-column: 1 / -1;
}

/* ---- Buttons ---- */
.opc .buttons-set {
    margin-top: 1.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--pm2-gray-100, #f3f4f6);
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}
.opc .buttons-set .button,
.opc .buttons-set button,
.checkout-onepage-index .btn-checkout,
#review-buttons-container .btn-checkout {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.75rem 2rem;
    border: none;
    border-radius: 10px;
    font-family: var(--pm2-font-display, 'Roboto Condensed', 'Inter', sans-serif);
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
    text-transform: none;
    letter-spacing: 0;
    line-height: 1.4;
}
.opc .buttons-set .button,
.checkout-onepage-index .btn-checkout,
#review-buttons-container .btn-checkout {
    background: var(--pm2-cta);
    color: #fff;
    box-shadow: 0 4px 12px rgba(var(--pm2-cta-rgb), 0.28);
}
.opc .buttons-set .button:hover,
.checkout-onepage-index .btn-checkout:hover,
#review-buttons-container .btn-checkout:hover {
    background: var(--pm2-cta-dark);
    box-shadow: 0 8px 22px rgba(var(--pm2-cta-rgb), 0.42);
    transform: translateY(-1px);
}
.opc .buttons-set .button:active,
.checkout-onepage-index .btn-checkout:active,
#review-buttons-container .btn-checkout:active {
    transform: translateY(0);
    box-shadow: 0 2px 6px rgba(var(--pm2-cta-rgb), 0.22);
}

/* Place Order — extra emphasis */
#review-buttons-container .btn-checkout {
    width: 100%;
    padding: 0.9rem 2rem;
    font-size: 1.1rem;
    border-radius: 12px;
    box-shadow: 0 4px 16px rgba(var(--pm2-cta-rgb), 0.28);
}
#review-buttons-container .btn-checkout:hover {
    box-shadow: 0 6px 24px rgba(var(--pm2-cta-rgb), 0.38);
}

.opc .buttons-set .back-link,
.opc .buttons-set a:not(.button) {
    color: var(--pm2-gray-500, #6b7280);
    font-size: 0.85rem;
    font-family: var(--pm2-font-body, 'Inter', sans-serif);
    text-decoration: none;
    transition: color 0.15s ease;
}
.opc .buttons-set .back-link:hover,
.opc .buttons-set a:not(.button):hover {
    color: var(--pm2-primary);
}
.opc .buttons-set p.required {
    font-size: 0.75rem;
    color: var(--pm2-gray-400, #9ca3af);
    margin: 0;
    width: 100%;
}

/* ---- Shipping / Payment Method Lists ---- */
.opc .sp-methods,
.opc #checkout-shipping-method-load dl {
    margin: 0;
}
.opc .sp-methods dt,
.opc #checkout-shipping-method-load dt {
    font-family: var(--pm2-font-display, 'Roboto Condensed', 'Inter', sans-serif);
    font-weight: 600;
    font-size: 0.95rem;
    color: var(--pm2-gray-800, #1f2937);
    margin-bottom: 0.375rem;
    padding: 0.375rem 0;
}

.opc .sp-methods dd label,
.opc #checkout-shipping-method-load dd label {
    display: inline;
    font-weight: 400;
    cursor: pointer;
    font-size: 0.9rem;
}

/* ---- Stripe Payment Form ---- */
.opc #payment_form_stripe_card {
    padding: 0.5rem 0 0;
    margin: 0;
    list-style: none;
}
.opc #payment_form_stripe_card li {
    margin-bottom: 0.5rem;
}
.opc #stripe-card-element {
    display: block;
    width: 100%;
    padding: 0.65rem 0.875rem;
    border: 1.5px solid var(--pm2-gray-300, #d1d5db);
    border-radius: 10px;
    background-color: #fff;
    box-shadow: none;
    margin: 0;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    min-height: 40px;
}
.opc #stripe-card-element.StripeElement--focus {
    border-color: var(--pm2-primary);
    box-shadow: 0 0 0 3px rgba(var(--pm2-cta-rgb), 0.14);
}
.opc #stripe-card-element.StripeElement--invalid {
    border-color: var(--pm2-danger);
}
.opc #stripe-card-errors:not(:empty) {
    border: 1px solid rgba(220, 38, 38, 0.45);
    border-radius: 8px;
    background: var(--pm2-danger-soft);
    color: var(--pm2-danger);
    padding: 0.5rem 0.75rem;
    font-size: 0.8rem;
    margin-top: 0.5rem;
}

/* Payment methods */
.opc #payment-tool-tip,
.opc .tool-tip {
    background: #fff;
    border: 1px solid var(--pm2-gray-200, #e5e7eb);
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.1);
    padding: 1rem;
    font-family: var(--pm2-font-body, 'Inter', sans-serif);
    font-size: 0.85rem;
}
.opc .tool-tip .btn-close {
    color: var(--pm2-gray-500, #6b7280);
}

/* ---- Order Review Table ---- */
.checkout-onepage-index .data-table,
#checkout-review-table {
    width: 100%;
    border-collapse: collapse;
    font-family: var(--pm2-font-body, 'Inter', sans-serif);
}
#checkout-review-table thead th,
.checkout-onepage-index .data-table thead th {
    background: var(--pm2-gray-50, #f9fafb);
    font-family: var(--pm2-font-body, 'Inter', sans-serif);
    font-weight: 600;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--pm2-gray-500, #6b7280);
    padding: 0.625rem 0.75rem;
    border-bottom: 1px solid var(--pm2-gray-200, #e5e7eb);
    text-align: left;
}
#checkout-review-table td,
.checkout-onepage-index .data-table td {
    padding: 0.75rem;
    border-bottom: 1px solid var(--pm2-gray-100, #f3f4f6);
    font-size: 0.875rem;
    color: var(--pm2-gray-700, #374151);
    vertical-align: middle;
}
#checkout-review-table .product-name {
    font-weight: 600;
    color: var(--pm2-gray-900, #111827);
}
#checkout-review-table .product-name a {
    color: inherit;
    text-decoration: none;
}
#checkout-review-table .product-name a:hover {
    color: var(--pm2-primary);
}
#checkout-review-table tfoot td,
#checkout-review-table tfoot th {
    font-weight: 600;
    border-top: 2px solid var(--pm2-gray-200, #e5e7eb);
    padding: 0.625rem 0.75rem;
    font-size: 0.9rem;
}
#checkout-review-table tfoot tr.last td,
#checkout-review-table tfoot tr.last th {
    font-size: 1.15rem;
    font-family: var(--pm2-font-display, 'Roboto Condensed', 'Inter', sans-serif);
    font-weight: 700;
    color: var(--pm2-gray-900, #111827);
}
#checkout-review-table tfoot tr.last .price {
    color: var(--pm2-primary);
}

/* ---- Discount / Coupon Section ---- */
#checkout-review-table-wrapper .discount {
    margin-top: 1.25rem;
    padding: 1rem;
    background: var(--pm2-gray-50, #f9fafb);
    border-radius: 10px;
    border: 1px solid var(--pm2-gray-200, #e5e7eb);
}
#checkout-review-table-wrapper .discount label {
    font-family: var(--pm2-font-body, 'Inter', sans-serif);
    font-weight: 600;
    font-size: 0.85rem;
}
#checkout-review-table-wrapper .discount .input-text {
    border-radius: 10px 0 0 10px;
}
#checkout-review-table-wrapper .discount .button {
    border-radius: 0 10px 10px 0;
    background: var(--pm2-primary);
    color: #fff;
    border: none;
    padding: 0.65rem 1.25rem;
    font-weight: 600;
}
#checkout-review-table-wrapper .discount .button:hover {
    background: var(--pm2-primary-dark);
}

/* ---- Sidebar Progress Block ---- */
.checkout-onepage-index .block-progress,
.opc-block-progress {
    background: #fff;
    border: 1px solid var(--pm2-gray-200, #e5e7eb);
    border-radius: 14px;
    padding: 1.25rem;
    margin-bottom: 1rem;
}
.checkout-onepage-index .block-progress .block-title,
.opc-block-progress .block-title {
    font-family: var(--pm2-font-display, 'Roboto Condensed', 'Inter', sans-serif);
    font-size: 1rem;
    font-weight: 600;
    color: var(--pm2-gray-900, #111827);
    margin-bottom: 0.75rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid var(--pm2-cta);
}
.opc-block-progress dt {
    font-weight: 600;
    font-size: 0.8rem;
    color: var(--pm2-gray-700, #374151);
    margin-top: 0.5rem;
    padding: 0.375rem 0.5rem;
    background: var(--pm2-gray-50, #f9fafb);
    border-radius: 6px;
}
.opc-block-progress dd {
    font-size: 0.85rem;
    color: var(--pm2-gray-600, #4b5563);
    padding: 0.25rem 0.5rem;
}
.opc-block-progress a {
    color: var(--pm2-primary);
    font-size: 0.8rem;
    text-decoration: none;
}
.opc-block-progress a:hover {
    text-decoration: underline;
}

/* ---- Error & Validation Messages ---- */
.checkout-onepage-index .messages,
.opc .messages {
    margin-bottom: 1rem;
}
.checkout-onepage-index .messages li li,
.opc .messages li li {
    font-family: var(--pm2-font-body, 'Inter', sans-serif);
    font-size: 0.875rem;
    padding: 0.75rem 1rem;
    border-radius: 10px;
    margin-bottom: 0.5rem;
}
.checkout-onepage-index .error-msg,
.opc .error-msg,
.checkout-onepage-index .messages .error-msg {
    background: var(--pm2-danger-soft);
    color: var(--pm2-danger-dark);
    border: 1px solid rgba(220, 38, 38, 0.25);
    border-radius: 10px;
    padding: 0.75rem 1rem;
}
.checkout-onepage-index .success-msg,
.opc .success-msg {
    background: var(--pm2-success-soft);
    color: var(--pm2-success-dark);
    border: 1px solid rgba(22, 163, 74, 0.25);
    border-radius: 10px;
    padding: 0.75rem 1rem;
}
.checkout-onepage-index .notice-msg,
.opc .notice-msg {
    background: var(--pm2-warning-soft);
    color: var(--pm2-warning-dark);
    border: 1px solid rgba(245, 158, 11, 0.30);
    border-radius: 10px;
    padding: 0.75rem 1rem;
}
.opc .validation-advice {
    font-size: 0.78rem;
    color: var(--pm2-danger);
    margin-top: 0.2rem;
    font-family: var(--pm2-font-body, 'Inter', sans-serif);
}

/* ---- Loading Indicator ---- */
.opc .loading-mask,
.opc .please-wait {
    font-family: var(--pm2-font-body, 'Inter', sans-serif);
    color: var(--pm2-gray-500, #6b7280);
    font-size: 0.875rem;
}
.opc .please-wait img {
    vertical-align: middle;
    margin-right: 0.5rem;
}

/* ---- Login Section ---- */
#checkout-step-login .col2-set {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
}
#checkout-step-login .col2-set .col-1,
#checkout-step-login .col2-set .col-2 {
    padding: 1rem;
    background: var(--pm2-gray-50, #f9fafb);
    border-radius: 10px;
    width: auto;
    float: none;
}
#checkout-step-login h3,
#checkout-step-login h4 {
    font-family: var(--pm2-font-display, 'Roboto Condensed', 'Inter', sans-serif);
    font-size: 1rem;
    color: var(--pm2-gray-800, #1f2937);
    margin-bottom: 0.75rem;
}

/* ---- Gift Message ---- */
.opc .gift-messages-form {
    background: var(--pm2-gray-50, #f9fafb);
    border: 1px solid var(--pm2-gray-200, #e5e7eb);
    border-radius: 10px;
    padding: 1rem;
}
.opc .gift-messages-form h4 {
    font-family: var(--pm2-font-display, 'Roboto Condensed', 'Inter', sans-serif);
}

/* ---- Agreements / Terms checkboxes ---- */
.opc .checkout-agreements li {
    margin-bottom: 0.75rem;
}
.opc .checkout-agreements label {
    display: inline-flex;
    align-items: flex-start;
    gap: 0.5rem;
    cursor: pointer;
    font-size: 0.85rem;
    line-height: 1.4;
}
.opc .checkout-agreements a {
    color: var(--pm2-primary);
    text-decoration: underline;
}

/* ---- Responsive: Tablet (≤768px) ---- */
@media (max-width: 768px) {
    .checkout-onepage-index .col-main {
        padding: 1rem 0.5rem 2rem;
    }
    .opc-wrapper {
        max-width: 100%;
    }
    .opc-progress {
        padding: 0.875rem 0.375rem;
        margin-bottom: 1rem;
        border-radius: 10px;
    }
    .opc-progress__dot {
        width: 28px;
        height: 28px;
        font-size: 0.75rem;
    }
    .opc-progress__label {
        font-size: 0.625rem;
        max-width: 60px;
    }
    .opc-progress__connector {
        width: 20px;
        margin-bottom: 0.85rem;
    }
    .opc > li {
        border-radius: 10px;
        margin-bottom: 0.5rem;
    }
    .opc .step-title {
        padding: 0.75rem 1rem;
    }
    .opc .step-title h2 {
        font-size: 0.95rem;
    }
    .opc .step-title .number {
        width: 26px;
        height: 26px;
        font-size: 0.75rem;
    }
    .opc .step-title a {
        font-size: 0.7rem;
        padding: 0.2rem 0.5rem;
    }
    .opc .step {
        padding: 1rem;
    }
    .opc .form-list .fields {
        grid-template-columns: 1fr;
    }
    .opc .buttons-set {
        flex-direction: column;
        align-items: stretch;
    }
    .opc .buttons-set .button,
    .opc .buttons-set button {
        width: 100%;
        text-align: center;
        justify-content: center;
    }
    #checkout-step-login .col2-set {
        grid-template-columns: 1fr;
        gap: 0.75rem;
    }
    #checkout-review-table {
        font-size: 0.825rem;
    }
    #checkout-review-table th,
    #checkout-review-table td {
        padding: 0.5rem;
    }
    .checkout-onepage-index .page-title h1 {
        font-size: 1.35rem;
    }

    /* Sidebar: stack below steps on tablet */
    .opc-layout {
        grid-template-columns: 1fr;
    }
    .opc-layout__sidebar {
        position: static;
    }
    .opc-summary {
        border-radius: 10px;
    }
    .opc-summary__items {
        max-height: none;
    }
}

/* ---- Responsive: Small Phone (≤480px) ---- */
@media (max-width: 480px) {
    .checkout-onepage-index .col-main {
        padding: 0.5rem 0.25rem 2rem;
    }
    .opc-progress {
        padding: 0.75rem 0.25rem;
        gap: 0;
    }
    .opc-progress__dot {
        width: 24px;
        height: 24px;
        font-size: 0.65rem;
    }
    .opc-progress__label {
        display: none;
    }
    .opc-progress__connector {
        width: 16px;
        margin-bottom: 0;
    }
    .opc .step-title {
        padding: 0.625rem 0.75rem;
        gap: 0.5rem;
    }
    .opc .step {
        padding: 0.75rem;
    }
    .opc .step-title h2 {
        font-size: 0.9rem;
    }
    .checkout-onepage-index .page-title h1 {
        font-size: 1.2rem;
    }
}

/* ---- Order Summary Sidebar ---- */
.opc-summary {
    background: #fff;
    border: 1px solid var(--pm2-gray-200, #e5e7eb);
    border-radius: 14px;
    overflow: hidden;
}
.opc-summary__header {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.875rem 1rem;
    background: var(--pm2-gray-50, #f9fafb);
    border-bottom: 1px solid var(--pm2-gray-200, #e5e7eb);
}
.opc-summary__header svg {
    color: var(--pm2-gray-500, #6b7280);
    flex-shrink: 0;
}
.opc-summary__header h3 {
    font-family: var(--pm2-font-display, 'Roboto Condensed', 'Inter', sans-serif);
    font-size: 1rem;
    font-weight: 600;
    color: var(--pm2-gray-900, #111827);
    margin: 0;
    flex: 1;
}
.opc-summary__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    border-radius: 11px;
    background: var(--pm2-primary);
    color: #fff;
    font-family: var(--pm2-font-display, 'Roboto Condensed', 'Inter', sans-serif);
    font-size: 0.75rem;
    font-weight: 700;
}

/* Items list */
.opc-summary__items {
    max-height: 320px;
    overflow-y: auto;
    padding: 0.5rem 0;
    scrollbar-width: thin;
    scrollbar-color: var(--pm2-gray-300) transparent;
}
.opc-summary__item {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    padding: 0.5rem 1rem;
    transition: background 0.15s ease;
}
.opc-summary__item:hover {
    background: var(--pm2-gray-50, #f9fafb);
}
.opc-summary__item-img {
    position: relative;
    flex-shrink: 0;
    width: 52px;
    height: 52px;
}
.opc-summary__item-img img {
    width: 52px;
    height: 52px;
    object-fit: cover;
    border-radius: 8px;
    border: 1px solid var(--pm2-gray-200, #e5e7eb);
}
.opc-summary__item-qty {
    position: absolute;
    top: -6px;
    right: -6px;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    background: var(--pm2-gray-700, #374151);
    color: #fff;
    font-size: 0.65rem;
    font-weight: 700;
    border-radius: 9px;
}
.opc-summary__item-info {
    flex: 1;
    min-width: 0;
}
.opc-summary__item-name {
    display: block;
    font-family: var(--pm2-font-body, 'Inter', sans-serif);
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--pm2-gray-800, #1f2937);
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
.opc-summary__item-options {
    display: block;
    font-size: 0.7rem;
    color: var(--pm2-gray-500, #6b7280);
    margin-top: 0.15rem;
}
.opc-summary__item-price {
    font-family: var(--pm2-font-body, 'Inter', sans-serif);
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--pm2-gray-900, #111827);
    white-space: nowrap;
    flex-shrink: 0;
}

/* Totals */
.opc-summary__totals {
    padding: 0.75rem 1rem;
    border-top: 1px solid var(--pm2-gray-200, #e5e7eb);
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}
.opc-summary__total-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-family: var(--pm2-font-body, 'Inter', sans-serif);
    font-size: 0.825rem;
    color: var(--pm2-gray-700, #374151);
}
.opc-summary__total-row--grand {
    margin-top: 0.375rem;
    padding-top: 0.625rem;
    border-top: 2px solid var(--pm2-gray-200, #e5e7eb);
    font-size: 1.05rem;
    font-weight: 700;
    font-family: var(--pm2-font-display, 'Roboto Condensed', 'Inter', sans-serif);
    color: var(--pm2-gray-900, #111827);
}
.opc-summary__total-row--grand span:last-child {
    color: var(--pm2-primary);
    font-size: 1.15rem;
}
.opc-summary__total-row--free span:last-child {
    color: var(--pm2-success);
    font-weight: 600;
}
.opc-summary__total-row--pending span:last-child {
    font-size: 0.75rem;
    color: var(--pm2-gray-400, #9ca3af);
    font-style: italic;
}
.opc-summary__total-row--discount span:last-child {
    color: var(--pm2-success);
    font-weight: 600;
}

/* Footer badge */
.opc-summary__footer {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.375rem;
    padding: 0.625rem 1rem;
    background: var(--pm2-gray-50, #f9fafb);
    border-top: 1px solid var(--pm2-gray-200, #e5e7eb);
    color: var(--pm2-gray-500, #6b7280);
    font-size: 0.7rem;
    font-weight: 500;
}
.opc-summary__footer svg {
    color: var(--pm2-success);
    flex-shrink: 0;
}

/* Promo code in sidebar */
.opc-summary__promo {
    padding: 0.75rem 1rem;
    border-top: 1px solid var(--pm2-gray-200, #e5e7eb);
}

/* Delivery estimate in sidebar */
.opc-summary__delivery {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.625rem 1rem;
    border-top: 1px solid var(--pm2-gray-200, #e5e7eb);
    font-size: 0.8rem;
    color: var(--pm2-gray-700, #374151);
}
.opc-summary__delivery svg {
    color: var(--pm2-success);
    flex-shrink: 0;
}
.opc-summary__delivery strong {
    color: var(--pm2-gray-900, #111827);
}
.opc-summary__delivery--backorder svg {
    color: var(--pm2-warning, #f59e0b);
}
.opc-summary__promo-input-group {
    display: flex;
    gap: 0.5rem;
}
.opc-summary__promo-input-group .input-text {
    flex: 1;
    min-width: 0;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--pm2-gray-300, #d1d5db);
    border-radius: 8px;
    font-size: 0.825rem;
    font-family: var(--pm2-font-body, 'Inter', sans-serif);
    transition: border-color 0.2s ease;
}
.opc-summary__promo-input-group .input-text:focus {
    outline: none;
    border-color: var(--pm2-primary);
    box-shadow: 0 0 0 2px rgba(var(--pm2-cta-rgb), 0.18);
}
.opc-summary__promo-input-group .button {
    padding: 0.5rem 1rem;
    background: var(--pm2-gray-800, #1f2937);
    color: #fff;
    border: none;
    border-radius: 8px;
    font-size: 0.8rem;
    font-weight: 600;
    font-family: var(--pm2-font-display, 'Roboto Condensed', 'Inter', sans-serif);
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.2s ease;
}
.opc-summary__promo-input-group .button:hover {
    background: var(--pm2-gray-900, #111827);
}
.opc-summary__promo-message {
    font-size: 0.75rem;
    margin-top: 0.375rem;
}

/* Sidebar on mobile: collapsible toggle */
@media (max-width: 768px) {
    .opc-summary__items {
        max-height: 200px;
    }
}

/* Review section inside sidebar */
.opc-summary__review:empty {
    display: none;
}
.opc-summary__review {
    padding: 1rem;
    border-top: 1px solid var(--pm2-gray-200, #e5e7eb);
}
.opc-summary__review .buttons-set {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin: 0;
    padding: 0;
}
.opc-summary__review .btn-checkout {
    display: block;
    width: 100%;
    padding: 0.95rem 1.5rem;
    background: var(--pm2-cta);
    color: #fff;
    border: none;
    border-radius: var(--pm2-radius-lg);
    font-family: var(--pm2-font-display, 'Roboto Condensed', 'Inter', sans-serif);
    font-size: 1.0625rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    cursor: pointer;
    text-align: center;
    transition: background 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
    box-shadow: 0 4px 12px rgba(var(--pm2-cta-rgb), 0.3);
}
.opc-summary__review .btn-checkout:hover {
    background: var(--pm2-cta-dark);
    transform: translateY(-1px);
    box-shadow: 0 8px 22px rgba(var(--pm2-cta-rgb), 0.42);
}
.opc-summary__review .btn-checkout:active {
    transform: translateY(0);
    box-shadow: 0 2px 6px rgba(var(--pm2-cta-rgb), 0.22);
}
.opc-summary__review .please-wait {
    text-align: center;
    font-size: 0.825rem;
    color: var(--pm2-gray-500);
}
.opc-summary__review .please-wait img {
    width: 20px;
    height: 20px;
}
.opc-summary__review .continue-shopping {
    display: none;
}
.opc-summary__review #checkout-review-submit {
    margin: 0;
}
.opc-summary__review .checkout-agreements {
    font-size: 0.75rem;
    color: var(--pm2-gray-600, #4b5563);
    margin-bottom: 0.75rem;
    list-style: none;
    padding: 0;
    margin-top: 0;
}
.opc-summary__review .checkout-agreements li {
    margin-bottom: 0.625rem;
}
.opc-summary__review .checkout-agreements .agreement-content {
    max-height: 120px;
    overflow-y: auto;
    padding: 0.5rem 0.625rem;
    border: 1px solid var(--pm2-gray-200, #e5e7eb);
    border-radius: 8px;
    background: var(--pm2-gray-50, #f9fafb);
    font-size: 0.7rem;
    line-height: 1.5;
    margin-bottom: 0.375rem;
}
.opc-summary__review .checkout-agreements .agree {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    margin: 0;
}
.opc-summary__review .checkout-agreements .agree input[type="checkbox"] {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    accent-color: var(--pm2-primary);
    cursor: pointer;
}
.opc-summary__review .checkout-agreements .agree label {
    cursor: pointer;
    font-size: 0.8rem;
    line-height: 1.3;
    color: var(--pm2-gray-700, #374151);
}

/* ============================================================
   Offerte Widget Page
   ============================================================ */
.widget-offer-products {
    max-width: 1280px;
    margin: 0 auto;
    padding: 2rem 1rem;
}
.widget-offer-products .widget-title h2 {
    font-family: var(--pm2-font-heading, 'Inter', sans-serif);
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--pm2-text, #1a1a2e);
    margin: 0 0 1.5rem;
}
.widget-offer-products .ilparadisobrugola-products-grid {
    margin-bottom: 2rem;
}
.widget-offer-products .pages {
    text-align: center;
    padding: 1rem 0;
}
.widget-offer-products .pages ol {
    display: inline-flex;
    gap: 4px;
    list-style: none;
    padding: 0;
    margin: 0;
}
.widget-offer-products .pages li {
    display: inline-flex;
}
.widget-offer-products .pages a,
.widget-offer-products .pages .current {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 36px;
    padding: 0 10px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    transition: background .15s ease, color .15s ease;
}
.widget-offer-products .pages a {
    color: var(--pm2-text, #333);
    background: #f5f5f5;
}
.widget-offer-products .pages a:hover {
    background: var(--pm2-primary);
    color: #fff;
}
.widget-offer-products .pages .current {
    background: var(--pm2-primary);
    color: #fff;
}
.widget-offer-products .pages .next,
.widget-offer-products .pages .previous {
    font-size: 13px;
}

/* ============================================
   Fix 23/33: Global select reset with custom arrow
   ============================================ */
.ilparadisobrugola-theme select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    background-size: 12px;
    padding-right: 2.25rem;
}

/* ============================================
   Fix 24/28: Validation error styling
   ============================================ */
.ilparadisobrugola-theme .validation-failed,
.ilparadisobrugola-theme input.validation-failed,
.ilparadisobrugola-theme select.validation-failed,
.ilparadisobrugola-theme textarea.validation-failed {
    border-color: var(--pm2-danger) !important;
    box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.1);
}
.ilparadisobrugola-theme .validation-advice {
    color: var(--pm2-danger);
    font-size: 0.8125rem;
    margin-top: 0.25rem;
}

/* ─── Tier Prices / Volume Discount ─────────────────── */
.pm2-tier-prices {
    margin: 1rem 0;
    padding: 0.875rem 1rem;
    background: linear-gradient(135deg, var(--pm2-warning-soft), rgba(245, 158, 11, 0.30));
    border: 1px solid #f59e0b;
    border-radius: 0.75rem;
}
.pm2-tier-prices__title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-family: var(--pm2-font-display);
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--pm2-warning-dark);
    margin: 0 0 0.625rem;
}
.pm2-tier-prices__title svg {
    flex-shrink: 0;
    color: #f59e0b;
}
.pm2-tier-prices__tiers {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.pm2-tier-prices__tier {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.375rem 0.75rem;
    background: #fff;
    border-radius: 0.5rem;
    font-size: 0.8125rem;
    box-shadow: 0 1px 2px rgba(0,0,0,0.06);
}
.pm2-tier-prices__qty {
    font-weight: 700;
    color: var(--pm2-warning-dark);
    font-family: var(--pm2-font-display);
    font-size: 0.9375rem;
}
.pm2-tier-prices__price {
    color: #78350f;
}
.pm2-tier-prices__save {
    background: var(--pm2-danger);
    color: #fff;
    font-weight: 700;
    font-size: 0.6875rem;
    padding: 0.125rem 0.375rem;
    border-radius: 0.25rem;
}
.pm2-tier-prices__tier--btn {
    appearance: none;
    border: 2px solid transparent;
    background: #fff;
    cursor: pointer;
    font-family: inherit;
    text-align: left;
    transition: border-color 0.15s, box-shadow 0.15s, transform 0.1s;
}
.pm2-tier-prices__tier--btn:hover {
    border-color: #f59e0b;
    box-shadow: 0 2px 8px rgba(245, 158, 11, 0.25);
    transform: translateY(-1px);
}
.pm2-tier-prices__tier--active {
    border-color: #f59e0b !important;
    background: var(--pm2-warning-soft) !important;
    box-shadow: 0 2px 8px rgba(245, 158, 11, 0.4) !important;
}
.pm2-tier-prices__hint {
    margin: 0.5rem 0 0;
    font-size: 0.75rem;
    color: var(--pm2-warning-dark);
    opacity: 0.75;
}

/* Active tier price overlay */
.pm2-tier-active-price {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.375rem 0.5rem;
    animation: pm2TierFadeIn 0.2s ease;
}
@keyframes pm2TierFadeIn {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}
.pm2-tier-active-price__value {
    font-family: var(--pm2-font-display);
    font-size: 2rem;
    font-weight: 700;
    color: var(--pm2-primary-dark);
    line-height: 1;
}
.pm2-tier-active-price__badge {
    background: var(--pm2-danger);
    color: #fff;
    font-weight: 700;
    font-size: 0.75rem;
    padding: 0.1875rem 0.5rem;
    border-radius: 0.375rem;
    align-self: center;
}
.pm2-tier-active-price__was {
    width: 100%;
    font-size: 0.8125rem;
    color: var(--pm2-gray-500);
}

/* ══════════════════════════════════════════════════════════════
   Stock Alert — "Avvisami quando torna disponibile"
   ══════════════════════════════════════════════════════════════ */

/* Container */
.pm2-stockalert {
    margin: 1.25rem 0;
}

/* ── CTA Button (prominent, matching add-to-cart size) ── */
.pm2-stockalert__cta-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.625rem;
    width: 100%;
    padding: 0.9rem 1.75rem;
    background: linear-gradient(135deg, var(--pm2-primary), var(--pm2-cta-dark));
    color: #fff;
    border: none;
    border-radius: var(--pm2-radius, 12px);
    font-family: var(--pm2-font-heading, 'Roboto Condensed', 'Inter', sans-serif);
    font-size: 1.0625rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    cursor: pointer;
    transition: transform 0.15s ease, box-shadow 0.15s ease, opacity 0.15s;
    box-shadow: 0 4px 16px rgba(var(--pm2-cta-rgb), 0.38);
    text-decoration: none;
}
.pm2-stockalert__cta-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 24px rgba(var(--pm2-cta-rgb), 0.15);
}
.pm2-stockalert__cta-btn:active {
    transform: translateY(0);
}
.pm2-stockalert__cta-btn--loading {
    opacity: 0.7;
    pointer-events: none;
}
.pm2-stockalert__cta-btn svg {
    flex-shrink: 0;
}

/* ── Logged-in hint text under the button ── */
.pm2-stockalert__logged-hint {
    margin: 0.5rem 0 0;
    font-size: 0.8125rem;
    color: var(--pm2-text-muted, #64748b);
    text-align: center;
    line-height: 1.4;
}
.pm2-stockalert__logged-hint strong {
    color: var(--pm2-text, #1e293b);
}

/* ── Inline error/info messages (below button, before modal) ── */
.pm2-stockalert__inline-message {
    margin-top: 0.625rem;
    font-size: 0.8125rem;
    padding: 0.5rem 0.75rem;
    border-radius: var(--pm2-radius-sm, 8px);
    text-align: center;
}
.pm2-stockalert__inline-message--error {
    background: var(--pm2-danger-soft);
    color: var(--pm2-danger);
    border: 1px solid rgba(220, 38, 38, 0.25);
}
.pm2-stockalert__inline-message--success {
    background: var(--pm2-success-soft);
    color: var(--pm2-success);
    border: 1px solid rgba(22, 163, 74, 0.25);
}

/* ── Success / "done" state ── */
.pm2-stockalert__done {
    margin: 1.25rem 0;
}
.pm2-stockalert__done-inner {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    padding: 0.875rem 1.125rem;
    background: linear-gradient(135deg, rgba(var(--pm2-cta-rgb), 0.15), rgba(var(--pm2-cta-rgb), 0.14));
    border: 1.5px solid var(--pm2-primary-light);
    border-radius: var(--pm2-radius, 12px);
    font-family: var(--pm2-font-heading, 'Roboto Condensed', 'Inter', sans-serif);
    font-size: 1rem;
    font-weight: 600;
    color: var(--pm2-text, #1e293b);
}
.pm2-stockalert__done-inner svg {
    flex-shrink: 0;
}

/* ══════════════════════════════════════════════════════════════
   Stock Alert — Guest modal
   ══════════════════════════════════════════════════════════════ */

/* Prevent body scroll when modal is open */
body.pm2-modal-open {
    overflow: hidden;
}

/* Modal root (hidden by default) */
.pm2-stockalert-modal {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 10000;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}
.pm2-stockalert-modal--open {
    display: flex;
}

/* Semi-transparent backdrop */
.pm2-stockalert-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    backdrop-filter: blur(2px);
    cursor: pointer;
}

/* Modal box */
.pm2-stockalert-modal__box {
    position: relative;
    background: #fff;
    border-radius: var(--pm2-radius-lg, 16px);
    padding: 2rem 1.75rem;
    width: 100%;
    max-width: 440px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2);
    animation: pm2ModalIn 0.25s cubic-bezier(0.34, 1.56, 0.64, 1) both;
    text-align: center;
}
@keyframes pm2ModalIn {
    from { opacity: 0; transform: scale(0.9) translateY(10px); }
    to   { opacity: 1; transform: scale(1) translateY(0); }
}

/* Close button */
.pm2-stockalert-modal__close {
    position: absolute;
    top: 0.875rem;
    right: 0.875rem;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--pm2-gray-100, #f1f5f9);
    border: none;
    border-radius: 50%;
    cursor: pointer;
    color: var(--pm2-gray-500, #64748b);
    transition: background 0.15s, color 0.15s;
    padding: 0;
}
.pm2-stockalert-modal__close:hover {
    background: var(--pm2-gray-200, #e2e8f0);
    color: var(--pm2-gray-900, #0f172a);
}

/* Icon */
.pm2-stockalert-modal__icon {
    margin: 0 auto 0.75rem;
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, rgba(var(--pm2-cta-rgb), 0.15), rgba(var(--pm2-cta-rgb), 0.15));
    border-radius: 50%;
}

/* Title & subtitle */
.pm2-stockalert-modal__title {
    font-family: var(--pm2-font-display, 'Roboto Condensed', 'Inter', sans-serif);
    font-size: 1.375rem;
    font-weight: 700;
    color: var(--pm2-text, #1e293b);
    margin: 0 0 0.375rem;
    text-transform: none;
    letter-spacing: normal;
}
.pm2-stockalert-modal__subtitle {
    font-size: 0.875rem;
    color: var(--pm2-text-muted, #64748b);
    margin: 0 0 1.25rem;
    line-height: 1.5;
}

/* Form layout */
.pm2-stockalert-modal__form {
    text-align: left;
}
.pm2-stockalert-modal__field {
    margin-bottom: 0.875rem;
}
.pm2-stockalert-modal__field label {
    display: block;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--pm2-text, #1e293b);
    margin-bottom: 0.375rem;
}
.pm2-stockalert-modal__field label span {
    color: var(--pm2-primary);
}
.pm2-stockalert-modal__input {
    width: 100%;
    padding: 0.6875rem 0.875rem;
    border: 1.5px solid var(--pm2-gray-300, #cbd5e1);
    border-radius: var(--pm2-radius-sm, 8px);
    font-size: 0.9375rem;
    font-family: var(--pm2-font-body, 'Inter', sans-serif);
    color: var(--pm2-text, #1e293b);
    background: #fff;
    outline: none;
    transition: border-color 0.15s, box-shadow 0.15s;
    box-sizing: border-box;
}
.pm2-stockalert-modal__input:focus {
    border-color: var(--pm2-primary);
    box-shadow: 0 0 0 3px rgba(var(--pm2-cta-rgb), 0.15);
}
.pm2-stockalert-modal__input::placeholder {
    color: var(--pm2-gray-400, #94a3b8);
}

/* Honeypot: visually hidden, not in tab order */
.pm2-stockalert-modal__honeypot {
    position: absolute;
    left: -9999px;
    opacity: 0;
    height: 0;
    width: 0;
    overflow: hidden;
}

/* Submit button */
.pm2-stockalert-modal__submit {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    width: 100%;
    margin-top: 0.25rem;
    padding: 0.875rem 1.5rem;
    background: linear-gradient(135deg, var(--pm2-primary), var(--pm2-cta-dark));
    color: #fff;
    border: none;
    border-radius: var(--pm2-radius, 12px);
    font-family: var(--pm2-font-heading, 'Roboto Condensed', 'Inter', sans-serif);
    font-size: 1.0625rem;
    font-weight: 600;
    cursor: pointer;
    transition: transform 0.15s, box-shadow 0.15s, opacity 0.15s;
    box-shadow: 0 4px 16px rgba(var(--pm2-cta-rgb), 0.38);
}
.pm2-stockalert-modal__submit:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 20px rgba(var(--pm2-cta-rgb), 0.15);
}
.pm2-stockalert-modal__submit--loading {
    opacity: 0.7;
    pointer-events: none;
}

/* Messages inside modal */
.pm2-stockalert-modal__message {
    margin-top: 0.625rem;
    font-size: 0.8125rem;
    padding: 0.5rem 0.75rem;
    border-radius: var(--pm2-radius-sm, 8px);
    text-align: center;
}
.pm2-stockalert-modal__message--error {
    background: var(--pm2-danger-soft);
    color: var(--pm2-danger);
    border: 1px solid rgba(220, 38, 38, 0.25);
}
.pm2-stockalert-modal__message--success {
    background: var(--pm2-success-soft);
    color: var(--pm2-success);
    border: 1px solid rgba(22, 163, 74, 0.25);
}

@media (max-width: 480px) {
    .pm2-stockalert-modal__box {
        padding: 1.5rem 1.25rem;
    }
    .pm2-stockalert__cta-btn {
        font-size: 0.9375rem;
        padding: 0.8125rem 1.25rem;
    }
}

/* ── Trust Reviews Block (PDP below add-to-cart) ── */
.pm2-trust-reviews {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    padding: 0.625rem 0.875rem;
    border: 1px solid var(--pm2-gray-200);
    border-radius: var(--pm2-radius);
    background: var(--pm2-gray-50);
    text-decoration: none;
    color: var(--pm2-gray-700);
    font-size: 0.8125rem;
    transition: var(--pm2-transition-fast);
    margin-top: 0.75rem;
    width: 100%;
    box-sizing: border-box;
}
.pm2-trust-reviews:hover {
    border-color: var(--pm2-primary);
    background: white;
}
.pm2-trust-reviews__stars {
    display: inline-flex;
    align-items: center;
    gap: 0.0625rem;
    color: #f59e0b;
    flex-shrink: 0;
}
.pm2-trust-star { display: block; }
.pm2-trust-star--empty { color: var(--pm2-gray-300); }
.pm2-trust-reviews__text {
    flex: 1;
    min-width: 0;
    color: var(--pm2-gray-600);
    font-size: 0.8125rem;
    line-height: 1.3;
}
.pm2-trust-reviews__text strong {
    color: var(--pm2-gray-900);
    font-weight: 700;
}
.pm2-trust-reviews__verified {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--pm2-primary);
    white-space: nowrap;
    flex-shrink: 0;
}

/* ── OOS Configurable notice and options ── */
.pm2-oos-config-notice {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    color: var(--pm2-gray-700);
    background: var(--pm2-warning-soft);
    border: 1px solid rgba(245, 158, 11, 0.30);
    border-radius: var(--pm2-radius-sm);
    padding: 0.625rem 0.875rem;
    margin-bottom: 0.75rem;
}
.pm2-oos-config-notice svg {
    flex-shrink: 0;
    color: var(--pm2-warning-dark);
}
.pm2-oos-option {
    text-decoration: line-through;
    color: var(--pm2-gray-400);
}

/* ── StockAlert modal product label ── */
.pm2-stockalert-modal__product-label {
    font-size: 0.875rem;
    color: var(--pm2-gray-700);
    background: var(--pm2-gray-50);
    border-radius: var(--pm2-radius-sm);
    padding: 0.5rem 0.75rem;
    margin: -0.5rem 0 0.625rem;
    text-align: left;
    line-height: 1.5;
    border: 1px solid var(--pm2-gray-100);
}
.pm2-sa-variant-label {
    font-size: 0.8125rem;
    color: var(--pm2-gray-500);
}

/* ============================================================
   GUIDE / LANDING PAGE (guide abbigliamento, etc.)
   ============================================================ */

/* Shared CTA button */
.pm2-guide-page {
    max-width: 1000px;
    margin: 0 auto;
    padding: 2rem 2rem;
}

@media (min-width: 769px) {
    .pm2-guide-page {
        padding: 3rem 2.5rem;
    }
}

.pm2-guide-btn {
    display: inline-block;
    background: white;
    color: var(--pm2-primary);
    padding: 0.875rem 2rem;
    border-radius: 50px;
    font-weight: 700;
    font-size: 1rem;
    text-decoration: none;
    transition: background 0.2s, transform 0.15s, box-shadow 0.15s;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
}

.pm2-guide-btn:hover {
    background: #f5f0f3;
    color: var(--pm2-primary);
    text-decoration: none;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.18);
}

.pm2-guide-btn--outline {
    background: transparent;
    color: var(--pm2-primary);
    border: 2px solid var(--pm2-primary);
    box-shadow: none;
}

.pm2-guide-btn--outline:hover {
    background: var(--pm2-primary);
    color: white;
    box-shadow: 0 4px 14px rgba(192, 69, 127, 0.3);
}

/* Hero section */
.pm2-guide-hero {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: center;
    padding: 3rem 0 4rem;
}

.pm2-guide-hero h1 {
    font-size: 2.2rem;
    font-weight: 800;
    line-height: 1.2;
    color: var(--pm2-primary);
    margin-bottom: 0.75rem;
    text-transform: none;
}

.pm2-guide-hero__lead {
    font-size: 1.2rem;
    color: #666;
    margin-bottom: 1.25rem;
    font-weight: 500;
}

.pm2-guide-hero p {
    font-size: 1rem;
    line-height: 1.7;
    color: #444;
    margin-bottom: 1.25rem;
}

.pm2-guide-hero__image img {
    width: 100%;
    height: auto;
    border-radius: 16px;
    display: block;
}

/* eBook / download section */
.pm2-guide-ebook {
    display: grid;
    grid-template-columns: 2fr 3fr;
    gap: 3rem;
    align-items: center;
    padding: 3rem 2.5rem;
    margin: 1rem 0 2rem;
    background: linear-gradient(135deg, #fff5f9, #fce8f1);
    border-radius: 20px;
    border: 1px solid rgba(192, 69, 127, 0.15);
}

.pm2-guide-ebook__image img {
    width: 100%;
    height: auto;
    filter: drop-shadow(0 8px 24px rgba(0, 0, 0, 0.12));
    border-radius: 8px;
    display: block;
}

.pm2-guide-ebook__badge {
    display: inline-block;
    background: var(--pm2-primary);
    color: white;
    font-size: 0.75rem;
    font-weight: 700;
    padding: 0.3rem 0.875rem;
    border-radius: 50px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 1rem;
}

.pm2-guide-ebook__content h2 {
    font-size: 1.6rem;
    font-weight: 700;
    color: #222;
    margin-bottom: 0.875rem;
    line-height: 1.3;
}

.pm2-guide-ebook__content p {
    line-height: 1.7;
    color: #555;
    margin-bottom: 1rem;
}

.pm2-guide-ebook__list {
    list-style: none;
    padding: 0;
    margin: 0 0 1.5rem;
}

.pm2-guide-ebook__list li {
    padding: 0.4rem 0 0.4rem 1.75rem;
    position: relative;
    color: #444;
    font-size: 0.95rem;
    line-height: 1.5;
}

.pm2-guide-ebook__list li::before {
    content: '✓';
    position: absolute;
    left: 0;
    color: var(--pm2-primary);
    font-weight: 700;
}

/* Feature section */
.pm2-guide-feature {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: center;
    padding: 3rem 0;
    border-top: 1px solid var(--pm2-gray-200);
}

.pm2-guide-feature__image img {
    width: 100%;
    height: auto;
    border-radius: 16px;
    display: block;
}

.pm2-guide-feature__content h2 {
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--pm2-primary);
    margin-bottom: 1rem;
}

.pm2-guide-feature__content p {
    line-height: 1.7;
    color: #444;
    margin-bottom: 0.875rem;
}

.pm2-guide-feature__content .pm2-guide-btn {
    margin-top: 0.5rem;
}

@media (max-width: 768px) {
    .pm2-guide-hero,
    .pm2-guide-feature {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .pm2-guide-ebook {
        grid-template-columns: 1fr;
        gap: 1.5rem;
        padding: 2rem 1.5rem;
    }

    .pm2-guide-hero {
        padding: 2rem 0;
    }

    .pm2-guide-hero h1 {
        font-size: 1.6rem;
    }

    .pm2-guide-hero__image {
        order: -1;
    }
}

/* ══════════════════════════════════════════════════════════════════════
   Header: fix white/invisible nav links and topbar icons
══════════════════════════════════════════════════════════════════════ */

/* Category nav links (Novità, Offerte, Marchi, Blog) */
.ah-catnav__link {
    color: #374151 !important;
}
.ah-catnav__link:hover,
.ah-catnav__link.is-active {
    color: var(--pm2-primary) !important;
    background: var(--pm2-cta-soft) !important;
}

/* Topbar right icons (cart, wishlist, account) */
.ah-topbar__right .ah-icon-btn {
    color: #374151 !important;
}
.ah-topbar__right .ah-icon-btn:hover {
    color: var(--pm2-primary) !important;
}

/* Mobile drawer nav links */
.ah-drawer__nav-link {
    color: #374151 !important;
}



/* ============================================
   REDESIGN RESTORE — recovered redesign CSS
   (product cards, PDP price label, cart unit
   column, B2B account dashboard, promo bar)
   ============================================ */
.ilparadisobrugola-promo-bar {
    background:var(--pm2-primary);
    color:#fff;
    font-size:.8125rem;
    font-weight:500;
    position:relative;
    z-index:100;
}

.ipb-promo__inner {
    max-width:1280px;
    margin:0 auto;
    padding:.5rem 1.5rem;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
}

.ipb-promo__msg {
    margin:0;
    display:flex;
    align-items:center;
    gap:.5rem;
    color:rgb(255 255 255 / .92);
}

.ipb-promo__msg strong {
    color:#fff;
    font-weight:700;
}

.ipb-promo__dot {
    width:8px;
    height:8px;
    border-radius:50%;
    background:var(--pm2-success);
    box-shadow:0 0 0 3px rgb(31 157 87 / .25);
    flex:0 0 auto;
}

.ipb-promo__sep {
    opacity:.45;
}

.ilparadisobrugola-promo-bar a {
    color:#fff;
    text-decoration:none;
    font-weight:600;
    border-bottom:1px solid rgb(255 255 255 / .4);
}

.ilparadisobrugola-promo-bar a:hover {
    border-bottom-color:#fff;
}

.ipb-promo__vat {
    display:inline-flex;
    background:rgb(255 255 255 / .08);
    border:1px solid rgb(255 255 255 / .14);
    border-radius:999px;
    padding:2px;
    flex:0 0 auto;
}

.ipb-promo__vat-on,
.ipb-promo__vat-off {
    font-size:.75rem;
    font-weight:600;
    padding:3px 12px;
    border-radius:999px;
    color:rgb(255 255 255 / .6);
    line-height:1.4;
    white-space:nowrap;
}

.ipb-promo__vat-on.is-active {
    background:var(--pm2-cta);
    color:#fff;
}

/* Promo bar right group (mockup: assistenza tecnica + stato ordini + IVA toggle) */
.ipb-promo__right {
    display:inline-flex;
    align-items:center;
    gap:.6rem;
    flex:0 0 auto;
}

.ipb-promo__assist {
    font-size:.75rem;
    color:rgb(255 255 255 / .8);
    white-space:nowrap;
}

.ipb-promo__divider {
    opacity:.3;
    font-weight:400;
    flex:0 0 auto;
}

.ipb-promo__orders {
    font-size:.75rem;
    color:rgb(255 255 255 / .85);
    text-decoration:none;
    white-space:nowrap;
    border-bottom:1px solid rgb(255 255 255 / .3);
}

.ipb-promo__orders:hover {
    color:#fff;
    border-bottom-color:#fff;
}

/* Checkout minimal header */
.page-header-minimal {
    display:flex;
    align-items:center;
    justify-content:center;
    padding:1.25rem 1.5rem;
    border-bottom:1px solid var(--pm2-gray-200,#e5e7eb);
    background:#fff;
}

.page-header-minimal .logo {
    display:inline-flex;
    align-items:center;
    text-decoration:none;
}

.page-header-minimal .logo img {
    max-height:44px;
    width:auto;
}

.pm2-pdp__price-label {
    flex-basis:100%;
    font-size:.72rem;
    color:var(--pm2-gray-500,#8A96A4);
    text-transform:none;
    letter-spacing:.01em;
    margin-bottom:-.15rem;
}

.ilparadisobrugola-cart-item__meta {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:6px;
    font-family:var(--pm2-font-mono);
    font-size:.72rem;
    letter-spacing:.02em;
    color:var(--pm2-gray-500);
}

.ilparadisobrugola-cart-item__norma {
    padding:1px 7px;
    background:var(--pm2-cta-soft);
    color:var(--pm2-cta-dark);
    border-radius:4px;
    font-weight:600;
}

.ilparadisobrugola-cart-item__unit {
    display:flex;
    flex-direction:column;
    gap:.25rem;
}

.ilparadisobrugola-cart-item__unit-label {
    font-family:var(--pm2-font-mono);
    font-size:.66rem;
    color:var(--pm2-gray-500);
    text-transform:uppercase;
    letter-spacing:.04em;
}

.ilparadisobrugola-cart-item__unit-value {
    font-family:var(--pm2-font-mono);
    font-size:.95rem;
    font-weight:600;
    color:var(--pm2-gray-800);
}

.pm2-account-nav {
    background:#fff;
    border:1px solid #E2E8EF;
    border-radius:12px;
    overflow:hidden;
}

.pm2-account-nav__id {
    display:flex;
    align-items:center;
    gap:12px;
    padding:18px 18px;
    background:var(--pm2-primary);
    color:#fff;
}

.pm2-account-nav__avatar {
    width:44px;
    height:44px;
    flex:0 0 44px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:10px;
    background:var(--pm2-cta);
    color:#fff;
    font-family:var(--pm2-font-display);
    font-weight:800;
    font-size:1rem;
    letter-spacing:.02em;
}

.pm2-account-nav__name {
    font-weight:700;
    font-size:.95rem;
    line-height:1.2;
}

.pm2-account-nav__role {
    font-family:var(--pm2-font-mono);
    font-size:.7rem;
    color:#AEB9C6;
    margin-top:2px;
}

.pm2-account-nav__menu {
    display:flex;
    flex-direction:column;
    padding:8px;
    gap:2px;
}

.pm2-account-nav__link {
    display:flex;
    align-items:center;
    gap:10px;
    padding:10px 12px;
    border-radius:8px;
    color:var(--pm2-gray-700);
    text-decoration:none;
    font-weight:600;
    font-size:.9rem;
    transition:var(--pm2-transition-fast);
}

.pm2-account-nav__link svg {
    color:var(--pm2-gray-400);
    flex:0 0 18px;
}

.pm2-account-nav__link:hover {
    background:var(--pm2-cta-soft);
    color:var(--pm2-cta-dark);
}

.pm2-account-nav__link:hover svg {
    color:var(--pm2-cta);
}

.pm2-account-nav__link.is-active {
    background:var(--pm2-cta);
    color:#fff;
}

.pm2-account-nav__link.is-active svg {
    color:#fff;
}

.pm2-account-nav__link--logout {
    color:var(--pm2-accent);
}

.pm2-account-nav__link--logout svg {
    color:var(--pm2-accent);
}

.pm2-account__head {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    margin-bottom:22px;
    flex-wrap:wrap;
}

.pm2-account__title {
    font-family:var(--pm2-font-display);
    font-weight:800;
    font-size:1.8rem;
    margin:0;
    color:var(--pm2-gray-900);
}

.pm2-account__subtitle {
    margin:4px 0 0;
    color:var(--pm2-gray-500);
    font-size:.95rem;
}

.pm2-account__vat-badge {
    font-family:var(--pm2-font-mono);
    font-size:.7rem;
    text-transform:uppercase;
    letter-spacing:.06em;
    color:var(--pm2-cta-dark);
    background:var(--pm2-cta-soft);
    border:1px solid #D5E2F8;
    padding:6px 12px;
    border-radius:999px;
    white-space:nowrap;
}

.pm2-account__stats {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:14px;
    margin-bottom:22px;
}

.pm2-account-stat {
    background:#fff;
    border:1px solid #E2E8EF;
    border-radius:12px;
    padding:18px;
}

.pm2-account-stat__label {
    display:block;
    font-size:.78rem;
    color:var(--pm2-gray-500);
    text-transform:uppercase;
    letter-spacing:.04em;
    font-weight:600;
}

.pm2-account-stat__value {
    display:block;
    margin-top:6px;
    font-family:var(--pm2-font-display);
    font-weight:800;
    font-size:1.7rem;
    color:var(--pm2-gray-900);
}

.pm2-account-card {
    background:#fff;
    border:1px solid #E2E8EF;
    border-radius:12px;
    padding:18px;
    margin-bottom:22px;
}

.pm2-account-card__head {
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:12px;
    margin-bottom:14px;
}

.pm2-account-card__title {
    font-family:var(--pm2-font-display);
    font-weight:700;
    font-size:1.1rem;
    margin:0;
    color:var(--pm2-gray-900);
}

.pm2-account-card__link {
    font-size:.85rem;
    font-weight:600;
    color:var(--pm2-cta);
    text-decoration:none;
    white-space:nowrap;
}

.pm2-account-card__link:hover {
    text-decoration:underline;
}

.pm2-reorder {
    display:grid;
    grid-template-columns:48px minmax(0,2fr) 140px 90px auto;
    align-items:center;
    gap:14px;
    padding:12px 0;
    border-top:1px solid #EEF2F6;
}

.pm2-reorder:first-of-type {
    border-top:0;
}

.pm2-reorder__img img {
    width:48px;
    height:48px;
    object-fit:contain;
    border-radius:8px;
    background:var(--pm2-gray-100);
}

.pm2-reorder__name {
    font-weight:600;
    font-size:.92rem;
    color:var(--pm2-gray-900);
    text-decoration:none;
    display:block;
}

.pm2-reorder__name:hover {
    color:var(--pm2-cta);
}

.pm2-reorder__meta {
    font-family:var(--pm2-font-mono);
    font-size:.72rem;
    color:var(--pm2-gray-500);
    margin-top:2px;
}

.pm2-reorder__stock {
    display:inline-flex;
    align-items:center;
    gap:6px;
    font-size:.82rem;
    font-weight:600;
}

.pm2-reorder__dot {
    width:8px;
    height:8px;
    border-radius:50%;
}

.pm2-reorder__stock--in {
    color:var(--pm2-success);
}

.pm2-reorder__stock--in .pm2-reorder__dot {
    background:var(--pm2-success);
}

.pm2-reorder__stock--order {
    color:var(--pm2-accent);
}

.pm2-reorder__stock--order .pm2-reorder__dot {
    background:var(--pm2-accent);
}

.pm2-reorder__price {
    font-family:var(--pm2-font-mono);
    font-weight:700;
    font-size:.95rem;
    color:var(--pm2-gray-900);
    text-align:right;
}

.pm2-reorder__btn {
    border:0;
    background:var(--pm2-cta);
    color:#fff;
    font-weight:700;
    font-size:.85rem;
    padding:9px 16px;
    border-radius:8px;
    cursor:pointer;
    transition:var(--pm2-transition-fast);
}

.pm2-reorder__btn:hover {
    background:var(--pm2-cta-dark);
}

.pm2-orders__head,
.pm2-orders__row {
    display:grid;
    grid-template-columns:110px 130px minmax(0,1fr) 110px 90px;
    align-items:center;
    gap:12px;
}

.pm2-orders__head {
    padding-bottom:10px;
    border-bottom:1px solid #E2E8EF;
    font-size:.72rem;
    text-transform:uppercase;
    letter-spacing:.04em;
    font-weight:700;
    color:var(--pm2-gray-500);
}

.pm2-orders__row {
    padding:13px 0;
    border-bottom:1px solid #EEF2F6;
    font-size:.9rem;
}

.pm2-orders__right {
    text-align:right;
}

.pm2-orders__id {
    font-family:var(--pm2-font-mono);
    font-weight:700;
    color:var(--pm2-gray-900);
}

.pm2-orders__date {
    color:var(--pm2-gray-600);
}

.pm2-orders__total {
    font-family:var(--pm2-font-mono);
    font-weight:700;
    color:var(--pm2-gray-900);
}

.pm2-orders__status {
    display:inline-block;
    padding:3px 10px;
    border-radius:999px;
    font-size:.74rem;
    font-weight:600;
    background:var(--pm2-gray-100);
    color:var(--pm2-gray-700);
}

.pm2-orders__status--complete {
    background:#E6F6EC;
    color:var(--pm2-success);
}

.pm2-orders__status--processing,
.pm2-orders__status--pending {
    background:var(--pm2-cta-soft);
    color:var(--pm2-cta-dark);
}

.pm2-orders__status--holded {
    background:#FBF1E0;
    color:var(--pm2-accent);
}

.pm2-orders__action {
    text-align:right;
    font-weight:600;
    font-size:.85rem;
    color:var(--pm2-cta);
    text-decoration:none;
}

.pm2-orders__action:hover {
    text-decoration:underline;
}

.pm2-orders__empty {
    text-align:center;
    padding:28px 0;
    color:var(--pm2-gray-500);
}

.pm2-orders__empty p {
    margin:0 0 14px;
}

.pm2-pcard {
    display:flex;
    flex-direction:column;
    background:#fff;
    border:1px solid #E2E8EF;
    border-radius:11px;
    overflow:hidden;
    transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease;
}

.pm2-pcard:hover {
    border-color:var(--pm2-cta-light,#3D7BE0);
    box-shadow:0 10px 28px -16px rgb(15 33 55 / .45);
}

.pm2-pcard__media {
    position:relative;
    height:150px;
    background:repeating-linear-gradient(135deg,#F1F4F8,#F1F4F8 11px,#E9EEF4 11px,#E9EEF4 22px);
    display:flex;
    align-items:center;
    justify-content:center;
}

.pm2-pcard__media-link {
    display:flex;
    width:100%;
    height:100%;
    align-items:center;
    justify-content:center;
}

.pm2-pcard__img {
    max-width:100%;
    max-height:100%;
    object-fit:contain;
    mix-blend-mode:multiply;
    padding:.5rem;
}

.pm2-pcard__din {
    position:absolute;
    top:9px;
    left:9px;
    font-family:var(--pm2-font-mono);
    font-size:10px;
    font-weight:600;
    background:var(--pm2-cta-soft,#EAF1FC);
    color:var(--pm2-cta-dark,#083F98);
    padding:4px 8px;
    border-radius:5px;
    letter-spacing:.02em;
}

.pm2-pcard__din--sale {
    background:var(--pm2-accent,#C77A0A);
    color:#fff;
}

.pm2-pcard__wish {
    position:absolute;
    top:9px;
    right:9px;
    width:28px;
    height:28px;
    border-radius:7px;
    background:#fff;
    border:1px solid #E2E8EF;
    color:#8A96A4;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    transition:color .15s ease,border-color .15s ease;
}

.pm2-pcard__wish:hover {
    color:#C7392F;
    border-color:#C7392F;
}

.pm2-pcard__body {
    padding:13px;
    display:flex;
    flex-direction:column;
    gap:8px;
    flex:1;
}

.pm2-pcard__sku {
    font-family:var(--pm2-font-mono);
    font-size:10.5px;
    color:#9AA6B4;
}

.pm2-pcard__name {
    font-weight:600;
    font-size:14.5px;
    line-height:1.25;
    color:var(--pm2-gray-900,#0F1620);
    text-decoration:none;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
}

.pm2-pcard__name:hover {
    color:var(--pm2-cta,#0B57D0);
}

.pm2-pcard__chips {
    display:flex;
    gap:5px;
    flex-wrap:wrap;
}

.pm2-pcard__chip {
    font-family:var(--pm2-font-mono);
    font-size:10.5px;
    background:#F0F3F7;
    color:#54616F;
    padding:3px 7px;
    border-radius:5px;
    border:1px solid #E0E6ED;
}

.pm2-pcard__stock {
    display:flex;
    align-items:center;
    gap:6px;
    font-size:12px;
    font-weight:600;
}

.pm2-pcard__stock--in {
    color:var(--pm2-success,#1F9D57);
}

.pm2-pcard__stock--order {
    color:var(--pm2-accent,#C77A0A);
}

.pm2-pcard__dot {
    width:7px;
    height:7px;
    border-radius:50%;
    background:currentColor;
    flex-shrink:0;
}

.pm2-pcard__pricerow {
    margin-top:auto;
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:8px;
}

.pm2-pcard__price-label {
    font-size:10.5px;
    color:#8A96A4;
}

.pm2-pcard__price {
    font-family:var(--pm2-font-mono);
    font-weight:600;
    font-size:20px;
    color:var(--pm2-gray-900,#0F1620);
    display:flex;
    align-items:baseline;
    gap:6px;
}

.pm2-pcard__price-old {
    font-size:12px;
    font-weight:500;
    color:#9AA6B4;
    text-decoration:line-through;
}

.pm2-pcard__ship {
    font-size:10px;
    font-weight:600;
    color:var(--pm2-success,#1F9D57);
    background:rgb(31 157 87 / .1);
    padding:4px 7px;
    border-radius:5px;
    white-space:nowrap;
}

.pm2-pcard__buy {
    display:flex;
    gap:7px;
    margin-top:4px;
}

.pm2-pcard__qty {
    display:flex;
    align-items:center;
    border:1px solid #DCE3EB;
    border-radius:7px;
    overflow:hidden;
    flex-shrink:0;
}

.pm2-pcard__qty-btn {
    background:none;
    border:none;
    cursor:pointer;
    padding:0 10px;
    height:38px;
    font-size:16px;
    color:#54616F;
    line-height:1;
}

.pm2-pcard__qty-btn:hover {
    color:var(--pm2-cta,#0B57D0);
}

.pm2-pcard__qty-input {
    width:34px;
    height:38px;
    border:none;
    border-left:1px solid #EAEEF3;
    border-right:1px solid #EAEEF3;
    text-align:center;
    font-family:var(--pm2-font-mono);
    font-weight:600;
    font-size:13px;
    color:#0F1620;
    background:#fff;
    -moz-appearance:textfield;
}

.pm2-pcard__add {
    flex:1;
    background:var(--pm2-cta,#0B57D0);
    color:#fff;
    border:none;
    border-radius:7px;
    padding:9px;
    font-weight:600;
    font-size:13px;
    cursor:pointer;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:4px;
    text-decoration:none;
    transition:background .15s ease;
}

.pm2-pcard__add:hover {
    background:var(--pm2-cta-dark,#083F98);
    color:#fff;
}

.pm2-pcard .pm2-stockalert {
    width:100%;
    margin:0;
}

@media (max-width:768px) {
    .ipb-promo__inner {
            padding:.4rem .9rem;
            gap:.6rem;
    }
    .ipb-promo__msg {
            font-size:.72rem;
            gap:.35rem;
    }
    .ipb-promo__sep,
    .ipb-promo__support,
    .ipb-promo__right {
            display:none;
    }
    .pm2-account__stats {
            grid-template-columns:1fr;
    }
    .pm2-reorder {
            grid-template-columns:40px 1fr auto;
            row-gap:8px;
    }
    .pm2-reorder__stock {
            grid-column:2 / 4;
    }
    .pm2-reorder__price {
            grid-column:1 / 2;
            text-align:left;
    }
    .pm2-reorder__btn {
            grid-column:2 / 4;
            justify-self:end;
    }
    .pm2-orders__head {
            display:none;
    }
    .pm2-orders__row {
            grid-template-columns:1fr auto;
            row-gap:4px;
    }
    .pm2-orders__date,
    .pm2-orders__action {
            text-align:left;
    }
    .pm2-pcard__media {
            height:120px;
    }
    .pm2-pcard__price {
            font-size:17px;
    }
    .pm2-pcard__buy {
            flex-wrap:wrap;
    }
}


/* ============================================
   REDESIGN RESTORE (2) — homepage + remaining
   recovered redesign CSS (pm2-hp-* hero/finder/
   catgrid/reorder/trust/section)
   ============================================ */
.pm2-hp {
    --pm2-hp-max:none;
}

.pm2-hp>section {
    max-width:var(--pm2-hp-max);
    margin-left:auto;
    margin-right:auto;
}

.pm2-hp-hero {
    display:grid;
    grid-template-columns:1.05fr 0.95fr;
    background:var(--pm2-primary);
    color:#fff;
    border-radius:var(--pm2-radius-xl,12px);
    overflow:hidden;
    margin-top:1.5rem;
    margin-bottom:1.5rem;
}

.pm2-hp-hero__text {
    padding:54px 48px;
}

.pm2-hp-hero__kicker {
    font-family:var(--pm2-font-mono);
    font-size:12px;
    letter-spacing:.2em;
    text-transform:uppercase;
    color:#7FB0F2;
    margin-bottom:18px;
}

.pm2-hp-hero__title {
    font-family:var(--pm2-font-display);
    font-weight:900;
    font-size:50px;
    line-height:.98;
    letter-spacing:-.025em;
    margin:0;
    color:#fff;
}

.pm2-hp-hero__lead {
    font-size:16px;
    color:#AEB9C6;
    max-width:440px;
    margin:18px 0 26px;
    line-height:1.5;
}

.pm2-hp-finder {
    background:#fff;
    border-radius:11px;
    padding:16px;
    color:var(--pm2-gray-900);
    max-width:480px;
}

.pm2-hp-finder__label {
    font-family:var(--pm2-font-mono);
    font-size:11px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--pm2-cta);
    font-weight:600;
    margin-bottom:11px;
}

.pm2-hp-finder__row {
    display:grid;
    grid-template-columns:1fr 1fr 1fr;
    gap:9px;
}

.pm2-hp-finder__field {
    position:relative;
    display:block;
    border:1px solid #DCE3EB;
    border-radius:7px;
    padding:6px 11px 7px;
    cursor:pointer;
}

.pm2-hp-finder__cap {
    display:block;
    font-size:10px;
    color:#8A96A4;
    pointer-events:none;
}

.pm2-hp-finder__select {
    width:100%;
    border:none;
    outline:none;
    background:#fff0;
    font-family:var(--pm2-font-body);
    font-weight:600;
    font-size:14px;
    color:var(--pm2-gray-900);
    padding:1px 0 0;
    cursor:pointer;
    appearance:none;
    -webkit-appearance:none;
}

.pm2-hp-finder__btn {
    width:100%;
    margin-top:10px;
    background:var(--pm2-cta);
    color:#fff;
    border:none;
    border-radius:7px;
    padding:12px;
    font-weight:600;
    font-size:14px;
    font-family:var(--pm2-font-body);
    cursor:pointer;
    transition:background 0.15s;
}

.pm2-hp-finder__btn:hover {
    background:var(--pm2-cta-dark);
}

.pm2-hp-hero__media {
    position:relative;
    background:repeating-linear-gradient(135deg,#1B2A39,#1B2A39 14px,#1E2F40 14px,#1E2F40 28px);
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:14px;
    border-left:1px solid #2A3B4D;
    min-height:280px;
}

.pm2-hp-hero__hex {
    opacity:.5;
}

.pm2-hp-hero__media-label {
    font-family:var(--pm2-font-mono);
    font-size:12px;
    color:#7FB0F2;
    letter-spacing:.08em;
}

.pm2-hp-trust {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    border:1px solid var(--pm2-gray-200);
    border-radius:var(--pm2-radius-lg,10px);
    overflow:hidden;
    margin-bottom:2rem;
}

.pm2-hp-trust__item {
    padding:20px 28px;
    border-right:1px solid var(--pm2-gray-200);
    display:flex;
    gap:13px;
    align-items:center;
    color:var(--pm2-cta);
}

.pm2-hp-trust__item:last-child {
    border-right:none;
}

.pm2-hp-trust__item div {
    display:flex;
    flex-direction:column;
}

.pm2-hp-trust__item strong {
    font-weight:700;
    font-size:14px;
    color:var(--pm2-gray-900);
}

.pm2-hp-trust__item span {
    font-size:12.5px;
    color:var(--pm2-gray-500);
}

.pm2-hp-section-head {
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    margin-bottom:20px;
}

.pm2-hp-section-title {
    font-family:var(--pm2-font-display);
    font-weight:800;
    font-size:24px;
    margin:0;
    letter-spacing:-.02em;
    color:var(--pm2-gray-900);
}

.pm2-hp-section-link {
    font-size:14px;
    color:var(--pm2-cta);
    font-weight:600;
    text-decoration:none;
    white-space:nowrap;
}

.pm2-hp-section-link:hover {
    text-decoration:underline;
}

.pm2-hp-catgrid {
    margin-bottom:2rem;
}

.pm2-hp-catgrid__grid {
    display:grid;
    grid-template-columns:repeat(6,1fr);
    gap:14px;
}

.pm2-hp-cat {
    display:block;
    border:1px solid var(--pm2-gray-200);
    border-radius:10px;
    overflow:hidden;
    text-decoration:none;
    transition:border-color 0.15s,box-shadow 0.15s,transform 0.15s;
}

.pm2-hp-cat:hover {
    border-color:var(--pm2-cta);
    box-shadow:var(--pm2-shadow-sm);
    transform:translateY(-2px);
}

.pm2-hp-cat__thumb {
    height:88px;
    background:repeating-linear-gradient(135deg,var(--pm2-cta-soft),var(--pm2-cta-soft) 9px,#DEEAFB 9px,#DEEAFB 18px);
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--pm2-cta);
}

.pm2-hp-cat__body {
    display:block;
    padding:11px 13px;
}

.pm2-hp-cat__name {
    display:block;
    font-weight:600;
    font-size:14px;
    color:var(--pm2-gray-900);
}

.pm2-hp-cat__count {
    display:block;
    font-size:12px;
    color:var(--pm2-gray-500);
    font-family:var(--pm2-font-mono);
    margin-top:2px;
}

.pm2-hp-reorder {
    background:var(--pm2-cta-soft);
    border:1px solid #CADBF6;
    border-radius:12px;
    padding:22px 26px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    margin-bottom:2.5rem;
}

.pm2-hp-reorder__left {
    display:flex;
    align-items:center;
    gap:16px;
}

.pm2-hp-reorder__icon {
    width:44px;
    height:44px;
    border-radius:9px;
    background:var(--pm2-cta);
    display:flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
}

.pm2-hp-reorder__title {
    font-family:var(--pm2-font-display);
    font-weight:800;
    font-size:18px;
    color:var(--pm2-gray-900);
}

.pm2-hp-reorder__text {
    font-size:13.5px;
    color:var(--pm2-gray-700);
}

.pm2-hp-reorder__btn {
    background:var(--pm2-cta);
    color:#fff;
    border:none;
    border-radius:8px;
    padding:13px 22px;
    font-weight:600;
    font-size:14px;
    flex-shrink:0;
    text-decoration:none;
    white-space:nowrap;
    transition:background 0.15s;
}

.pm2-hp-reorder__btn:hover {
    background:var(--pm2-cta-dark);
}

@media (max-width:1024px) {
    .pm2-hp-catgrid__grid {
            grid-template-columns:repeat(3,1fr);
    }
    .pm2-hp-trust {
            grid-template-columns:repeat(2,1fr);
    }
    .pm2-hp-trust__item:nth-child(2) {
            border-right:none;
    }
    .pm2-hp-hero__title {
            font-size:40px;
    }
}

@media (max-width:768px) {
    .pm2-hp-hero {
            grid-template-columns:1fr;
    }
    .pm2-hp-hero__media {
            min-height:160px;
    }
    .pm2-hp-hero__text {
            padding:32px 24px;
    }
    .pm2-hp-hero__title {
            font-size:34px;
    }
    .pm2-hp-finder__row {
            grid-template-columns:1fr;
    }
    .pm2-hp-catgrid__grid {
            grid-template-columns:repeat(2,1fr);
    }
    .pm2-hp-reorder {
            flex-direction:column;
            align-items:flex-start;
    }
}
