.invalid-feedback {
    display: inline-block;
}

/* variabili brand in brand.css (condiviso con commerce2) */

/* sfondo uniforme per tutte le finestre modali (bootstrap) */
.modal-backdrop.show {
    background-color: rgba(0,0,0,.6);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
    opacity: 1;
}

/* ── Base ────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }

html { height: 100%; }

body {
    font-family: 'Poppins', sans-serif;
    color: var(--text);
    background: var(--white);
    -webkit-font-smoothing: antialiased;
    min-height: 100%;
    display: flex;
    flex-direction: column;
}

/* overflow:hidden sul #page rompe position:sticky — override esplicito */
/* flex-direction:column + flex:1 spinge il footer in fondo anche su pagine corte */
#page { overflow-x: clip; overflow-y: visible; display: flex; flex-direction: column; flex: 1; }
#page > footer { margin-top: auto; }

/* ── Scrollbar sottile ───────────────────────────────────── */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: var(--bg-light); }
::-webkit-scrollbar-thumb { background: var(--blue); border-radius: 3px; }

/* ── Links globali ───────────────────────────────────────── */
a { transition: var(--transition); }

/* ── Pulsanti ────────────────────────────────────────────── */
.btn {
    border-radius: var(--radius);
    font-weight: 600;
    letter-spacing: .3px;
    padding: .55rem 1.4rem;
    transition: var(--transition);
    border: none;
}
.btn-primary {
    background: var(--blue);
    color: var(--white);
    box-shadow: var(--shadow-blue);
}
.btn-primary:hover {
    background: var(--blue-dark);
    box-shadow: var(--shadow-blue-hover);
    transform: translateY(-1px);
    color: var(--white);
}
.btn-secondary {
    background: var(--orange);
    color: var(--white);
    box-shadow: var(--shadow-orange);
}
.btn-secondary:hover {
    background: var(--orange-dark);
    color: var(--white);
    box-shadow: var(--shadow-orange-hover);
    transform: translateY(-1px);
}

/* ── Header ──────────────────────────────────────────────── */
.header {
    /* fissa in alto, senza effetto shrink allo scroll */
    position: sticky;
    top: 0;
    z-index: 1100;
    background: var(--white);
    border-bottom: 3px solid var(--blue);
    box-shadow: 0 8px 30px rgba(0,0,0,.16), 0 8px 40px rgba(var(--blue-rgb),.16), inset 0 -6px 12px rgba(var(--blue-rgb),.08);
    transition: box-shadow .3s ease;
}

/* ── Tema blu della navbar (stessa scelta di commerce2) ──────── */
.header--blue {
    background: var(--blue);
    border-bottom-color: var(--blue-dark);
}
/* logo icona: tutto bianco */
.header--blue .nav-logo-icon .cls-1 { fill: var(--white); }
/* logo testo: 's' e parti alte + dot2/3/4 bianchi, il resto arancio */
.header--blue .nav-logo-text #s,
.header--blue .nav-logo-text #i1_top,
.header--blue .nav-logo-text #i2_top,
.header--blue .nav-logo-text #r_top,
.header--blue .nav-logo-text #a_top,
.header--blue .nav-logo-text #dot2,
.header--blue .nav-logo-text #dot3,
.header--blue .nav-logo-text #dot4 { fill: var(--white); }
.header--blue .nav-logo-text #i1_bottom,
.header--blue .nav-logo-text #i2_bottom,
.header--blue .nav-logo-text #r_bottom,
.header--blue .nav-logo-text #a_bottom,
.header--blue .nav-logo-text #dot1 { fill: var(--orange); }
.header--blue .nav-tagline,
.header--blue .nav-tagline-sm { color: var(--white); }
.header--blue .menu > li > a { color: var(--white); }
.header--blue .toggleMenu,
.header--blue .toggleMenu.active { background: transparent; border-color: rgba(255,255,255,.4); }
.header--blue .toggleMenu::before,
.header--blue .toggleMenu::after,
.header--blue .toggleMenu .toggleMenu-bar { background: var(--white); }

/* allarga il container Bootstrap su schermi grandi: minimo 1440px,
   sui monitor molto wide usa il 94% della viewport fino a 2560px (come commerce2) */
.container,
.container-fluid { max-width: clamp(1440px, 94vw, 2560px); }

/* riga principale: brand | menu */
.nav-inner {
    display: flex;
    align-items: center;
    /* identico a commerce2: cresce col viewport sui monitor wide */
    max-width: clamp(1440px, 94vw, 2560px);
    margin: 0 auto;
    padding: 0 15px;
    width: 100%;
}

/* ── Brand (logo + tagline) ───────────────────────────────── */
.nav-logo {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 12px;
    text-decoration: none;
    flex-shrink: 0;
    padding: 8px;
    margin-right: 32px;
    transition: padding .35s ease;
}
.nav-logo-icon,
.nav-logo-text {
    height: 54px;
    width: auto;
    display: block;
    transition: height .35s ease, opacity .2s ease;
}
.nav-logo:hover .nav-logo-icon,
.nav-logo:hover .nav-logo-text { opacity: .85; }

.nav-tagline {
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: .8px;
    line-height: 1.5;
    text-transform: uppercase;
    color: var(--text-muted);
    overflow: hidden;
    max-height: 80px;
    transition: opacity .25s ease, max-height .35s ease;
}
.nav-tagline-sm {
    display: none;
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: .8px;
    line-height: 1.5;
    text-transform: uppercase;
    color: var(--text-muted);
    overflow: hidden;
    max-height: 0;
    opacity: 0;
    transition: opacity .25s ease, max-height .35s ease;
}
.nav-tagline-accent { color: var(--orange); }

/* ── Menu (voci + auth) ──────────────────────────────────── */
.nav-menu {
    flex: 1;
    display: flex;
    /* niente wrap su desktop: l'overflow è gestito da adjustMenuOverflow (dropdown "Altro"),
       il wrap qui spingerebbe il bottone Login su una seconda riga fuori dalla header */
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-end;
}

.menu { display: flex; align-items: center; list-style: none; padding: 0; margin: 0; }
.menu > li { float: none; }
/* impedisce il word-wrap sulle singole voci: se non c'è spazio è menu-auth a wrappare */
.menu > li > a { white-space: nowrap; }

.menu-auth { margin-left: 12px; padding-left: 12px; border-left: 1px solid rgba(var(--blue-rgb),.15); }

/* Login: stile button (arancio, testo bianco) */
.menu .nav-login > a {
    background: var(--orange);
    color: var(--white) !important;
    border-radius: 20px;
    padding: 6px 18px !important;
    font-weight: 600;
    line-height: 1.4;
    display: inline-block;
    transition: var(--transition);
}
.menu .nav-login > a:hover { background: var(--orange-dark); color: var(--white) !important; }
.menu .nav-login > a::before { display: none !important; }

/* utente loggato: bottone Catalogo bianco con testo arancio + Logout arancio con testo bianco */
.menu .nav-catalog > a { background: var(--white); color: var(--orange) !important; }
.menu .nav-catalog > a:hover { background: var(--gray-50); color: var(--orange-dark) !important; }
.menu .nav-logout > a { background: var(--orange); }
.menu .nav-logout > a:hover { background: var(--orange-dark); }
.menu-auth .nav-login + .nav-login { margin-left: 8px; }
.menu .nav-register > a { font-weight: 600; }

/* voci menu: colori e hover */
.menu a { color: var(--blue); }
.menu > li > a { color: var(--blue); }
.menu li a:hover,
.menu li:hover > a,
.menu li.current-menu-item > a,
.menu li.current-menu-parent > a { color: var(--orange); background: transparent; text-decoration: none; }


.menu > li {
    font-size: 14px;
    line-height: 52px;
    font-weight: 600;
    letter-spacing: .4px;
    text-transform: uppercase;
    transition: line-height .35s ease;
}

/* icone delle voci di menu (SVG inline, ereditano il colore tramite currentColor) */
.menu-icon {
    width: 1rem;
    height: 1rem;
    margin-right: 6px;
    vertical-align: -3px;
    flex-shrink: 0;
}
/* su desktop le icone restano nascoste (spazio limitato dal bottone Login) */
.menu > li > a .menu-icon { display: none; }
.menu a { padding: 0 20px; }
.menu > li > a { position: relative; }

/* underline animato via ::before — lascia ::after libero per la freccia .parent */
.menu > li > a::before {
    content: '';
    position: absolute;
    bottom: 10px;
    left: 20px;
    right: 20px;
    height: 2px;
    background: var(--orange);
    transform: scaleX(0);
    transition: transform .25s ease;
    border-radius: 1px;
}
.menu > li > a:hover::before,
.menu > li:hover > a::before { transform: scaleX(1); }

/* freccia .parent: colore blu coerente col resto del menu */
.menu > li > a.parent::after { color: var(--blue); }

/* hover & active state */
.menu li a:hover,
.menu li:hover > a,
.menu li.current-menu-item > a,
.menu li.current-menu-parent > a {
    color: var(--orange);
    background: transparent;
    text-decoration: none;
}

