/**
 * BIOWOODURNS v3.0 "Snaidero" — Unified CSS
 * ============================================
 * Inspired by Snaidero.com minimalism.
 * Libre Bodoni (display) + Josefin Sans (body/UI).
 * Warm ivory bg, dark footer, sharp corners, subtle shadows.
 * Replaces both style-v2.css (homepage) and style.css (B2B).
 * Admin pages still use the original style.css.
 */

/* ═══ RESET ═══ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
    /* Snaidero palette */
    --color-bg:#F5F4F0;
    --color-text:#6B6E64;
    --color-heading:#3D4A35;
    --color-dark:#1a1f17;
    --color-border:#D8D6D0;
    --color-overlay:#363D32;
    --color-header-bg:rgba(245,244,240,0.93);

    /* Backward compat (B2B code references these) */
    --primary:#3D4A35;
    --secondary:#6B8F4A;
    --accent:#8BAF6A;
    --white:#FFFFFF;
    --text:#3D4A35;
    --text-light:#8A8D82;
    --success:#4CAF50;
    --error:#D32F2F;

    /* Fonts */
    --font-heading:'Libre Bodoni',Georgia,'Times New Roman',serif;
    --font-body:'Josefin Sans','Helvetica Neue',Arial,sans-serif;
    --font-main:'Josefin Sans',Arial,sans-serif;

    /* Layout */
    --nav-h:110px;
    --nav-h-compact:86px;
    --max-w:1400px;
    --container-max:1600px;
    --container-narrow:1180px;
    --radius:0;
    --radius-sm:0;
    --shadow-float:0 2px 20px rgba(0,0,0,0.06);
    --shadow-hover:0 8px 30px rgba(0,0,0,0.10);
    --tr:0.3s ease;
    --transition:0.3s ease;
}
html{scroll-behavior:smooth;scroll-padding-top:var(--nav-h-compact)}
body{
    font-family:var(--font-body);
    font-weight:300;
    font-size:16px;
    line-height:1.6;
    color:var(--color-text);
    background:var(--color-bg);
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none;transition:color var(--tr)}
a:hover{color:var(--color-heading)}
ul{list-style:none}
h1,h2,h3,h4{font-family:var(--font-heading);font-weight:400;color:var(--color-heading);line-height:1.15}

/* Container */
.container{max-width:var(--container-max);width:calc(100% - 100px);margin:0 auto}
@media(max-width:768px){.container{width:calc(100% - 40px)}}


/* ═══════════════════════════════════════
   PUBLIC NAVBAR (Snaidero style)
   ═══════════════════════════════════════ */