/* dropdown */
.menu ul {
    background: var(--white);
    border-top: 3px solid var(--orange);
    border-radius: 0 0 var(--radius-lg) var(--radius-lg);
    box-shadow: var(--shadow-lg);
    overflow: hidden;
    min-width: 240px;
    padding: 6px 0;
    top: 100%;
    left: 0;
}
.menu > li.hover > ul { left: 0; }
/* dropdown "Altro" allineato al bordo destro per non uscire dallo schermo */
.menu > li.menu-more.hover > ul { left: auto; right: 0; }
.menu-more-caret {
    width: 0.7rem;
    height: 0.7rem;
    margin-left: 4px;
    vertical-align: -1px;
}
.menu li li a {
    background: var(--white);
    color: var(--text);
    font-size: 13px;
    padding: 10px 22px;
    border-bottom: 1px solid rgba(0,0,0,.04);
    text-transform: none;
    font-weight: 500;
    transition: var(--transition);
}
.menu li li a:hover {
    background: var(--blue-pale);
    color: var(--blue);
    padding-left: 28px;
}
.menu li li:last-child a { border-bottom: none; }

/* mobile toggle: bottone bianco con le tre righe blu, diventa una "X" da aperto */
.toggleMenu {
    display: none;
    position: relative;
    background-color: var(--white);
    border: 1px solid var(--gray-100);
    border-radius: var(--radius);
    height: 38px;
    width: 38px;
    flex-shrink: 0;
    margin-top: 0;
    text-indent: 0;
}
.toggleMenu::before,
.toggleMenu::after,
.toggleMenu .toggleMenu-bar {
    content: '';
    position: absolute;
    left: 9px;
    right: 9px;
    height: 2px;
    background: var(--blue);
    border-radius: 1px;
    transition: transform .25s ease, opacity .2s ease;
}
.toggleMenu::before { top: 12px; }
.toggleMenu .toggleMenu-bar { top: 18px; }
.toggleMenu::after { top: 24px; }
.toggleMenu.active::before { top: 18px; transform: rotate(45deg); }
.toggleMenu.active::after { top: 18px; transform: rotate(-45deg); }
.toggleMenu.active .toggleMenu-bar { opacity: 0; }
/* sovrascrive la vecchia icona "toogle-close.png" (sfondo scuro + X bianca) di style.css */
.toggleMenu.active {
    background-image: none;
    background-color: var(--white);
    color: inherit;
}

/* ── Home: ricerca sotto l'header ────────────────────────── */
.home-search-section { padding: 32px 0 0; }
.home-search-card {
    background: var(--white);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    padding: 14px 32px;
    border-top: 4px solid var(--orange);
}
/* barra unica Cerca/Marca/Modello: label sopra ogni campo, bottone allineato
   alla base grazie a .align-items-end sulla row e a un'etichetta invisibile
   della stessa altezza delle altre */
.home-search-card label {
    display: block;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--text-muted);
    margin-bottom: 6px;
}
.home-search-card .form-group { margin-bottom: 0; }
.home-search-prodotto-wrap { position: relative; }
.home-search-suggest {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 60;
    margin: 4px 0 0;
    padding: 6px 0;
    list-style: none;
    background: var(--white);
    border: 1.5px solid var(--gray-200);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-lg);
    max-height: 320px;
    overflow-y: auto;
    text-align: left;
}
.home-search-suggest__item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    cursor: pointer;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--text);
}
.home-search-suggest__item svg { flex-shrink: 0; color: var(--gray-500); }
.home-search-suggest__item:hover { background: var(--blue-pale); }
.home-search-suggest__tag {
    flex-shrink: 0;
    font-size: 0.625rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: var(--blue);
    background: var(--blue-pale);
    border-radius: 4px;
    padding: 1px 6px;
}
.home-search-suggest__label { flex-shrink: 0; font-weight: 600; color: var(--text); white-space: nowrap; }
.home-search-suggest__sub {
    min-width: 0;
    color: var(--text-muted);
    font-size: 0.8125rem;
    font-weight: 400;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.home-search-submit {
    width: 100%;
    height: 42px; /* stessa altezza di .form-control */
}
.home-search-hint {
    margin: 16px 0 0;
    padding-top: 14px;
    border-top: 1px solid var(--gray-100);
    font-size: 12px;
    color: var(--text-muted);
    text-align: center;
}

/* ── Home: card pubblicitarie (ex carosello), stile polaroid ── */
.home-promo-section { padding: 32px 0; }
.home-promo-section .row { row-gap: 24px; }
.home-promo-card {
    background: var(--white);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
    transition: var(--transition);
    height: 100%;
    padding: 10px;
    display: flex;
    flex-direction: column;
}
/* rapporto 2:1: la stessa proporzione per tutte le card a prescindere dalle
   dimensioni originali dell'immagine caricata in admin, l'eccedenza rispetto
   al riquadro va semplicemente in overflow hidden */
.home-promo-card-img {
    aspect-ratio: 2 / 1;
    border-radius: var(--radius);
    overflow: hidden;
}
.home-promo-card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.home-promo-more-wrap { margin-top: 28px; }

/* ── Intestazioni sezione (sostituisce divider.png) ──────── */
.w1 h2, .w4 h2, .w6 h2, .w8 h2,
.w3 .form-box h3, .w5 h3 {
    background-image: none;
    padding-bottom: 18px;
    margin-bottom: 8px;
    font-size: 26px;
    font-weight: 700;
    color: var(--blue);
    letter-spacing: -.3px;
    position: relative;
}
.w1 h2::after, .w4 h2::after, .w6 h2::after, .w8 h2::after,
.w3 .form-box h3::after, .w5 h3::after {
    content: '';
    display: block;
    width: 48px;
    height: 3px;
    background: var(--orange);
    border-radius: 2px;
    margin: 10px auto 0;
}
.w5 h3::after { margin-left: 0; }

/* ── Sezione W1 (categorie) ──────────────────────────────── */
.w1 { background: var(--bg-light); padding: 64px 0 72px; }
.category-box {
    background: var(--white);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    transition: var(--transition);
    border: 1px solid rgba(var(--blue-rgb),.06);
    overflow: visible;
    /* spazio in cima per l'icona che sporge */
    margin-top: 70px !important;
}
.category-box:hover {
    box-shadow: var(--shadow-lg);
    transform: translateY(-4px);
}
.category-box a { padding: 20px 15px 18px; }
.category-box a .icon {
    background: var(--blue);
    border-radius: 50%;
    width: 70px;
    height: 70px;
    margin: -54px auto 14px;
    box-shadow: var(--shadow-blue);
    transition: var(--transition);
}
.category-box a:hover .icon {
    background: var(--orange);
    box-shadow: var(--shadow-orange);
}
.category-box a h4 {
    font-size: 16px;
    font-weight: 600;
    color: var(--text);
}
.category-box a:hover h4 { color: var(--blue); }

/* ── Sezione W2 (tab contenuti) ──────────────────────────── */
.w2 { padding: 72px 0; }
.w2 .nav-tabs .nav-link {
    border-radius: var(--radius);
    background: var(--bg-light);
    color: var(--text-muted);
    font-weight: 500;
    font-size: 13px;
    transition: var(--transition);
    margin-bottom: 4px;
}
.w2 .nav-tabs .nav-link.active,
.w2 .nav-tabs .nav-item.show .nav-link,
.w2 .nav-tabs .nav-link:hover {
    background: var(--blue);
    color: var(--white);
    box-shadow: var(--shadow-blue);
}
/* rimuove la freccia CSS del tab attivo */
.w2 .nav-tabs .nav-link.active:before,
.w2 .nav-tabs .nav-link:hover:before { display: none; }

/* ── Sezione W3 (form contatto) ─────────────────────────── */
.w3 { background: var(--blue); padding: 80px 0; }
.w3 .form-box {
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    padding: 48px;
}
.w3 .form-box .form-control {
    border-radius: var(--radius);
    background: var(--bg-light);
    border: 1.5px solid transparent;
    height: 48px;
    font-size: 14px;
    transition: var(--transition);
}
.w3 .form-box .form-control:focus {
    border-color: var(--blue);
    box-shadow: var(--focus-ring);
    background: var(--white);
}
.w3 .form-box .form-group { margin-bottom: 20px; }
.w3 .form-box .btn { height: 48px; width: 100%; font-size: 15px; }

/* ── Sezione W4 (partner/loghi) ─────────────────────────── */
.w4 { padding: 64px 0; }
.owl-next, .owl-prev {
    background-color: var(--blue);
    border-radius: var(--radius);
    height: 38px;
    width: 38px;
    line-height: 38px;
    font-size: 22px;
    transition: var(--transition);
}
.owl-next:hover, .owl-prev:hover {
    background-color: var(--orange);
    color: var(--white) !important;
}

/* ── Sezione W4 Partners ─────────────────────────────────── */
.w4 { padding: 56px 0; background: var(--white); }
.w4 h2 { background-image: none; }

.partners-subtitle {
    text-align: center;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--text-muted);
    margin-top: -12px;
    margin-bottom: 32px;
    background: var(--orange);
    display: inline-block;
    padding: 3px 12px;
    border-radius: 4px;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
}

/* logo condiviso tra opzione A e B */
.partner-logo-item {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px 24px;
    border-radius: var(--radius);
    transition: var(--transition);
    border: 1px solid transparent;
}
.partner-logo-item img {
    max-height: 50px;
    width: auto;
    max-width: 130px;
    filter: grayscale(100%) opacity(.55);
    transition: var(--transition);
    display: block;
}
.partner-logo-item:hover img {
    filter: grayscale(0%) opacity(1);
}
.partner-logo-item:hover {
    border-color: rgba(var(--blue-rgb),.1);
    box-shadow: var(--shadow-sm);
}

/* Opzione A — carosello */
.partners-carousel-section { border-bottom: 2px dashed var(--gray-200); }
.partners-carousel-section .logo-scroll { padding: 0 64px; }

.partners-carousel-section .owl-nav { margin: 0; }
.partners-carousel-section .owl-next,
.partners-carousel-section .owl-prev {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    margin: 0;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--blue) !important;
    border: none;
    box-shadow: var(--shadow);
    color: transparent !important;
    font-size: 0 !important;
    text-indent: -9999px;
    display: flex !important;
    align-items: center;
    justify-content: center;
    transition: var(--transition);
}
.partners-carousel-section .owl-prev { left: 0; }
.partners-carousel-section .owl-next { right: 0; }

/* frecce via pseudo-elemento */
.partners-carousel-section .owl-prev::after,
.partners-carousel-section .owl-next::after {
    content: '';
    display: block;
    width: 10px;
    height: 10px;
    border-top: 2.5px solid var(--white);
    border-right: 2.5px solid var(--white);
    text-indent: 0;
    position: absolute;
    top: 50%;
    left: 50%;
}
.partners-carousel-section .owl-prev::after {
    transform: translate(-30%, -50%) rotate(-135deg);
}
.partners-carousel-section .owl-next::after {
    transform: translate(-70%, -50%) rotate(45deg);
}
.partners-carousel-section .owl-next:hover,
.partners-carousel-section .owl-prev:hover {
    background: var(--orange) !important;
    box-shadow: var(--shadow-orange-hover);
}
.partners-carousel-section .owl-next:hover::after,
.partners-carousel-section .owl-prev:hover::after {
    border-color: var(--blue);
}

/* Opzione B — griglia */
.partners-grid-section { background: var(--bg-light); }
.partners-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 12px;
}

/* ── Sezione W5 (statistiche) ───────────────────────────── */
.w5 { background: var(--bg-light); padding: 64px 0; }
.bg-cover { border-radius: var(--radius-lg); overflow: hidden; }
.bg-cover .content h2 { color: var(--orange); font-weight: 800; }
.bg-form { background: var(--orange); border-radius: var(--radius-lg); }
.bg-form h3 { color: var(--blue); font-weight: 700; }

/* ── Sezione W6 (ultimi arrivi) ─────────────────────────── */
.w6 { background: linear-gradient(to bottom, var(--bg-light) 0%, var(--orange-light) 20%, var(--orange-light) 80%, var(--bg-light) 100%); padding: 64px 0; }

/* card prodotto */
/* riga unica: card a larghezza fissa, il numero mostrato lo calcola il JS
   (adjustFeaturedRow in home.blade.php) in base allo spazio disponibile, così
   non c'è mai overflow né una card tagliata a metà */
.w6 .row {
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
    gap: 24px 20px;
    margin-left: 0;
    margin-right: 0;
}
.w6 .row > [class*="col-"] {
    width: 230px;
    max-width: none;
    flex: 0 0 230px;
    padding: 0;
}
.w6 .col-lg-3 { margin-bottom: 0; }
.w6 .col-lg-3 > div:first-child {
    background: var(--white);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    border: 1px solid rgba(var(--blue-rgb),.07);
    overflow: hidden;
    transition: var(--transition);
}
.w6 .col-lg-3:hover > div:first-child {
    box-shadow: var(--shadow-lg);
    transform: translateY(-4px);
}

/* barra di ricerca download: stile brand (pill + bottone blu) */
.downloads-search { max-width: 560px; margin: 40px auto 0; padding-bottom: 48px; }
.downloads-search .downloads-form {
    display: flex;
    gap: 10px;
    align-items: stretch;
}
.downloads-search__field {
    position: relative;
    flex: 1;
}
.downloads-search__field .fa-search {
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--text-muted);
}
.downloads-search__field input {
    width: 100%;
    height: 44px;
    padding: 0 16px 0 42px;
    font-size: 15px;
    border: 1.5px solid var(--gray-300);
    border-radius: var(--radius);
    background: var(--white);
    color: var(--text);
    transition: var(--transition);
}
.downloads-search__field input:focus {
    outline: none;
    border-color: var(--blue-light);
    box-shadow: var(--focus-ring);
}
.downloads-search__btn {
    border-radius: var(--radius);   /* come i pulsanti della home */
    padding: 0 28px;
    font-weight: 600;
}

/* pagina download: griglia adattiva, ~5-6 card per riga su desktop */
#downloads-box,
#downloads-box-query {
    display: grid;
    /* max fisso (non 1fr): evita che le card si allunghino a dismisura prima che
       entri una colonna in più; lo spazio avanzato resta come margine centrato */
    grid-template-columns: repeat(auto-fill, minmax(240px, 280px));
    justify-content: center;
    gap: 48px 40px;
    margin-left: 0;
    margin-right: 0;
    max-width: 1800px;   /* oltre non si aggiungono colonne all'infinito sui monitor wide */
    margin-inline: auto;
}
#downloads-box > [class*="col-"],
#downloads-box-query > [class*="col-"] {
    width: auto;
    max-width: none;
    flex: none;
    padding: 0;
}
/* card verticale: le copertine sono in formato ritratto, l'immagine riempie la card
   (vince sul max-height:100px inline della blade) */
#downloads-box .category-box,
#downloads-box-query .category-box {
    margin-top: 0 !important;   /* niente spazio per l'icona sporgente: qui non c'è */
    height: 100%;
}
#downloads-box .category-box img,
#downloads-box-query .category-box img {
    width: 100%;
    max-height: none !important;
    aspect-ratio: 3 / 4;
    object-fit: contain;
    background: var(--white);
}
#downloads-box .category-box a p:first-of-type,
#downloads-box-query .category-box a p:first-of-type {
    font-weight: 600;
    color: var(--text);
    /* stesso motivo della descrizione: un titolo su 1 riga vs uno su 2 righe
       lascia bianco sotto quando la griglia stira le card della stessa riga alla
       stessa altezza */
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    min-height: 2.6em;
}
/* altezza riservata sempre uguale (presente/assente/corta/lunga), altrimenti le righe
   della griglia cambiano altezza in modo incoerente quando si ridimensiona la finestra */
#downloads-box .category-box a .downloads-desc,
#downloads-box-query .category-box a .downloads-desc {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    min-height: 2.5em;
}
/* nessun testo: niente rettangolo bianco riservato */
#downloads-box .category-box a .downloads-desc:empty,
#downloads-box-query .category-box a .downloads-desc:empty {
    display: none;
    min-height: 0;
}

/* griglia categorie/articoli: numero di colonne adattivo alla larghezza,
   niente margin negativi Bootstrap (contenuto a filo bordo su finestre strette) */
.row.product-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
    gap: 32px 20px;
    margin-left: 0;
    margin-right: 0;
}
.row.product-list > [class*="col-"] {
    width: auto;
    max-width: none;
    flex: none;
    padding: 0;
}

/* ── Card prodotto unificata (home + pagine ricerca) ─────── */
.product-image,
.product-list .product-img,
.product-list .boxContainer {
    background: var(--white);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    border: 1px solid rgba(var(--blue-rgb),.07);
    overflow: hidden;
    transition: var(--transition);
    height: 144px;
    padding: 12px;
    position: relative;
}
.product-image:hover,
.product-list .product-img:hover,
.product-list .boxContainer:hover {
    box-shadow: var(--shadow-lg);
    transform: translateY(-3px);
    border-color: rgba(var(--blue-rgb),.15);
}
.product-image a,
.product-list .product-img a,
.product-list .boxContainer a {
    display: block;
    width: 100%;
    height: 100%;
    position: relative;
}
.product-image img,
.product-list .product-img img,
.product-list .boxContainer img,
.product-list .thumbImage {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    margin: auto;
    max-height: 112px;
    max-width: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    filter: grayscale(10%);
    transition: var(--transition);
}
.product-image:hover img,
.product-list .product-img:hover img,
.product-list .boxContainer:hover img { filter: none; transform: scale(1.04); }