.navbar{
    position:fixed;top:0;left:0;right:0;z-index:1000;
    height:var(--nav-h);
    background:var(--color-bg);
    transition:all var(--tr);
    display:flex;align-items:center;
}
.navbar.compact,.navbar.scrolled{
    height:var(--nav-h-compact);
    background:var(--color-header-bg);
    backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
    box-shadow:0 1px 0 rgba(0,0,0,0.06);
}
.nav-container{
    max-width:var(--container-max);width:calc(100% - 100px);margin:0 auto;
    display:flex;align-items:center;justify-content:space-between;
    height:100%;
}
.logo{display:flex;flex-direction:column;align-items:center;text-decoration:none;flex-shrink:0;padding:8px 0}
.nav-side--left{flex:1}
.nav-actions{flex:1;justify-content:flex-end}
.logo-symbol{height:52px;width:auto;transition:height var(--tr)}
.navbar.compact .logo-symbol,.navbar.scrolled .logo-symbol{height:38px}
.logo-text{
    font-family:var(--font-body);font-size:1.5rem;font-weight:300;
    text-transform:uppercase;letter-spacing:0.18em;
    color:var(--color-heading);transition:font-size var(--tr);
    margin-top:6px;line-height:1;
}
.navbar.compact .logo-text,.navbar.scrolled .logo-text{font-size:1.2rem;margin-top:4px}
.logo-flag{display:flex;gap:0;margin-top:4px;height:3px;width:100%}
.logo-flag i{display:block;flex:1;height:3px}
.flag-green{background:#088844}
.flag-white{background:#F5F4F0}
.flag-red{background:#CC3340}
.navbar.compact .logo-flag,.navbar.scrolled .logo-flag{height:2px;margin-top:3px}
.nav-side{display:flex;align-items:center}
.nav-links{display:flex;gap:0;list-style:none}
.nav-links li{position:relative}
.nav-links li+li::before{
    content:'';display:block;position:absolute;left:0;top:50%;
    transform:translateY(-50%);width:1px;height:14px;
    background:var(--color-border);
}
.nav-links a{
    display:block;padding:8px 20px;
    font-family:var(--font-body);font-size:0.75rem;font-weight:400;
    text-transform:uppercase;letter-spacing:0.12em;
    color:var(--color-text);transition:color var(--tr);
}
.nav-links a:hover{color:var(--color-heading)}
.nav-actions{display:flex;align-items:center;gap:16px}
.nav-mobile-extras{display:none}
.b2b-link{
    font-family:var(--font-body);font-size:0.75rem;font-weight:400;
    text-transform:uppercase;letter-spacing:0.12em;
    color:var(--color-text);background:none;border:none;cursor:pointer;
    padding:8px 16px;transition:color var(--tr);
}
.b2b-link:hover{color:var(--color-heading)}
.b2b-link--disabled{
    opacity:.45;cursor:default;pointer-events:none;
    position:relative;
}
/* ── B2B Maintenance Banner ── */
.b2b-maintenance-banner{
    position:fixed;top:var(--nav-h);left:0;right:0;z-index:999;
    background:linear-gradient(135deg,#f0f4ec 0%,#e8f0e0 100%);
    border-bottom:1px solid rgba(61,107,31,.15);
    text-align:center;padding:10px 20px;
}
.b2b-maintenance-banner__inner{
    display:inline-flex;align-items:center;gap:8px;
    font-family:var(--font-body);font-size:0.82rem;
    color:#3d6b1f;letter-spacing:0.02em;
}
.b2b-maintenance-banner__inner svg{flex-shrink:0;opacity:.7}
.nav-hamburger{
    display:block;background:none;border:none;cursor:pointer;
    font-size:1.4rem;color:var(--color-heading);padding:8px;
    transition:color var(--tr);
}
.nav-hamburger:hover{color:var(--color-text)}
.navbar.nav-open .nav-side{display:flex}

/* Language Selector */
.lang-selector{position:relative;display:inline-block}
.lang-current{
    display:flex;align-items:center;gap:6px;cursor:pointer;
    font-family:var(--font-body);font-size:0.75rem;font-weight:400;
    text-transform:uppercase;letter-spacing:0.1em;
    color:var(--color-text);background:none;border:none;padding:8px 12px;
}
.lang-dropdown{
    position:absolute;top:100%;right:0;min-width:120px;
    background:var(--white);box-shadow:var(--shadow-hover);
    opacity:0;visibility:hidden;transform:translateY(6px);
    transition:all var(--tr);z-index:100;
}
.lang-selector.open .lang-dropdown{opacity:1;visibility:visible;transform:translateY(0)}
.lang-dropdown a{
    display:block;padding:10px 16px;
    font-family:var(--font-body);font-size:0.8rem;
    color:var(--color-text);transition:background var(--tr);
}
.lang-dropdown a:hover{background:var(--color-bg)}
.lang-dropdown a.active{font-weight:700;color:var(--color-heading)}

/* ═══ MEGA MENU (NEW — Snaidero fullscreen) ═══ */
.megamenu{
    position:fixed;inset:0;z-index:2000;
    background:var(--color-dark);
    display:flex;align-items:center;justify-content:center;
    opacity:0;visibility:hidden;
    transition:opacity 0.4s ease,visibility 0.4s ease;
}
.megamenu.open{opacity:1;visibility:visible}
.megamenu__close{
    position:absolute;top:32px;right:40px;
    background:none;border:none;cursor:pointer;
    color:rgba(245,244,240,0.6);font-size:2rem;
    transition:color var(--tr);
}
.megamenu__close:hover{color:var(--color-bg)}
.megamenu__inner{
    max-width:900px;width:90%;
    display:grid;grid-template-columns:repeat(3,1fr);gap:48px;
}
.megamenu__col{}
.megamenu__link{
    display:block;padding:10px 0;
    font-family:var(--font-body);font-size:0.85rem;font-weight:300;
    text-transform:uppercase;letter-spacing:0.12em;
    color:rgba(245,244,240,0.5);
    transition:color var(--tr);
    border-bottom:1px solid rgba(255,255,255,0.04);
}
.megamenu__link:hover{color:var(--color-bg)}
.megamenu__social{
    position:absolute;bottom:40px;left:50%;transform:translateX(-50%);
    display:flex;gap:24px;
}
.megamenu__social a{
    font-family:var(--font-body);font-size:0.7rem;font-weight:300;
    text-transform:uppercase;letter-spacing:0.15em;
    color:rgba(245,244,240,0.3);transition:color var(--tr);
}
.megamenu__social a:hover{color:var(--color-bg)}

/* ═══ HERO SLIDER (Snaidero fullscreen fade) ═══ */
.hero-slider{
    position:relative;width:100%;height:100vh;min-height:500px;
    overflow:hidden;margin-top:var(--nav-h);
}
.slides{position:relative;width:100%;height:100%}
.slide{
    position:absolute;inset:0;
    opacity:0;transition:opacity 1.2s ease;
    display:flex;align-items:center;justify-content:center;
    background-size:cover;background-position:center;
}
.slide.active{opacity:1}
.slide-content{
    text-align:center;color:var(--color-bg);
    max-width:700px;padding:0 24px;z-index:1;
}
.slide-content h1{
    font-family:var(--font-heading);font-size:3.2rem;font-weight:300;
    color:var(--color-bg);margin-bottom:16px;line-height:1.15;
    letter-spacing:0.02em;
}
.slide-content p{
    font-family:var(--font-body);font-size:0.95rem;font-weight:300;
    color:rgba(245,244,240,0.8);margin-bottom:28px;
    letter-spacing:0.03em;
}
.hero-cta{}
.hero-cta a{
    font-family:var(--font-body);font-size:0.8rem;font-weight:400;
    text-transform:uppercase;letter-spacing:0.15em;
    color:var(--color-bg);
    padding-bottom:4px;border-bottom:1px solid rgba(245,244,240,0.4);
    transition:border-color var(--tr);
}
.hero-cta a:hover{border-color:var(--color-bg);color:var(--color-bg)}
.slide-arrow{
    position:absolute;top:50%;transform:translateY(-50%);
    background:none;border:none;cursor:pointer;
    color:rgba(245,244,240,0.5);font-size:2rem;
    padding:16px;z-index:2;transition:color var(--tr);
}
.slide-arrow:hover{color:var(--color-bg)}
.slide-prev{left:20px}
.slide-next{right:20px}
.slide-dots{
    position:absolute;bottom:40px;left:50%;transform:translateX(-50%);
    display:flex;gap:10px;z-index:2;
}
.slide-dot{
    width:10px;height:10px;border-radius:50%;
    background:rgba(245,244,240,0.3);border:none;cursor:pointer;
    transition:background var(--tr);
}
.slide-dot.active,.slide-dot:hover{background:var(--color-bg)}

/* Hero Progress Bar (Snaidero) */
.hero-progress{
    position:absolute;bottom:0;left:0;right:0;height:4px;
    background:rgba(0,0,0,0.1);z-index:3;
}
.hero-progress__bar{
    height:100%;width:0;
    background:var(--color-heading);
    transition:width 0.1s linear;
}

/* ═══ HERO CONTACT BUTTON (mobile only) ═══ */
.hero-contact-btn{
    display:none;
}
@media(max-width:848px){
    .hero-contact-btn{
        display:block;position:absolute;z-index:4;
        left:50%;transform:translateX(-50%);
        bottom:38%;
        background:transparent;color:#fff;
        border:1px solid rgba(255,255,255,0.6);
        cursor:pointer;
        font-family:var(--font-body);font-size:0.85rem;font-weight:400;
        text-transform:uppercase;letter-spacing:0.15em;
        padding:12px 28px;
        transition:background 0.2s, border-color 0.2s;
    }
    .hero-contact-btn:active{background:rgba(255,255,255,0.15);border-color:#fff}
}

/* ═══ HERO PRODUCT CARD ═══ */
.section{padding:80px 0}
.section-lead{
    text-align:center;max-width:700px;margin:0 auto 48px;
    font-family:var(--font-body);font-size:0.95rem;color:var(--color-text);line-height:1.7;
}
.section-title{
    font-family:var(--font-heading);font-size:2.4rem;font-weight:300;
    color:var(--color-heading);text-align:center;margin-bottom:12px;
}
/* ═══ ZIGZAG SECTIONS (50/50 — Snaidero mockup layout) ═══ */
.zigzag{
    display:flex;
    align-items:center;
    gap:80px;
    padding:100px 48px;
    max-width:1400px;
    margin:0 auto;
}
.zigzag--reverse{flex-direction:row-reverse}
.zigzag__media{
    flex:1;
    aspect-ratio:4/3;
    overflow:hidden;
    /* NO border, box-shadow, border-radius — clean & elegant */
}
.zigzag__media img{
    display:block;width:100%;height:100%;object-fit:cover;
    transition:transform 0.6s ease;
}
.zigzag__media:hover img{transform:scale(1.03)}
.zigzag__placeholder{
    width:100%;height:100%;display:flex;align-items:center;justify-content:center;
    font-size:4rem;background:linear-gradient(135deg,#e8ebe4,#f0f0eb);
    aspect-ratio:4/3;
}
.zigzag__content{flex:1}
.zigzag__title{
    font-family:var(--font-heading);
    font-size:3rem;
    font-weight:400;
    color:var(--color-heading);
    margin-bottom:24px;
    text-transform:uppercase;
    letter-spacing:0.06em;
}
.zigzag__text{
    font-family:var(--font-body);
    font-size:0.95rem;
    font-weight:300;
    color:#8A8D82;
    line-height:1.8;
    margin-bottom:32px;
}
.zigzag__cta{
    display:inline-block;
    font-family:var(--font-body);
    font-size:0.78rem;
    font-weight:400;
    text-transform:uppercase;
    letter-spacing:0.15em;
    color:var(--color-heading);
    border-bottom:1px solid var(--color-heading);
    padding-bottom:4px;
    cursor:pointer;
    transition:opacity 0.3s;
    text-decoration:none;
}
.zigzag__cta:hover{opacity:0.5}
.zigzag-divider{
    border:none;
    height:1px;
    background:var(--color-border);
    max-width:1300px;
    margin:0 auto;
}
/* Collections zigzag — clickable */
.zigzag[id="products"]{cursor:pointer}
.zigzag[id="products"] .zigzag__media img{transition:transform 0.6s ease,filter 0.4s ease}
.zigzag[id="products"]:hover .zigzag__media img{transform:scale(1.03);filter:brightness(0.95)}

/* Legacy macro classes (kept for B2B compatibility) */
.macro-grid{display:none}
.macro-card,.macro-image,.macro-info,.macro-placeholder,.macro-arrow{display:none}

/* ═══ PRODUCTS EXPANDABLE OVERLAY (85vw — category cards) ═══ */
.products-expand-overlay{
    display:none;position:fixed;inset:0;z-index:1000;
    align-items:center;justify-content:center;
    background:rgba(245,244,240,0.93);
}
.products-expand-overlay.active{display:flex}
.products-expand-card{
    width:85vw;max-width:1200px;padding:48px;
    position:relative;animation:modalIn 0.3s ease;
}
.products-expand-close{
    position:absolute;top:16px;right:16px;
    background:none;border:none;font-size:1.5rem;
    color:var(--color-text);cursor:pointer;
    transition:color var(--tr);
}
.products-expand-close:hover{color:var(--color-heading)}
.products-expand-grid{
    display:grid;grid-template-columns:1fr 1fr;gap:40px;
}
.catalog-preview-card{
    cursor:pointer;overflow:hidden;
    transition:transform 0.3s ease;
}
.catalog-preview-card:hover{transform:translateY(-2px)}
.catalog-preview-image{
    height:400px;overflow:hidden;background:#ECEAE4;
}
.catalog-preview-image img{
    width:100%;height:100%;object-fit:cover;
    transition:transform 0.7s ease;
}
.catalog-preview-card:hover .catalog-preview-image img{transform:scale(1.02)}
.catalog-preview-placeholder{
    height:100%;display:flex;align-items:center;justify-content:center;
    font-size:4rem;user-select:none;
}
.catalog-preview-info{padding:16px 0 0}
.catalog-preview-info h3{
    font-family:var(--font-body);font-size:1em;font-weight:400;
    color:var(--color-heading);margin-bottom:6px;letter-spacing:0.05em;
    display:inline-flex;align-items:center;gap:10px;
}
.catalog-preview-info h3::before{
    content:'→';font-size:16px;color:var(--color-text);
    transition:transform var(--tr);
}
.catalog-preview-card:hover .catalog-preview-info h3::before{transform:translateX(4px)}
.catalog-preview-card--empty{cursor:default;pointer-events:none;position:relative}
.catalog-preview-card--empty .catalog-preview-image{filter:grayscale(1);opacity:0.5}
.catalog-preview-card--empty .catalog-preview-info{opacity:0.45}
.catalog-preview-coming{
    position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;
    font-family:var(--font-body);font-size:13px;font-weight:400;
    letter-spacing:0.1em;text-transform:uppercase;color:var(--color-heading);
    background:rgba(255,255,255,0.88);padding:8px 20px;
    backdrop-filter:blur(4px);border:1px solid var(--color-border);
}
.catalog-preview-info p{
    color:var(--color-text);font-size:15px;font-weight:300;line-height:22px;
}

/* ═══ INTRO MODAL (70vw — collection preview) ═══ */
.intro-overlay{
    display:none;position:fixed;inset:0;z-index:1000;
    align-items:center;justify-content:center;
    background:rgba(26,31,23,0.45);
}
.intro-overlay.active{display:flex}
.intro-card{
    position:relative;width:70vw;max-width:1000px;
    height:70vh;max-height:650px;
    background:var(--color-bg);overflow:hidden;display:flex;
    animation:modalIn 0.3s ease;
}
.intro-close{
    position:absolute;top:20px;right:20px;z-index:10;
    background:none;border:none;font-size:1.5rem;
    color:var(--color-text);cursor:pointer;
    transition:color var(--tr);
}
.intro-close:hover{color:var(--color-heading)}
.intro-card__left{
    flex:0 0 50%;height:100%;position:relative;
    background:#ECEAE4;overflow:hidden;
}
.intro-card__img{width:100%;height:100%;object-fit:cover;display:block}
.intro-card__placeholder{
    width:100%;height:100%;display:flex;align-items:center;justify-content:center;
    background:#ECEAE4;font-size:7rem;user-select:none;
}
.intro-card__right{
    flex:0 0 50%;height:100%;display:flex;flex-direction:column;
    padding:48px 40px 40px;overflow-y:auto;
}
.intro-card__title{
    font-family:var(--font-heading);font-size:1.6rem;font-weight:400;
    color:var(--color-heading);margin-bottom:20px;letter-spacing:0.03em;
}
.intro-card__desc{
    font-family:var(--font-body);font-size:0.95rem;font-weight:300;
    color:var(--color-text);line-height:1.7;flex:1;margin-bottom:32px;
}
.intro-card__actions{
    display:flex;flex-direction:column;gap:16px;margin-top:auto;
}
.intro-card__actions .btn{width:100%;justify-content:center}

/* ═══ CATALOG MODAL (85vw — full product catalog) ═══ */
.catalog-overlay{
    display:none;position:fixed;inset:0;z-index:1100;
    align-items:center;justify-content:center;
    background:rgba(26,31,23,0.45);
}
.catalog-overlay.active{display:flex}
.catalog-modal{
    position:relative;width:85vw;max-width:1200px;
    height:85vh;max-height:800px;
    background:var(--color-bg);overflow-y:auto;padding:2rem;
    animation:modalIn 0.3s ease;
}
.catalog-modal__close{
    position:sticky;top:0;float:right;z-index:10;
    background:none;border:none;font-size:1.5rem;
    color:var(--color-text);cursor:pointer;
    transition:color var(--tr);margin-bottom:8px;
}
.catalog-modal__close:hover{color:var(--color-heading)}
.catalog-modal__title{
    font-family:var(--font-heading);font-size:1.6rem;font-weight:400;
    color:var(--color-heading);text-align:center;
    margin-bottom:28px;letter-spacing:0.05em;
}

/* Catalog Filters */
.catalog-filters{
    display:flex;gap:16px;flex-wrap:wrap;justify-content:center;
    margin-bottom:32px;padding:20px 24px;
    border:1px solid var(--color-border);
}
.filter-group{display:flex;flex-direction:column;gap:5px;min-width:170px;flex:1;max-width:220px}
.filter-group label{
    font-family:var(--font-body);font-size:12px;font-weight:400;
    letter-spacing:0.1em;color:var(--color-text);
}
.filter-select{
    appearance:none;-webkit-appearance:none;
    padding:10px 36px 10px 14px;
    border:1px solid var(--color-border);
    font-family:var(--font-body);font-size:14px;font-weight:300;
    color:var(--color-heading);
    background:var(--color-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24'%3E%3Cpath fill='%23AAA' d='M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6z'/%3E%3C/svg%3E") no-repeat right 12px center;
    background-size:12px;cursor:pointer;transition:border-color var(--tr);
}
.filter-select:focus{outline:none;border-color:var(--color-heading)}
.filter-select:hover{border-color:var(--color-heading)}
.catalog-no-results{
    text-align:center;font-size:16px;color:var(--color-text);
    padding:60px 24px;font-weight:300;
}

/* Product Grid */
.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.product-card{cursor:pointer;transition:opacity var(--tr)}
.product-card:hover{opacity:0.8}
.product-card__image{position:relative;height:260px;overflow:hidden}
.product-card__image img{
    width:100%;height:100%;object-fit:cover;transition:transform 0.7s ease;
}
.product-card:hover .product-card__image img{transform:scale(1.02)}
.product-card__placeholder{
    height:100%;display:flex;align-items:center;justify-content:center;
    font-size:3.5rem;background:#ECEAE4;user-select:none;
}
.product-card__body{padding:14px 16px 0;text-align:center}
.product-card__category{
    display:inline-block;font-family:var(--font-body);font-size:0.68rem;
    font-weight:400;letter-spacing:0.12em;text-transform:uppercase;color:var(--color-text);margin-bottom:4px;opacity:0.5;
}
.product-card__title{
    font-family:var(--font-heading);font-size:1.1rem;font-weight:400;
    color:var(--color-heading);margin-bottom:4px;letter-spacing:0.03em;line-height:1.3;
}
.product-card__desc{
    font-family:var(--font-body);font-size:0.8rem;font-weight:300;
    color:var(--color-text);line-height:1.5;margin-bottom:8px;
    max-height:2.4rem;overflow:hidden;
    opacity:0.65;
}
.product-card__variants{
    display:inline-block;font-size:0.7rem;font-weight:300;
    color:var(--color-text);letter-spacing:0.05em;opacity:0.45;
}

/* ═══ PRODUCT DETAIL OVERLAY ═══ */
.detail-overlay{
    position:fixed;inset:0;z-index:2000;
    display:flex;align-items:center;justify-content:center;
    background:rgba(26,31,23,0.45);
    opacity:0;transition:opacity 0.3s ease;pointer-events:none;
}
.detail-overlay.hidden{display:none}
.detail-overlay.active{opacity:1;pointer-events:auto}
.detail-box{
    position:relative;width:80vw;max-width:1000px;
    height:75vh;max-height:700px;
    background:var(--color-bg);overflow:hidden;display:flex;
    animation:modalIn 0.3s ease;
}
.detail-close{
    position:absolute;top:20px;right:20px;z-index:10;
    background:none;border:none;font-size:1.5rem;
    color:var(--color-text);cursor:pointer;
    transition:color var(--tr);
}
.detail-close:hover{color:var(--color-heading)}
.detail-left{
    flex:0 0 50%;height:100%;position:relative;
    background:#ECEAE4;overflow:hidden;
}
.detail-img{width:100%;height:100%;object-fit:cover;display:block}
.detail-placeholder{
    width:100%;height:100%;display:flex;align-items:center;justify-content:center;
    background:#ECEAE4;font-size:7rem;user-select:none;
}
.detail-right{
    flex:0 0 50%;height:100%;display:flex;flex-direction:column;
    padding:48px 40px 40px;overflow-y:auto;
}
.detail-badge{
    display:inline-block;align-self:flex-start;
    font-family:var(--font-body);font-size:12px;font-weight:300;
    letter-spacing:0.1em;color:var(--color-text);margin-bottom:16px;
}
.detail-title{
    font-family:var(--font-heading);font-size:1.6rem;font-weight:400;
    color:var(--color-heading);margin-bottom:20px;letter-spacing:0.03em;
}
.detail-desc{
    font-family:var(--font-body);font-size:16px;font-weight:300;
    color:var(--color-text);line-height:1.6;flex:1;margin-bottom:32px;
}
.detail-actions{margin-top:auto}

/* ═══ NOVITA BADGE (product card + detail) ═══ */
.product-card__novita{
    position:absolute;top:12px;left:12px;z-index:2;
    display:inline-flex;align-items:center;gap:4px;padding:4px 12px;
    font-family:var(--font-body);font-size:11px;font-weight:400;
    letter-spacing:0.08em;text-transform:uppercase;
    color:#1565c0;background:rgba(227,242,253,0.92);
    border:1px solid #90caf9;backdrop-filter:blur(6px);
}
.product-card__novita::before{content:'\2726';font-size:12px}

/* ═══ FAVORITE STAR BUTTON ═══ */
.product-card__fav{
    position:absolute;bottom:10px;left:10px;z-index:2;
    width:34px;height:34px;padding:0;border:none;
    background:rgba(255,255,255,0.85);backdrop-filter:blur(6px);
    border-radius:50%;cursor:pointer;
    display:flex;align-items:center;justify-content:center;
    transition:opacity 0.25s ease, transform 0.2s ease;opacity:0;
}
.product-card:hover .product-card__fav,.product-card__fav.active{opacity:1}
.product-card__fav svg{
    width:18px;height:18px;fill:none;stroke:#3D4A35;stroke-width:1.5px;
    transition:fill 0.25s ease, stroke 0.25s ease;
}
.product-card__fav.active svg{fill:#D4A853;stroke:#D4A853}
.product-card__fav:hover{transform:scale(1.15);background:rgba(255,255,255,0.95)}
@media(hover:none){.product-card__fav{opacity:1}}

/* ═══ FAVORITE STAR ON IMAGE (detail overlay) ═══ */
.detail-fav-star{
    position:absolute;bottom:12px;left:12px;z-index:2;
    width:38px;height:38px;padding:0;border:none;
    background:rgba(255,255,255,0.85);backdrop-filter:blur(6px);
    border-radius:50%;cursor:pointer;
    display:flex;align-items:center;justify-content:center;
    transition:opacity 0.25s ease, transform 0.2s ease;
}
.detail-fav-star svg{
    width:19px;height:19px;
    fill:none;stroke:var(--color-text,#333);stroke-width:1.5px;
    transition:fill 0.25s ease, stroke 0.25s ease;
}
.detail-fav-star.active svg{fill:#D4A853;stroke:#D4A853}
.detail-fav-star:hover:not(.disabled){transform:scale(1.15);background:rgba(255,255,255,0.95)}
.detail-fav-star.disabled{opacity:0.35;pointer-events:none}

/* ═══ FAVORITES CONSENT PROMPT ═══ */
.fav-consent-prompt{
    z-index:10;background:#fff;border:1px solid #e0e0e0;
    padding:14px 16px;box-shadow:0 4px 16px rgba(0,0,0,0.12);
    min-width:240px;max-width:320px;
}
.fav-consent-prompt__text{
    font-family:var(--font-body);font-size:12.5px;
    line-height:1.5;color:var(--color-text);margin:0 0 10px;
}
.fav-consent-prompt__actions{display:flex;gap:8px}
.fav-consent-prompt__btn{
    padding:6px 14px;font-family:var(--font-body);font-size:12px;
    font-weight:500;border:none;cursor:pointer;
    transition:opacity 0.2s ease;
}
.fav-consent-prompt__btn:hover{opacity:0.85}
.fav-consent-prompt__btn--accept{background:var(--primary);color:#fff}
.fav-consent-prompt__btn--decline{background:#eee;color:var(--color-text)}

/* Novità row: label + combination pills — celeste palette */
.detail-novita-row{
    display:flex;align-items:center;gap:6px;
    align-self:flex-start;margin-bottom:12px;flex-wrap:wrap;
}
.detail-novita-badge{
    display:inline-flex;align-items:center;gap:5px;padding:5px 14px;
    min-height:30px;box-sizing:border-box;
    font-family:var(--font-body);font-size:10px;font-weight:400;
    letter-spacing:0.1em;text-transform:uppercase;
    color:#1565c0;background:rgba(21,101,192,0.08);
    border:1px solid rgba(21,101,192,0.18);
}
.detail-novita-badge::before{content:'\2726';font-size:11px}
.detail-novita-dots{display:flex;gap:5px;align-items:center}
.novita-dot{
    display:inline-flex;align-items:center;justify-content:center;
    padding:5px 14px;min-height:30px;box-sizing:border-box;
    font-family:var(--font-body);font-size:10px;
    font-weight:400;letter-spacing:0.1em;text-transform:uppercase;
    color:#1565c0;background:rgba(21,101,192,0.06);
    border:1px solid rgba(21,101,192,0.18);border-radius:0;
    cursor:pointer;transition:all var(--tr);line-height:1;
}
.novita-dot:hover{background:rgba(21,101,192,0.12);border-color:rgba(21,101,192,0.35)}
.novita-dot.active{background:#1565c0;color:#fff;border-color:#1565c0}

/* Combo novità badge (on image) — celeste */
.detail-combo-novita{
    position:absolute;top:16px;left:16px;z-index:2;
    display:inline-flex;align-items:center;gap:5px;padding:6px 14px;
    font-family:var(--font-body);font-size:10px;font-weight:400;
    letter-spacing:0.1em;text-transform:uppercase;
    color:#1565c0;background:rgba(227,242,253,0.92);
    border:1px solid rgba(21,101,192,0.2);backdrop-filter:blur(6px);
}
.detail-combo-novita::before{content:'\2726';font-size:11px}

/* ═══ DETAIL VARIANT PILLS ═══ */
.detail-variants{margin-bottom:24px}
.detail-variant-group{margin-bottom:20px}
.detail-variant-group__label{
    display:flex;align-items:center;gap:6px;
    font-family:var(--font-body);font-size:12px;font-weight:400;
    letter-spacing:0.08em;text-transform:uppercase;
    color:var(--color-text);margin-bottom:10px;
}
.detail-variant-icon svg{width:16px;height:16px;color:var(--color-heading)}
.detail-variant-pills{display:flex;flex-wrap:wrap;gap:8px}
.detail-pill{
    display:inline-flex;align-items:center;gap:4px;
    padding:8px 16px;font-family:var(--font-body);font-size:13px;
    font-weight:300;color:var(--color-text);background:#ECEAE4;
    border:1px solid transparent;cursor:pointer;
    transition:all var(--tr);user-select:none;
}
.detail-pill:hover{border-color:var(--color-heading);color:var(--color-heading)}
.detail-pill.active{
    background:var(--color-heading);color:var(--color-bg);
    border-color:var(--color-heading);font-weight:400;
}
.detail-pill.disabled{opacity:0.35;cursor:not-allowed;pointer-events:none;text-decoration:line-through}
.detail-pill.reachable{opacity:0.55;border-style:dashed;cursor:pointer}
.detail-pill.reachable:hover{opacity:0.85;border-style:solid;border-color:var(--color-heading)}

/* ═══ CONTENT OVERLAY (80vw — for "contenuto" cards) ═══ */
.content-overlay{
    position:fixed;inset:0;z-index:1800;
    display:flex;align-items:center;justify-content:center;
    background:rgba(26,31,23,0.50);
    opacity:0;pointer-events:none;transition:opacity 0.3s ease;
}
.content-overlay.active{opacity:1;pointer-events:auto}
.content-card{
    position:relative;width:80vw;max-width:1100px;
    height:80vh;max-height:800px;
    background:var(--color-bg);overflow:hidden;
    animation:modalIn 0.3s ease;
}
.content-card__close{
    position:absolute;top:20px;right:20px;z-index:10;
    background:none;border:none;font-size:1.5rem;
    color:var(--color-text);cursor:pointer;
    transition:color var(--tr);
}
.content-card__close:hover{color:var(--color-heading)}
.content-card__body{width:100%;height:100%;padding:48px 40px;overflow-y:auto}
.content-card__title{
    font-family:var(--font-heading);font-size:1.4rem;font-weight:400;
    color:var(--color-heading);letter-spacing:0.03em;margin-bottom:12px;
}
.content-card__subtitle{
    font-family:var(--font-body);font-size:0.95rem;font-weight:300;
    color:var(--color-text);letter-spacing:0.03em;margin-bottom:20px;
}
.content-card__desc{
    font-family:var(--font-body);font-size:16px;font-weight:300;
    color:var(--color-text);line-height:1.6;margin-bottom:32px;
}

/* Split layout (testo_e_foto) */
.content-split{display:flex;height:100%;gap:0}
.content-split__left{flex:0 0 50%;height:100%;position:relative;background:#ECEAE4;overflow:hidden}
.content-split__right{flex:0 0 50%;height:100%;padding:48px 40px;overflow-y:auto;display:flex;flex-direction:column}
.content-split__single-img{width:100%;height:100%;object-fit:cover;display:block}
.content-split__placeholder{
    width:100%;height:100%;display:flex;align-items:center;justify-content:center;
    font-size:7rem;user-select:none;color:var(--color-text);opacity:0.3;
}

/* Gallery slider */
.content-gallery{width:100%;height:100%;position:relative;overflow:hidden}
.content-gallery__img{
    position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
    opacity:0;transition:opacity 0.4s ease;
}
.content-gallery__img.active{opacity:1}
.content-gallery__placeholder{
    width:100%;height:100%;display:flex;align-items:center;justify-content:center;
    font-size:6rem;user-select:none;color:var(--color-text);opacity:0.3;
}
.content-gallery__nav{
    position:absolute;bottom:20px;left:50%;transform:translateX(-50%);
    display:flex;gap:12px;
}
.content-gallery__prev,.content-gallery__next{
    width:36px;height:36px;background:rgba(245,244,240,0.85);border:none;
    font-size:1rem;color:var(--color-heading);cursor:pointer;
    transition:background var(--tr);
    display:flex;align-items:center;justify-content:center;
}
.content-gallery__prev:hover,.content-gallery__next:hover{background:rgba(245,244,240,1)}

/* Logo grid (griglia_loghi) */
.content-logo-grid{
    display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));
    gap:24px;margin-top:8px;
}
.content-logo-item{
    display:flex;flex-direction:column;align-items:center;
    padding:20px 12px;background:#ECEAE4;
    text-decoration:none;color:var(--color-text);
    transition:opacity var(--tr);
}
.content-logo-item:hover{opacity:0.7}
.content-logo-item img{max-height:60px;margin-bottom:8px;object-fit:contain}
.content-logo-item__name,
.content-logo-item span{font-size:12px;letter-spacing:0.05em;text-align:center}

/* Product grid (galleria_prodotti) */
.content-product-grid{
    display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));
    gap:24px;margin-top:8px;
}
.content-product-item{background:#ECEAE4;padding:0;overflow:hidden}
.content-product-item img{width:100%;aspect-ratio:4/3;object-fit:cover}
.content-product-item h4,
.content-product-item__title{
    font-family:var(--font-heading);font-size:0.95rem;font-weight:400;
    color:var(--color-heading);padding:12px 16px 4px;letter-spacing:0.03em;
}
.content-product-item p,
.content-product-item__desc{
    font-family:var(--font-body);font-size:14px;font-weight:300;
    color:var(--color-text);padding:0 16px 8px;line-height:1.5;
}
.content-product-item a,
.content-product-item__link{
    display:block;padding:8px 16px 14px;
    font-size:13px;letter-spacing:0.05em;color:var(--color-heading);
}

/* ═══ NEWS CARD SLIDER ═══ */
.section-news{padding:100px 0 120px;background:var(--white)}
.news-card-slider-wrapper{position:relative;overflow:hidden}
.news-card-slider{
    display:flex;gap:40px;overflow:hidden;
    padding:20px 4px 60px;
    transition:transform 0.5s cubic-bezier(0.4,0,0.2,1);
}
.news-card{
    flex:0 0 calc((100% - 40px) / 2);min-width:0;
    position:relative;display:flex;flex-direction:column;
    cursor:pointer;background:transparent;
    overflow:visible;transition:opacity 0.4s ease;
}
.news-card:hover .news-card-visual{transform:translateY(-4px)}

/* ═══ FOOTER (Snaidero dark) ═══ */
.footer{
    background:var(--color-dark);padding:80px 0 40px;
}
.footer-grid{
    display:flex;flex-direction:column;align-items:center;
    gap:24px;text-align:center;
}
.footer-col h4{
    font-family:var(--font-heading);font-size:1.2rem;font-weight:400;
    color:var(--color-bg);margin-bottom:8px;letter-spacing:0.05em;
}
.footer-col p{
    font-size:0.95rem;font-weight:300;line-height:1.6;
    color:rgba(245,244,240,0.5);
}
.footer-links{
    display:flex;flex-wrap:wrap;justify-content:center;gap:0;
}
.footer-links li{display:inline}
.footer-links li::after{content:' — ';color:rgba(245,244,240,0.3);font-weight:300}
.footer-links li:last-child::after{content:''}
.footer-links li a{
    color:rgba(245,244,240,0.5);font-size:0.95rem;font-weight:300;
    transition:color var(--tr);
}
.footer-links li a:hover{color:var(--color-bg)}
.footer-social{
    display:flex;justify-content:center;gap:16px;margin-top:32px;flex-wrap:wrap;
}
.footer-social a{
    display:flex;align-items:center;justify-content:center;
    width:38px;height:38px;border-radius:50%;
    background:rgba(245,244,240,0.08);
    transition:background var(--tr),transform var(--tr);
}
.footer-social a:hover{
    background:rgba(245,244,240,0.18);transform:translateY(-2px);
}
.footer-social a svg{
    width:18px;height:18px;fill:rgba(245,244,240,0.6);transition:fill var(--tr);
}
.footer-social a:hover svg{fill:var(--color-bg)}
.footer-bottom{margin-top:40px;text-align:center}
.footer-bottom p{font-size:14px;font-weight:300;color:rgba(245,244,240,0.3)}
.admin-link{
    color:rgba(245,244,240,0.1);text-decoration:none;
    margin-left:8px;font-size:12px;transition:color var(--tr);
}
.admin-link:hover{color:rgba(245,244,240,0.3)}

/* ═══ MODALS ═══ */
.modal{
    display:none;position:fixed;inset:0;z-index:2000;
    align-items:center;justify-content:center;
}
.modal.active{display:flex}
.modal-overlay{
    position:absolute;inset:0;
    background:rgba(26,31,23,0.45);cursor:pointer;
}
.modal-content{
    position:relative;background:var(--color-bg);
    padding:44px 48px;max-width:650px;width:92%;
    max-height:90vh;overflow-y:auto;
    animation:modalIn 0.3s ease;
}
@keyframes modalIn{
    from{opacity:0;transform:translateY(14px)}
    to{opacity:1;transform:translateY(0)}
}
.modal-close{
    position:absolute;top:16px;right:16px;
    background:none;border:none;font-size:1.5rem;
    color:var(--color-text);cursor:pointer;
    transition:color var(--tr);z-index:1;
}
.modal-close:hover{color:var(--color-heading)}
.modal-content h2{
    font-family:var(--font-heading);font-size:1.4rem;font-weight:400;
    color:var(--color-heading);margin-bottom:24px;
    letter-spacing:0.03em;padding-right:30px;
}

/* Body scroll lock */
body.modal-open{overflow:hidden}

/* ═══ FORMS — bottom-line only ═══ */
.form-group{margin-bottom:16px}
.form-group label{display:none!important;visibility:hidden;height:0;margin:0;padding:0}
.form-group input,
.form-group textarea,
.form-group select{
    width:100%;padding:12px 0;
    border:none;border-bottom:1px solid var(--color-border);
    font-family:var(--font-body);font-size:16px;font-weight:300;
    color:var(--color-heading);background:transparent;
    transition:border-color var(--tr);outline:none;
}
.form-group input::placeholder,
.form-group textarea::placeholder{
    color:var(--color-text);font-size:14px;font-weight:300;
}
.form-group input:focus,
.form-group textarea:focus{border-bottom-color:var(--color-heading)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}

/* Privacy checkbox */
.form-privacy{display:flex;align-items:center;gap:10px;margin:20px 0 24px}
.form-privacy input[type="checkbox"]{
    flex-shrink:0;width:14px;height:14px;min-width:14px;
    cursor:pointer;margin:0;accent-color:var(--color-heading);
}
.form-privacy span{flex:1;font-size:12px;font-weight:300;color:var(--color-text);line-height:1.4}
.form-privacy a{font-weight:400;color:var(--color-heading)}
.form-privacy a:hover{color:var(--color-text)}

/* Newsletter opt-in */
.newsletter-highlight{
    margin-top:16px;padding:14px 0;
    border-top:1px solid var(--color-border);
    border-bottom:1px solid var(--color-border);
    text-align:center;
}
.newsletter-highlight a{
    font-size:1.05rem;font-weight:400;letter-spacing:0.04em;
    color:var(--color-heading);text-decoration:none;
    border-bottom:1px solid transparent;
    transition:border-color var(--tr),color var(--tr);cursor:pointer;
}
.newsletter-highlight a:hover{border-bottom-color:var(--color-heading)}
.newsletter-highlight a.active{
    color:var(--color-dark);border-bottom-color:var(--color-dark);font-weight:400;
}
.newsletter-highlight a.active::after{content:' ✓'}

/* ═══ BUTTONS ═══ */
.btn{
    display:inline-flex;align-items:center;justify-content:center;
    padding:14px 32px;border:none;background:none;
    font-family:var(--font-body);font-size:14px;font-weight:300;
    color:var(--color-heading);cursor:pointer;letter-spacing:0.1em;
    border-bottom:1px solid var(--color-heading);
    transition:color var(--tr), border-color var(--tr);
}
.btn:hover{color:var(--color-text);border-bottom-color:var(--color-text)}
.btn-primary{
    background:var(--color-heading);color:var(--color-bg);
    border:none;padding:14px 32px;
    font-family:var(--font-body);font-size:14px;font-weight:300;
    letter-spacing:0.1em;cursor:pointer;transition:opacity var(--tr);
}
.btn-primary:hover{opacity:0.7}
.btn-outline{
    background:none;border:1px solid var(--color-bg);
    color:var(--color-bg);padding:14px 32px;
    font-family:var(--font-body);font-size:14px;font-weight:300;
    letter-spacing:0.1em;cursor:pointer;
    transition:background var(--tr), color var(--tr);
}
.btn-outline:hover{background:var(--color-bg);color:var(--color-heading)}
.btn-outline-dark{
    background:none;border:1px solid var(--color-border);
    color:var(--color-heading);padding:14px 32px;
    font-family:var(--font-body);font-size:14px;font-weight:300;
    letter-spacing:0.1em;cursor:pointer;
    transition:border-color var(--tr), color var(--tr);
}
.btn-outline-dark:hover{border-color:var(--color-heading)}
.btn-sm{padding:9px 18px;font-size:12px}
.btn-full{width:100%;text-align:center}
/* Legacy .btn-catalog */
.btn-catalog{
    background:var(--white);color:var(--primary);
    border:2px solid var(--white);padding:16px 40px;
    font-size:0.82rem;font-weight:700;text-transform:uppercase;
    letter-spacing:2px;cursor:pointer;
    font-family:var(--font-body);transition:all var(--tr);
    opacity:0;transform:translateY(12px);
}
.btn-catalog:hover{background:var(--primary);color:var(--white);border-color:var(--primary)}

.form-feedback{margin-top:10px;font-size:14px;font-weight:300}
.form-feedback.success{padding:10px 14px;background:#E4E8E0;color:var(--color-heading);border-left:2px solid var(--color-heading)}
.form-feedback.error{padding:10px 14px;background:#FAF0EE;color:#D32F2F;border-left:2px solid #D32F2F}

/* Button loading */
.btn-loading{opacity:0.5;cursor:wait;pointer-events:none}
.btn-spinner{
    display:inline-block;width:14px;height:14px;
    border:2px solid rgba(26,31,23,0.12);
    border-top-color:var(--color-heading);border-radius:50%;
    animation:btnSpin 0.6s linear infinite;
    vertical-align:middle;margin-right:6px;
}
@keyframes btnSpin{to{transform:rotate(360deg)}}

/* Form success */
.form-success-message{
    display:flex;flex-direction:column;
    align-items:center;justify-content:center;
    text-align:center;padding:40px 20px;min-height:200px;
    opacity:0;transform:translateY(10px);
    transition:opacity 0.5s ease, transform 0.5s ease;
}
.form-success-message.visible{opacity:1;transform:translateY(0)}
.form-success-icon{
    display:flex;align-items:center;justify-content:center;
    width:48px;height:48px;color:var(--color-heading);
    font-size:1.5rem;margin-bottom:20px;
    border:1px solid var(--color-border);
}
.form-success-title{
    font-family:var(--font-heading);font-size:1.25rem;font-weight:400;
    color:var(--color-heading);margin-bottom:12px;letter-spacing:0.03em;
}
.form-success-text{
    font-family:var(--font-body);font-size:16px;font-weight:300;
    color:var(--color-text);line-height:1.6;max-width:300px;
}

/* Consent toggles */
.consent-toggles{margin-bottom:20px}
.consent-row{padding:12px 0;border-bottom:1px solid var(--color-border)}
.consent-row label{display:flex!important;align-items:center;gap:10px;font-size:14px;font-weight:300;cursor:pointer}
.consent-row small{color:var(--color-text);font-size:12px}

/* ═══ COOKIE BANNER ═══ */
.cookie-banner{
    position:fixed;bottom:0;left:0;right:0;z-index:9999;
    background:var(--color-bg);border-top:1px solid var(--color-border);
}
.cookie-content{
    max-width:var(--container-max);margin:0 auto;
    padding:14px 50px;display:flex;align-items:center;gap:20px;flex-wrap:wrap;
}
.cookie-content p{
    flex:1;min-width:260px;font-size:14px;font-weight:300;
    color:var(--color-text);line-height:1.6;
}
.cookie-content p a{font-weight:400;color:var(--color-heading)}
.cookie-actions{display:flex;gap:12px}

/* ═══ FADE ANIMATIONS ═══ */
.fade-in{opacity:0;transition:opacity 0.7s ease}
.fade-in.visible{opacity:1}
.fade-up{
    opacity:0;transform:translateY(40px);
    transition:opacity 0.8s ease, transform 0.8s ease;
}
.fade-up.visible{opacity:1;transform:translateY(0)}

/* ═══ BUTTON ICON ALIGNMENT ═══ */
.btn i,.btn svg{transform:translateY(1px)}

/* ═══ CATALOG COLLAPSIBLE BANNER (novità + favorites) ═══ */
.catalog-banner{
    position:relative;margin:10px 0 8px;
}
/* Slim banner bar */
.catalog-banner__bar{
    display:flex;align-items:center;gap:8px;
    padding:9px 18px;cursor:pointer;
    font-family:var(--font-body);font-size:11px;font-weight:400;
    letter-spacing:0.08em;text-transform:uppercase;
    border:none;width:100%;text-align:left;
    transition:opacity 0.2s ease;
}
.catalog-banner__bar:hover{opacity:0.85}
/* Chevron */
.catalog-banner__chevron{
    margin-left:auto;font-size:10px;transition:transform 0.3s ease;
}
.catalog-banner.open .catalog-banner__chevron{transform:rotate(180deg)}
/* Novità banner — celeste */
.catalog-banner--novita .catalog-banner__bar{
    background:rgba(21,101,192,0.07);color:#1565c0;
    border:1px solid rgba(21,101,192,0.15);
}
/* Favorites banner — amber/gold */
.catalog-banner--favorites .catalog-banner__bar{
    background:rgba(183,149,11,0.07);color:#8d6e00;
    border:1px solid rgba(183,149,11,0.18);
}
/* Icon in banner */
.catalog-banner__icon{font-size:13px;line-height:1}
/* Collapsible body */
.catalog-banner__body{
    position:relative;
    max-height:0;overflow:hidden;
    transition:max-height 0.35s ease, padding 0.35s ease;
    padding:0;
}
.catalog-banner.open .catalog-banner__body{
    max-height:280px;padding:12px 0 4px;
}
/* Scrollable track inside body */
.catalog-carousel-track{
    display:flex;gap:12px;overflow-x:auto;scroll-behavior:smooth;
    -ms-overflow-style:none;scrollbar-width:none;
    padding:2px 0;
}
.catalog-carousel-track::-webkit-scrollbar{display:none}
/* Arrow buttons */
.catalog-carousel-arrow{
    position:absolute;top:50%;transform:translateY(-50%);z-index:3;
    width:30px;height:30px;border:none;border-radius:50%;
    background:rgba(255,255,255,0.92);box-shadow:0 1px 5px rgba(0,0,0,0.12);
    cursor:pointer;display:flex;align-items:center;justify-content:center;
    opacity:0;transition:opacity 0.25s ease;pointer-events:none;
    color:var(--color-heading);font-size:13px;
}
.catalog-banner__body:hover .catalog-carousel-arrow{opacity:1;pointer-events:auto}
.catalog-carousel-arrow:hover{background:#fff;box-shadow:0 2px 8px rgba(0,0,0,0.16)}
.catalog-carousel-arrow--left{left:0}
.catalog-carousel-arrow--right{right:0}

/* ═══ SHARED MINI-CARD (novità + favorites, uniform size) ═══ */
.cat-mini-card{
    flex:0 0 130px;width:130px;cursor:pointer;transition:opacity var(--tr);
}
.cat-mini-card:hover{opacity:0.82}
.cat-mini-card__image{
    position:relative;height:120px;overflow:hidden;background:#ECEAE4;
}
.cat-mini-card__image img{
    width:100%;height:100%;object-fit:cover;transition:transform 0.7s ease;
}
.cat-mini-card:hover .cat-mini-card__image img{transform:scale(1.03)}
.cat-mini-card__placeholder{
    display:flex;align-items:center;justify-content:center;
    height:100%;font-size:1.4rem;color:#ccc;
}
.cat-mini-card__remove{
    position:absolute;top:5px;right:5px;width:20px;height:20px;
    background:rgba(255,255,255,0.85);border:none;border-radius:50%;
    cursor:pointer;display:flex;align-items:center;justify-content:center;
    font-size:12px;color:#999;transition:background 0.2s,color 0.2s;
    z-index:2;line-height:1;
}
.cat-mini-card__remove:hover{background:#fff;color:#d32f2f}
.cat-mini-card__info{padding:6px 0 0}
.cat-mini-card__name{
    font-family:var(--font-body);font-size:0.72rem;font-weight:400;
    color:var(--color-heading);letter-spacing:0.03em;
    line-height:1.2;margin:0 0 2px;
    overflow:hidden;text-overflow:ellipsis;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
}
.cat-mini-card__variants{display:flex;flex-wrap:wrap;gap:2px}
.cat-mini-pill{
    display:inline-block;font-family:var(--font-body);
    font-size:9px;font-weight:300;color:var(--color-text);
    letter-spacing:0.03em;background:none;padding:0;
}
.cat-mini-pill::after{content:' · ';color:#ccc}
.cat-mini-pill:last-child::after{content:''}

/* ═══ RESPONSIVE ═══ */

/* ≤ 1250px — force compact nav */
@media(max-width:1250px){
    .navbar{
        height:var(--nav-h-compact);background:var(--color-header-bg);
        backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
    }
    .navbar .logo-text{font-size:1.2rem;color:var(--color-heading)}
    .navbar .nav-links a{font-size:0.7rem}
    .b2b-maintenance-banner{top:var(--nav-h-compact)}
}

/* ≤ 848px — hamburger, stacked */
@media(max-width:848px){
    .navbar{
        height:var(--nav-h-compact);background:var(--color-header-bg);
        backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
    }
    .navbar .logo-text{color:var(--color-heading);font-size:1.2rem}
    .nav-container{
        display:flex;align-items:center;justify-content:space-between;
        flex-wrap:wrap;width:100%;padding:0 24px;position:relative;
    }
    .nav-side--left{display:none;flex:0}
    .logo{order:1;padding:4px 0;position:absolute;left:50%;transform:translateX(-50%)}
    .logo-symbol{height:28px}
    .logo-text{font-size:0.9rem;margin-top:1px;letter-spacing:0.12em}
    .logo-flag i{width:10px;height:2px}
    .logo-flag{margin-top:2px}
    .nav-hamburger{display:block;order:0}
    .nav-actions{order:2;display:flex;flex-shrink:0;align-items:center}
    .nav-actions > *:not(.nav-hamburger){display:none}
    .nav-actions .nav-hamburger{display:block}
    .nav-mobile-extras{display:none}
    .navbar.nav-open .nav-mobile-extras{
        display:flex;order:12;flex:0 0 100%;
        justify-content:center;align-items:center;gap:20px;
        padding:16px 0;border-top:1px solid var(--color-border);
    }
    .nav-side:not(.nav-side--left){display:none}
    .navbar.nav-open{
        height:auto;min-height:var(--nav-h-compact);
        background:var(--color-bg);backdrop-filter:none;-webkit-backdrop-filter:none;
        border-bottom:1px solid var(--color-border);
    }
    .navbar.nav-open .nav-side,
    .navbar.nav-open .nav-side--left{
        display:block;order:10;width:100%;flex:0 0 100%;text-align:center;
    }
    .navbar.nav-open .nav-side--left{padding-bottom:16px}
    .navbar.nav-open .nav-side .nav-links{display:flex;flex-direction:column}
    .navbar.nav-open .nav-side .nav-links li a{padding:12px 24px;color:var(--color-text)}
    .navbar.nav-open .nav-side .nav-links li+li::before{display:none}

    /* Zigzag responsive — tablet */
    .zigzag{flex-direction:column!important;gap:40px;padding:60px 24px}
    .zigzag__media{aspect-ratio:16/9;width:100%}
    .zigzag__title{font-size:2.2rem}
    .zigzag__text{font-size:0.9rem}
    .products-expand-card{width:95vw;padding:32px 24px}
    .products-expand-grid{gap:24px}
    .catalog-preview-image{height:280px}
    .intro-card{flex-direction:column;width:92vw;height:88vh;max-height:none}
    .intro-card__left{flex:0 0 45%;height:auto}
    .intro-card__right{flex:1;padding:28px 24px 24px}
    .catalog-modal{width:95vw;height:90vh;padding:1.5rem}
    .product-grid{grid-template-columns:repeat(2,1fr)}
    .detail-box{flex-direction:column;width:92vw;height:88vh;max-height:none}
    .detail-left{flex:0 0 45%;height:auto}
    .detail-right{flex:1;padding:28px 24px 24px}
    .content-card{width:92vw;height:88vh;max-height:none}
    .content-card__body{padding:32px 24px}
    .content-split{flex-direction:column}
    .content-split__left{flex:0 0 45%;height:auto}
    .content-split__right{flex:1;padding:24px;overflow-y:auto}
    .content-logo-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:16px}
    .content-product-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px}
}

/* ≤ 600px — single column, small */
@media(max-width:600px){
    .container{width:calc(100% - 32px)}
    .slide-content h1{font-size:1.6rem}
    .hero-cta{flex-direction:column;align-items:center}
    .section{padding:80px 0}
    /* Zigzag responsive — mobile */
    .zigzag{padding:40px 16px;gap:24px}
    .zigzag__title{font-size:1.8rem}
    .zigzag__text{font-size:0.85rem;margin-bottom:20px}
    .zigzag__cta{font-size:0.72rem}
    .zigzag-divider{margin:0 16px}
    .products-expand-card{width:98vw;padding:24px 16px}
    .products-expand-grid{grid-template-columns:1fr;gap:20px}
    .catalog-preview-image{height:220px}
    .form-row{grid-template-columns:1fr}
    .modal-content{padding:24px 18px;max-width:95%;width:95%}
    .footer-links{flex-direction:column;gap:8px}
    .footer-links li::after{content:''}
    .cookie-content{flex-direction:column;text-align:center;padding:14px 16px}
    .cookie-actions{justify-content:center}
    .slide-arrow{display:none}
    .intro-card{width:96vw;height:92vh}
    .intro-card__left{flex:0 0 40%}
    .intro-card__right{padding:20px 18px 18px}
    .catalog-modal{width:98vw;height:94vh;padding:1rem}
    .product-grid{grid-template-columns:1fr}
    .catalog-filters{flex-direction:column;gap:12px;padding:14px 16px}
    .filter-group{min-width:auto;max-width:none}
    .detail-box{width:96vw;height:92vh}
    .detail-left{flex:0 0 40%}
    .detail-right{padding:20px 18px 18px}
    .content-card{width:96vw;height:92vh}
    .content-card__body{padding:24px 18px}
    .content-split__left{flex:0 0 40%}
    .content-split__right{padding:20px 18px 18px}
    .content-logo-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:12px}
    .content-product-grid{grid-template-columns:1fr;gap:12px}
    .detail-pill{padding:6px 12px;font-size:12px}
    .detail-variant-group{margin-bottom:14px}
    .detail-variant-group__label{font-size:11px;margin-bottom:6px}
    .favorites-grid-public{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))!important}
    .megamenu__inner{grid-template-columns:1fr;gap:24px;width:85%}
}

/* ═══════════════════════════════════════════════════════════════════════
   B2B AREA — Consolidated from inline styles
   Visual alignment with "Premium Nature" homepage design
   ═══════════════════════════════════════════════════════════════════════ */

/* ── B2B Navbar (Snaidero style — shared across all B2B pages) ── */
.b2b-nav {
    position: sticky;
    top: 0;
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 40px;
    height: var(--nav-h);
    background: var(--color-bg);
    box-shadow: 0 1px 0 rgba(0,0,0,0.06);
    transition: height var(--tr), background var(--tr);
}
.b2b-nav__logo {
    display: flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
    color: var(--color-heading);
}
.b2b-nav__logo img { height: 36px; width: auto; transition: height var(--tr); }
.b2b-nav__logo span {
    font-family: var(--font-body);
    font-size: 1.5rem;
    font-weight: 300;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--color-heading);
}
.b2b-nav__right { display: flex; align-items: center; gap: 16px; }
.b2b-nav__company {
    font-family: var(--font-body);
    font-size: 0.8rem;
    color: var(--color-text);
    letter-spacing: 0.03em;
    max-width: 180px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    cursor: default;
}
.b2b-nav__company strong { color: var(--color-heading); font-weight: 400; }

/* ── B2B Nav Buttons (Snaidero minimal) ── */
.btn-nav {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 18px;
    font-family: var(--font-body);
    font-size: 0.75rem;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    border: none;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    transition: color var(--tr), background var(--tr);
    color: var(--color-text);
    background: transparent;
}
.btn-nav:hover { color: var(--color-heading); }
.btn-nav--back { color: var(--color-heading); background: rgba(61,74,53,0.06); }
.btn-nav--back:hover { background: rgba(61,74,53,0.10); }
.btn-nav--active { color: var(--color-heading); background: rgba(61,74,53,0.08); font-weight: 400; }
.btn-nav svg { width: 16px; height: 16px; fill: currentColor; }
.btn-nav--cart {
    position: relative;
    color: var(--color-heading);
    background: rgba(61,74,53,0.06);
    padding: 8px 12px;
}
.btn-nav--cart:hover { background: rgba(61,74,53,0.10); }
.btn-nav--cart svg { width: 20px; height: 20px; }
.btn-nav--logout {
    color: var(--color-bg);
    background: var(--color-heading);
}
.btn-nav--logout:hover {
    opacity: 0.85;
    color: var(--color-bg);
}
.btn-logout {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 8px 20px;
    font-family: var(--font-body); font-size: 0.75rem; font-weight: 400;
    text-transform: uppercase; letter-spacing: 0.1em;
    color: var(--color-bg); background: var(--color-heading);
    border: none;
    text-decoration: none; cursor: pointer;
    transition: opacity var(--tr);
}
.btn-logout:hover { opacity: 0.85; color: var(--color-bg); }
.btn-logout svg { width: 16px; height: 16px; fill: currentColor; }

/* ── Cart Badge ── */
.cart-badge {
    position: absolute;
    top: -6px; right: -6px;
    background: var(--primary);
    color: #fff;
    font-size: 0.65rem;
    font-weight: 700;
    width: 20px; height: 20px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-family: var(--font-body);
}
.cart-badge:empty { display: none; }

/* ═══════════════════════════════════════
   NAV ICON WRAPPERS & HOVER POPUPS
   ═══════════════════════════════════════ */
.nav-icon-wrapper { position: relative; display: inline-flex; align-items: center; }

/* Icon button — public navbar */
.nav-icon-btn {
    position: relative; display: flex; align-items: center; justify-content: center;
    width: 40px; height: 40px; background: none; border: none; cursor: pointer;
    color: var(--color-text); transition: color var(--tr); text-decoration: none;
}
.nav-icon-btn:hover { color: var(--color-heading); }
.nav-icon-btn svg { width: 20px; height: 20px; fill: currentColor; }
/* Badge sizing inside public nav icon */
.nav-icon-btn .cart-badge { width: 18px; height: 18px; font-size: 0.6rem; min-width: 18px; }

/* Notification badge — red (same position as .cart-badge) */
.notif-badge {
    position: absolute; top: -6px; right: -6px;
    background: #c0392b; color: #fff;
    font-size: 0.65rem; font-weight: 700;
    width: 20px; height: 20px; min-width: 20px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-family: var(--font-body); line-height: 1; padding: 0;
}
.notif-badge:empty { display: none; }
/* Inside public nav-icon-btn: adjust both badges to same position */
.nav-icon-btn .notif-badge,
.nav-icon-btn .cart-badge { top: 0; right: 0; }

/* B2B nav notification bell */
.btn-nav--notif {
    position: relative; color: var(--color-heading);
    background: rgba(61,74,53,0.06); padding: 8px 12px;
}
.btn-nav--notif:hover { background: rgba(61,74,53,0.10); }
.btn-nav--notif svg { width: 20px; height: 20px; fill: currentColor; }

/* ── Hover Popup (shared) ── */
.nav-popup {
    position: absolute; top: 100%; right: 0; margin-top: 8px;
    background: #fff; border: 1px solid rgba(0,0,0,0.08);
    box-shadow: 0 8px 32px rgba(0,0,0,0.12);
    min-width: 320px; max-width: 380px; max-height: 420px; overflow-y: auto;
    z-index: 2000; opacity: 0; visibility: hidden; transform: translateY(-4px);
    transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease;
    pointer-events: none;
}
.nav-icon-wrapper:hover .nav-popup,
.nav-icon-wrapper .nav-popup.is-open {
    opacity: 1; visibility: visible; transform: translateY(0); pointer-events: auto;
}

/* Popup header */
.nav-popup__header {
    display: flex; align-items: center; justify-content: space-between;
    padding: 14px 16px 10px; border-bottom: 1px solid rgba(0,0,0,0.06);
}
.nav-popup__title {
    font-family: var(--font-body); font-size: 0.75rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: 0.08em; color: var(--color-heading);
}
.nav-popup__action {
    font-family: var(--font-body); font-size: 0.7rem; color: var(--color-text);
    cursor: pointer; background: none; border: none; text-decoration: underline;
    transition: color var(--tr);
}
.nav-popup__action:hover { color: var(--color-heading); }

/* ── Cart Popup ── */
.cart-popup-item {
    display: flex; align-items: center; gap: 12px;
    padding: 12px 16px; border-bottom: 1px solid rgba(0,0,0,0.04);
}
.cart-popup-item__info { flex: 1; min-width: 0; }
.cart-popup-item__name {
    font-family: var(--font-body); font-size: 0.8rem; font-weight: 600;
    color: var(--color-heading); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.cart-popup-item__variants { font-size: 0.7rem; color: var(--color-text); margin-top: 2px; }
.cart-popup-item__qty { font-size: 0.7rem; color: var(--color-text); margin-top: 1px; }
.cart-popup-item__price {
    font-family: var(--font-body); font-size: 0.8rem; font-weight: 600;
    color: var(--color-heading); white-space: nowrap;
}
.cart-popup-footer {
    padding: 12px 16px; border-top: 1px solid rgba(0,0,0,0.06);
    display: flex; align-items: center; justify-content: space-between;
    position: sticky; bottom: 0; background: #fff;
}
.cart-popup-footer__total {
    font-family: var(--font-body); font-size: 0.85rem; font-weight: 700; color: var(--color-heading);
}
.cart-popup-footer__link {
    font-family: var(--font-body); font-size: 0.7rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.08em;
    color: var(--color-bg); background: var(--color-heading);
    padding: 8px 16px; text-decoration: none; transition: opacity var(--tr);
}
.cart-popup-footer__link:hover { opacity: 0.85; }
.cart-popup-empty, .notif-popup-empty {
    padding: 24px 16px; text-align: center;
    font-family: var(--font-body); font-size: 0.8rem; color: var(--color-text);
}

/* ── Notification Popup ── */
.notif-popup-item {
    display: flex; gap: 12px; padding: 12px 16px;
    border-bottom: 1px solid rgba(0,0,0,0.04); cursor: pointer; transition: background 0.15s;
}
.notif-popup-item:hover { background: rgba(61,74,53,0.03); }
.notif-popup-item--unread { background: rgba(61,74,53,0.05); }
.notif-popup-item--unread .notif-popup-item__title { font-weight: 700; }
.notif-popup-item__icon {
    flex-shrink: 0; width: 32px; height: 32px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center; font-size: 0.9rem;
}
.notif-popup-item__icon--documento  { background: #eaf0e5; }
.notif-popup-item__icon--stato_ordine { background: #e8f0f8; }
.notif-popup-item__icon--messaggio  { background: #f5f0e0; }
.notif-popup-item__icon--promozione { background: #fce8e8; }
.notif-popup-item__content { flex: 1; min-width: 0; }
.notif-popup-item__title {
    font-family: var(--font-body); font-size: 0.8rem; font-weight: 400; color: var(--color-heading);
}
.notif-popup-item__msg {
    font-size: 0.72rem; color: var(--color-text); margin-top: 2px;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.notif-popup-item__date { font-size: 0.65rem; color: var(--color-text); opacity: 0.6; margin-top: 4px; }

/* ── Popup responsive ── */
@media (max-width: 640px) {
    .nav-popup { position: fixed; top: 60px; left: 8px; right: 8px; min-width: auto; max-width: none; }
}

/* ── B2B Page Headers (Snaidero) ── */
.b2b-header h1,
.listino-header h1,
.cart-header h1,
.storico-header h1,
.checkout-header h1 {
    font-family: var(--font-heading);
    font-weight: 300;
    font-size: clamp(1.6rem, 3vw, 2.2rem);
    color: var(--color-heading);
    margin: 0 0 6px;
}
.listino-header,
.cart-header,
.storico-header,
.checkout-header {
    text-align: center;
    padding: 40px 24px 24px;
    background: var(--color-bg);
}
.listino-header { padding: 40px 24px 20px; }
.listino-header p,
.cart-header p,
.storico-header p,
.checkout-header p {
    font-family: var(--font-body);
    font-size: 0.95rem;
    color: var(--color-text);
    margin: 0;
}

/* ── B2B Footer (Snaidero) ── */
.b2b-footer {
    text-align: center;
    padding: 32px 24px;
    font-family: var(--font-body);
    font-size: 0.8rem;
    color: var(--color-text);
    border-top: 1px solid var(--color-border);
    margin-top: 24px;
}
.b2b-footer a { color: var(--color-heading); text-decoration: none; }

/* ═══ AUTH PAGES (shared) ═══ */
.auth-page {
    max-width: 440px;
    margin: 80px auto;
    padding: 40px 32px;
    background: #fff;
    border-radius: var(--radius);
    box-shadow: var(--shadow-float);
}
.auth-page h1 {
    font-family: var(--font-heading);
    font-size: 1.6rem;
    font-weight: 300;
    color: var(--primary);
    margin: 0 0 8px;
}
.auth-page .subtitle {
    font-family: var(--font-body);
    font-size: 0.88rem;
    color: var(--text-light);
    line-height: 1.6;
    margin: 0 0 28px;
}
.auth-field { margin-bottom: 20px; }
.auth-field label {
    display: block;
    font-family: var(--font-body);
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--text);
    margin-bottom: 6px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.auth-field input {
    width: 100%;
    padding: 12px 16px;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    font-family: var(--font-body);
    font-size: 0.95rem;
    color: var(--text);
    background: #FFFFFF;
    outline: none;
    transition: border-color var(--tr), box-shadow var(--tr);
}
.auth-field input:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(61,107,31,0.06);
}
.auth-field .hint {
    font-size: 0.78rem;
    color: var(--text-light);
    margin-top: 4px;
}
.auth-btn {
    width: 100%;
    padding: 14px;
    background: var(--primary);
    color: #fff;
    border: none;
    border-radius: var(--radius-sm);
    font-family: var(--font-body);
    font-size: 0.95rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    cursor: pointer;
    transition: background var(--tr);
}
.auth-btn:hover { background: var(--secondary); }
.auth-btn:disabled { opacity: 0.6; cursor: not-allowed; }
.auth-error {
    background: #FFF3E0;
    color: #E65100;
    padding: 12px 16px;
    border-radius: var(--radius-sm);
    font-size: 0.85rem;
    margin-bottom: 16px;
    display: none;
    line-height: 1.5;
}
.auth-success {
    background: #E8F5E9;
    color: #2E7D32;
    padding: 12px 16px;
    border-radius: var(--radius-sm);
    font-size: 0.85rem;
    margin-bottom: 16px;
    display: none;
    line-height: 1.5;
}
.auth-back {
    display: block;
    text-align: center;
    margin-top: 20px;
    font-family: var(--font-body);
    font-size: 0.85rem;
    color: var(--primary);
    text-decoration: none;
}
.auth-back:hover { text-decoration: underline; }

/* ═══ REGISTRATION PAGE ═══ */
.reg-page {
    max-width: 640px;
    margin: 0 auto;
    padding: 48px 24px 80px;
}
.reg-page h1 {
    font-family: var(--font-heading);
    font-size: 32px;
    font-weight: 300;
    color: var(--primary);
    margin-bottom: 8px;
}
.reg-page .subtitle {
    font-size: 14px;
    color: var(--text-light);
    margin-bottom: 32px;
}
.reg-form-group { margin-bottom: 20px; }
.reg-form-group label {
    display: block;
    font-size: 13px;
    font-weight: 700;
    color: var(--text);
    margin-bottom: 6px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.reg-form-group input,
.reg-form-group select {
    width: 100%;
    padding: 12px 16px;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    font-family: var(--font-body);
    font-size: 14px;
    color: var(--text);
    background: #FFFFFF;
    box-sizing: border-box;
    transition: border-color var(--tr), box-shadow var(--tr);
}
.reg-form-group input:focus,
.reg-form-group select:focus {
    border-color: var(--primary);
    outline: none;
    box-shadow: 0 0 0 3px rgba(61,107,31,0.06);
}
.reg-form-group .hint {
    font-size: 11px;
    color: var(--text-light);
    margin-top: 4px;
}
.reg-form-group--checkbox { margin-top: 24px; margin-bottom: 24px; }
.reg-checkbox-label {
    display: flex !important; align-items: flex-start; gap: 10px;
    cursor: pointer; font-size: 0.85rem !important; color: var(--text) !important;
    font-weight: 400 !important; line-height: 1.4;
}
.reg-checkbox-label input[type="checkbox"] {
    width: 18px !important; height: 18px; min-width: 18px;
    margin-top: 2px; accent-color: var(--primary);
    cursor: pointer;
}
.reg-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.reg-required { color: #c44; }
.reg-note {
    font-size: 12px;
    color: var(--text-light);
    margin-bottom: 24px;
}
.reg-feedback {
    margin-top: 12px;
    padding: 10px 14px;
    border-radius: var(--radius-sm);
    font-size: 13px;
    display: none;
}
.reg-feedback.error {
    display: block;
    background: #fef2f2;
    color: #991b1b;
    border: 1px solid #fecaca;
}
.reg-feedback.success {
    display: block;
    background: #f0fdf4;
    color: #166534;
    border: 1px solid #bbf7d0;
}
.reg-login-link {
    text-align: center;
    margin-top: 24px;
    font-size: 13px;
    color: var(--text-light);
}
.reg-login-link a { color: var(--primary); text-decoration: none; }
.reg-login-link a:hover { text-decoration: underline; }
.reg-success {
    text-align: center;
    padding: 60px 24px;
}
.reg-success h2 {
    font-family: var(--font-heading);
    font-size: 28px;
    font-weight: 300;
    color: var(--primary);
    margin-bottom: 16px;
}
.reg-success p {
    font-size: 14px;
    color: var(--text-light);
    max-width: 400px;
    margin: 0 auto;
}

/* ═══ PROFILO PAGE ═══ */
.profile-container {
    max-width: 800px;
    margin: 40px auto;
    padding: 0 24px;
}
.profile-header { margin-bottom: 32px; }
.profile-header h1 {
    font-family: var(--font-heading);
    font-size: 1.8rem;
    font-weight: 300;
    color: var(--primary);
    margin: 0 0 6px;
}
.profile-header p {
    font-family: var(--font-body);
    font-size: 0.88rem;
    color: var(--text-light);
}
.profile-card {
    background: #fff;
    border-radius: var(--radius);
    box-shadow: var(--shadow-float);
    padding: 28px 32px;
    margin-bottom: 24px;
}
.profile-card h2 {
    font-family: var(--font-heading);
    font-size: 1.2rem;
    font-weight: 600;
    color: var(--text);
    margin: 0 0 20px;
    padding-bottom: 12px;
    border-bottom: 1px solid #eee;
}
.profile-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding: 10px 0;
    border-bottom: 1px solid #f5f5f0;
}
.profile-row:last-child { border-bottom: none; }
.profile-label {
    font-family: var(--font-body);
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--text-light);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    min-width: 140px;
}
.profile-value {
    font-family: var(--font-body);
    font-size: 0.92rem;
    color: var(--text);
    text-align: right;
    flex: 1;
}
.profile-note {
    font-size: 0.8rem;
    color: var(--text-light);
    background: #f9f9f6;
    padding: 10px 16px;
    border-radius: var(--radius-sm);
    margin-top: 16px;
    border-left: 3px solid var(--primary);
}

/* Profile password fields */
.pw-field { margin-bottom: 18px; }
.pw-field label {
    display: block;
    font-family: var(--font-body);
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--text);
    margin-bottom: 6px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.pw-field input {
    width: 100%;
    padding: 12px 16px;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    font-family: var(--font-body);
    font-size: 0.95rem;
    color: var(--text);
    background: #FFFFFF;
    outline: none;
    transition: border-color var(--tr), box-shadow var(--tr);
}
.pw-field input:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(61,107,31,0.06);
}
.pw-field .hint {
    font-size: 0.78rem;
    color: var(--text-light);
    margin-top: 4px;
}
.pw-btn {
    padding: 12px 28px;
    background: var(--primary);
    color: #fff;
    border: none;
    border-radius: var(--radius-sm);
    font-family: var(--font-body);
    font-size: 0.88rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    cursor: pointer;
    transition: background var(--tr);
}
.pw-btn:hover { background: var(--secondary); }
.pw-btn:disabled { opacity: 0.6; cursor: not-allowed; }
.pw-error {
    background: #FFF3E0;
    color: #E65100;
    padding: 10px 16px;
    border-radius: var(--radius-sm);
    font-size: 0.85rem;
    margin-bottom: 16px;
    display: none;
}
.pw-success {
    background: #E8F5E9;
    color: #2E7D32;
    padding: 10px 16px;
    border-radius: var(--radius-sm);
    font-size: 0.85rem;
    margin-bottom: 16px;
    display: none;
}

/* ─── Preferences Section ─── */
.pref-row {
    display: flex; justify-content: space-between; align-items: center;
    padding: 16px 0;
    border-bottom: 1px solid #f0f0ec;
}
.pref-row:last-of-type { border-bottom: none; }
.pref-info { display: flex; flex-direction: column; gap: 2px; }
.pref-label {
    font-family: var(--font-body); font-size: 0.9rem;
    font-weight: 600; color: var(--text);
}
.pref-desc {
    font-family: var(--font-body); font-size: 0.78rem;
    color: var(--text-light);
}
.pref-toggle {
    display: flex; align-items: center; gap: 10px;
    cursor: pointer; user-select: none;
}
.pref-toggle input { display: none; }
.pref-toggle__slider {
    position: relative; width: 44px; height: 24px;
    background: #ccc; border-radius: 12px;
    transition: background 0.3s ease;
}
.pref-toggle__slider::after {
    content: ''; position: absolute;
    top: 3px; left: 3px;
    width: 18px; height: 18px;
    background: #fff; border-radius: 50%;
    transition: transform 0.3s ease;
    box-shadow: 0 1px 3px rgba(0,0,0,0.15);
}
.pref-toggle input:checked + .pref-toggle__slider {
    background: var(--primary);
}
.pref-toggle input:checked + .pref-toggle__slider::after {
    transform: translateX(20px);
}
.pref-toggle__label {
    font-family: var(--font-body); font-size: 0.8rem;
    color: var(--text-light); min-width: 80px;
}
.pref-feedback {
    display: none; margin-top: 12px;
    padding: 8px 14px; border-radius: var(--radius-sm);
    font-family: var(--font-body); font-size: 0.82rem;
}
.pref-feedback--ok { background: #E8F5E9; color: #2E7D32; }
.pref-feedback--err { background: #FFF3E0; color: #E65100; }

/* TOTP 2FA Section */
.totp-status { display:flex; align-items:center; gap:12px; padding:14px 18px; border-radius:8px; margin-bottom:20px; font-size:13px; }
.totp-status--active { background:#E8F5E9; color:#2E7D32; border:1px solid #C8E6C9; }
.totp-status--inactive { background:#FFF3E0; color:#E65100; border:1px solid #FFE0B2; }
.totp-status__icon { font-size:20px; }
.totp-setup-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:16px; }
@media (max-width:768px) { .totp-setup-grid { grid-template-columns:1fr; } }
.totp-qr-container { text-align:center; padding:20px; background:#fafaf8; border-radius:10px; border:1px solid #e8e4dc; }
.totp-qr-container canvas { margin:12px auto; display:block; }
.totp-secret-display { font-family:monospace; font-size:14px; letter-spacing:3px; color:var(--primary); background:#f0ede8; padding:8px 14px; border-radius:6px; word-break:break-all; text-align:center; margin:10px 0; user-select:all; }
.totp-verify-input { text-align:center; font-size:24px; letter-spacing:8px; font-weight:400; font-family:monospace; max-width:200px; margin:0 auto; display:block; padding:10px; border:1px solid #ddd; border-radius:6px; }
.backup-codes-grid { display:grid; grid-template-columns:repeat(2, 1fr); gap:6px 16px; font-family:monospace; font-size:13px; letter-spacing:1px; }
.backup-codes-grid span { background:#f0ede8; padding:6px 10px; border-radius:4px; text-align:center; }

/* ═══ LISTINO PAGE ═══ */

/* Category Macro Cards */
.b2b-cards {
    max-width: var(--max-w);
    margin: 0 auto;
    padding: 32px 24px 24px;
}
.b2b-cards__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
}
.b2b-macro-card {
    background: #ffffff;
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow-float);
    cursor: pointer;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    display: flex;
    flex-direction: column;
}
.b2b-macro-card:hover {
    transform: translateY(-5px) scale(1.02);
    box-shadow: var(--shadow-hover);
}
.b2b-macro-card__img {
    position: relative;
    height: 300px;
    overflow: hidden;
    flex-shrink: 0;
    background: linear-gradient(135deg, #f0f7e8 0%, #f5f5f0 100%);
    display: flex;
    align-items: center;
    justify-content: center;
}
.b2b-macro-card__img img {
    width: 100%; height: 100%; object-fit: cover;
    transition: transform 0.7s ease;
}
.b2b-macro-card:hover .b2b-macro-card__img img {
    transform: scale(1.05);
}
.b2b-macro-card__placeholder {
    font-size: 5rem;
    user-select: none;
    opacity: 0.7;
    transition: transform 0.5s ease;
}
.b2b-macro-card:hover .b2b-macro-card__placeholder {
    transform: scale(1.1);
}
.b2b-macro-card__info {
    padding: 24px 28px 28px;
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.b2b-macro-card__title {
    font-family: var(--font-heading);
    font-size: 1.6rem;
    font-weight: 300;
    color: var(--text);
    margin: 0 0 8px;
    letter-spacing: 0.3px;
}
.b2b-macro-card__sub {
    font-family: var(--font-body);
    font-size: 0.92rem;
    color: var(--text-light);
    margin: 0 0 16px;
    line-height: 1.6;
}
.b2b-macro-card__desc {
    font-family: var(--font-body);
    font-size: 0.85rem;
    color: #999;
    margin: 0 0 20px;
    line-height: 1.6;
}
.b2b-macro-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.b2b-macro-card__count {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-body);
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--primary);
    background: #f0f7e8;
    padding: 6px 16px;
    border-radius: 20px;
}
.b2b-macro-card__count svg {
    width: 14px; height: 14px; fill: var(--primary);
}
.b2b-macro-card__cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-body);
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--primary);
    transition: gap 0.3s ease;
}
.b2b-macro-card:hover .b2b-macro-card__cta { gap: 10px; }
.b2b-macro-card__cta svg {
    width: 16px; height: 16px; fill: var(--primary);
    transition: transform 0.3s ease;
}
.b2b-macro-card:hover .b2b-macro-card__cta svg { transform: translateX(3px); }

/* Empty macro-card */
.b2b-macro-card--empty { cursor: default; pointer-events: none; }
.b2b-macro-card--empty .b2b-macro-card__img img,
.b2b-macro-card--empty .b2b-macro-card__placeholder { filter: grayscale(1); opacity: 0.5; }
.b2b-macro-card--empty .b2b-macro-card__info { opacity: 0.45; }
/* Disabled macro-card (attivo=0) */
.b2b-macro-card--disabled { cursor: default; pointer-events: none; }
.b2b-macro-card--disabled .b2b-macro-card__img img,
.b2b-macro-card--disabled .b2b-macro-card__placeholder { filter: grayscale(1); opacity: 0.5; }
.b2b-macro-card--disabled .b2b-macro-card__info { opacity: 0.45; }
.b2b-macro-card__coming {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
    font-family: var(--font-heading);
    font-size: 13px; font-weight: 400;
    letter-spacing: 0.1em; text-transform: uppercase;
    color: var(--text);
    background: rgba(255,255,255,0.88);
    padding: 8px 20px;
    backdrop-filter: blur(4px);
    border: 1px solid #ddd;
    border-radius: var(--radius);
}

/* Category Overlay */
.b2b-overlay {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 2000;
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    align-items: center;
    justify-content: center;
    padding: 24px;
}
.b2b-overlay.active { display: flex; }
.b2b-overlay__panel {
    background: #ffffff;
    border-radius: var(--radius);
    width: 90%;
    max-width: 1400px;
    max-height: 90vh;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    box-shadow: 0 20px 60px rgba(0,0,0,0.25);
    animation: overlayIn 0.35s ease;
}
@keyframes overlayIn {
    from { opacity: 0; transform: scale(0.96) translateY(20px); }
    to   { opacity: 1; transform: scale(1) translateY(0); }
}
.b2b-overlay__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 24px 32px;
    border-bottom: 1px solid #eee;
    flex-shrink: 0;
}
.b2b-overlay__title {
    font-family: var(--font-heading);
    font-size: 1.6rem;
    font-weight: 300;
    color: var(--primary);
    margin: 0;
}
.b2b-overlay__subtitle {
    font-family: var(--font-body);
    font-size: 0.88rem;
    color: var(--text-light);
    margin: 4px 0 0;
}
.b2b-overlay__close {
    width: 44px; height: 44px;
    background: #f5f5f5;
    border: none;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.25s ease, transform 0.25s ease;
    flex-shrink: 0;
}
.b2b-overlay__close:hover { background: #e8e8e8; transform: scale(1.08); }
.b2b-overlay__close svg { width: 20px; height: 20px; }
.b2b-overlay__body {
    flex: 1;
    overflow-y: auto;
    padding: 32px;
    overscroll-behavior: contain;
}

/* Overlay Variant Filters */
.overlay-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 12px;
    padding: 16px 32px;
    background: linear-gradient(135deg, #f8f9fa, #f0f2e8);
    border-bottom: 1px solid rgba(0,0,0,0.08);
}
.overlay-filter-group {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.overlay-filter-group label {
    font-family: var(--font-body);
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-light);
}
.overlay-filter-group select {
    font-family: var(--font-body);
    font-size: 0.85rem;
    padding: 6px 28px 6px 10px;
    border: 1px solid #ccc;
    border-radius: 6px;
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23666' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E") no-repeat right 4px center/18px;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    cursor: pointer;
    min-width: 120px;
    transition: border-color 0.2s;
}
.overlay-filter-group select:focus {
    border-color: var(--primary);
    outline: none;
    box-shadow: 0 0 0 2px rgba(61,107,31,0.15);
}
.overlay-filters__reset {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-family: var(--font-body);
    font-size: 0.78rem;
    padding: 6px 12px;
    border: 1px solid #ccc;
    border-radius: 6px;
    background: #fff;
    cursor: pointer;
    color: var(--text-light);
    transition: all 0.2s;
    margin-bottom: 0;
    align-self: flex-end;
}
.overlay-filters__reset:hover {
    border-color: var(--primary);
    color: var(--primary);
}

/* Overlay Combo Cards (filtered results) */
.overlay-combo-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow-float);
    transition: box-shadow var(--tr), transform var(--tr);
    text-decoration: none;
    color: inherit;
}
.overlay-combo-card:hover {
    box-shadow: var(--shadow-hover);
    transform: translateY(-4px);
}
.overlay-combo-card__image {
    aspect-ratio: 4/3;
    overflow: hidden;
    background: #f5f5f5;
    display: flex;
    align-items: center;
    justify-content: center;
}
.overlay-combo-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.overlay-combo-card__info {
    padding: 20px 24px 24px;
}
.overlay-combo-card__name {
    font-family: var(--font-heading);
    font-size: 1.2rem;
    font-weight: 300;
    color: var(--color-heading);
    margin: 0 0 4px;
}
.overlay-combo-card__code {
    font-family: var(--font-body);
    font-size: 0.75rem;
    color: var(--text-light);
    margin: 0 0 8px;
}
.overlay-combo-card__variants {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}
.overlay-no-results {
    grid-column: 1 / -1;
    text-align: center;
    padding: 48px 24px;
    color: var(--text-light);
}
.overlay-no-results p {
    margin: 12px 0 0;
    font-family: var(--font-body);
    font-size: 0.9rem;
}

/* Product Grid inside overlay */
.overlay-product-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
.overlay-product-grid--combos {
    grid-template-columns: repeat(3, 1fr);
}

/* Product Card (shared) */
.product-card {
    background: #ffffff;
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow-float);
    transition: box-shadow var(--tr), transform var(--tr);
    cursor: pointer;
    position: relative;
}
.product-card:hover {
    box-shadow: var(--shadow-hover);
    transform: translateY(-4px);
}
.product-card__img {
    position: relative;
    width: 100%; aspect-ratio: 4/3;
    background: #f5f5f0;
    display: flex; align-items: center; justify-content: center;
    overflow: hidden;
}
.product-card__img img { width: 100%; height: 100%; object-fit: cover; }
.product-card__img .placeholder-icon { width: 64px; height: 64px; opacity: 0.2; }
.product-card__info { padding: 20px 24px 24px; }
.product-card__code {
    font-family: var(--font-body);
    font-size: 0.7rem; font-weight: 700;
    letter-spacing: 0.08em; color: var(--text-light);
    text-transform: uppercase; margin: 0 0 6px;
}
.product-card__name {
    font-family: var(--font-heading);
    font-size: 1.2rem; font-weight: 300;
    color: var(--text); margin: 0 0 8px; line-height: 1.3;
}
.product-card__meta {
    display: flex; align-items: center; gap: 8px;
    font-family: var(--font-body);
    font-size: 0.8rem; color: var(--text-light);
}
.product-card__meta svg { width: 14px; height: 14px; fill: var(--secondary); flex-shrink: 0; }

/* Preview Modal */
.preview-backdrop {
    display: none;
    position: fixed; inset: 0; z-index: 3000;
    background: rgba(0, 0, 0, 0.4);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    align-items: center; justify-content: center;
    padding: 24px;
}
.preview-backdrop.active { display: flex; }
.preview-modal {
    background: #ffffff;
    border-radius: var(--radius);
    max-width: 560px; width: 100%;
    overflow: hidden;
    box-shadow: 0 20px 60px rgba(0,0,0,0.2);
    animation: modalIn 0.3s ease;
}
@keyframes modalIn {
    from { opacity: 0; transform: scale(0.95) translateY(12px); }
    to   { opacity: 1; transform: scale(1) translateY(0); }
}
.preview-modal__img {
    width: 100%; aspect-ratio: 16/10;
    background: #f5f5f0;
    display: flex; align-items: center; justify-content: center;
    overflow: hidden; position: relative;
}
.preview-modal__img img { width: 100%; height: 100%; object-fit: cover; }
.preview-modal__img .placeholder-icon { width: 80px; height: 80px; opacity: 0.18; }
.preview-modal__close {
    position: absolute; top: 12px; right: 12px;
    width: 36px; height: 36px;
    background: rgba(255,255,255,0.9); border: none;
    border-radius: 50%; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: background var(--tr);
    z-index: 1;
}
.preview-modal__close:hover { background: #ffffff; }
.preview-modal__close svg { width: 18px; height: 18px; }
.preview-modal__body { padding: 28px 32px 32px; }
.preview-modal__cat {
    font-family: var(--font-body);
    font-size: 0.75rem; font-weight: 700;
    letter-spacing: 0.1em; text-transform: uppercase;
    color: var(--secondary); margin: 0 0 8px;
}
.preview-modal__title {
    font-family: var(--font-heading);
    font-size: 1.6rem; font-weight: 300;
    color: var(--text); margin: 0 0 16px; line-height: 1.2;
}
.preview-modal__desc {
    font-family: var(--font-body);
    font-size: 0.95rem; line-height: 1.65;
    color: var(--text-light); margin: 0 0 24px;
}
.preview-modal__craft {
    font-family: var(--font-body);
    font-size: 0.8rem; line-height: 1.6;
    color: #aaa; font-style: italic;
    margin: 0 0 24px;
    padding-left: 16px;
    border-left: 3px solid var(--accent);
}
.btn-configure {
    display: block;
    padding: 12px 28px;
    font-family: var(--font-body); font-size: 0.95rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: 1px;
    color: #ffffff; background: var(--primary);
    border: none; border-radius: var(--radius-sm);
    text-decoration: none; cursor: pointer;
    transition: background var(--tr), transform var(--tr);
    width: 100%; text-align: center;
}
.btn-configure:hover {
    background: var(--secondary); color: #fff;
    transform: translateY(-1px);
}

/* Empty State */
.empty-state { text-align: center; padding: 64px 24px; color: var(--text-light); }
.empty-state svg { width: 80px; height: 80px; opacity: 0.2; margin-bottom: 16px; }

/* Starburst Promo Badge */
.starburst-badge {
    position: absolute; top: 8px; right: 8px;
    width: 60px; height: 60px; z-index: 2;
    background: #e53935; color: #fff;
    clip-path: polygon(50% 0%, 63% 12%, 80% 2%, 78% 20%, 98% 25%, 88% 40%, 100% 55%, 85% 60%, 90% 78%, 73% 73%, 63% 92%, 50% 80%, 37% 92%, 27% 73%, 10% 78%, 15% 60%, 0% 55%, 12% 40%, 2% 25%, 22% 20%, 20% 2%, 37% 12%);
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    font-family: var(--font-body); font-weight: 700;
    animation: starburst-pulse 2s ease-in-out infinite;
    pointer-events: none;
}
.starburst-badge span { font-size: 10px; line-height: 1; letter-spacing: 0.5px; }
.starburst-badge small { font-size: 13px; font-weight: 800; line-height: 1; margin-top: 1px; }
.starburst-badge--lg { width: 80px; height: 80px; }
.starburst-badge--lg span { font-size: 12px; }
.starburst-badge--lg small { font-size: 16px; }
@keyframes starburst-pulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.08); }
}

/* ═══ FAVORITE STAR BUTTON (B2B) ═══ */
/* duplicate .product-card__fav removed — see line ~607 */

/* ═══ FAVORITE ACTION (configurator — below image) ═══ */
.config-fav-wrapper {
    display: flex; justify-content: center; align-items: center;
    padding: 16px 0 4px;
}
.config-fav-action {
    display: inline-flex; align-items: center; gap: 10px;
    background: none; border: 1.5px solid #D4A853; border-radius: 30px;
    cursor: pointer; padding: 10px 24px;
    font-family: var(--font-body); font-size: 15px; font-weight: 600;
    color: #856404; letter-spacing: 0.02em;
    transition: all 0.3s ease;
}
.config-fav-action svg {
    width: 22px; height: 22px;
    fill: none; stroke: #D4A853; stroke-width: 1.5px;
    transition: fill 0.3s ease, stroke 0.3s ease, transform 0.3s ease;
}
.config-fav-action.active {
    color: #D4A853; background: rgba(212, 168, 83, 0.08);
    border-color: #D4A853;
}
.config-fav-action.active svg {
    fill: #D4A853; stroke: #D4A853; transform: scale(1.15);
}
.config-fav-action:hover {
    color: #D4A853; background: rgba(212, 168, 83, 0.06);
    border-color: #D4A853;
}
.config-fav-action:hover svg { stroke: #D4A853; }

/* ═══ FAVORITE STAR ON IMAGE (configurator) ═══ */
.config-fav-star {
    position: absolute; bottom: 12px; left: 12px; z-index: 2;
    width: 38px; height: 38px; padding: 0; border: none;
    background: rgba(255,255,255,0.85); backdrop-filter: blur(6px);
    border-radius: 50%; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: opacity 0.25s ease, transform 0.2s ease;
}
.config-fav-star svg {
    width: 19px; height: 19px;
    fill: none; stroke: var(--text-color, #333); stroke-width: 1.5px;
    transition: fill 0.25s ease, stroke 0.25s ease;
}
.config-fav-star.active svg { fill: #D4A853; stroke: #D4A853; }
.config-fav-star:hover:not(.disabled) { transform: scale(1.15); background: rgba(255,255,255,0.95); }
.config-fav-star.disabled { opacity: 0.35; pointer-events: none; }

/* Promo Button in Macro Card */
.b2b-promo-btn {
    display: inline-flex; align-items: center; gap: 4px;
    padding: 4px 12px; border-radius: 12px;
    background: #fff3cd; color: #856404; cursor: pointer;
    font-family: var(--font-body); font-size: 11px; font-weight: 700;
    border: 1px solid #ffc107; transition: all 0.2s;
    text-transform: uppercase; letter-spacing: 0.5px;
}
.b2b-promo-btn:hover { background: #ffc107; color: #333; }
.product-card__meta--promo { color: #856404 !important; font-weight: 600 !important; }

/* ═══ CARRELLO PAGE ═══ */

/* Cart Layout */
.cart-container {
    max-width: 1100px; margin: 0 auto;
    padding: 32px 24px 60px;
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: 32px;
    align-items: start;
}

/* Cart Items */
.cart-items { display: flex; flex-direction: column; gap: 16px; }
.cart-item__img {
    width: 64px; height: 64px; flex-shrink: 0; border-radius: 8px;
    overflow: hidden; border: 1px solid var(--border, #e8e6e1);
    grid-row: 1 / -1;
}
.cart-item__img img {
    width: 100%; height: 100%; object-fit: cover; display: block;
}
.cart-item {
    display: grid;
    grid-template-columns: 64px 1fr auto auto auto;
    align-items: center;
    gap: 20px;
    padding: 20px 24px;
    background: #ffffff;
    border-radius: var(--radius);
    box-shadow: var(--shadow-float);
    transition: box-shadow var(--tr);
}
.cart-item:hover { box-shadow: var(--shadow-hover); }
.cart-item__info h3 {
    font-family: var(--font-heading); font-size: 1.15rem;
    font-weight: 300; color: var(--text); margin: 0 0 4px;
}
.cart-item__code {
    font-family: var(--font-body); font-size: 0.75rem;
    color: var(--text-light); letter-spacing: 0.5px; margin: 0 0 8px;
}
.cart-item__variants {
    font-family: var(--font-body); font-size: 0.82rem;
    color: #666; line-height: 1.5;
}
.cart-item__variants span {
    display: inline-block; background: #f5f5f0;
    padding: 3px 9px; border-radius: 20px;
    margin: 2px 4px 2px 0; font-size: 0.78rem;
}
.cart-item__price { text-align: right; white-space: nowrap; }
.cart-item__unit {
    font-family: var(--font-body); font-size: 0.8rem;
    color: var(--text-light); margin: 0 0 2px;
}
.cart-item__total {
    font-family: var(--font-heading); font-size: 1.15rem;
    font-weight: 700; color: var(--primary); margin: 0;
}

/* Quantity controls */
.qty-controls {
    display: flex; align-items: center; gap: 0;
    border: 1px solid #ddd; border-radius: var(--radius-sm);
    overflow: hidden;
}
.qty-btn {
    width: 34px; height: 34px;
    border: none; background: #f8f8f5;
    cursor: pointer; font-size: 1.1rem;
    color: var(--text); display: flex; align-items: center; justify-content: center;
    transition: background var(--tr);
}
.qty-btn:hover { background: #e8e8e2; }
.qty-input {
    width: 44px; height: 34px;
    border: none; border-left: 1px solid #ddd; border-right: 1px solid #ddd;
    text-align: center;
    font-family: var(--font-body); font-size: 0.9rem;
    color: var(--text); background: #fff;
    -moz-appearance: textfield;
}
.qty-input::-webkit-outer-spin-button,
.qty-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* Remove button */
.btn-remove {
    width: 36px; height: 36px;
    border: none; background: transparent;
    cursor: pointer; color: #bbb; display: flex;
    align-items: center; justify-content: center;
    border-radius: var(--radius-sm);
    transition: color var(--tr), background var(--tr);
}
.btn-remove:hover { color: #d32f2f; background: #fde8e8; }
.btn-remove svg { width: 18px; height: 18px; fill: currentColor; }

/* Cart Summary Sidebar */
.cart-summary {
    position: sticky; top: 102px;
    background: #ffffff;
    border-radius: var(--radius);
    padding: 28px 24px;
    box-shadow: var(--shadow-float);
}
.cart-summary h2 {
    font-family: var(--font-heading); font-size: 1.3rem;
    font-weight: 300; color: var(--text); margin: 0 0 20px;
    padding-bottom: 16px;
    border-bottom: 1px solid #eee;
}
.summary-row {
    display: flex; justify-content: space-between; align-items: center;
    padding: 8px 0;
    font-family: var(--font-body); font-size: 0.9rem; color: var(--text);
}
.summary-row--total {
    padding-top: 16px; margin-top: 8px;
    border-top: 2px solid var(--primary);
    font-size: 1.05rem; font-weight: 700;
}
.summary-row--total .summary-val {
    font-family: var(--font-heading);
    font-size: 1.4rem; color: var(--primary);
}
.summary-row .summary-label { color: var(--text-light); }
.summary-row .summary-val { font-weight: 600; }
.summary-note {
    font-family: var(--font-body); font-size: 0.78rem;
    color: var(--text-light); margin: 12px 0 0;
    font-style: italic;
}
.btn-checkout {
    display: flex; align-items: center; justify-content: center; gap: 10px;
    width: 100%; padding: 16px 24px; margin-top: 24px;
    font-family: var(--font-body); font-size: 1rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: 1px;
    color: #fff; background: var(--primary);
    border: none; border-radius: var(--radius-sm);
    cursor: pointer; text-decoration: none;
    transition: background var(--tr), transform var(--tr);
}
.btn-checkout:hover { background: var(--secondary); color: #fff; transform: translateY(-1px); }
.btn-checkout svg { width: 20px; height: 20px; fill: currentColor; }
.btn-preventivo {
    display: flex; align-items: center; justify-content: center;
    width: 100%; padding: 13px 24px; margin-top: 10px;
    font-family: var(--font-body); font-size: 0.9rem; font-weight: 400;
    color: var(--primary); background: transparent;
    border: 1.5px solid var(--primary); border-radius: var(--radius-sm);
    cursor: pointer; text-decoration: none;
    transition: background var(--tr), color var(--tr);
}
.btn-preventivo:hover { background: var(--primary); color: #fff; }
.btn-preventivo:hover svg { fill: #fff; }
.btn-continue {
    display: block; text-align: center;
    margin-top: 14px;
    font-family: var(--font-body); font-size: 0.85rem;
    color: var(--primary); text-decoration: none;
}
.btn-continue:hover { text-decoration: underline; }

/* ─── Volume Discount Tiers Box ─── */
.vol-discount-box {
    margin-top: 20px;
    padding: 16px;
    background: linear-gradient(135deg, #f6fbf2 0%, #edf7e4 100%);
    border: 1px solid #d4e8c4;
    border-radius: var(--radius-sm);
}
.vol-discount-box__header {
    display: flex; align-items: center; gap: 8px;
    margin-bottom: 12px;
    font-family: var(--font-body); font-size: 0.82rem;
    color: var(--primary);
}
.vol-discount-box__tiers {
    display: flex; flex-direction: column; gap: 6px;
}
.vol-tier {
    display: flex; align-items: center; gap: 8px;
    padding: 7px 10px;
    background: #fff;
    border: 1.5px solid #e0e0d8;
    border-radius: 6px;
    font-family: var(--font-body); font-size: 0.8rem;
    color: var(--text);
    transition: all 0.3s ease;
}
.vol-tier--active {
    border-color: var(--primary);
    background: #eaf5e0;
    box-shadow: 0 0 0 2px rgba(61,107,31,0.12);
}
.vol-tier--next {
    border-color: #f0c040;
    border-style: dashed;
}
.vol-tier__threshold { flex: 1; }
.vol-tier__perc {
    font-weight: 700; font-size: 0.9rem;
    color: var(--primary);
}
.vol-tier__badge {
    font-size: 0.68rem; font-weight: 700;
    color: #fff; background: var(--primary);
    padding: 2px 7px;
    border-radius: 10px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    animation: badgePop 0.3s ease;
}
@keyframes badgePop {
    0% { transform: scale(0.7); opacity: 0; }
    100% { transform: scale(1); opacity: 1; }
}
.vol-discount-box__nudge {
    margin-top: 10px;
    padding: 8px 10px;
    background: #fffde7;
    border: 1px solid #f0c040;
    border-radius: 6px;
    font-family: var(--font-body); font-size: 0.78rem;
    color: #7a6200;
    line-height: 1.4;
}
.vol-discount-box__nudge::before { content: '\1F4A1 '; }
.vol-discount-box__hint {
    margin-top: 8px;
    font-family: var(--font-body); font-size: 0.7rem;
    color: var(--text-light);
    font-style: italic;
}

/* ─── Volume Discount Badge (modello.php) ─── */
.vol-discount-hint {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 6px 12px;
    background: linear-gradient(135deg, #f6fbf2, #edf7e4);
    border: 1px solid #d4e8c4;
    border-radius: 20px;
    font-family: var(--font-body); font-size: 0.78rem;
    color: var(--primary);
    cursor: help;
    transition: all 0.2s ease;
}
.vol-discount-hint:hover {
    background: #eaf5e0;
    box-shadow: 0 2px 8px rgba(61,107,31,0.15);
}
.vol-discount-hint svg { width: 14px; height: 14px; fill: var(--primary); }
.vol-discount-hint__tooltip {
    display: none;
    position: absolute; top: 100%; left: 0; z-index: 50;
    margin-top: 8px;
    padding: 14px 16px;
    background: #fff;
    border: 1px solid #d4e8c4;
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow-float);
    min-width: 240px;
    font-size: 0.78rem;
}
.vol-discount-hint__wrapper { position: relative; display: inline-block; }
.vol-discount-hint__wrapper:hover .vol-discount-hint__tooltip { display: block; }
.vol-discount-hint__tooltip .vol-tier {
    margin-bottom: 4px;
}
.vol-discount-hint__tooltip .vol-tier:last-child { margin-bottom: 0; }

/* Empty Cart */
.empty-cart {
    text-align: center; padding: 80px 24px;
    max-width: 500px; margin: 0 auto;
}
.empty-cart svg { width: 80px; height: 80px; fill: #ccc; margin-bottom: 20px; }
.empty-cart h2 {
    font-family: var(--font-heading); font-size: 1.6rem;
    font-weight: 300; color: var(--text); margin: 0 0 12px;
}
.empty-cart p {
    font-family: var(--font-body); font-size: 0.95rem;
    color: var(--text-light); margin: 0 0 28px;
}

/* Stock limit */
.qty-btn:disabled, .qty-btn.disabled {
    opacity: 0.35; cursor: not-allowed; background: #f0f0f0;
}
.qty-btn:disabled:hover, .qty-btn.disabled:hover { background: #f0f0f0; }
.stock-warning {
    font-family: var(--font-body); font-size: 0.72rem;
    color: #E65100; margin: 6px 0 0; display: none;
}
.stock-warning.visible { display: block; }

/* Item fade-out animation */
.cart-item--removing {
    opacity: 0; transform: translateX(30px);
    transition: opacity 0.3s ease, transform 0.3s ease;
}

/* ═══ CHECKOUT PAGE ═══ */

/* Checkout Layout */
.checkout-container {
    max-width: 1100px; margin: 0 auto;
    padding: 32px 24px 60px;
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: 36px;
    align-items: start;
}
.checkout-form { display: flex; flex-direction: column; gap: 28px; }

/* Form Sections */
.form-section {
    background: #ffffff;
    border-radius: var(--radius);
    padding: 28px 28px;
    box-shadow: var(--shadow-float);
}
.form-section h2 {
    font-family: var(--font-heading); font-size: 1.25rem;
    font-weight: 300; color: var(--text); margin: 0 0 20px;
    padding-bottom: 14px;
    border-bottom: 1px solid #eee;
}
.form-section h2 svg {
    width: 20px; height: 20px; fill: var(--primary);
    vertical-align: -3px; margin-right: 8px;
}

/* B2B Form Overrides (fix .form-group label display:none conflict) */
.b2b-form .form-group { display: flex; flex-direction: column; gap: 5px; }
.b2b-form .form-group label {
    display: block !important;
    visibility: visible !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    font-family: var(--font-body);
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--text);
}
.b2b-form .form-group input,
.b2b-form .form-group textarea,
.b2b-form .form-group select {
    padding: 12px 16px;
    font-family: var(--font-body); font-size: 0.9rem;
    border: 1px solid #e0e0e0; border-radius: 6px;
    background: #FFFFFF; color: var(--text);
    transition: border-color var(--tr), box-shadow var(--tr);
}
.b2b-form .form-group input:focus,
.b2b-form .form-group textarea:focus,
.b2b-form .form-group select:focus {
    outline: none; border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(61,107,31,0.06);
}
.b2b-form .form-group textarea { resize: vertical; min-height: 80px; }

/* Address Selector */
.address-list { display: flex; flex-direction: column; gap: 10px; margin-bottom: 16px; }
.address-option {
    display: flex; align-items: flex-start; gap: 12px;
    padding: 14px 18px;
    border: 2px solid #eee; border-radius: var(--radius-sm);
    cursor: pointer; transition: border-color var(--tr), background var(--tr);
}
.address-option:hover { border-color: #ccc; }
.address-option--active { border-color: var(--primary); background: #f7fbf3; }
.address-option input[type="radio"] {
    width: 18px; height: 18px; accent-color: var(--primary);
    cursor: pointer; margin-top: 2px; flex-shrink: 0;
}
.address-option__info { flex: 1; }
.address-option__name {
    font-family: var(--font-body); font-size: 0.88rem;
    font-weight: 700; color: var(--text); margin: 0 0 3px;
}
.address-option__detail {
    font-family: var(--font-body); font-size: 0.8rem;
    color: var(--text-light); margin: 0; line-height: 1.5;
}
.address-option .badge-default {
    font-size: 0.6rem; font-weight: 700;
    background: #E8F5E9; color: #2E7D32;
    padding: 3px 9px; border-radius: 20px;
    text-transform: uppercase; margin-left: 6px;
}
.btn-new-address {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 10px 20px;
    font-family: var(--font-body); font-size: 0.82rem; font-weight: 700;
    color: var(--primary); background: #f0f7e8;
    border: 1px dashed var(--primary); border-radius: var(--radius-sm);
    cursor: pointer; transition: background var(--tr);
}
.btn-new-address:hover { background: #e4f0d6; }
.btn-new-address svg { width: 16px; height: 16px; fill: var(--primary); }
.address-option__actions {
    display: flex; flex-direction: column; gap: 4px;
    flex-shrink: 0; margin-left: auto;
}
.btn-edit-addr {
    background: none; border: none; cursor: pointer;
    padding: 4px; color: #bbb; transition: color var(--tr);
}
.btn-edit-addr:hover { color: var(--primary); }
.btn-edit-addr svg { width: 16px; height: 16px; fill: currentColor; }
.btn-delete-addr {
    background: none; border: none; cursor: pointer;
    padding: 4px; color: #bbb; transition: color var(--tr);
}
.btn-delete-addr:hover { color: #d32f2f; }
.btn-delete-addr svg { width: 16px; height: 16px; fill: currentColor; }
.required-star { color: #d32f2f; margin-left: 2px; }

/* New Address Modal */
.addr-modal-backdrop {
    display: none; position: fixed; inset: 0; z-index: 2000;
    background: rgba(0,0,0,0.35); backdrop-filter: blur(6px);
    align-items: center; justify-content: center; padding: 24px;
}
.addr-modal-backdrop.active { display: flex; }
.addr-modal {
    background: #fff; border-radius: var(--radius);
    max-width: 520px; width: 100%; padding: 32px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.2);
    animation: modalIn 0.3s ease;
}
.addr-modal h3 {
    font-family: var(--font-heading); font-size: 1.2rem;
    font-weight: 300; color: var(--text); margin: 0 0 20px;
}
.addr-modal .form-row { margin-bottom: 12px; }
.addr-modal-actions {
    display: flex; gap: 12px; justify-content: flex-end; margin-top: 20px;
}
.btn-addr-cancel {
    padding: 10px 24px;
    font-family: var(--font-body); font-size: 0.85rem; font-weight: 700;
    color: var(--text-light); background: #f5f5f0;
    border: none; border-radius: var(--radius-sm); cursor: pointer;
}
.btn-addr-save {
    padding: 10px 24px;
    font-family: var(--font-body); font-size: 0.85rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: 1px;
    color: #fff; background: var(--primary);
    border: none; border-radius: var(--radius-sm); cursor: pointer;
    transition: background var(--tr);
}
.btn-addr-save:hover { background: var(--secondary); }

/* Payment Radio */
.payment-options { display: flex; flex-direction: column; gap: 12px; }
.payment-option {
    display: flex; align-items: center; gap: 12px;
    padding: 14px 18px;
    border: 2px solid #eee; border-radius: var(--radius-sm);
    cursor: pointer; transition: border-color var(--tr), background var(--tr);
}
.payment-option:hover { border-color: #ccc; }
.payment-option input[type="radio"] {
    width: 18px; height: 18px; accent-color: var(--primary); cursor: pointer;
}
.payment-option--active { border-color: var(--primary); background: #f7fbf3; }
.payment-option__info { flex: 1; }
.payment-option__name {
    font-family: var(--font-body); font-size: 0.9rem;
    font-weight: 700; color: var(--text); margin: 0;
}
.payment-option__desc {
    font-family: var(--font-body); font-size: 0.78rem;
    color: var(--text-light); margin: 2px 0 0;
}
.payment-option--disabled { opacity: 0.5; cursor: not-allowed; }
.payment-option--disabled input { pointer-events: none; }
.badge-soon {
    font-size: 0.65rem; font-weight: 700;
    background: #f0e68c; color: #7a6c00;
    padding: 3px 9px; border-radius: 20px; text-transform: uppercase;
}
.badge-discount {
    font-size: 0.65rem; font-weight: 700;
    background: #E8F5E9; color: #2E7D32;
    padding: 3px 9px; border-radius: 20px; text-transform: uppercase;
}

/* Confirmation */
.confirm-check {
    display: flex; align-items: flex-start; gap: 12px;
    padding: 16px 0 0;
}
.confirm-check input[type="checkbox"] {
    width: 20px; height: 20px; margin-top: 2px;
    accent-color: var(--primary); cursor: pointer; flex-shrink: 0;
}
.confirm-check label {
    font-family: var(--font-body); font-size: 0.85rem;
    color: var(--text); cursor: pointer; line-height: 1.5;
}
.confirm-check label a {
    color: var(--primary); font-weight: 700; text-decoration: underline;
}
.btn-confirm {
    display: flex; align-items: center; justify-content: center; gap: 10px;
    width: 100%; padding: 16px 24px; margin-top: 20px;
    font-family: var(--font-body); font-size: 1rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: 1px;
    color: #fff; background: var(--primary);
    border: none; border-radius: var(--radius-sm);
    cursor: pointer; text-decoration: none;
    transition: background var(--tr), transform var(--tr), opacity var(--tr);
}
.btn-confirm:hover:not(:disabled) { background: var(--secondary); transform: translateY(-1px); }
.btn-confirm:disabled { opacity: 0.5; cursor: not-allowed; transform: none; }
.btn-confirm svg { width: 20px; height: 20px; fill: currentColor; }

/* Order Summary Sidebar */
.order-summary {
    position: sticky; top: 102px;
    background: #ffffff;
    border-radius: var(--radius);
    padding: 28px 24px;
    box-shadow: var(--shadow-float);
}
.order-summary h2 {
    font-family: var(--font-heading); font-size: 1.3rem;
    font-weight: 300; color: var(--text); margin: 0 0 16px;
    padding-bottom: 14px; border-bottom: 1px solid #eee;
}
.order-item { padding: 10px 0; border-bottom: 1px solid #f5f5f0; }
.order-item:last-of-type { border-bottom: none; }
.order-item__name {
    font-family: var(--font-body); font-size: 0.88rem;
    font-weight: 600; color: var(--text); margin: 0 0 3px;
}
.order-item__variants {
    font-family: var(--font-body); font-size: 0.75rem;
    color: var(--text-light); margin: 0 0 3px;
}
.order-item__line {
    display: flex; justify-content: space-between;
    font-family: var(--font-body); font-size: 0.82rem; color: #666;
}
.summary-divider { border: none; border-top: 1px solid #eee; margin: 14px 0; }
.sum-row {
    display: flex; justify-content: space-between; align-items: center;
    padding: 5px 0;
    font-family: var(--font-body); font-size: 0.88rem; color: var(--text);
}
.sum-row .sum-label { color: var(--text-light); }
.sum-row .sum-val { font-weight: 600; }
.sum-row--discount .sum-val { color: #d32f2f; }
.sum-row--total {
    padding-top: 14px; margin-top: 8px;
    border-top: 2px solid var(--primary);
    font-weight: 700; font-size: 1rem;
}
.sum-row--total .sum-val {
    font-family: var(--font-heading);
    font-size: 1.35rem; color: var(--primary);
}
.back-to-cart {
    display: block; text-align: center; margin-top: 16px;
    font-family: var(--font-body); font-size: 0.82rem;
    color: var(--primary); text-decoration: none;
}
.back-to-cart:hover { text-decoration: underline; }

/* Success overlay */
.order-success-overlay {
    display: none; position: fixed; inset: 0; z-index: 9999;
    background: rgba(255,255,255,0.96); backdrop-filter: blur(8px);
    justify-content: center; align-items: center;
}
.order-success-overlay.show { display: flex; }
.order-success { text-align: center; max-width: 500px; padding: 48px 32px; }
.order-success svg { width: 72px; height: 72px; fill: var(--primary); margin-bottom: 20px; }
.order-success h2 {
    font-family: var(--font-heading); font-size: 2rem;
    font-weight: 300; color: var(--primary); margin: 0 0 10px;
}
.order-success .order-num {
    font-family: var(--font-body); font-size: 1.2rem;
    font-weight: 700; color: var(--text); margin: 0 0 10px;
}
.order-success p {
    font-family: var(--font-body); font-size: 0.95rem;
    color: var(--text-light); margin: 0 0 28px; line-height: 1.6;
}
.checkout-error {
    display: none; padding: 12px 18px; margin-top: 12px;
    background: #fde8e8; color: #d32f2f; border-radius: var(--radius-sm);
    font-family: var(--font-body); font-size: 0.85rem;
}

/* ═══ STORICO ORDINI PAGE ═══ */

.orders-container {
    max-width: 960px; margin: 0 auto;
    padding: 32px 24px 60px;
}
.empty-orders {
    text-align: center; padding: 80px 24px;
    max-width: 500px; margin: 0 auto;
}
.empty-orders svg { width: 80px; height: 80px; fill: #ccc; margin-bottom: 20px; }
.empty-orders h2 {
    font-family: var(--font-heading); font-size: 1.6rem;
    font-weight: 300; color: var(--text); margin: 0 0 12px;
}
.empty-orders p {
    font-family: var(--font-body); font-size: 0.95rem;
    color: var(--text-light); margin: 0 0 28px;
}

/* Order Card */
.order-card {
    background: #ffffff;
    border-radius: var(--radius);
    margin-bottom: 20px;
    overflow: hidden;
    box-shadow: var(--shadow-float);
    transition: box-shadow var(--tr);
}
.order-card:hover { box-shadow: var(--shadow-hover); }
.order-card__header {
    display: grid;
    grid-template-columns: 1fr auto auto auto auto;
    align-items: center;
    gap: 20px;
    padding: 20px 24px;
    cursor: pointer;
    user-select: none;
    transition: background var(--tr);
}
.order-card__header:hover { background: #fafaf7; }
.order-card__number {
    font-family: var(--font-heading); font-size: 1.15rem;
    font-weight: 700; color: var(--text); margin: 0 0 4px;
}
.order-card__date {
    font-family: var(--font-body); font-size: 0.78rem;
    color: var(--text-light); margin: 0;
}
.order-card__payment {
    font-family: var(--font-body); font-size: 0.78rem;
    color: var(--text-light); text-align: center;
}
.order-card__total { text-align: right; }
.order-card__total-label {
    font-family: var(--font-body); font-size: 0.72rem;
    color: var(--text-light); margin: 0 0 2px;
    text-transform: uppercase; letter-spacing: 0.5px;
}
.order-card__total-val {
    font-family: var(--font-heading); font-size: 1.2rem;
    font-weight: 700; color: var(--primary); margin: 0;
}

/* Status Badges */
.status-badge {
    display: inline-block;
    padding: 5px 14px;
    font-family: var(--font-body); font-size: 0.72rem; font-weight: 700;
    letter-spacing: 0.5px; text-transform: uppercase;
    border-radius: 20px;
    white-space: nowrap;
}
.badge--nuovo       { background: #E3F2FD; color: #1565C0; }
.badge--pagato      { background: #E8F5E9; color: #2E7D32; }
.badge--lavorazione { background: #FFF3E0; color: #E65100; }
.badge--spedito     { background: #F3E5F5; color: #7B1FA2; }
.badge--consegnato  { background: #E8F5E9; color: #1B5E20; }
.badge--annullato   { background: #FFEBEE; color: #C62828; }

/* Toggle arrow */
.order-card__toggle {
    display: flex; align-items: center; justify-content: center;
    width: 32px; height: 32px;
    border-radius: 50%; background: #f5f5f0;
    transition: transform 0.3s ease, background var(--tr);
}
.order-card__toggle svg { width: 16px; height: 16px; fill: var(--text-light); }
.order-card.open .order-card__toggle { transform: rotate(180deg); background: #e4f0d6; }
.order-card.open .order-card__toggle svg { fill: var(--primary); }

/* Card Body (expandable) */
.order-card__body {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease;
}
.order-card.open .order-card__body { max-height: 2000px; }
.order-card__detail {
    padding: 0 24px 24px;
    border-top: 1px solid #f0f0eb;
}

/* Detail table */
.detail-table { width: 100%; border-collapse: collapse; margin-top: 16px; }
.detail-table th {
    font-family: var(--font-body); font-size: 0.72rem; font-weight: 700;
    color: var(--text-light); text-transform: uppercase; letter-spacing: 0.5px;
    padding: 8px 12px; text-align: left;
    border-bottom: 2px solid #eee;
}
.detail-table th:last-child { text-align: right; }
.detail-table td {
    font-family: var(--font-body); font-size: 0.88rem;
    color: var(--text); padding: 12px;
    border-bottom: 1px solid #f5f5f0;
    vertical-align: top;
}
.detail-table td:last-child { text-align: right; white-space: nowrap; }
.detail-table tr:last-child td { border-bottom: none; }
.detail-product-name { font-weight: 600; margin: 0 0 2px; }
.detail-product-code {
    font-size: 0.72rem; color: var(--text-light);
    letter-spacing: 0.5px; margin: 0 0 6px;
}
.detail-variants { font-size: 0.8rem; color: #666; line-height: 1.5; }
.detail-variants span {
    display: inline-block; background: #f5f5f0;
    padding: 3px 9px; border-radius: 20px;
    margin: 2px 4px 2px 0; font-size: 0.75rem;
}

/* Detail summary */
.detail-summary {
    display: flex; justify-content: flex-end;
    gap: 32px;
    margin-top: 16px; padding-top: 16px;
    border-top: 2px solid #eee;
}
.detail-summary__item { text-align: right; }
.detail-summary__label {
    font-family: var(--font-body); font-size: 0.75rem;
    color: var(--text-light); margin: 0 0 2px;
}
.detail-summary__val {
    font-family: var(--font-body); font-size: 0.95rem;
    font-weight: 600; color: var(--text); margin: 0;
}
.detail-summary__item--total .detail-summary__val {
    font-family: var(--font-heading); font-size: 1.15rem;
    color: var(--primary); font-weight: 700;
}

/* Detail actions */
.detail-actions {
    display: flex; justify-content: flex-end; gap: 12px;
    margin-top: 20px;
}
.btn-reorder {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 10px 24px;
    font-family: var(--font-body); font-size: 0.82rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: 1px;
    color: var(--primary); background: #f0f7e8;
    border: none; border-radius: var(--radius-sm);
    text-decoration: none; cursor: pointer;
    transition: background var(--tr), transform var(--tr);
}
.btn-reorder:hover { background: #e4f0d6; transform: translateY(-1px); }
.btn-reorder svg { width: 16px; height: 16px; fill: currentColor; }

/* Cancel Order */
.cancel-order-wrap { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.btn-cancel-order {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 10px 24px;
    font-family: var(--font-body); font-size: 0.82rem; font-weight: 700;
    color: #c62828; background: #fbe9e7;
    border: 1px solid rgba(198,40,40,0.2); border-radius: var(--radius-sm);
    text-decoration: none; cursor: pointer;
    transition: background var(--tr), transform var(--tr);
}
.btn-cancel-order:hover { background: #ffcdd2; transform: translateY(-1px); }
.btn-cancel-order svg { width: 16px; height: 16px; fill: currentColor; }
.cancel-deadline {
    font-family: var(--font-body); font-size: 0.75rem; font-weight: 400;
    color: var(--muted, #888); white-space: nowrap;
}

/* Cancel Order Modal */
.cancel-modal-overlay {
    display: none; position: fixed; inset: 0;
    background: rgba(0,0,0,0.5); z-index: 9999;
    justify-content: center; align-items: center;
}
.cancel-modal-overlay.active { display: flex; }
.cancel-modal {
    background: #fff; border-radius: 12px;
    padding: 32px; max-width: 460px; width: 90%;
    box-shadow: 0 20px 60px rgba(0,0,0,0.2);
    text-align: center;
}
.cancel-modal__title {
    font-family: var(--font-heading, 'Cormorant Garamond', serif);
    font-size: 1.3rem; font-weight: 500; color: #1a1a2e; margin: 0 0 12px;
}
.cancel-modal__text {
    font-family: var(--font-body); font-size: 0.9rem; color: #555;
    line-height: 1.6; margin: 0 0 24px;
}
.cancel-modal__actions { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; }
.cancel-modal__btn {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 10px 24px; border-radius: var(--radius-sm);
    font-family: var(--font-body); font-size: 0.85rem; font-weight: 600;
    cursor: pointer; border: none; transition: background var(--tr), transform var(--tr);
}
.cancel-modal__btn svg { width: 16px; height: 16px; fill: currentColor; }
.cancel-modal__btn--close { background: #f0f0f0; color: #555; }
.cancel-modal__btn--close:hover { background: #e0e0e0; }
.cancel-modal__btn--confirm { background: #c62828; color: #fff; }
.cancel-modal__btn--confirm:hover { background: #b71c1c; transform: translateY(-1px); }

/* intl-tel-input overrides — global */
.iti { width: 100%; }
.iti__tel-input {
    font-family: var(--font-body) !important;
    font-size: 0.92rem !important;
    font-weight: 300 !important;
    color: var(--color-heading, #1a1a2e) !important;
}
.iti__country-container {
    --iti-border-color: transparent;
    --iti-hover-color: rgba(0,0,0,0.03);
}
.iti__selected-dial-code {
    font-family: var(--font-body);
    font-size: 0.85rem;
    font-weight: 300;
    color: var(--color-text, #555);
}
.iti__dropdown-content { border-radius: 8px; box-shadow: 0 8px 32px rgba(0,0,0,0.12); }
.iti__search-input {
    font-family: var(--font-body) !important;
    font-size: 0.85rem !important;
    padding-left: 32px !important;
    box-sizing: border-box !important;
}
.iti__search-icon {
    left: 8px;
}

/*
 * Public contact form (borderless, bottom-line style)
 * The .iti wrapper gets the bottom border; the input inside is fully borderless.
 * IMPORTANT: don't override padding-left — intl-tel-input sets it dynamically.
 */
.form-group .iti {
    border-bottom: 1px solid var(--color-border, #D8D6D0);
    transition: border-color var(--tr);
}
.form-group .iti:focus-within {
    border-bottom-color: var(--color-heading, #1a1a2e);
}
.form-group .iti .iti__tel-input {
    border: none !important;
    border-bottom: none !important;
    border-radius: 0 !important;
    padding-top: 12px !important;
    padding-bottom: 12px !important;
    /* padding-left is set by intl-tel-input dynamically — do NOT override */
    background: transparent !important;
    box-shadow: none !important;
    outline: none !important;
}
.form-group .iti .iti__tel-input:focus {
    border: none !important;
    box-shadow: none !important;
    outline: none !important;
}

/*
 * Registration form (bordered, rounded style)
 * The .iti wrapper gets the full border; the input inside is borderless.
 */
.reg-form-group .iti {
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    background: #FFFFFF;
    transition: border-color var(--tr), box-shadow var(--tr);
}
.reg-form-group .iti:focus-within {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(61,107,31,0.06);
}
.reg-form-group .iti .iti__tel-input {
    border: none !important;
    border-radius: 6px !important;
    padding-top: 12px !important;
    padding-bottom: 12px !important;
    background: transparent !important;
    box-shadow: none !important;
    outline: none !important;
}
.reg-form-group .iti .iti__tel-input:focus {
    border: none !important;
    box-shadow: none !important;
    outline: none !important;
}

/* Documents */
.detail-docs {
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid #f0f0eb;
}
.detail-docs__title,
.detail-tracking__title {
    font-family: var(--font-body);
    font-size: 0.78rem; font-weight: 700;
    color: var(--text-light);
    text-transform: uppercase; letter-spacing: 0.5px;
    margin: 0 0 12px;
    display: flex; align-items: center; gap: 6px;
}
.detail-docs__title svg,
.detail-tracking__title svg {
    width: 16px; height: 16px; fill: var(--primary);
}
.doc-list { display: flex; flex-wrap: wrap; gap: 10px; }
.doc-item {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 8px 16px;
    background: #f5f5f0;
    border-radius: var(--radius-sm);
    text-decoration: none;
    color: var(--text);
    font-family: var(--font-body); font-size: 0.82rem;
    transition: background var(--tr), transform var(--tr);
}
.doc-item:hover {
    background: #e4f0d6;
    transform: translateY(-1px);
    color: var(--primary);
}
.doc-item svg { width: 16px; height: 16px; fill: var(--primary); flex-shrink: 0; }
.doc-item__tipo {
    font-size: 0.7rem; font-weight: 700;
    color: var(--primary);
    background: rgba(61,107,31,0.1);
    padding: 3px 9px; border-radius: 20px;
}

/* Tracking */
.detail-tracking {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid #f0f0eb;
}
.tracking-info { display: flex; flex-wrap: wrap; gap: 20px; }
.tracking-info__item { font-family: var(--font-body); font-size: 0.85rem; }
.tracking-info__label {
    font-size: 0.72rem; font-weight: 700;
    color: var(--text-light);
    text-transform: uppercase; letter-spacing: 0.5px;
    margin-bottom: 2px;
}
.tracking-info__value { color: var(--text); font-weight: 600; }
.tracking-info__awb {
    font-family: monospace;
    font-size: 0.9rem;
    color: var(--primary);
    font-weight: 700;
}

/* Orders count */
.orders-count {
    font-family: var(--font-body); font-size: 0.85rem;
    color: var(--text-light); margin-bottom: 20px;
    padding-bottom: 16px;
    border-bottom: 1px solid #eee;
}
.orders-count strong { color: var(--text); }

/* ═══ MODELLO (CONFIGURATOR) PAGE ═══ */

/* Breadcrumb */
.breadcrumb {
    max-width: 1200px; margin: 0 auto;
    padding: 16px 32px;
    font-family: var(--font-body); font-size: 0.8rem;
    color: var(--text-light);
}
.breadcrumb a { color: var(--primary); text-decoration: none; }
.breadcrumb a:hover { text-decoration: underline; }
.breadcrumb span { margin: 0 8px; color: #ccc; }

/* Configurator Layout */
.configurator {
    max-width: 1200px; margin: 0 auto;
    padding: 0 32px 64px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: start;
}

/* Left column: image + favorite star */
.config-left-col {
    position: sticky; top: 90px;
}

/* Image section */
.config-image {
    border-radius: var(--radius);
    overflow: hidden;
    background: #f5f5f0;
    aspect-ratio: 1/1;
    display: flex; align-items: center; justify-content: center;
    box-shadow: var(--shadow-float);
}
.config-image img {
    width: 100%; height: 100%; object-fit: cover;
    transition: opacity 0.3s ease;
}
.config-image img.swapping { opacity: 0; }
.config-image .placeholder-icon { width: 100px; height: 100px; opacity: 0.15; }

/* Details section */
.config-details { padding-top: 8px; }
.config-details__cat {
    font-family: var(--font-body);
    font-size: 0.75rem; font-weight: 700;
    letter-spacing: 0.1em; text-transform: uppercase;
    color: var(--secondary); margin: 0 0 8px;
}
.config-details__name {
    font-family: var(--font-heading);
    font-size: 2.2rem; font-weight: 300;
    color: var(--text); margin: 0 0 6px; line-height: 1.15;
}
.config-details__code {
    font-family: var(--font-body);
    font-size: 0.8rem; font-weight: 700;
    letter-spacing: 0.08em; color: var(--text-light);
    text-transform: uppercase; margin: 0 0 20px;
}
.config-details__desc {
    font-family: var(--font-body);
    font-size: 0.95rem; line-height: 1.65;
    color: var(--text-light); margin: 0 0 28px;
}
.config-divider {
    border: none;
    border-top: 1px solid #e8e8e8;
    margin: 0 0 28px;
}

/* Variant Group */
.variant-group { margin-bottom: 28px; }
.variant-group__label {
    display: flex; align-items: center; gap: 8px;
    font-family: var(--font-body);
    font-size: 0.8rem; font-weight: 700;
    letter-spacing: 0.06em; text-transform: uppercase;
    color: var(--text); margin: 0 0 12px;
}
.variant-group__label svg { width: 18px; height: 18px; color: var(--primary); }

/* Pills */
.variant-pills { display: flex; flex-wrap: wrap; gap: 10px; }
.variant-pill {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 10px 18px;
    font-family: var(--font-body); font-size: 0.85rem; font-weight: 400;
    color: var(--text); background: #f5f5f0;
    border: 2px solid transparent;
    border-radius: 100px;
    cursor: pointer;
    transition: all var(--tr);
    user-select: none;
}
.variant-pill:hover { background: #eef5e6; border-color: var(--accent); }
.variant-pill.active {
    background: #f0f7e8;
    border-color: var(--primary);
    font-weight: 700;
    color: var(--primary);
}
.variant-pill.disabled {
    opacity: 0.35;
    pointer-events: none;
    cursor: not-allowed;
    background: #f5f5f5;
    border-color: #ddd;
    color: #aaa;
    text-decoration: line-through;
}
.variant-pill.reachable {
    opacity: 0.55;
    border-style: dashed;
    cursor: pointer;
}
.variant-pill.reachable:hover {
    opacity: 0.85;
    border-style: solid;
    border-color: var(--primary);
}
.variant-pill__surcharge {
    font-size: 0.75rem; font-weight: 700;
    color: var(--secondary);
}

/* Price Display */
.price-display {
    background: linear-gradient(135deg, #f7fbf3 0%, #ffffff 100%);
    border-radius: var(--radius-sm);
    padding: 24px;
    margin-bottom: 28px;
    border: 1px solid #e8f0e0;
}
.price-display__label {
    font-family: var(--font-body);
    font-size: 0.75rem; font-weight: 700;
    letter-spacing: 0.08em; text-transform: uppercase;
    color: var(--text-light); margin: 0 0 4px;
}
.price-display__base {
    font-family: var(--font-body);
    font-size: 0.85rem; color: var(--text-light);
    margin: 0 0 8px;
}
.price-display__total {
    font-family: var(--font-heading);
    font-size: 2.4rem; font-weight: 700;
    color: var(--primary); margin: 0;
    line-height: 1;
}
.price-display__total .eur { font-size: 1.6rem; }
.price-display__breakdown {
    margin-top: 12px;
    font-family: var(--font-body);
    font-size: 0.8rem; color: var(--text-light);
    line-height: 1.6;
}
.price-display__breakdown span { color: var(--secondary); font-weight: 700; }

/* Stock + Volume Discount Row */
.stock-vol-row {
    display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
    margin-bottom: 24px;
}

/* Stock Badge */
.stock-badge {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 6px 14px;
    font-family: var(--font-body); font-size: 0.78rem; font-weight: 700;
    border-radius: 20px; margin-bottom: 0;
}
.stock-badge--ok  { background: #e8f5e9; color: #2e7d32; }
.stock-badge--low { background: #fff3e0; color: #e65100; }
.stock-badge--out { background: #ffebee; color: #c62828; }
.stock-badge__dot {
    width: 8px; height: 8px; border-radius: 50%;
    display: inline-block;
}
.stock-badge--ok .stock-badge__dot  { background: #4caf50; }
.stock-badge--low .stock-badge__dot { background: #ff9800; }
.stock-badge--out .stock-badge__dot { background: #f44336; }

/* CTA Button */
.btn-cart {
    display: inline-flex; align-items: center; justify-content: center; gap: 10px;
    width: 100%; padding: 16px 32px;
    font-family: var(--font-body); font-size: 1rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: 1px;
    color: #ffffff; background: var(--primary);
    border: none; border-radius: var(--radius-sm);
    cursor: pointer;
    transition: background var(--tr), transform var(--tr), box-shadow var(--tr);
}
.btn-cart:hover {
    background: var(--secondary); color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(61, 107, 31, 0.25);
}
.btn-cart:active { transform: translateY(0); }
.btn-cart svg { width: 20px; height: 20px; fill: currentColor; }
.btn-cart:disabled {
    background: #ccc; cursor: not-allowed;
    transform: none; box-shadow: none;
}

/* Promo Conditions Box */
.promo-conditions-box {
    margin: 16px 0 20px; padding: 16px 20px;
    background: linear-gradient(135deg, #fff8e1, #fff3cd);
    border: 2px solid #ffc107; border-radius: var(--radius-sm);
}
.promo-conditions-box__header {
    display: flex; align-items: center; gap: 8px;
    margin-bottom: 8px; color: #856404;
    font-family: var(--font-heading); font-size: 1.05rem;
}
.promo-conditions-box__list { padding-left: 20px; margin: 0; }
.promo-conditions-box__list li {
    font-family: var(--font-body); font-size: 0.9rem;
    color: #5a4a00; line-height: 1.7;
}

/* Promo Mode Banner */
.promo-mode-banner {
    display: flex; align-items: center; gap: 8px;
    padding: 10px 24px;
    background: linear-gradient(135deg, #fff8e1, #fff3cd);
    border-bottom: 2px solid #ffc107;
    font-family: var(--font-body); font-size: 0.9rem; color: #856404;
}
.promo-mode-banner span { font-weight: 600; }
.promo-mode-banner a {
    margin-left: auto;
    color: var(--primary);
    font-weight: 600; text-decoration: underline;
}
.promo-mode-banner a:hover { text-decoration: none; }

/* Variant pill promo */
.variant-pill--promo {
    border-color: #ffc107 !important;
    background: #fffde7 !important;
}
.variant-pill--promo::after {
    content: '★';
    margin-left: 4px; font-size: 10px; color: #e53935;
}

/* ═══════════════════════════════════════════════
   B2B RESPONSIVE — Consolidated Media Queries
   ═══════════════════════════════════════════════ */

@media (max-width: 1024px) {
    .b2b-macro-card__img { height: 250px; }
    .overlay-product-grid { grid-template-columns: repeat(2, 1fr); }
    .overlay-product-grid--combos { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 900px) {
    .cart-container { grid-template-columns: 1fr; }
    .cart-summary { position: static; }
    .checkout-container { grid-template-columns: 1fr; }
    .order-summary { position: static; order: -1; }
    .configurator {
        grid-template-columns: 1fr;
        gap: 24px;
        padding: 0 24px 48px;
    }
    .config-left-col {
        position: static;
    }
    .config-image {
        aspect-ratio: 4/3;
    }
    .config-details__name { font-size: 1.8rem; }
    .price-display__total { font-size: 2rem; }
}

@media (max-width: 768px) {
    .b2b-cards__grid { grid-template-columns: 1fr; gap: 20px; }
    .b2b-macro-card__img { height: 220px; }
    .b2b-macro-card__title { font-size: 1.35rem; }
    .b2b-overlay__panel { width: 95%; max-height: 95vh; }
    .b2b-overlay__body { padding: 20px; }
    .overlay-product-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
    .overlay-product-grid--combos { grid-template-columns: repeat(2, 1fr); }
    .overlay-filters { padding: 12px 20px; gap: 8px; }

    /* Profilo responsive */
    .profile-container { padding: 0 16px; }
    .profile-card { padding: 20px; }
    .profile-row { flex-direction: column; gap: 4px; }
    .profile-value { text-align: left; }

    /* Storico responsive */
    .order-card__header {
        grid-template-columns: 1fr auto;
        gap: 12px;
    }
    .order-card__payment { display: none; }
    .order-card__total { display: none; }
    .order-card__main {
        display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
    }
    .detail-table { font-size: 0.82rem; }
    .detail-table th,
    .detail-table td { padding: 8px 6px; }
    .detail-summary { flex-wrap: wrap; gap: 16px; }
}

@media (max-width: 640px) {
    /* Shared nav mobile */
    .b2b-nav { padding: 0 16px; height: 60px; }
    .b2b-nav__logo span { display: none; }
    .b2b-nav__company { display: none; }

    /* Carrello mobile */
    .cart-header h1 { font-size: 1.6rem; }
    .cart-item {
        grid-template-columns: auto 1fr;
        gap: 12px;
    }
    .cart-item__info { grid-column: 2; }
    .cart-item__price { text-align: left; grid-column: 1 / -1; }
    .cart-item__img { width: 56px; height: 56px; }
    .cart-item__actions {
        display: flex; align-items: center; gap: 12px;
    }

    /* Storico mobile */
    .storico-header h1 { font-size: 1.6rem; }
    .orders-container { padding: 20px 16px 40px; }
    .order-card__header { padding: 16px; gap: 10px; }
    .order-card__number { font-size: 1rem; }
    .detail-table thead { display: none; }
    .detail-table, .detail-table tbody,
    .detail-table tr, .detail-table td {
        display: block; width: 100%;
    }
    .detail-table tr {
        padding: 12px 0;
        border-bottom: 1px solid #f0f0eb;
    }
    .detail-table td {
        padding: 2px 0; border-bottom: none;
        text-align: left !important;
    }
    .detail-table td:before {
        content: attr(data-label);
        font-size: 0.7rem; font-weight: 700;
        color: var(--text-light); text-transform: uppercase;
        letter-spacing: 0.5px; display: block;
        margin-bottom: 2px;
    }

    /* Checkout mobile */
    .checkout-header h1 { font-size: 1.6rem; }
    .form-row { grid-template-columns: 1fr; }
    .addr-modal { padding: 24px 20px; }

    /* Overlay filters + combos mobile */
    .overlay-product-grid--combos { grid-template-columns: repeat(2, 1fr); gap: 12px; }
    .overlay-filters { padding: 10px 16px; flex-direction: column; align-items: stretch; }
    .overlay-filter-group select { width: 100%; min-width: auto; }
}

@media (max-width: 600px) {
    /* Listino mobile */
    .listino-header h1 { font-size: 1.6rem; }
    .listino-header { padding: 24px 16px 12px; }
    .b2b-cards { padding: 16px 16px 12px; }
    .b2b-macro-card__img { height: 180px; }
    .b2b-macro-card__info { padding: 16px 20px 20px; }
    .b2b-macro-card__title { font-size: 1.2rem; }
    .b2b-overlay { padding: 0; }
    .b2b-overlay__panel {
        width: 100%; max-height: 100vh;
        border-radius: 0;
    }
    .b2b-overlay__header { padding: 16px 20px; }
    .b2b-overlay__title { font-size: 1.3rem; }
    .b2b-overlay__body { padding: 16px; }
    .overlay-product-grid { grid-template-columns: 1fr; gap: 16px; }
    .preview-modal { max-width: 100%; }
    .preview-modal__body { padding: 20px 24px 24px; }
    .preview-modal__title { font-size: 1.3rem; }

    /* Modello mobile */
    .breadcrumb { padding: 12px 16px; font-size: 0.75rem; }
    .configurator { padding: 0 16px 40px; gap: 24px; }
    .config-details__name { font-size: 1.5rem; }
    .variant-pill { padding: 8px 14px; font-size: 0.8rem; }
    .price-display__total { font-size: 1.7rem; }

    /* Favorites mini-cards mobile */
    .favorites-grid { grid-template-columns: 1fr 1fr !important; }
    .fav-mini-card__image { height: 140px; }

    /* Novità mini-cards mobile */
    .b2b-novita-grid { grid-template-columns: 1fr 1fr !important; }
}

/* ═══════ B2B SHORTCUT BAR ═══════ */
.b2b-shortcut-bar {
    max-width: 1200px;
    margin: 0 auto;
    padding: 12px 32px 0;
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}
.b2b-shortcut-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 20px;
    border-radius: 24px;
    font-family: var(--font-body);
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-decoration: none;
    cursor: pointer;
    transition: all 0.25s ease;
    border: 1.5px solid transparent;
}
.b2b-shortcut-btn svg {
    flex-shrink: 0;
}
.b2b-shortcut-btn--novita {
    background: rgba(139, 105, 20, 0.08);
    color: var(--secondary, #8B6914);
    border-color: rgba(139, 105, 20, 0.2);
}
.b2b-shortcut-btn--novita:hover {
    background: rgba(139, 105, 20, 0.15);
    border-color: var(--secondary, #8B6914);
}
.b2b-shortcut-btn--favorites {
    background: rgba(212, 168, 83, 0.08);
    color: #856404;
    border-color: rgba(212, 168, 83, 0.25);
}
.b2b-shortcut-btn--favorites:hover {
    background: rgba(212, 168, 83, 0.15);
    border-color: #D4A853;
}
.b2b-shortcut-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    border-radius: 11px;
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1;
}
.b2b-shortcut-btn--novita .b2b-shortcut-badge {
    background: var(--secondary, #8B6914);
    color: #fff;
}
.b2b-shortcut-btn--favorites .b2b-shortcut-badge {
    background: #D4A853;
    color: #fff;
}

/* ═══════ B2B FAVORITES SECTION ═══════ */
.favorites-section {
    max-width: 1200px;
    margin: 0 auto;
    padding: 32px 32px 0;
}
.favorites-header {
    margin-bottom: 20px;
}
.favorites-header h2 {
    font-family: var(--font-heading);
    font-size: 1.6rem;
    font-weight: 600;
    color: var(--primary);
    margin: 0 0 4px;
}
.favorites-header p {
    font-family: var(--font-body);
    font-size: 0.9rem;
    color: #888;
    margin: 0;
}
.favorites-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 16px;
}
.fav-mini-card {
    background: #fff;
    border-radius: var(--radius, 12px);
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
    overflow: hidden;
    cursor: pointer;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    position: relative;
}
.fav-mini-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 6px 20px rgba(0,0,0,0.12);
}
.fav-mini-card__image {
    height: 150px;
    background: #f5f5f0;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    position: relative;
}
.fav-mini-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.fav-mini-card__remove {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 28px;
    height: 28px;
    background: rgba(255,255,255,0.92);
    border: none;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    color: #999;
    transition: background 0.2s, color 0.2s;
    z-index: 2;
    line-height: 1;
}
.fav-mini-card__remove:hover {
    background: #fff;
    color: #d32f2f;
}
.fav-mini-card__info {
    padding: 12px 14px 14px;
}
.fav-mini-card__info h3 {
    font-family: var(--font-heading);
    font-size: 1rem;
    font-weight: 600;
    color: var(--text-dark, #1a1a1a);
    margin: 0 0 8px;
    line-height: 1.3;
}
.fav-mini-card__variants {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}
.fav-variant-pill {
    display: inline-block;
    background: rgba(61,107,31,0.1);
    color: var(--primary);
    font-family: var(--font-body);
    font-size: 0.72rem;
    font-weight: 600;
    padding: 3px 9px;
    border-radius: 12px;
    letter-spacing: 0.01em;
}
.fav-mini-card__placeholder {
    width: 48px;
    height: 48px;
    fill: #ccc;
}

/* ═══════ B2B NOVITÀ SECTION ═══════ */
.b2b-novita-section {
    max-width: 1200px;
    margin: 0 auto;
    padding: 32px 32px 0;
}
.b2b-novita-header {
    margin-bottom: 20px;
}
.b2b-novita-header h2 {
    font-family: var(--font-heading);
    font-size: 1.6rem;
    font-weight: 600;
    color: var(--secondary, #8B6914);
    margin: 0 0 4px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}
.b2b-novita-header p {
    font-family: var(--font-body);
    font-size: 0.9rem;
    color: #888;
    margin: 0;
}
.b2b-novita-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 16px;
}
.b2b-novita-grid .product-card__img {
    aspect-ratio: 1/1;
}
.b2b-novita-grid .product-card__info {
    padding: 12px 14px 14px;
}
.b2b-novita-grid .product-card__name {
    font-size: 0.9rem;
}
.novita-badge {
    position: absolute;
    top: 10px;
    left: 10px;
    background: var(--secondary, #8B6914);
    color: #fff;
    font-family: var(--font-body);
    font-size: 0.68rem;
    font-weight: 700;
    padding: 4px 10px;
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    z-index: 2;
}

/* ═══════ NOVITÀ MINI-CARDS (combo-level) ═══════ */
.novita-mini-card {
    background: #fff;
    border-radius: var(--radius-sm, 8px);
    box-shadow: 0 2px 10px rgba(0,0,0,0.06);
    overflow: hidden;
    cursor: pointer;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    text-decoration: none;
    color: inherit;
    display: block;
}
.novita-mini-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 18px rgba(0,0,0,0.11);
}
.novita-mini-card__image {
    position: relative;
    height: 150px;
    background: #f5f5f0;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.novita-mini-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.novita-mini-card__image .novita-badge {
    top: 8px;
    left: 8px;
    font-size: 0.58rem;
    padding: 3px 8px;
}
.novita-mini-card__image .placeholder-icon {
    width: 36px;
    height: 36px;
    opacity: 0.15;
}
.novita-mini-card__info {
    padding: 10px 12px 12px;
}
.novita-mini-card__name {
    font-family: var(--font-heading);
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--text, #1a1a1a);
    margin: 0 0 6px;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.novita-mini-card__variants {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

/* ═══════ B2B PROMOZIONI SECTION ═══════ */
.b2b-promo-section {
    max-width: 1200px;
    margin: 0 auto;
    padding: 32px 32px 0;
}
.b2b-promo-header {
    margin-bottom: 20px;
}
.b2b-promo-header h2 {
    font-family: var(--font-heading);
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--text, #1a1a1a);
    margin: 0 0 6px;
    display: flex;
    align-items: center;
    gap: 10px;
}
.b2b-promo-header p {
    font-size: 0.88rem;
    color: var(--text-light, #7a7a72);
    margin: 0;
}
.b2b-promo-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 18px;
}

/* ═══════ PROMO MINI-CARDS (combo-level) ═══════ */
.promo-mini-card {
    background: #fff;
    border-radius: var(--radius-sm, 8px);
    box-shadow: 0 2px 10px rgba(0,0,0,0.06);
    overflow: hidden;
    cursor: pointer;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    text-decoration: none;
    color: inherit;
    display: block;
    border: 1.5px solid rgba(229, 57, 53, 0.15);
}
.promo-mini-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 18px rgba(229, 57, 53, 0.15);
    border-color: rgba(229, 57, 53, 0.35);
}
.promo-mini-card__image {
    position: relative;
    height: 150px;
    background: #f5f5f0;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.promo-mini-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.promo-mini-card__image .starburst-badge--sm {
    width: 50px; height: 50px;
    top: 6px; right: 6px;
}
.promo-mini-card__image .starburst-badge--sm span { font-size: 8px; }
.promo-mini-card__image .starburst-badge--sm small { font-size: 11px; }
.promo-mini-card__image .placeholder-icon {
    width: 36px;
    height: 36px;
    opacity: 0.15;
}
.promo-mini-card__info {
    padding: 10px 12px 12px;
}
.promo-mini-card__name {
    font-family: var(--font-heading);
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--text, #1a1a1a);
    margin: 0 0 6px;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.promo-mini-card__variants {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-bottom: 8px;
}
.promo-mini-card__details {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.promo-mini-card__discount {
    display: inline-block;
    background: #e53935;
    color: #fff;
    font-size: 0.75rem;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 4px;
}
.promo-mini-card__minqty {
    font-size: 0.72rem;
    color: var(--text-light, #7a7a72);
    font-style: italic;
}

/* Promo shortcut button */
.b2b-shortcut-btn--promo {
    background: rgba(229, 57, 53, 0.08);
    color: #c62828;
    border-color: rgba(229, 57, 53, 0.2);
}
.b2b-shortcut-btn--promo:hover {
    background: rgba(229, 57, 53, 0.15);
    border-color: #e53935;
}
.b2b-shortcut-btn--promo .b2b-shortcut-badge {
    background: #e53935;
    color: #fff;
}

/* Responsive promo grid */
@media (max-width: 640px) {
    .b2b-promo-grid { grid-template-columns: 1fr 1fr !important; }
}

/* ─── DPD Tracking Link ────────────────────────────────────────── */
.btn-track-dpd {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-left: 8px;
    padding: 3px 10px;
    font-size: 11px;
    font-weight: 500;
    color: #7B1FA2;
    background: #F3E5F5;
    border: 1px solid #CE93D8;
    border-radius: 12px;
    text-decoration: none;
    transition: background 0.2s, color 0.2s;
    vertical-align: middle;
}
.btn-track-dpd:hover {
    background: #E1BEE7;
    color: #4A148C;
}
.btn-track-dpd svg {
    flex-shrink: 0;
}

/* ═══ PWA Install Banner ═══ */
.bwu-pwa-banner {
    width: 100%;
    overflow: hidden;
    max-height: 0;
    opacity: 0;
    transition: max-height 0.35s ease, opacity 0.35s ease;
    background: linear-gradient(135deg, #f0f5eb 0%, #e8f0e0 100%);
    border-bottom: 1px solid #d4e2c8;
    z-index: 90;
}
.bwu-pwa-banner--visible {
    max-height: 80px;
    opacity: 1;
}
.bwu-pwa-banner__inner {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 20px;
    max-width: 1200px;
    margin: 0 auto;
}
.bwu-pwa-banner__icon {
    font-size: 20px;
    flex-shrink: 0;
}
.bwu-pwa-banner__text {
    font-size: 13px;
    color: #3d6b1f;
    font-weight: 400;
    flex: 1;
    line-height: 1.3;
}
.bwu-pwa-banner__btn {
    flex-shrink: 0;
    padding: 6px 18px;
    background: #3d6b1f;
    color: #fff;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.2s;
}
.bwu-pwa-banner__btn:hover {
    background: #2d5016;
}
.bwu-pwa-banner__close {
    flex-shrink: 0;
    background: none;
    border: none;
    font-size: 22px;
    color: #999;
    cursor: pointer;
    padding: 0 4px;
    line-height: 1;
    transition: color 0.2s;
}
.bwu-pwa-banner__close:hover {
    color: #555;
}
@media (max-width: 600px) {
    .bwu-pwa-banner__inner { padding: 8px 12px; gap: 8px; }
    .bwu-pwa-banner__text { font-size: 12px; }
    .bwu-pwa-banner__btn { padding: 5px 12px; font-size: 12px; }
}