/* etichetta sotto la card */
.product-info,
.product-list .product-name,
.product-list .title {
    margin-top: 8px;
    padding: 8px 10px 10px;
    font-size: 13px;
    font-weight: 600;
    color: var(--text);
    text-align: center;
    line-height: 1.4;
}
.product-info h4,
.product-info h4 a,
.product-list .product-name a,
.product-list .title a { color: var(--blue); font-size: 13px; font-weight: 600; }
.product-info h4 { margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.product-info h4 a:hover,
.product-list .product-name a:hover,
.product-list .title a:hover { color: var(--orange-dark); text-decoration: none; }

.price {
    background: var(--blue);
    border-radius: 0 var(--radius) 0 0;
    font-size: 13px;
    font-weight: 700;
    padding: 5px 12px;
}

/* ── Banner ricerca (barra blu) ─────────────────────────── */
.blue-bar { background: var(--blue); }
.from-inner input[type=submit] {
    background-color: var(--orange);
    border-radius: var(--radius) 0 0 var(--radius);
}
.search-form .link { font-weight: 600; letter-spacing: .3px; }

/* ── Breadcrumb curm ─────────────────────────────────────── */
.page-crum { display: none; }

/* ── Pagine ricerca: famiglie / categorie / articoli ─────── */
.product-list { margin-top: 24px; }
.product-list [class*=col-] { margin-top: 30px; }


/* intestazione pagina */
.page-wrapper h1, .page-wrapper h2 {
    font-size: 22px;
    font-weight: 700;
    color: var(--blue);
    margin-bottom: 24px;
    padding-bottom: 10px;
    border-bottom: 3px solid var(--orange);
    display: inline-block;
}

/* filtri */
#filtri12 select { border-radius: var(--radius); border: 1.5px solid var(--gray-200); height: 40px; font-size: 13px; }
#filtri12 select:focus { border-color: var(--blue); box-shadow: var(--focus-ring); }

/* paginazione */
.pagination { margin-top: 32px; }
.pagination .page-item .page-link {
    color: var(--blue);
    border-radius: var(--radius);
    margin: 0 2px;
    border: 1.5px solid var(--gray-200);
    font-size: 13px;
    font-weight: 600;
    transition: var(--transition);
}
.pagination .page-item.active .page-link {
    background: var(--blue);
    border-color: var(--blue);
    color: var(--white);
}
.pagination .page-item .page-link:hover {
    background: var(--blue-pale);
    border-color: var(--blue);
}

/* ── Pagina Azienda ──────────────────────────────────────── */
.about-hero {
    position: relative;
    height: 320px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-size: cover;
    background-position: center;
}
.about-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(var(--blue-rgb),0.6), rgba(var(--blue-rgb),0.3));
}
.about-hero-content {
    position: relative;
    z-index: 2;
    text-align: center;
    color: var(--white);
}
.about-hero-content h1 {
    font-size: 42px;
    font-weight: 800;
    letter-spacing: -.5px;
    margin-bottom: 12px;
}
.about-hero-content p {
    font-size: 18px;
    max-width: 640px;
    margin: 0 auto;
    color: rgba(255,255,255,.9);
}

.about-stats {
    background: var(--blue);
    padding: 28px 0;
}
.about-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 8px 0;
}
.about-stat-num {
    font-size: 28px;
    font-weight: 800;
    color: var(--orange);
}
.about-stat-label {
    font-size: 13px;
    color: rgba(255,255,255,.8);
    margin-top: 4px;
}

.about-lead {
    text-align: center;
    max-width: 760px;
    margin: 0 auto 56px;
}
.about-lead p { font-size: 17px; color: var(--text-muted); }

/* titoli /azienda: tutti maiuscoli, stessa sottolineatura arancio dello stile base */
.about-lead h2,
.about-section h2 { text-transform: uppercase; }

/* su schermi wide il contenuto resta a misura leggibile: sezioni centrate a 1200px
   (foto e righe di testo scalano insieme; hero e stats usano tutto il container) */
.about-section,
.about-cards,
.about-cta { max-width: 1200px; margin-left: auto; margin-right: auto; }

.about-section { margin-bottom: 56px; }
.about-section--reverse { flex-direction: row-reverse; }
.about-img {
    width: 100%;
    /* formato fisso 16:9: la foto viene ritagliata (object-fit) senza deformarsi */
    aspect-ratio: 16 / 9;
    object-fit: cover;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
}

.about-cards { margin-bottom: 40px; }
.about-card {
    background: var(--bg-light);
    border-radius: var(--radius-lg);
    padding: 32px;
    height: 100%;
    margin-bottom: 24px;
}
.about-card i {
    font-size: 28px;
    color: var(--blue);
    background: var(--blue-pale);
    width: 56px;
    height: 56px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 16px;
}
.about-card h3 {
    font-size: 18px;
    font-weight: 700;
    color: var(--blue);
    margin-bottom: 12px;
}

/* riga di loghi marchio (card "Dove ci trovi" e sezione "distributrice di") */
.about-logo-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px;
    margin-top: 16px;
}
.about-logo-row--center { justify-content: center; }
.about-logo-row__item {
    display: flex;
    align-items: center;
    justify-content: center;
}
.about-logo-row__item img {
    max-height: 44px;
    width: auto;
    max-width: 140px;
    display: block;
}

.about-distributor {
    max-width: 1200px;
    margin: 0 auto 40px;
    padding-top: 32px;
    border-top: 1px solid var(--gray-200);
    text-align: center;
}
.about-distributor h3 {
    font-size: 18px;
    font-weight: 700;
    color: var(--blue);
    text-transform: uppercase;
    margin-bottom: 24px;
}
.about-brand-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 28px 16px;
}
.about-brand-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    padding: 16px 10px;
    border-radius: var(--radius);
    color: var(--text-muted);
    text-decoration: none;
    transition: var(--transition);
}
a.about-brand-item:hover {
    background: var(--bg-light);
    color: var(--text);
}
.about-brand-item img {
    max-height: 50px;
    width: auto;
    max-width: 100%;
    transition: var(--transition);
}
a.about-brand-item:hover img { opacity: .8; }
.about-brand-item span {
    font-size: 12px;
    line-height: 1.4;
}
@media (max-width: 991px) {
    .about-brand-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 575px) {
    .about-brand-grid { grid-template-columns: repeat(2, 1fr); }
}

.about-cta {
    text-align: center;
    padding: 40px 0 8px;
    border-top: 1px solid var(--gray-200);
}
.about-cta p {
    font-size: 17px;
    color: var(--text-muted);
    margin-bottom: 20px;
}

/* ── Pagine interne ──────────────────────────────────────── */
.page-banner {
    height: 220px;
    border-radius: 0;
}
.page-banner::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(var(--blue-rgb),.75), rgba(var(--blue-rgb),.35));
}
.page-title { z-index: 2; }
.page-title h1 { font-size: 42px; font-weight: 800; letter-spacing: -.5px; }

/* fondo lavanda chiarissimo per tutte le pagine interne (richiesta cliente) */
.page-wrapper { padding: 64px 0; background: rgb(250, 250, 255); }
/* solo /azienda: bianco puro invece del lavanda condiviso sopra */
.page-wrapper--azienda { background: var(--white); }

/* ── Form generico ───────────────────────────────────────── */
.form-wrapper .form-control {
    border-radius: var(--radius);
    border-color: var(--gray-300);
    height: 48px;
    font-size: 14px;
    transition: var(--transition);
}
.form-wrapper .form-control:focus {
    border-color: var(--blue);
    box-shadow: var(--focus-ring);
}
.form-wrapper .btn-secondary { border-radius: var(--radius); height: 48px; }

/* ── Tabelle ─────────────────────────────────────────────── */
.entry-list-table .table thead tr th,
.action-table .table thead tr th,
.brand-table .table thead tr th,
.cart-table tr th {
    background: var(--blue);
    color: var(--white);
    font-weight: 600;
    letter-spacing: .3px;
    border: none;
}
.entry-list-table .table tbody tr:nth-child(odd) td,
.action-table .table tbody tr:nth-child(odd) td { background: var(--bg-light); }

.sort-header { background: var(--blue); border-radius: var(--radius) var(--radius) 0 0; }

/* ── Footer ──────────────────────────────────────────────── */
/* background del footer definito UNA volta sul contenitore .footer:
   le fasce interne (.footer-top/.footer-bottom) restano trasparenti
   così il colore si cambia in un punto solo */
.footer { background: var(--blue); }
.footer-top {
    background: transparent;
    padding: 25px 0px 25px;
    position: relative;
}
.footer-brand {
    display: flex;
    align-items: center;
    gap: 16px;
}
.footer-logo {
    height: 64px;
    flex-shrink: 0;
}
.footer-top h6 {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--white);
    margin-bottom: 18px;
    padding-bottom: 10px;
}
.footer-top h6::after {
    content: '';
    display: block;
    width: 28px;
    height: 2px;
    background: var(--orange);
    border-radius: 1px;
    margin-top: 8px;
}
.footmenu li a {
    color: var(--white);
    font-size: 13px;
    padding-left: 14px;
    transition: var(--transition);
}
.footmenu li a:hover { color: var(--orange); padding-left: 18px; }
.footmenu li a:before { color: var(--orange); opacity: .7; }
.footer-top p { color: var(--white); font-size: 13px; line-height: 1.7; }
.footer-info li { color: var(--white); font-size: 13px; margin-bottom: 12px; }
.footer-info li a { color: var(--white); }
.footer-info li a:hover { color: var(--orange); }
.footer-info li i { color: var(--orange); }

.social {
    display: flex;
    gap: 10px;
    margin-top: 18px;
    padding: 0;
    list-style: none;
}
.social li a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    background: none;
    color: var(--white);
    font-size: 1.2em;
    transition: var(--transition);
}
.social li a:hover { background: none; color: var(--orange); transform: translateY(-2px); }

.footer-brands {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 3px;
}
.footer-brands img {
    max-height: 45px;
    width: auto;
    max-width: 165px;
    opacity: .85;
    transition: var(--transition);
}
.footer-brands img:hover { opacity: 1; }

.footer-cert {
    display: block;
    width: 90px;
    position: absolute;
    top: 50%;
    right: 40px;
    transform: translateY(-50%);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
}
@media (max-width: 991px) {
    .footer-cert {
        position: static;
        transform: none;
        margin: 20px auto 0;
    }
}

.footer-bottom {
    background: transparent;
    border-top: 1px solid rgba(255,255,255,.08);
    padding: 16px 0;
    font-size: 12px;
    color: var(--white);
}
.footer-bottom p { color: var(--white); }
.footer-bottom a { color: var(--white); }
.footer-bottom a:hover { color: var(--orange); }
.footer-bottom ul li:after { color: var(--white); }

/* ── Home: sezione contat-info ───────────────────────────── */
.contat-info { background: var(--bg-light); padding: 48px 0; }

.home-contact-panel {
    background: var(--white);
    border-radius: var(--radius-lg);
    padding: 28px 32px;
    box-shadow: var(--shadow-sm);
    border-left: 4px solid var(--orange);
}
.home-contact-panel .btn { display: inline-block; }
.home-contact-panel h3 {
    font-size: 20px;
    font-weight: 700;
    color: var(--blue);
    margin-bottom: 10px;
}
.home-contact-panel p {
    font-size: 14px;
    color: var(--text-muted);
    margin-bottom: 4px;
}
.home-contact-panel p i { color: var(--orange-dark); margin-right: 6px; }

.home-map-wrap {
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow);
    height: 300px;
}
.home-map-wrap iframe { width: 100%; height: 100%; display: block; }

/* Placeholder di consenso per gli embed Google Maps (gmap-embed): la mappa
   carica solo dopo click o dopo accettazione del cookie banner, per non
   impostare cookie di terze parti prima del consenso. */
.gmap-embed { position: relative; }
.gmap-embed iframe { display: none; }
.gmap-embed.is-loaded iframe { display: block; }
.gmap-embed.is-loaded .gmap-consent { display: none; }

.gmap-consent {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    text-align: center;
    padding: 20px;
    background: var(--bg-light);
    color: var(--text-muted);
    font-size: 0.85rem;
}
.gmap-consent p { margin: 0; max-width: 320px; }
.gmap-consent-btn {
    font-family: inherit;
    font-size: 0.85rem;
    font-weight: 600;
    padding: 10px 20px;
    border: none;
    border-radius: var(--radius);
    background: var(--blue);
    color: var(--white);
    cursor: pointer;
    transition: var(--transition);
}
.gmap-consent-btn:hover { background: var(--blue-dark); }

/* ── Pagina Contatti ─────────────────────────────────────── */
.contact-page { background: var(--bg-light); }

.contact-info-bar {
    background: var(--blue);
    padding: 32px 0;
}
.contact-info-card {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 20px;
    background: rgba(255,255,255,.07);
    border-radius: var(--radius-lg);
    height: 100%;
    transition: var(--transition);
}
.contact-info-card:hover { background: rgba(255,255,255,.13); }
.contact-info-card i {
    font-size: 22px;
    color: var(--orange);
    margin-top: 2px;
    flex-shrink: 0;
}
.contact-info-card strong {
    display: block;
    color: var(--white);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .8px;
    text-transform: uppercase;
    margin-bottom: 4px;
}
.contact-info-card span,
.contact-info-card span a {
    color: rgba(255,255,255,.75);
    font-size: 13px;
    line-height: 1.5;
}
.contact-info-card span a:hover { color: var(--orange); text-decoration: none; }

.contact-body { padding: 56px 15px; }

.contact-section-title {
    font-size: 22px;
    font-weight: 700;
    color: var(--blue);
    margin-bottom: 28px;
    padding-bottom: 12px;
    border-bottom: 3px solid var(--orange);
    display: inline-block;
    text-transform: uppercase;
}

.contact-form-col { padding-right: 40px; }
.contact-form-col .form-control {
    border-radius: var(--radius);
    border: 1.5px solid var(--gray-200);
    height: 46px;
    font-size: 14px;
    transition: var(--transition);
}
.contact-form-col textarea.form-control { height: auto; }
.contact-form-col .form-control:focus {
    border-color: var(--blue);
    box-shadow: var(--focus-ring);
}
.contact-form-col label { font-size: 13px; font-weight: 600; color: var(--text); margin-bottom: 6px; }
.required-star { color: var(--orange-dark); }
.contact-privacy { font-size: 13px; color: var(--text-muted); }
.contact-privacy a { color: var(--blue); text-decoration: underline; }
.contact-form-col .btn-primary { width: 100%; height: 48px; font-size: 15px; letter-spacing: .3px; }

/* ── Pagina contatti ─────────────────────────────────────── */
.contact-page-card {
    padding: 40px 0;
}
.contact-info-list { list-style: none; padding: 0; margin: 0 0 20px; }
.contact-info-list li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    color: var(--text);
    font-size: 14px;
    line-height: 1.5;
    margin-bottom: 14px;
}
.contact-info-list li i {
    color: var(--orange-dark);
    font-size: 16px;
    margin-top: 2px;
    flex-shrink: 0;
}
.contact-info-list li a { color: var(--text); }
.contact-info-list li a:hover { color: var(--blue); }

.contact-map-col { padding-left: 20px; }
.contact-map {
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow);
    height: 440px;
}
.contact-map iframe { width: 100%; height: 100%; display: block; }


/* ── WhatsApp FAB ────────────────────────────────────────── */
.float {
    background: var(--whatsapp);
    border-radius: 50px;
    box-shadow: var(--shadow-green);
    transition: var(--transition);
}
.float:hover {
    transform: scale(1.08) translateY(-2px);
    box-shadow: var(--shadow-green-hover);
}

/* ── Login ───────────────────────────────────────────────── */
.form-wrapper.login-form {
    background: var(--white);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    padding: 48px 40px;
    border-top: 4px solid var(--orange);
}
.form-wrapper.login-form h2 {
    font-size: 24px;
    font-weight: 700;
    color: var(--blue);
    margin-bottom: 28px;
}
.form-wrapper.login-form label {
    font-size: 13px;
    font-weight: 600;
    color: var(--text);
    margin-bottom: 6px;
}
.form-wrapper.login-form .form-control {
    height: 46px;
    border-radius: var(--radius);
    border: 1.5px solid var(--gray-200);
    font-size: 14px;
    transition: var(--transition);
}
.form-wrapper.login-form .form-control:focus {
    border-color: var(--blue);
    box-shadow: var(--focus-ring);
}
.form-wrapper.login-form .btn-secondary {
    background: var(--blue);
    color: var(--white);
    height: 48px;
    font-size: 15px;
    font-weight: 600;
    border: none;
    border-radius: var(--radius);
    box-shadow: var(--shadow-blue);
    letter-spacing: .3px;
}
.form-wrapper.login-form .btn-secondary:hover {
    background: var(--blue-dark);
    box-shadow: var(--shadow-blue-hover);
    transform: translateY(-1px);
}
.form-wrapper.login-form .form-check-label { color: var(--text-muted); font-weight: 400; }
.form-wrapper.login-form .form-link a {
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .5px;
    color: var(--blue);
    text-decoration: underline;
    text-transform: uppercase;
}
.form-wrapper.login-form a { color: var(--text-muted); font-size: 13px; }
.form-wrapper.login-form a:hover { color: var(--blue); }

/* ── Registrazione ───────────────────────────────────────── */
.form-wrapper:not(.login-form) {
    background: var(--white);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
    padding: 40px;
    border-top: 4px solid var(--orange);
}
.form-wrapper:not(.login-form) h2 {
    font-size: 24px;
    font-weight: 700;
    color: var(--blue);
    margin-bottom: 32px;
    text-transform: uppercase;
}
.form-wrapper .fieldset.required { background: none; padding-right: 0; }
.form-wrapper .required-msg {
    background: none;
    padding-right: 0;
    font-size: 12px;
    font-weight: 700;
    color: var(--text-muted);
    letter-spacing: .5px;
    text-transform: uppercase;
    margin-bottom: 16px;
    border-bottom: 2px solid var(--orange);
    padding-bottom: 8px;
}
.form-wrapper label {
    font-size: 13px;
    font-weight: 600;
    color: var(--text);
}
.form-wrapper .form-control {
    height: 42px;
    border-radius: var(--radius);
    border: 1.5px solid var(--gray-200);
    font-size: 13px;
    transition: var(--transition);
}
.form-wrapper .form-control:focus {
    border-color: var(--blue);
    box-shadow: var(--focus-ring);
}
.form-wrapper .btn-secondary {
    background: var(--blue);
    color: var(--white);
    height: 48px;
    font-size: 15px;
    font-weight: 600;
    border: none;
    border-radius: var(--radius);
    padding: 0 40px;
    box-shadow: var(--shadow-blue);
}
.form-wrapper .btn-secondary:hover {
    background: var(--blue-dark);
    color: var(--white);
    box-shadow: var(--shadow-blue-hover);
    transform: translateY(-1px);
}
.form-wrapper .form-check-label { font-weight: 400; font-size: 13px; color: var(--text-muted); }
.form-wrapper .form-check-label a { color: var(--blue); }

/* registrazione senza card wrapper */
.form-wrapper.no-card {
    background: none;
    box-shadow: none;
    border-top: none;
    padding: 0;
}

/* registrazione: sezioni impilate con titolo, label sopra al campo */
.reg-section { margin-bottom: 32px; position: relative; }

/* icona di sezione: filigrana nel margine sinistro su desktop,
   inline piccola arancio col titolo sotto i 992px */
.reg-section-title .reg-icon {
    position: absolute;
    left: -96px;
    top: -18px;
    width: 74px;
    height: 74px;
    color: var(--blue);
    opacity: .12;
    pointer-events: none;
}
@media (max-width: 991px) {
    .reg-section-title .reg-icon {
        position: static;
        width: 22px;
        height: 22px;
        color: var(--orange);
        opacity: 1;
        margin-right: 10px;
        vertical-align: -5px;
    }
}
.reg-section-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--blue);
    letter-spacing: .8px;
    text-transform: uppercase;
    border-bottom: 2px solid var(--orange);
    padding-bottom: 8px;
    margin-bottom: 20px;
}
.reg-field { margin-bottom: 16px; }
.reg-field > label {
    display: block;
    margin-bottom: 6px;
}
/* asterisco arancio sui campi obbligatori */
.reg-field.required > label::after { content: " *"; }
.reg-field.required > label::after,
.req-star {
    color: var(--orange);
    font-weight: 700;
}
.reg-note {
    font-size: 13px;
    color: var(--text-muted);
    margin: 8px 0 16px;
}
/* errore di validazione inline sotto il campo (registrazione e contatti) */
.reg-field.has-error .form-control,
.form-group.has-error .form-control { border-color: var(--red); }
.field-error {
    display: block;
    font-size: 12px;
    color: var(--red);
    margin-top: 4px;
}
.reg-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 24px;
    flex-wrap: wrap;
}
.reg-required-hint { font-size: 12px; color: var(--text-muted); }
/* il submit riceve .form-control (width:100%) dallo script di pagina: lo riporto a larghezza naturale */
.reg-footer .btn-secondary { width: auto; }
/* stesso bottone della registrazione anche fuori da .form-wrapper (es. /contatti) */
.reg-footer .btn-secondary {
    background: var(--blue);
    color: var(--white);
    height: 48px;
    font-size: 15px;
    font-weight: 600;
    border: none;
    border-radius: var(--radius);
    padding: 0 40px;
    box-shadow: var(--shadow-blue);
    transition: var(--transition);
}
.reg-footer .btn-secondary:hover {
    background: var(--blue-dark);
    box-shadow: var(--shadow-blue-hover);
    transform: translateY(-1px);
}

/* autocomplete Città (registrazione): dropdown suggerimenti comuni ISTAT */
.citta-autocomplete { position: relative; }
.citta-suggestions {
    position: absolute;
    z-index: 20;
    top: 100%;
    left: 0;
    right: 0;
    margin: 4px 0 0;
    padding: 4px 0;
    list-style: none;
    background: var(--white);
    border: 1.5px solid var(--gray-200);
    border-radius: var(--radius);
    box-shadow: var(--shadow-lg);
    max-height: 260px;
    overflow-y: auto;
}
.citta-suggestions li {
    padding: 8px 14px;
    font-size: 13px;
    color: var(--text);
    cursor: pointer;
}
.citta-suggestions li:hover,
.citta-suggestions li.active {
    background: var(--blue-pale);
    color: var(--blue-dark);
}
@media (max-width: 991px) {
    /* respiro laterale: senza card il testo arriva al bordo dello schermo */
    .form-wrapper.no-card { padding: 0 12px; }
    .reg-footer .btn-secondary { width: 100%; }
}

/* ── Inputs & select focus globale ───────────────────────── */
.form-control:focus {
    outline: none;
    border-color: var(--blue);
    box-shadow: var(--focus-ring);
}

/* ── Sezione W7 (citazione GM) ──────────────────────────── */
.w7 { padding: 64px 0; background: var(--bg-light); }
.w7 blockquote { font-size: 16px; line-height: 1.7; color: var(--text-muted); border-left: 4px solid var(--orange); padding-left: 20px; margin-bottom: 20px; }
.w7 .tiziano-photo { border-radius: var(--radius); max-width: 80%; }
.w7 .tiziano-sign-wrap { margin-top: 16px; }
.w7 .tiziano-caption { margin: 0; font-size: 1rem; color: var(--text); }
.w7 .tiziano-caption strong { display: block; font-size: 1.1rem; color: var(--blue); }

/* ── Animazione fade-in per le sezioni ───────────────────── */
@media (prefers-reduced-motion: no-preference) {
    .w1, .w2, .w3, .w4, .w5, .w6 {
        animation: fadeUp .5s ease both;
    }
}
@keyframes fadeUp {
    from { opacity: 0; transform: translateY(16px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ── Responsive ──────────────────────────────────────────── */

/* ── Tablet / Mobile ≤991px ──────────────────────────────── */
@media (max-width: 991px) {
    /* footer: spazio tra le colonne quando vanno in colonna */
    .footer-top .row > [class*="col-"] + [class*="col-"] { margin-top: 40px; }

    /* navbar: brand a sinistra, hamburger a destra */
    .nav-inner { flex-wrap: wrap; padding: 0 16px; gap: 0; }
    .nav-logo { padding: 8px 0; margin-right: auto; }
    .nav-logo-icon,
    .nav-logo-text { height: 38px; }
    /* claim rimosso su mobile: niente tagline né nella versione estesa né in quella ridotta */
    .nav-tagline,
    .nav-tagline-sm { display: none; }
    .toggleMenu { display: block; margin-left: 12px; flex-shrink: 0; }

    /* nel menu mobile le icone restano visibili per tutte le voci */
    .menu > li > a .menu-icon { display: inline-block; }
    /* nel menu mobile non serve la voce "Altro": le voci tornano tutte in elenco */
    .menu-more { display: none !important; }

    /* nav-menu collassato: pannello blu in overflow sotto la header, testo bianco */
    .nav-menu {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        z-index: 1050;
        flex-direction: column;
        align-items: stretch;
        background: var(--blue);
        box-shadow: 0 6px 16px rgba(0,0,0,.18);
        border-radius: 0 0 var(--radius) var(--radius);
        display: none;
    }
    .nav-menu.open { display: flex; }
    .nav-menu .menu { flex-direction: column; align-items: stretch; }
    .nav-menu .menu-auth {
        margin-left: 0;
        padding-left: 0;
        border-left: none;
        border-top: 2px solid rgba(255,255,255,.2);
    }
    .nav-menu .menu > li {
        line-height: 1;
        border-bottom: 1px solid rgba(255,255,255,.15);
    }
    .nav-menu .menu > li > a {
        display: flex;
        align-items: center;
        gap: 10px;
        padding: 14px 20px;
        color: var(--white) !important;
        font-size: 14px;
        font-weight: 600;
    }
    .nav-menu .menu > li > a:hover,
    .nav-menu .menu > li.hover > a { color: var(--orange) !important; background: transparent; }
    .nav-menu .menu > li > a::before { display: none; }

    /* dropdown nel menu mobile */
    .nav-menu .menu ul {
        position: static;
        box-shadow: none;
        background: rgba(0,0,0,.12);
        border-top: none;
        border-radius: 0;
        overflow: visible;
        min-width: 0;
        padding: 0;
        display: none;
    }
    .nav-menu .menu li.hover > ul { display: block; }
    .nav-menu .menu li li a {
        background: transparent;
        color: var(--white);
        padding: 12px 20px 12px 36px;
        font-size: 13px;
        border-bottom: 1px solid rgba(255,255,255,.15);
    }
    .nav-menu .menu li li a:hover { color: var(--orange); padding-left: 42px; background: rgba(0,0,0,.12); }

    /* Login e Registrati nel menu mobile: link semplice bianco */
    .nav-menu .menu .nav-login > a,
    .nav-menu .menu .nav-register > a {
        display: block;
        padding: 12px 20px !important;
        color: var(--white) !important;
        font-weight: 600;
        background: transparent !important;
        border-radius: 0 !important;
    }
    .nav-menu .menu .nav-login > a:hover,
    .nav-menu .menu .nav-register > a:hover { color: var(--orange) !important; }

    /* utente loggato: Catalogo e Logout sulla stessa riga, come due pulsanti */
    .nav-menu .menu-auth--loggedin {
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
        padding: 10px 20px;
        gap: 10px;
    }
    .nav-menu .menu-auth--loggedin > li { border-bottom: none; }
    .nav-menu .menu-auth--loggedin .nav-catalog > a,
    .nav-menu .menu-auth--loggedin .nav-logout > a {
        display: inline-block;
        padding: 8px 20px !important;
        border-radius: 20px !important;
        font-weight: 600;
    }
    .nav-menu .menu-auth--loggedin .nav-catalog > a { background: var(--white) !important; color: var(--orange) !important; }
    .nav-menu .menu-auth--loggedin .nav-catalog > a:hover { background: var(--gray-50) !important; color: var(--orange-dark) !important; }
    .nav-menu .menu-auth--loggedin .nav-logout > a { background: var(--orange) !important; color: var(--white) !important; }
    .nav-menu .menu-auth--loggedin .nav-logout > a:hover { background: var(--orange-dark) !important; color: var(--white) !important; }

    /* home: ricerca */
    .home-search-section { padding: 20px 0 0; }
    .home-search-card { padding: 20px; }

    /* sezioni: padding ridotto */
    .w1 { padding: 36px 0 44px; }
    .w2, .w4, .w5, .w6 { padding: 36px 0; }
    .w3 { padding: 44px 0; }
    .w3 .form-box { padding: 28px 20px; }
    .w7 { padding: 36px 0; }
    .contat-info { padding: 36px 0; }

    /* category boxes: 2 per riga su tablet/mobile */
    .w1 .col-md-6.col-lg-3 {
        flex: 0 0 50%;
        max-width: 50%;
    }

    /* W7 immagine del manager: non esce dal container */
    .w7 .col-lg-6:last-child img { max-width: 100%; height: auto; }
    .w7 .col-lg-6:first-child { margin-bottom: 24px; }

    /* testo/mappa impilati dentro la card sotto i 992px (col-lg-4/col-lg-8
       in home.blade.php tornano full-width): margine tra i due blocchi */
    .home-contact-panel .col-lg-4 { margin-bottom: 20px; }

    .page-title h1 { font-size: 30px; }

    /* contatti */
    .contact-page-card { padding: 24px 0; }
    .contact-info-card { margin-bottom: 12px; }
    .contact-form-col { padding-right: 15px; margin-bottom: 40px; }
    .contact-map-col { padding-left: 15px; }
    .contact-map { height: 300px; }

    /* tabelle generiche: scroll orizzontale */
    .table-responsive-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .article-relations-table { font-size: 0.78rem; }
    .article-relations-table th,
    .article-relations-table td { padding: 6px 8px; }
    .tabInfAgg { font-size: 0.75rem; }

    /* filtri di ricerca: label e select su righe full-width */
    #filtri12 .col-md-1,
    #filtri12 .col-md-4 { width: 100%; flex: 0 0 100%; max-width: 100%; margin-bottom: 6px; }

    /* tabella articlesMarcaModello: scroll orizzontale */
    #tableArticlesMarcaModello { font-size: 0.75rem; display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
    #tableArticlesMarcaModello th,
    #tableArticlesMarcaModello td { padding: 5px 6px; white-space: nowrap; }

    /* scheda articolo: colonne in stack verticale */
    .article-card .col-md-4,
    .article-card .col-md-5,
    .article-card .col-md-3 { width: 100%; flex: 0 0 100%; max-width: 100%; }
    .article-photo-col { margin-bottom: 20px; }
    .article-price-col { margin-top: 0; }
    .article-price-box { text-align: left; display: flex; align-items: center; gap: 16px; padding: 14px 16px; }
    .article-login-msg { margin-bottom: 0; font-size: 0.8rem; }
    .article-login-msg .fa { display: inline; font-size: 1rem; margin: 0; }
    .article-disp { margin-top: 0; flex-shrink: 0; }
    .article-card { padding: 16px; }
    .article-price-box { padding: 16px; }

    /* amm filter bar */
    .amm-filter-vehicle { margin-left: 0; max-width: 100%; text-align: left; }
    .amm-filter-group { min-width: 100%; }
    .thumbImageMarcaModello { width: 52px; height: 52px; }

    /* h1/h2 intestazione pagine interne */
    .page-wrapper h1, .page-wrapper h2 { font-size: 18px; }
}

/* ── Mobile piccolo <576px ───────────────────────────────── */
@media (max-width: 575px) {
    /* home: ricerca */
    .home-search-card { padding: 16px; }

    /* category boxes: 2 per riga anche su mobile piccolo */
    .w1 .col-md-6.col-lg-3 {
        flex: 0 0 50%;
        max-width: 50%;
    }
    /* riduci il margine verticale creato dall'icona che sporge */
    .category-box { margin-top: 50px !important; }
    .category-box a .icon { width: 58px; height: 58px; margin: -42px auto 10px; }
    .category-box a h4 { font-size: 13px; }

    /* sezioni: padding ulteriormente ridotto */
    .w1 { padding: 24px 0 32px; }
    .w2, .w4, .w5, .w6, .w3, .w7, .contat-info { padding: 24px 0; }

    /* W7 blockquote */
    .w7 blockquote { font-size: 14px; }

    /* page title */
    .page-title h1 { font-size: 22px; }
    .page-wrapper { padding: 32px 0; }
    .w3 .man { display: none; }

    /* tabella articlesMarcaModello: font ancora più piccolo */
    #tableArticlesMarcaModello { font-size: 0.65rem; }

    /* h1 pagine interne */
    .page-wrapper h1, .page-wrapper h2 { font-size: 16px; }

    /* pagina Azienda: hero, stats e immagini ridotti su mobile */
    .about-hero { height: 220px; }
    .about-hero-content h1 { font-size: 26px; }
    .about-hero-content p { font-size: 14px; }
    .about-stat-num { font-size: 20px; }
    .about-stat-label { font-size: 11px; }
    .about-section--reverse { flex-direction: column; }
    .about-img { height: 200px; margin-top: 16px; }

    /* article card: price box verticale anche su xs */
    .article-price-box { flex-direction: column; align-items: flex-start; gap: 10px; }

    /* filtri ricerca: compatti */
    #filtri .col-md-1, #filtri .col-md-5, #filtri .col-md-4, #filtri .col-md-6 {
        width: 100%; flex: 0 0 100%; max-width: 100%; margin-bottom: 6px;
    }

    /* tabella relazioni: font ridotto */
    .article-relations-table { font-size: 0.7rem; }
    .article-relations-table th,
    .article-relations-table td { padding: 4px 6px; }

    /* thumbnail alternativi: più piccola */
    .thumbAlternativo { width: 38px; height: 38px; }

    /* bottone mostra altri dati: full width */
    .article-actions .btn { width: 100%; }

    /* heading sezioni home */
    .w1 h2, .w2 h2, .w4 h2 { font-size: 18px; }

    /* card "in evidenza": 3 per riga invece di 1, larghezza fissa ridotta
       da 230px a 96px (deve combinare con adjustFeaturedRow in home.blade.php,
       che usa la stessa soglia e gli stessi valori per calcolare quante ce ne
       stanno) */
    .w6 .row { gap: 24px 8px; }
    .w6 .row > [class*="col-"] { width: 96px; flex: 0 0 96px; }
    .w6 .product-image { height: 96px; padding: 6px; }
    .w6 .product-image img { max-height: 72px; }
    .w6 .product-info { padding: 6px 4px 8px; font-size: 11px; }
    .w6 .product-info h4, .w6 .product-info h4 a { font-size: 11px; }

    /* home map: più bassa */
    .home-map-wrap { height: 200px; }
}

/* ── Pagina articoli marca/modello ──────────────────────── */
.amm-filter-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 12px 20px;
    background: var(--bg-light);
    border: 1.5px solid var(--gray-200);
    border-radius: var(--radius-md);
    padding: 14px 16px;
    margin-bottom: 20px;
}
.amm-filter-group {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 140px;
}
.amm-filter-label {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .4px;
    color: var(--text-muted);
    margin: 0;
}
.amm-filter-group .form-control {
    height: 34px;
    font-size: 0.85rem;
    border-radius: var(--radius);
    border-color: var(--gray-300);
}
.amm-filter-vehicle {
    margin-left: auto;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--blue);
    align-self: center;
    text-align: right;
    max-width: 280px;
    word-break: break-word;
}

#tableArticlesMarcaModello thead th {
    background: var(--blue);
    color: var(--white);
    font-size: 0.78rem;
    font-weight: 600;
    white-space: nowrap;
    padding: 8px 10px;
    border-color: var(--blue-dark);
}
#tableArticlesMarcaModello tbody td {
    font-size: 0.82rem;
    padding: 6px 10px;
    vertical-align: middle;
}
#tableArticlesMarcaModello tbody tr:hover { background: var(--blue-pale); cursor: pointer; }
#tableArticlesMarcaModello tbody tr td.compare { cursor: default; }
.thumbImageMarcaModello {
    width: 80px;
    height: 80px;
    object-fit: contain;
    display: block;
}


/* ── Modale foto prodotto ────────────────────────────────── */
.article-photo--clickable { cursor: zoom-in; }

.modal-photo-dialog {
    max-width: 90vw;
    width: 90vw;
    margin: 5vh auto;
}
.modal-photo-content {
    background: rgba(15, 15, 15, .96);
    border: none;
    border-radius: var(--radius-lg);
    position: relative;
    padding: 0;
}
.modal-photo-close {
    position: absolute;
    top: 10px;
    right: 14px;
    font-size: 2rem;
    line-height: 1;
    color: var(--white);
    background: none;
    border: none;
    cursor: pointer;
    z-index: 10;
    opacity: .7;
    transition: var(--transition);
}
.modal-photo-close:hover { opacity: 1; }

.modal-photo-body {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 24px 16px;
    min-height: 60vh;
}
.modal-photo-body img {
    max-width: 100%;
    max-height: 80vh;
    object-fit: contain;
    border-radius: var(--radius);
}
.modal-photo-caption {
    text-align: center;
    color: rgba(255,255,255,.6);
    font-size: 0.8rem;
    padding: 0 24px 16px;
}

/* ── Password toggle ─────────────────────────────────────── */
.pwd-wrapper {
    position: relative;
    display: block;
    overflow: visible;
}
.pwd-wrapper .form-control {
    padding-right: 42px;
    position: relative;
    z-index: 1;
}
.pwd-toggle {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    cursor: pointer;
    color: var(--text-muted);
    user-select: none;
    line-height: 1;
    z-index: 2;
}
.pwd-toggle:hover { color: var(--blue); }
.pwd-toggle.is-visible { color: var(--blue); }
/* alternanza icona: occhio quando nascosta, occhio sbarrato quando visibile */
.pwd-toggle .pwd-eye-off { display: none; }
.pwd-toggle.is-visible .pwd-eye { display: none; }
.pwd-toggle.is-visible .pwd-eye-off { display: inline; }

/* ── Modal backdrop globale ──────────────────────────────── */
.modal-backdrop {
    z-index: 1200;
    background-color: rgba(0, 0, 0, 0.5);
}
.modal-backdrop.show { opacity: 1; }

/* tutti i modal sopra il backdrop */
.modal { z-index: 1300; }

/* ── Login Modal ─────────────────────────────────────────── */
#loginModal .modal-content {
    border-radius: var(--radius-lg);
}
/* bottone login compatto e centrato nel modal */
#loginModal .modal-login-btn {
    display: block;
    margin: 0 auto;
    height: 40px;
    width: 40%;
    min-width: 140px;
    font-size: 14px;
    font-weight: 600;
    border-radius: var(--radius);
}
/* invito registrazione: frase discorsiva con link in evidenza */
#loginModal .register-hint {
    font-size: 13px;
    color: var(--text-muted);
}
#loginModal .register-hint a {
    /* annulla .form-link a di style.css (18px uppercase bold): stesso stile della frase */
    color: var(--orange);
    font-size: inherit;
    font-weight: inherit;
    letter-spacing: inherit;
    text-decoration: underline;
    text-transform: none;
}

/* ── Photo Modal ─────────────────────────────────────────── */
#photoModal .modal-photo-content { position: relative; z-index: 1; }

/* ── Scheda articolo (/articolo) ─────────────────────────── */
.article-card {
    background: var(--white);
    border: 1.5px solid var(--gray-200);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    padding: 28px;
    margin-bottom: 32px;
}

.article-photo-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
}

.article-photo {
    max-width: 100%;
    max-height: 260px;
    object-fit: contain;
    border-radius: var(--radius-md);
    border: 1px solid var(--gray-200);
    background: var(--bg-light);
    padding: 8px;
    transition: var(--transition);
}
.article-photo:hover { box-shadow: var(--shadow-md); }

.article-marchio img { max-height: 48px; object-fit: contain; }

/* elenco chiave/valore dati articolo */
.article-meta { margin: 0; }
.article-meta dt {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .5px;
    color: var(--text-muted);
    margin-top: 12px;
}
.article-meta dt:first-child { margin-top: 0; }
.article-meta dd {
    font-size: 0.95rem;
    color: var(--text);
    margin-bottom: 0;
}

/* tabella dati tecnici categoria */
.article-extra-info { margin-top: 20px; }
.article-extra-info h6 {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .5px;
    color: var(--text-muted);
    margin-bottom: 8px;
}
.tabInfAgg { font-size: 0.8rem; }
.tabInfAgg th {
    background: var(--blue-pale);
    color: var(--blue);
    font-weight: 700;
    white-space: nowrap;
}

.article-actions { margin-top: 24px; }

/* box prezzo e disponibilità */
.article-price-col { display: flex; align-items: flex-start; }
.article-price-box {
    background: var(--bg-light);
    border: 1.5px solid var(--gray-200);
    border-radius: var(--radius-md);
    padding: 20px 16px;
    text-align: center;
    width: 100%;
}

.article-login-msg {
    font-size: 0.85rem;
    color: var(--text-muted);
    line-height: 1.5;
    margin-bottom: 16px;
}
.article-login-msg .fa {
    display: block;
    font-size: 1.8rem;
    color: var(--blue-light);
    margin-bottom: 8px;
}

.article-disp { margin-top: 4px; }

/* badge disponibilità — stile identico a commerce2 */
.disp-badge {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 20px;
    white-space: nowrap;
    color: var(--white);
}
.disp-badge--green  { background: var(--green); }
.disp-badge--orange { background: var(--orange); }
.disp-badge--red    { background: var(--red); }

/* sezioni alternativi / correlati / applicazioni */
.article-relations-section { margin-bottom: 32px; }
.article-relations-section .section-title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--blue);
    border-bottom: 2px solid var(--orange);
    padding-bottom: 6px;
    margin-bottom: 16px;
}

.article-relations-table { font-size: 0.85rem; }
.article-relations-table thead th {
    background: var(--blue);
    color: var(--white);
    font-weight: 600;
    border: none;
    padding: 10px 12px;
}
.article-relations-table tbody tr:hover { background: var(--blue-pale); }
.article-relations-table td { vertical-align: middle; padding: 8px 12px; }

/* compatibilità (veicoli OEM / marche equivalenti) */
.compat-two-col { display: grid; grid-template-columns: 1fr; gap: 24px; }
@media (min-width: 760px) { .compat-two-col { grid-template-columns: 1fr 1fr; } }
.compat-subtitle {
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .5px;
    color: var(--text-muted);
    margin-bottom: 10px;
}
.compat-extra-count { color: var(--text-muted); font-size: 0.8em; white-space: nowrap; }
.compat-toggle-btn {
    display: inline-block;
    margin-top: 10px;
    background: none;
    border: 1px dashed var(--gray-400);
    border-radius: var(--radius);
    color: var(--blue);
    font-size: 0.8rem;
    font-weight: 600;
    padding: 6px 14px;
    cursor: pointer;
    transition: var(--transition);
}
.compat-toggle-btn:hover { background: var(--blue-pale); border-color: var(--blue-light); }

.compat-search-row { margin-bottom: 16px; }
.compat-search-input {
    width: 100%;
    max-width: 360px;
    border: 1.5px solid var(--gray-300);
    border-radius: var(--radius);
    padding: 10px 14px;
    font-size: 0.9rem;
    color: var(--text);
    transition: var(--transition);
}
.compat-search-input:focus {
    outline: none;
    border-color: var(--blue-light);
    box-shadow: var(--focus-ring);
}
.compat-no-results { color: var(--text-muted); font-size: 0.85rem; margin-bottom: 16px; }
.compat-codes-cell mark {
    background: var(--orange-pale);
    color: var(--orange-dark);
    font-weight: 700;
    padding: 0 2px;
    border-radius: 3px;
}

.thumbAlternativo {
    width: 52px;
    height: 52px;
    object-fit: contain;
    border: 1px solid var(--gray-200);
    border-radius: var(--radius);
    background: var(--bg-light);
    padding: 2px;
}

.article-pdf-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--blue);
    font-weight: 600;
    font-size: 0.9rem;
    text-decoration: none;
    transition: var(--transition);
}
.article-pdf-link:hover { color: var(--blue-dark); text-decoration: underline; }
.article-pdf-link .fa { color: var(--red); font-size: 1.1rem; }

